package shared

// Helicopter nested value objects reused as building blocks by helicopter
// response DTOs (and available to any other module that embeds helicopter
// summaries).

type HelicopterLastDailyInspection struct {
	InspectionID             string                             `json:"inspection_id,omitempty" example:"019d6772-471c-7b70-b42a-d94020ef61e4"`
	Status                   string                             `json:"status" example:"inspected_cleared"`
	Inspector                HelicopterLastDailyInspector       `json:"inspector"`
	Base                     HelicopterLastDailyBase            `json:"base"`
	InspectedAt              string                             `json:"inspected_at,omitempty" example:"2026-05-25T07:47:00Z"`
	UTCTime                  string                             `json:"utc_time,omitempty" example:"07:47"`
	InspectionFilesChecklist HelicopterInspectionFilesChecklist `json:"inspection_files_checklist"`
}

type HelicopterLastDailyInspector struct {
	ID        string `json:"id,omitempty" example:"019d61db-53c6-7280-87ec-e65f205c6d3b"`
	Name      string `json:"name,omitempty" example:"Teodora Lesmana"`
	LicenseNo string `json:"license_no,omitempty" example:"4521"`
}

type HelicopterLastDailyBase struct {
	ID               string `json:"id,omitempty" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"`
	BaseAbbreviation string `json:"base_abbreviation,omitempty" example:"G1"`
	BaseName         string `json:"base_name,omitempty" example:"Gallus 1 - Zurs Lech"`
	Type             string `json:"type,omitempty" example:"hems"`
}

type HelicopterInspectionFilesChecklist struct {
	Completed int `json:"completed" example:"47"`
	Total     int `json:"total" example:"47"`
}

type HelicopterFoto struct {
	UUID                 string `json:"uuid" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"`
	DownloadURL          string `json:"download_url" example:"https://storage.example.com/helicopter/foto.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=900&X-Amz-Signature=abc123"`
	ThumbnailDownloadURL string `json:"thumbnail_download_url,omitempty" example:"https://storage.example.com/helicopter/foto.thumb.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=900&X-Amz-Signature=abc123"`
	OriginalSizeBytes    *int64 `json:"original_size_bytes,omitempty" example:"1024000"`
}

type HelicopterAuditUser struct {
	ID   string `json:"id" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"`
	Name string `json:"name" example:"John Doe"`
}
