package request

type FlightCreateAttributes struct {
	Date         string  `json:"date" validate:"required" example:"2026-04-14"`
	DutyRosterID *string `json:"duty_roster_id,omitempty" example:"019d6772-471c-7b70-b42a-d94020ef61e4"`
	ReserveAcID  *string `json:"reserve_ac_id,omitempty" example:"019d6773-ccca-71dd-b9c7-8e6f531deb90"`
}

type FlightCreateData struct {
	Type       string                 `json:"type" validate:"required,oneof=flight_create flight" example:"flight_create"`
	Attributes FlightCreateAttributes `json:"attributes" validate:"required"`
}

type FlightCreateRequest struct {
	Data FlightCreateData `json:"data" validate:"required"`
}

type FlightUpdateAttributes struct {
	Date         *string `json:"date,omitempty" example:"2026-04-14"`
	DutyRosterID *string `json:"duty_roster_id,omitempty" example:"019d6772-471c-7b70-b42a-d94020ef61e4"`
	ReserveAcID  *string `json:"reserve_ac_id,omitempty" example:"019d6773-ccca-71dd-b9c7-8e6f531deb90"`
}

type FlightUpdateData struct {
	Type       string                 `json:"type" validate:"required,oneof=flight_update flight" example:"flight_update"`
	ID         string                 `json:"id" example:"019d6774-98e8-7fba-9ef4-3795c0da8a13"`
	Attributes FlightUpdateAttributes `json:"attributes" validate:"required"`
}

type FlightUpdateRequest struct {
	Data FlightUpdateData `json:"data" validate:"required"`
}
