init
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
package domain
|
||||
|
||||
import "fmt"
|
||||
|
||||
/*
|
||||
预警报文(ALN)通常包括以下内容:
|
||||
|
||||
编组 3:电报类别、编号和参考数据
|
||||
编组 7:航空器识别标志和 SSR 模式及编码
|
||||
编组 8:飞行规则和类型
|
||||
编组 13:起飞机场和时间
|
||||
编组 16:目的地机场和估计总耗时,目的地备降机场
|
||||
编组 18:其他信息(如需要)
|
||||
*/
|
||||
|
||||
/*
|
||||
MessageType (电报类别): Indicates the type of telegram (e.g., "ALN").
|
||||
AircraftID (航空器识别标志): Unique identifier of the aircraft.
|
||||
SSRModeAndCode (SSR 模式及编码): SSR (Secondary Surveillance Radar) mode and code.
|
||||
FlightRulesAndType (飞行规则和类型): Flight rules and type (e.g., IFR).
|
||||
DepartureAirport (起飞机场): ICAO code of the departure airport.
|
||||
DepartureTime (起飞时间): Departure time in UTC.
|
||||
ArrivalAirport (到达机场): ICAO code of the arrival airport.
|
||||
ArrivalTime (到达时间): Estimated arrival time in UTC.
|
||||
OtherInfo (其他信息): Optional field for any additional relevant information.
|
||||
|
||||
*/
|
||||
/*
|
||||
(ALN-CCA1234-IS
|
||||
-B6513
|
||||
-A1234
|
||||
-IFR
|
||||
-ZBTJ1200
|
||||
-ZGGG1335
|
||||
-ESTIMATED TIME EN ROUTE 01:35
|
||||
-Additional information)
|
||||
|
||||
*/
|
||||
|
||||
// ALN 电报体中的预警报文结构
|
||||
type ALN struct {
|
||||
Category string `json:"category"` // 电报类别
|
||||
AircraftID string `json:"aircraft_id"` // 航空器识别标志
|
||||
SSRModeAndCode string `json:"ssr_mode_and_code"` // SSR 模式及编码
|
||||
FlightRulesAndType string `json:"flight_rules_and_type"` // 飞行规则和类型
|
||||
DepartureAirport string `json:"departure_airport"` // 起飞机场
|
||||
DepartureTime string `json:"departure_time"` // 起飞时间
|
||||
ArrivalAirport string `json:"arrival_airport"` // 到达机场
|
||||
ArrivalTime string `json:"arrival_time"` // 到达时间
|
||||
OtherInfo string `json:"other_info,omitempty"` // 其他信息 (optional)
|
||||
}
|
||||
|
||||
// Validate validates the ALN struct fields
|
||||
func (a *ALN) Validate() error {
|
||||
if a.Category == "" {
|
||||
return fmt.Errorf("telegram category is required")
|
||||
}
|
||||
if a.AircraftID == "" {
|
||||
return fmt.Errorf("aircraft id is required")
|
||||
}
|
||||
if a.SSRModeAndCode == "" {
|
||||
return fmt.Errorf("ssr mode and code is required")
|
||||
}
|
||||
if a.FlightRulesAndType == "" {
|
||||
return fmt.Errorf("flight rules and type is required")
|
||||
}
|
||||
if a.DepartureAirport == "" {
|
||||
return fmt.Errorf("departure airport is required")
|
||||
}
|
||||
if a.DepartureTime == "" {
|
||||
return fmt.Errorf("departure time is required")
|
||||
}
|
||||
if a.ArrivalAirport == "" {
|
||||
return fmt.Errorf("arrival airport is required")
|
||||
}
|
||||
if a.ArrivalTime == "" {
|
||||
return fmt.Errorf("arrival time is required")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user