package dto

type FlightInspectionAttributes struct {
	InspectionDate string `json:"inspection_date,omitempty" example:"2026-04-09"`
	Status         string `json:"status,omitempty" example:"Draft"`
	CreatedAt      string `json:"created_at,omitempty" example:"2026-04-09T05:00:00Z"`
	CreatedBy      string `json:"created_by,omitempty" example:"019d61db-53c6-7280-87ec-e65f205c6d3b"`
	UpdatedAt      string `json:"updated_at,omitempty" example:"2026-04-09T05:00:00Z"`
	UpdatedBy      string `json:"updated_by,omitempty" example:"019d61db-53c6-7280-87ec-e65f205c6d3b"`
}

type FlightInspectionResource struct {
	Type       string                     `json:"type" example:"flight_inspection"`
	ID         string                     `json:"id,omitempty" example:"019d6772-471c-7b70-b42a-d94020ef61e4"`
	Attributes FlightInspectionAttributes `json:"attributes"`
}

type FlightInspectionResponse struct {
	Data FlightInspectionResource `json:"data"`
}

type FlightInspectionListResponse struct {
	Data []FlightInspectionResource `json:"data"`
	Meta struct {
		PageNumber int   `json:"page_number" example:"1"`
		PageSize   int   `json:"page_size" example:"20"`
		Total      int64 `json:"total" example:"1"`
	} `json:"meta"`
}

type FlightInspectionCreateAttributes struct {
	InspectionDate string `json:"inspection_date" validate:"required" example:"2026-04-09"`
}

type FlightInspectionCreateData struct {
	Type       string                           `json:"type" validate:"required,oneof=flight_inspection_create flight_inspection"`
	Attributes FlightInspectionCreateAttributes `json:"attributes" validate:"required"`
}

type FlightInspectionCreateRequest struct {
	Data FlightInspectionCreateData `json:"data" validate:"required"`
}

type FlightInspectionUpdateAttributes struct {
	InspectionDate *string `json:"inspection_date,omitempty" example:"2026-04-09"`
	Status         *string `json:"status,omitempty" example:"InProgress"`
}

type FlightInspectionUpdateData struct {
	Type       string                           `json:"type" validate:"required,oneof=flight_inspection_update flight_inspection"`
	ID         string                           `json:"id" example:"019d6772-471c-7b70-b42a-d94020ef61e4"`
	Attributes FlightInspectionUpdateAttributes `json:"attributes" validate:"required"`
}

type FlightInspectionUpdateRequest struct {
	Data FlightInspectionUpdateData `json:"data" validate:"required"`
}
