初始化第一版
This commit is contained in:
commit
8a6c31c14d
83 files changed
+14302
No files matched your search
@@ -0,0 +1,2 @@
|
||||
// Package domain defines stable forest-fire-safety concepts and business rules.
|
||||
package domain
|
||||
@@ -0,0 +1,112 @@
|
||||
package domain
|
||||
|
||||
// Coordinate is a WGS84 longitude/latitude pair.
|
||||
type Coordinate struct {
|
||||
Longitude float64 `json:"longitude"`
|
||||
Latitude float64 `json:"latitude"`
|
||||
}
|
||||
|
||||
// SpatialScope is a trusted, server-derived data scope.
|
||||
type SpatialScope struct {
|
||||
// AllTowns authorizes every town in the MCP's fixed query tables, including records with no town value.
|
||||
AllTowns bool
|
||||
// AllowedTowns is used only when AllTowns is false.
|
||||
AllowedTowns []string
|
||||
}
|
||||
|
||||
// NearbyQuery contains a bounded spatial search requested by a service use case.
|
||||
type NearbyQuery struct {
|
||||
Point Coordinate
|
||||
RadiusMeters float64
|
||||
Limit int
|
||||
Scope SpatialScope
|
||||
}
|
||||
|
||||
// PlaceSearchQuery searches existing fire-safety records for user-confirmable place candidates.
|
||||
type PlaceSearchQuery struct {
|
||||
PlaceName string
|
||||
Limit int
|
||||
Scope SpatialScope
|
||||
}
|
||||
|
||||
// PlaceCandidate is a recorded or representative location that still requires user confirmation.
|
||||
type PlaceCandidate struct {
|
||||
SourceRecordID string `json:"source_record_id"`
|
||||
PlaceType string `json:"place_type"`
|
||||
Name string `json:"name,omitempty"`
|
||||
Town string `json:"town,omitempty"`
|
||||
Village string `json:"village,omitempty"`
|
||||
MatchedField string `json:"matched_field"`
|
||||
MatchedText string `json:"matched_text"`
|
||||
MatchKind string `json:"match_kind"`
|
||||
Location Coordinate `json:"location"`
|
||||
LocationKind string `json:"location_kind"`
|
||||
}
|
||||
|
||||
// IncidentContext is a fire-grid area covering the supplied incident point.
|
||||
type IncidentContext struct {
|
||||
GridID string `json:"grid_id"`
|
||||
Town string `json:"town,omitempty"`
|
||||
AreaLabel string `json:"area_label,omitempty"`
|
||||
}
|
||||
|
||||
// WaterSource is a spatially nearby water candidate from an existing source table.
|
||||
type WaterSource struct {
|
||||
SourceRecordID string `json:"source_record_id"`
|
||||
Category string `json:"category"`
|
||||
Name string `json:"name,omitempty"`
|
||||
Town string `json:"town,omitempty"`
|
||||
Village string `json:"village,omitempty"`
|
||||
Location Coordinate `json:"location"`
|
||||
DistanceMeters float64 `json:"distance_meters"`
|
||||
CapacityCubicMeters *float64 `json:"capacity_cubic_meters,omitempty"`
|
||||
ResourceType string `json:"resource_type,omitempty"`
|
||||
ReportedStatus string `json:"reported_status,omitempty"`
|
||||
SourceTimestampRaw *int64 `json:"source_timestamp_raw,omitempty"`
|
||||
}
|
||||
|
||||
// CommandPostCandidate is a nearby existing facility, not a confirmed command post.
|
||||
type CommandPostCandidate struct {
|
||||
SourceRecordID string `json:"source_record_id"`
|
||||
FacilityType string `json:"facility_type"`
|
||||
Name string `json:"name,omitempty"`
|
||||
Town string `json:"town,omitempty"`
|
||||
Village string `json:"village,omitempty"`
|
||||
Location Coordinate `json:"location"`
|
||||
DistanceMeters float64 `json:"distance_meters"`
|
||||
ReportedStatus string `json:"reported_status,omitempty"`
|
||||
ManagementUnit string `json:"management_unit,omitempty"`
|
||||
}
|
||||
|
||||
// AccessLine is a nearby fire-access-line candidate and its closest point.
|
||||
type AccessLine struct {
|
||||
SourceRecordID string `json:"source_record_id"`
|
||||
Name string `json:"name,omitempty"`
|
||||
Town string `json:"town,omitempty"`
|
||||
DistanceMeters float64 `json:"distance_meters"`
|
||||
NearestPoint Coordinate `json:"nearest_point"`
|
||||
LengthMeters *float64 `json:"length_meters,omitempty"`
|
||||
SourceUpdatedRaw string `json:"source_updated_raw,omitempty"`
|
||||
}
|
||||
|
||||
// ResponsibleUnit is the non-personal responsibility information stored on a fire grid.
|
||||
type ResponsibleUnit struct {
|
||||
GridID string `json:"grid_id"`
|
||||
Town string `json:"town,omitempty"`
|
||||
AreaLabel string `json:"area_label,omitempty"`
|
||||
FireTeam string `json:"fire_team,omitempty"`
|
||||
LiveLocationAvailable bool `json:"live_location_available"`
|
||||
AssemblySiteAvailable bool `json:"assembly_site_available"`
|
||||
}
|
||||
|
||||
// RiskArea is a cemetery or forest-area enterprise polygon near the supplied point.
|
||||
type RiskArea struct {
|
||||
SourceRecordID string `json:"source_record_id"`
|
||||
RiskType string `json:"risk_type"`
|
||||
Name string `json:"name,omitempty"`
|
||||
Town string `json:"town,omitempty"`
|
||||
Village string `json:"village,omitempty"`
|
||||
Direction string `json:"direction,omitempty"`
|
||||
CoversPoint bool `json:"covers_point"`
|
||||
DistanceMeters float64 `json:"distance_meters"`
|
||||
}
|
||||
Reference in new issue
Block a user