UPDATE: Entity, Geo, Wiki
Some checks failed
Build and Release / release (push) Failing after 1m7s

This commit is contained in:
2026-04-22 17:45:09 +07:00
parent f127e2f029
commit adb65d8292
50 changed files with 3354 additions and 119 deletions

View File

@@ -1,8 +1,8 @@
package response
type AuthResponse struct {
AccessToken string `json:"access_token"`
RefreshToken string `json:"refresh_token"`
AccessToken string `json:"access_token,omitempty"`
RefreshToken string `json:"refresh_token,omitempty"`
}
type VerifyTokenResponse struct {

View File

@@ -8,9 +8,9 @@ import (
type CommonResponse struct {
Status bool `json:"status"`
Data any `json:"data"`
Errors any `json:"errors"`
Message string `json:"message"`
Data any `json:"data,omitempty"`
Errors any `json:"errors,omitempty"`
Message string `json:"message,omitempty"`
}
type JWTClaims struct {
@@ -29,10 +29,10 @@ type PaginationMeta struct {
type PaginatedResponse struct {
Status bool `json:"status"`
Message string `json:"message"`
Data any `json:"data"`
Errors any `json:"errors"`
Pagination *PaginationMeta `json:"pagination"`
Message string `json:"message,omitempty"`
Data any `json:"data,omitempty"`
Errors any `json:"errors,omitempty"`
Pagination *PaginationMeta `json:"pagination,omitempty"`
}
func BuildPaginatedResponse(data any, totalRecords int64, page int, limit int) *PaginatedResponse {

View File

@@ -0,0 +1,13 @@
package response
import "time"
type EntityResponse struct {
ID string `json:"id"`
Name string `json:"name"`
Description string `json:"description,omitempty"`
ThumbnailUrl string `json:"thumbnail_url,omitempty"`
IsDeleted bool `json:"is_deleted"`
CreatedAt *time.Time `json:"created_at"`
UpdatedAt *time.Time `json:"updated_at"`
}

View File

@@ -0,0 +1,26 @@
package response
import (
"encoding/json"
"time"
)
type Bbox struct {
MinLng float64 `json:"min_lng"`
MinLat float64 `json:"min_lat"`
MaxLng float64 `json:"max_lng"`
MaxLat float64 `json:"max_lat"`
}
type GeometryResponse struct {
ID string `json:"id"`
GeoType string `json:"geo_type"`
DrawGeometry json.RawMessage `json:"draw_geometry"`
Binding json.RawMessage `json:"binding,omitempty"`
TimeStart int32 `json:"time_start,omitempty"`
TimeEnd int32 `json:"time_end,omitempty"`
Bbox *Bbox `json:"bbox,omitempty"`
IsDeleted bool `json:"is_deleted,omitempty"`
CreatedAt *time.Time `json:"created_at,omitempty"`
UpdatedAt *time.Time `json:"updated_at,omitempty"`
}

View File

@@ -20,8 +20,8 @@ type MediaResponse struct {
MimeType string `json:"mime_type"`
Size int64 `json:"size"`
FileMetadata json.RawMessage `json:"file_metadata"`
CreatedAt *time.Time `json:"created_at"`
UpdatedAt *time.Time `json:"updated_at"`
CreatedAt *time.Time `json:"created_at,omitempty"`
UpdatedAt *time.Time `json:"updated_at,omitempty"`
}
type MediaSimpleResponse struct {
@@ -31,5 +31,5 @@ type MediaSimpleResponse struct {
MimeType string `json:"mime_type"`
Size int64 `json:"size"`
FileMetadata json.RawMessage `json:"file_metadata"`
CreatedAt *time.Time `json:"created_at"`
CreatedAt *time.Time `json:"created_at,omitempty"`
}

View File

@@ -10,7 +10,7 @@ type RoleSimpleResponse struct {
type RoleResponse struct {
ID string `json:"id"`
Name string `json:"name"`
IsDeleted bool `json:"is_deleted"`
CreatedAt *time.Time `json:"created_at"`
UpdatedAt *time.Time `json:"updated_at"`
IsDeleted bool `json:"is_deleted,omitempty"`
CreatedAt *time.Time `json:"created_at,omitempty"`
UpdatedAt *time.Time `json:"updated_at,omitempty"`
}

View File

@@ -5,29 +5,29 @@ import "time"
type UserResponse struct {
ID string `json:"id"`
Email string `json:"email"`
Profile *UserProfileSimpleResponse `json:"profile"`
TokenVersion int32 `json:"token_version"`
IsDeleted bool `json:"is_deleted"`
CreatedAt *time.Time `json:"created_at"`
UpdatedAt *time.Time `json:"updated_at"`
Roles []*RoleSimpleResponse `json:"roles"`
Profile *UserProfileSimpleResponse `json:"profile,omitempty"`
TokenVersion int32 `json:"token_version,omitempty"`
IsDeleted bool `json:"is_deleted,omitempty"`
CreatedAt *time.Time `json:"created_at,omitempty"`
UpdatedAt *time.Time `json:"updated_at,omitempty"`
Roles []*RoleSimpleResponse `json:"roles,omitempty"`
}
type UserSimpleResponse struct {
ID string `json:"id"`
Email string `json:"email"`
DisplayName string `json:"display_name"`
FullName string `json:"full_name"`
AvatarUrl string `json:"avatar_url"`
DisplayName string `json:"display_name,omitempty"`
FullName string `json:"full_name,omitempty"`
AvatarUrl string `json:"avatar_url,omitempty"`
}
type UserProfileSimpleResponse struct {
DisplayName string `json:"display_name"`
FullName string `json:"full_name"`
AvatarUrl string `json:"avatar_url"`
Bio string `json:"bio"`
Location string `json:"location"`
Website string `json:"website"`
CountryCode string `json:"country_code"`
Phone string `json:"phone"`
FullName string `json:"full_name,omitempty"`
AvatarUrl string `json:"avatar_url,omitempty"`
Bio string `json:"bio,omitempty"`
Location string `json:"location,omitempty"`
Website string `json:"website,omitempty"`
CountryCode string `json:"country_code,omitempty"`
Phone string `json:"phone,omitempty"`
}

View File

@@ -4,13 +4,13 @@ import "time"
type UserVerificationResponse struct {
ID string `json:"id"`
User *UserSimpleResponse `json:"user"`
User *UserSimpleResponse `json:"user,omitempty"`
VerifyType string `json:"verify_type"`
Content string `json:"content"`
Status string `json:"status"`
Reviewer *UserSimpleResponse `json:"reviewer"`
ReviewNote string `json:"review_note"`
ReviewedAt *time.Time `json:"reviewed_at"`
CreatedAt *time.Time `json:"created_at"`
Medias []*MediaSimpleResponse `json:"media"`
Reviewer *UserSimpleResponse `json:"reviewer,omitempty"`
ReviewNote string `json:"review_note,omitempty"`
ReviewedAt *time.Time `json:"reviewed_at,omitempty"`
CreatedAt *time.Time `json:"created_at,omitempty"`
Medias []*MediaSimpleResponse `json:"media,omitempty"`
}

View File

@@ -0,0 +1,12 @@
package response
import "time"
type WikiResponse struct {
ID string `json:"id"`
Title string `json:"title,omitempty"`
Content string `json:"content,omitempty"`
IsDeleted bool `json:"is_deleted,omitempty"`
CreatedAt *time.Time `json:"created_at,omitempty"`
UpdatedAt *time.Time `json:"updated_at,omitempty"`
}