2024-07-19 20:02:18 +08:00
|
|
|
package domain
|
|
|
|
|
|
|
|
|
|
import "fmt"
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
延误报文(DLA)通常包括以下内容:
|
|
|
|
|
|
|
|
|
|
编组 3:电报类别、编号和参考数据
|
|
|
|
|
编组 7:航空器识别标志和 SSR 模式及编码
|
|
|
|
|
编组 13:起飞机场和新的起飞时间
|
|
|
|
|
编组 16:目的地机场和估计总耗时
|
|
|
|
|
编组 18:其他信息(如需要)
|
|
|
|
|
*/
|
|
|
|
|
/*
|
|
|
|
|
MessageType (电报类别):
|
|
|
|
|
|
|
|
|
|
Field: MessageType
|
|
|
|
|
Description: Indicates the type of telegram (e.g., "DLA").
|
|
|
|
|
AircraftID (航空器识别标志):
|
|
|
|
|
|
|
|
|
|
Field: AircraftID
|
|
|
|
|
Description: Unique identifier of the aircraft.
|
|
|
|
|
SSRModeAndCode (SSR 模式及编码):
|
|
|
|
|
|
|
|
|
|
Field: SSRModeAndCode
|
|
|
|
|
Description: SSR (Secondary Surveillance Radar) mode and code.
|
|
|
|
|
DepartureAirport (起飞机场):
|
|
|
|
|
|
|
|
|
|
Field: DepartureAirport
|
|
|
|
|
Description: ICAO code of the departure airport.
|
|
|
|
|
NewDepartureTime (新的起飞时间):
|
|
|
|
|
|
|
|
|
|
Field: NewDepartureTime
|
|
|
|
|
Description: New departure time in UTC.
|
|
|
|
|
ArrivalAirport (到达机场):
|
|
|
|
|
|
|
|
|
|
Field: ArrivalAirport
|
|
|
|
|
Description: ICAO code of the arrival airport.
|
|
|
|
|
EstimatedElapsedTime (估计总耗时):
|
|
|
|
|
|
|
|
|
|
Field: EstimatedElapsedTime
|
|
|
|
|
Description: Estimated total elapsed time.
|
|
|
|
|
OtherInfo (其他信息):
|
|
|
|
|
|
|
|
|
|
Field: OtherInfo
|
|
|
|
|
Description: Optional field for any additional relevant information.
|
|
|
|
|
*/
|
|
|
|
|
/*
|
|
|
|
|
(DLA-CCA7890-IS
|
|
|
|
|
-B6513
|
|
|
|
|
-A1234
|
|
|
|
|
-ZBTJ1500
|
|
|
|
|
-ZGGG0135
|
|
|
|
|
-Weather delay)
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
// DLA 电报体中的延误报文结构
|
|
|
|
|
type DLA struct {
|
2024-07-24 17:38:39 +08:00
|
|
|
Category string `json:"category"` // 电报类别
|
|
|
|
|
AircraftID string `json:"aircraft_id"` // 航空器识别标志
|
|
|
|
|
SSRModeAndCode string `json:"ssr_mode_and_code,omitempty"` // SSR 模式及编码
|
|
|
|
|
DepartureAirport string `json:"departure_airport"` // 起飞机场
|
|
|
|
|
NewDepartureTime string `json:"new_departure_time,omitempty"` // 新的起飞时间
|
|
|
|
|
ArrivalAirport string `json:"arrival_airport"` // 到达机场
|
|
|
|
|
ArrivalTime string `json:"estimated_elapsed_time,omitempty"` // 估计总耗时
|
|
|
|
|
OtherInfo string `json:"other_info,omitempty"` // 其他信息 (optional)
|
2024-07-19 20:02:18 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Validate validates the DLA struct fields
|
|
|
|
|
func (d *DLA) Validate() error {
|
|
|
|
|
if d.Category == "" {
|
|
|
|
|
return fmt.Errorf("telegram category is required")
|
|
|
|
|
}
|
|
|
|
|
if d.AircraftID == "" {
|
|
|
|
|
return fmt.Errorf("aircraft id is required")
|
|
|
|
|
}
|
|
|
|
|
if d.DepartureAirport == "" {
|
|
|
|
|
return fmt.Errorf("departure airport is required")
|
|
|
|
|
}
|
|
|
|
|
if d.ArrivalAirport == "" {
|
|
|
|
|
return fmt.Errorf("arrival airport is required")
|
|
|
|
|
}
|
|
|
|
|
return nil
|
|
|
|
|
}
|