UPDATE: Submission module
All checks were successful
Build and Release / release (push) Successful in 1m14s
All checks were successful
Build and Release / release (push) Successful in 1m14s
This commit is contained in:
@@ -1,9 +1,7 @@
|
||||
package request
|
||||
|
||||
import "encoding/json"
|
||||
|
||||
type CreateCommitDto struct {
|
||||
SnapshotJson json.RawMessage `json:"snapshot_json" validate:"required"`
|
||||
SnapshotJson *CommitSnapshot `json:"snapshot_json" validate:"required"`
|
||||
EditSummary string `json:"edit_summary" validate:"required,max=500"`
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
package request
|
||||
|
||||
type SearchEntityDto struct {
|
||||
Cursor string `json:"cursor" query:"cursor" validate:"omitempty,uuid"`
|
||||
Limit int `json:"limit" query:"limit" validate:"omitempty,min=1,max=100"`
|
||||
Name string `json:"name" query:"name" validate:"omitempty,max=255"`
|
||||
Cursor string `json:"cursor" query:"cursor" validate:"omitempty,uuid"`
|
||||
Limit int `json:"limit" query:"limit" validate:"omitempty,min=1,max=100"`
|
||||
Name string `json:"name" query:"name" validate:"omitempty,max=255"`
|
||||
ProjectID *string `json:"project_id" query:"project_id" validate:"omitempty,uuid"`
|
||||
}
|
||||
|
||||
@@ -7,4 +7,5 @@ type SearchGeometryDto struct {
|
||||
MaxLat *float64 `json:"max_lat" query:"max_lat" validate:"required,gte=-90,lte=90"`
|
||||
TimePoint *int32 `json:"time" query:"time" validate:"omitempty,number"`
|
||||
EntityID *string `json:"entity_id" query:"entity_id" validate:"omitempty,uuid"`
|
||||
ProjectID *string `json:"project_id" query:"project_id" validate:"omitempty,uuid"`
|
||||
}
|
||||
|
||||
@@ -3,73 +3,63 @@ package request
|
||||
import "encoding/json"
|
||||
|
||||
type CommitSnapshot struct {
|
||||
SchemaVersion int `json:"schema_version" validate:"required"`
|
||||
Section SectionRef `json:"section" validate:"required"`
|
||||
EditorFeatureCollection *FeatureCollection `json:"editor_feature_collection,omitempty" validate:"omitempty"`
|
||||
Entities []EntitySnapshot `json:"entities,omitempty" validate:"omitempty,dive"`
|
||||
Geometries []GeometrySnapshot `json:"geometries,omitempty" validate:"omitempty,dive"`
|
||||
LinkScopes []LinkScopeSnapshot `json:"link_scopes,omitempty" validate:"omitempty,dive"`
|
||||
Wikis []WikiSnapshot `json:"wikis,omitempty" validate:"omitempty,dive"`
|
||||
EntityWikis []EntityWikiLinkSnapshot `json:"entity_wikis,omitempty" validate:"omitempty,dive"`
|
||||
}
|
||||
|
||||
|
||||
type SectionRef struct {
|
||||
ID string `json:"id" validate:"required"`
|
||||
Title string `json:"title" validate:"required"`
|
||||
EditorFeatureCollection *FeatureCollection `json:"editor_feature_collection,omitempty" validate:"omitempty"`
|
||||
Entities []*EntitySnapshot `json:"entities,omitempty" validate:"omitempty,dive"`
|
||||
Geometries []*GeometrySnapshot `json:"geometries,omitempty" validate:"omitempty,dive"`
|
||||
Wikis []*WikiSnapshot `json:"wikis,omitempty" validate:"omitempty,dive"`
|
||||
GeometryEntity []*GeometryEntitySnapshot `json:"geometry_entity,omitempty" validate:"omitempty,dive"`
|
||||
EntityWiki []*EntityWikiLinkSnapshot `json:"entity_wiki,omitempty" validate:"omitempty,dive"`
|
||||
EntityWikis []*EntityWikiLinkSnapshot `json:"entity_wikis,omitempty" validate:"omitempty,dive"`
|
||||
}
|
||||
|
||||
type FeatureCollection struct {
|
||||
Type string `json:"type" validate:"required,eq=FeatureCollection"`
|
||||
Features []Feature `json:"features" validate:"required,dive"`
|
||||
Type string `json:"type" validate:"required,eq=FeatureCollection"`
|
||||
Features []*Feature `json:"features" validate:"required,dive"`
|
||||
}
|
||||
|
||||
type Feature struct {
|
||||
Type string `json:"type" validate:"required,eq=Feature"`
|
||||
Properties FeatureProperties `json:"properties" validate:"required"`
|
||||
Geometry json.RawMessage `json:"geometry" validate:"required"`
|
||||
Type string `json:"type" validate:"required,eq=Feature"`
|
||||
Properties *FeatureProperties `json:"properties" validate:"required"`
|
||||
Geometry json.RawMessage `json:"geometry" validate:"required"`
|
||||
}
|
||||
|
||||
type FeatureProperties struct {
|
||||
ID any `json:"id" validate:"required"`
|
||||
Type string `json:"type,omitempty"`
|
||||
TimeStart *float64 `json:"time_start,omitempty"`
|
||||
TimeEnd *float64 `json:"time_end,omitempty"`
|
||||
Binding []string `json:"binding,omitempty"`
|
||||
EntityID string `json:"entity_id,omitempty"`
|
||||
EntityIDs []string `json:"entity_ids,omitempty"`
|
||||
EntityName string `json:"entity_name,omitempty"`
|
||||
EntityNames []string `json:"entity_names,omitempty"`
|
||||
EntityTypeID string `json:"entity_type_id,omitempty"`
|
||||
ID any `json:"id" validate:"required"`
|
||||
Type string `json:"type,omitempty"`
|
||||
GeometryPreset string `json:"geometry_preset,omitempty"`
|
||||
TimeStart *float64 `json:"time_start,omitempty"`
|
||||
TimeEnd *float64 `json:"time_end,omitempty"`
|
||||
Binding []string `json:"binding,omitempty"`
|
||||
EntityID string `json:"entity_id,omitempty" validate:"omitempty,uuidv7"`
|
||||
EntityIDs []string `json:"entity_ids,omitempty" validate:"omitempty,dive,uuidv7"`
|
||||
EntityName string `json:"entity_name,omitempty"`
|
||||
EntityNames []string `json:"entity_names,omitempty"`
|
||||
EntityTypeID string `json:"entity_type_id,omitempty" validate:"omitempty,uuidv7"`
|
||||
}
|
||||
|
||||
type EntitySnapshot struct {
|
||||
ID string `json:"id" validate:"required"`
|
||||
Source string `json:"source,omitempty" validate:"omitempty,oneof=inline ref"`
|
||||
Ref *Ref `json:"ref,omitempty" validate:"omitempty"`
|
||||
Operation string `json:"operation,omitempty" validate:"omitempty,oneof=create update delete reference"`
|
||||
Name string `json:"name,omitempty"`
|
||||
Slug string `json:"slug,omitempty"`
|
||||
Description string `json:"description,omitempty"`
|
||||
TypeID string `json:"type_id,omitempty"`
|
||||
Status *int `json:"status,omitempty" validate:"omitempty,oneof=0 1"`
|
||||
IsDeleted *int `json:"is_deleted,omitempty" validate:"omitempty,oneof=0 1"`
|
||||
BaseUpdatedAt string `json:"base_updated_at,omitempty"`
|
||||
BaseHash string `json:"base_hash,omitempty"`
|
||||
ID string `json:"id" validate:"required,uuidv7"`
|
||||
Source string `json:"source,omitempty" validate:"omitempty,oneof=inline ref"`
|
||||
Operation string `json:"operation,omitempty" validate:"omitempty,oneof=create update delete reference"`
|
||||
Name string `json:"name,omitempty"`
|
||||
Slug *string `json:"slug,omitempty"`
|
||||
Description string `json:"description,omitempty"`
|
||||
TypeID string `json:"type_id,omitempty"`
|
||||
Status *int `json:"status,omitempty" validate:"omitempty,oneof=0 1"`
|
||||
BaseUpdatedAt string `json:"base_updated_at,omitempty"`
|
||||
BaseHash string `json:"base_hash,omitempty"`
|
||||
}
|
||||
|
||||
type GeometrySnapshot struct {
|
||||
ID string `json:"id" validate:"required"`
|
||||
ID string `json:"id" validate:"required,uuidv7"`
|
||||
Source string `json:"source,omitempty" validate:"omitempty,oneof=inline ref"`
|
||||
Ref *Ref `json:"ref,omitempty" validate:"omitempty"`
|
||||
Operation string `json:"operation,omitempty" validate:"omitempty,oneof=create update delete reference"`
|
||||
Type string `json:"type,omitempty"`
|
||||
Type string `json:"type" validate:"required"`
|
||||
DrawGeometry json.RawMessage `json:"draw_geometry,omitempty"`
|
||||
Binding []string `json:"binding,omitempty"`
|
||||
TimeStart *float64 `json:"time_start,omitempty"`
|
||||
TimeEnd *float64 `json:"time_end,omitempty"`
|
||||
BBox *BBox `json:"bbox,omitempty" validate:"omitempty"`
|
||||
IsDeleted *int `json:"is_deleted,omitempty" validate:"omitempty,oneof=0 1"`
|
||||
BaseUpdatedAt string `json:"base_updated_at,omitempty"`
|
||||
BaseHash string `json:"base_hash,omitempty"`
|
||||
}
|
||||
@@ -81,31 +71,26 @@ type BBox struct {
|
||||
MaxLat float64 `json:"max_lat" validate:"required"`
|
||||
}
|
||||
|
||||
type LinkScopeSnapshot struct {
|
||||
GeometryID string `json:"geometry_id" validate:"required"`
|
||||
Operation string `json:"operation" validate:"required,eq=reference"` // Theo doc chỉ có "reference"
|
||||
EntityIDs []string `json:"entity_ids" validate:"required,min=1"` // Đã link thì phải có ít nhất 1 entity
|
||||
BaseLinksHash string `json:"base_links_hash,omitempty"`
|
||||
type GeometryEntitySnapshot struct {
|
||||
GeometryID string `json:"geometry_id" validate:"required,uuidv7"`
|
||||
EntityID string `json:"entity_id" validate:"required,uuidv7"`
|
||||
BaseLinksHash string `json:"base_links_hash,omitempty"`
|
||||
}
|
||||
|
||||
type WikiSnapshot struct {
|
||||
ID string `json:"id" validate:"required"`
|
||||
ID string `json:"id" validate:"required,uuidv7"`
|
||||
Source string `json:"source,omitempty" validate:"omitempty,oneof=inline ref"`
|
||||
Ref *Ref `json:"ref,omitempty" validate:"omitempty"`
|
||||
Operation string `json:"operation,omitempty" validate:"omitempty,oneof=create update delete reference"`
|
||||
Title string `json:"title" validate:"required"`
|
||||
Doc json.RawMessage `json:"doc,omitempty"`
|
||||
UpdatedAt string `json:"updated_at,omitempty"`
|
||||
IsDeleted *int `json:"is_deleted,omitempty" validate:"omitempty,oneof=0 1"`
|
||||
}
|
||||
|
||||
type EntityWikiLinkSnapshot struct {
|
||||
EntityID string `json:"entity_id" validate:"required"`
|
||||
WikiID string `json:"wiki_id" validate:"required"`
|
||||
EntityID string `json:"entity_id" validate:"required,uuidv7"`
|
||||
WikiID string `json:"wiki_id" validate:"required,uuidv7"`
|
||||
Operation string `json:"operation,omitempty" validate:"omitempty,oneof=reference delete"`
|
||||
IsDeleted *int `json:"is_deleted,omitempty" validate:"omitempty,oneof=0 1"`
|
||||
}
|
||||
|
||||
type Ref struct {
|
||||
ID string `json:"id" validate:"required"`
|
||||
}
|
||||
// Legacy / Compatibility
|
||||
IsDeleted *int `json:"is_deleted,omitempty" validate:"omitempty,oneof=0 1"`
|
||||
}
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
package request
|
||||
|
||||
type SearchWikiDto struct {
|
||||
Cursor string `json:"cursor" query:"cursor" validate:"omitempty,uuid"`
|
||||
Limit int `json:"limit" query:"limit" validate:"omitempty,min=1,max=100"`
|
||||
Title string `json:"title" query:"title" validate:"omitempty,max=1000"`
|
||||
EntityID string `json:"entity_id" query:"entity_id" validate:"omitempty,uuid"`
|
||||
Cursor string `json:"cursor" query:"cursor" validate:"omitempty,uuid"`
|
||||
ProjectID *string `json:"project_id" query:"project_id" validate:"omitempty,uuid"`
|
||||
Limit int `json:"limit" query:"limit" validate:"omitempty,min=1,max=100"`
|
||||
Title string `json:"title" query:"title" validate:"omitempty,max=1000"`
|
||||
EntityID string `json:"entity_id" query:"entity_id" validate:"omitempty,uuid"`
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user