package response

type MasterSettingsAttributes struct {
	CompanyName    string  `json:"company_name" example:"Wucher"`
	Title          string  `json:"title,omitempty" example:"Welcome to Wucher"`
	Subtitle       string  `json:"subtitle,omitempty" example:"Flight operations platform"`
	LogoFileUUID   *string `json:"logo_file_uuid" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"`
	LogoURL        *string `json:"logo_url" example:"https://cdn.example.com/logo.png"`
	LogoThumbURL   *string `json:"logo_thumbnail_url,omitempty" example:"https://cdn.example.com/logo.thumb.png"`
	LogoSizeBytes  *int64  `json:"logo_original_size_bytes,omitempty" example:"1024000"`
	CoverFileUUID  *string `json:"cover_file_uuid" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"`
	CoverURL       *string `json:"cover_url" example:"https://cdn.example.com/cover.png"`
	CoverThumbURL  *string `json:"cover_thumbnail_url,omitempty" example:"https://cdn.example.com/cover.thumb.png"`
	CoverSizeBytes *int64  `json:"cover_original_size_bytes,omitempty" example:"2048000"`
	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 MasterSettingsResource struct {
	Type       string                   `json:"type" example:"master_settings"`
	ID         string                   `json:"id" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"`
	Attributes MasterSettingsAttributes `json:"attributes"`
}

type MasterSettingsResponse struct {
	Data MasterSettingsResource `json:"data"`
}

type MasterSettingsListResponse struct {
	Data []MasterSettingsResource `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 MasterSettingsDataTableResponse struct {
	Data []MasterSettingsResource `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"`
}
