Files
fm_be/internal/transport/http/dto/hems_operation_dto.go
2026-07-16 22:16:45 +07:00

96 lines
4.9 KiB
Go

package dto
// JSON:API HEMS Operation DTOs
type HEMSOperationOperationalDataRef struct {
ID string `json:"id,omitempty" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"`
}
type HEMSOperationCategoryRef struct {
ID string `json:"id,omitempty" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"`
Name string `json:"name,omitempty" example:"Firefighting"`
Type string `json:"type,omitempty" example:"first"`
}
type HEMSOperationMissionRef struct {
ID string `json:"id,omitempty" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"`
FlightID string `json:"flight_id,omitempty" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"`
Type string `json:"type,omitempty" example:"HEMS"`
}
type HEMSOperationAttributes struct {
Date string `json:"date" example:"2026-03-12T03:04:05Z"`
OperationalDataID string `json:"operational_data_id,omitempty" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"`
MissionID string `json:"mission_id,omitempty" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"`
HEMSOperationCategoryID string `json:"hems_operation_category_id,omitempty" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"`
OperationalData *HEMSOperationOperationalDataRef `json:"operational_data,omitempty"`
Mission *HEMSOperationMissionRef `json:"mission,omitempty"`
HEMSOperationCategory *HEMSOperationCategoryRef `json:"hems_operation_category,omitempty"`
CreatedAt string `json:"created_at,omitempty" example:"2026-03-12T03:04:05Z"`
CreatedBy string `json:"created_by,omitempty" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"`
UpdatedAt string `json:"updated_at,omitempty" example:"2026-03-12T03:04:05Z"`
UpdatedBy string `json:"updated_by,omitempty" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"`
DeletedAt string `json:"deleted_at,omitempty" example:"2026-03-12T03:04:05Z"`
DeletedBy string `json:"deleted_by,omitempty" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"`
}
type HEMSOperationResource struct {
Type string `json:"type" example:"hems_operation"`
ID string `json:"id" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"`
Attributes HEMSOperationAttributes `json:"attributes"`
}
type HEMSOperationResponse struct {
Data HEMSOperationResource `json:"data"`
}
type HEMSOperationListResponse struct {
Data []HEMSOperationResource `json:"data"`
Meta struct {
PageNumber int `json:"page_number" example:"1"`
PageSize int `json:"page_size" example:"20"`
Total int64 `json:"total" example:"120"`
} `json:"meta"`
}
type HEMSOperationDataTableResponse struct {
Data []HEMSOperationResource `json:"data"`
Meta struct {
Draw int `json:"draw" example:"1"`
RecordsTotal int64 `json:"records_total" example:"120"`
RecordsFiltered int64 `json:"records_filtered" example:"12"`
} `json:"meta"`
}
type HEMSOperationCreateAttributes struct {
Date string `json:"date" validate:"required" example:"2026-03-12T03:04:05Z"`
OperationalDataID *string `json:"operational_data_id,omitempty" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"`
MissionID *string `json:"mission_id,omitempty" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"`
HEMSOperationCategoryID *string `json:"hems_operation_category_id,omitempty" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"`
}
type HEMSOperationCreateData struct {
Type string `json:"type" validate:"required,oneof=hems_operation_create hems_operation" example:"hems_operation_create"`
Attributes HEMSOperationCreateAttributes `json:"attributes" validate:"required"`
}
type HEMSOperationCreateRequest struct {
Data HEMSOperationCreateData `json:"data" validate:"required"`
}
type HEMSOperationUpdateAttributes struct {
Date *string `json:"date,omitempty" example:"2026-03-12T03:04:05Z"`
OperationalDataID *string `json:"operational_data_id,omitempty" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"`
MissionID *string `json:"mission_id,omitempty" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"`
HEMSOperationCategoryID *string `json:"hems_operation_category_id,omitempty" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"`
}
type HEMSOperationUpdateData struct {
Type string `json:"type" validate:"required,oneof=hems_operation_update hems_operation" example:"hems_operation_update"`
Attributes HEMSOperationUpdateAttributes `json:"attributes" validate:"required"`
}
type HEMSOperationUpdateRequest struct {
Data HEMSOperationUpdateData `json:"data" validate:"required"`
}