feat: reimplement geometry module with database schema, repository, service layer, and API documentation
All checks were successful
Build and Release / release (push) Successful in 1m36s

This commit is contained in:
2026-05-24 17:31:32 +07:00
parent 8d3b02f312
commit 3cdecdccec
16 changed files with 130 additions and 101 deletions

View File

@@ -9,6 +9,7 @@ type SearchGeometryDto struct {
TimeRange *int32 `json:"time_range" query:"time_range" 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"`
HasBound *bool `json:"has_bound" query:"has_bound" validate:"omitempty"`
}
type SearchGeometriesByEntityNameDto struct {

View File

@@ -36,7 +36,7 @@ type FeatureProperties struct {
GeometryPreset string `json:"geometry_preset,omitempty"`
TimeStart *float64 `json:"time_start,omitempty"`
TimeEnd *float64 `json:"time_end,omitempty"`
Binding []string `json:"binding,omitempty"`
BoundWith *string `json:"bound_with,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"`
@@ -64,7 +64,7 @@ type GeometrySnapshot struct {
Operation string `json:"operation,omitempty" validate:"omitempty,oneof=create update delete reference"`
Type string `json:"type,omitempty" validate:"omitempty"`
DrawGeometry json.RawMessage `json:"draw_geometry,omitempty"`
Binding []string `json:"binding,omitempty"`
BoundWith *string `json:"bound_with,omitempty"`
TimeStart *float64 `json:"time_start,omitempty"`
TimeEnd *float64 `json:"time_end,omitempty"`
BBox *BBox `json:"bbox,omitempty" validate:"omitempty"`

View File

@@ -16,7 +16,7 @@ type GeometryResponse struct {
ID string `json:"id"`
GeoType int16 `json:"geo_type"`
DrawGeometry json.RawMessage `json:"draw_geometry"`
Binding json.RawMessage `json:"binding,omitempty"`
BoundWith *string `json:"bound_with,omitempty"`
TimeStart int32 `json:"time_start,omitempty"`
TimeEnd int32 `json:"time_end,omitempty"`
Bbox *Bbox `json:"bbox,omitempty"`

View File

@@ -2,24 +2,23 @@ package response
import "encoding/json"
type SearchGeometriesByEntityNameResponse struct {
Items []*EntityGeometriesSearchItem `json:"items"`
NextCursor string `json:"next_cursor,omitempty"`
NextCursor string `json:"next_cursor,omitempty"`
}
type EntityGeometriesSearchItem struct {
EntityID string `json:"entity_id"`
Name string `json:"name"`
Description string `json:"description"`
EntityID string `json:"entity_id"`
Name string `json:"name"`
Description string `json:"description"`
Geometries []*EntityGeometrySearchGeo `json:"geometries"`
}
type EntityGeometrySearchGeo struct {
ID string `json:"id"`
GeoType int16 `json:"geo_type"`
ID string `json:"id"`
GeoType int16 `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"`
BoundWith *string `json:"bound_with,omitempty"`
TimeStart *int32 `json:"time_start,omitempty"`
TimeEnd *int32 `json:"time_end,omitempty"`
}