113 lines
6.3 KiB
Go
113 lines
6.3 KiB
Go
package response
|
|
|
|
import (
|
|
shareddto "wucher/internal/transport/http/dto/shared"
|
|
)
|
|
|
|
type TakeoverResponseAttributes struct {
|
|
ID string `json:"id,omitempty"`
|
|
FlightID string `json:"flight_id,omitempty"`
|
|
ReserveAcID string `json:"reserve_ac_id,omitempty"`
|
|
FlightInspectionID string `json:"flight_inspection_id,omitempty"`
|
|
ShiftStart string `json:"shift_start,omitempty"`
|
|
ShiftEnd string `json:"shift_end,omitempty"`
|
|
BaseID string `json:"base_id,omitempty"`
|
|
Base *DutyRosterBaseInfo `json:"base,omitempty"`
|
|
DutyDate string `json:"duty_date,omitempty"`
|
|
HelicopterID string `json:"helicopter_id,omitempty"`
|
|
Helicopter *TakeoverHelicopter `json:"helicopter,omitempty"`
|
|
Notes *string `json:"notes,omitempty"`
|
|
CreatedBy string `json:"created_by,omitempty" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"`
|
|
UpdatedBy string `json:"updated_by,omitempty" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"`
|
|
CreatedAt string `json:"created_at,omitempty" example:"2026-03-12T03:04:05Z"`
|
|
UpdatedAt string `json:"updated_at,omitempty" example:"2026-03-12T03:04:05Z"`
|
|
RosterDetail TakeoverDutyRosterDetailsResponse `json:"roster_detail"`
|
|
Inspection shareddto.ReserveAcInspectionSummary `json:"inspection"`
|
|
Files []TakeoverFileResource `json:"files,omitempty"`
|
|
}
|
|
|
|
// TakeoverHelicopter is the selected helicopter shown on a takeover, enriched
|
|
// with its last daily inspection and its maintenance schedule (the "next due"
|
|
// per inspection type) from the helicopter's latest fleet status.
|
|
type TakeoverHelicopter struct {
|
|
ID string `json:"id" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"`
|
|
Designation string `json:"designation" example:"OE-XHZ"`
|
|
Identifier string `json:"identifier" example:"1234"`
|
|
Type string `json:"type" example:"EC-135"`
|
|
LastDailyInspection *shareddto.HelicopterLastDailyInspection `json:"last_daily_inspection"`
|
|
MaintenanceSchedules []shareddto.MaintenanceScheduleAttributes `json:"maintenance_schedules"`
|
|
}
|
|
|
|
type TakeoverDutyRosterAttributes struct {
|
|
Bases DutyRosterBaseInfo `json:"bases"`
|
|
FlightID string `json:"flight_id,omitempty" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"`
|
|
Helicopter DutyRosterHelicopterSummary `json:"helicopter"`
|
|
DutyDate string `json:"duty_date,omitempty" example:"2026-03-16"`
|
|
Detail TakeoverDutyRosterDetailsResponse `json:"roster_detail"`
|
|
CreatedBy string `json:"created_by,omitempty" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"`
|
|
CreatedAt string `json:"created_at,omitempty" example:"2026-03-12T03:04:05Z"`
|
|
UpdatedAt string `json:"updated_at,omitempty" example:"2026-03-12T03:04:05Z"`
|
|
}
|
|
|
|
type TakeoverDutyRosterResource struct {
|
|
Type string `json:"type" example:"duty_roster"`
|
|
ID string `json:"id,omitempty" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"`
|
|
Attributes TakeoverDutyRosterAttributes `json:"attributes"`
|
|
}
|
|
|
|
type TakeoverDutyRosterCrew struct {
|
|
ID string `json:"id,omitempty" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"`
|
|
Name string `json:"name,omitempty" example:"Hunter Wolfgang"`
|
|
Role string `json:"role,omitempty" example:"doctor"`
|
|
MobilePhone string `json:"mobile_phone,omitempty" example:"+43-1234"`
|
|
Email string `json:"email,omitempty" example:"doctor@example.com"`
|
|
}
|
|
|
|
type TakeoverDutyRosterPilotCrew struct {
|
|
ID string `json:"id,omitempty" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"`
|
|
Name string `json:"name,omitempty" example:"Hunter Wolfgang"`
|
|
Role string `json:"role,omitempty" example:"pilot"`
|
|
MobilePhone string `json:"mobile_phone,omitempty" example:"+43-1234"`
|
|
Email string `json:"email,omitempty" example:"pilot@example.com"`
|
|
CrewType string `json:"crew_type,omitempty" example:"main"`
|
|
FlightInstructor *bool `json:"flight_instructor,omitempty"`
|
|
LineChecker *bool `json:"line_checker,omitempty"`
|
|
Supervisor *bool `json:"supervisor,omitempty"`
|
|
Examiner *bool `json:"examiner,omitempty"`
|
|
CoPilot *bool `json:"co_pilot,omitempty"`
|
|
}
|
|
|
|
type TakeoverDutyRosterDetailsResponse struct {
|
|
Pilot []TakeoverDutyRosterPilotCrew `json:"pilot"`
|
|
Doctor []TakeoverDutyRosterCrew `json:"doctor"`
|
|
Rescuer []TakeoverDutyRosterCrew `json:"rescuer"`
|
|
Helper []TakeoverDutyRosterCrew `json:"helper"`
|
|
OtherPerson []TakeoverDutyRosterCrew `json:"other_person"`
|
|
}
|
|
|
|
type TakeoverResource struct {
|
|
Type string `json:"type" example:"takeover"`
|
|
Attributes TakeoverResponseAttributes `json:"attributes"`
|
|
}
|
|
|
|
type TakeoverFileAttributes struct {
|
|
FileAttachmentID string `json:"file_attachment_id" example:"019d7000-aaaa-7bbb-8ccc-222222222222"`
|
|
FileName string `json:"file_name,omitempty" example:"takeover-report.pdf"`
|
|
DownloadURL string `json:"download_url,omitempty" example:"https://s3.localhost.localstack.cloud:4566/wucher-file-dev/files/2026/04/05/takeover-report.pdf?X-Amz-Signature=..."`
|
|
}
|
|
|
|
type TakeoverFileResource struct {
|
|
Type string `json:"type" example:"takeover_file"`
|
|
ID string `json:"id,omitempty" example:"019d7000-aaaa-7bbb-8ccc-111111111111"`
|
|
Attributes TakeoverFileAttributes `json:"attributes"`
|
|
}
|
|
|
|
type TakeoverResponse struct {
|
|
Data TakeoverResource `json:"data"`
|
|
}
|
|
|
|
type TakeoverListResponse struct {
|
|
Data []TakeoverResource `json:"data"`
|
|
Meta map[string]any `json:"meta,omitempty"`
|
|
}
|