package dto

type DULCreateAttributes struct {
	Name               string   `json:"name" validate:"required,max=128"`
	Date               string   `json:"date" validate:"required" example:"2026-05-25"`
	Info               *string  `json:"info,omitempty"`
	BaseID             string   `json:"base_id" validate:"required" example:"019e3ec1-94f6-7b6b-9cc5-1b5d05f46d74"`
	FileUUID           []string `json:"file_uuid,omitempty"`
	ImageAttachmentIDs []string `json:"image_attachment_ids,omitempty" swaggerignore:"true"`
}

type DULCreateData struct {
	Type       string              `json:"type" validate:"required,oneof=dul_create dul"`
	Attributes DULCreateAttributes `json:"attributes" validate:"required"`
}

type DULCreateRequest struct {
	Data DULCreateData `json:"data" validate:"required"`
}

type DULUpdateAttributes struct {
	Name               *string  `json:"name,omitempty"`
	Date               *string  `json:"date,omitempty" example:"2026-05-25"`
	Info               *string  `json:"info,omitempty"`
	BaseID             *string  `json:"base_id,omitempty"`
	FileUUID           []string `json:"file_uuid,omitempty"`
	ImageAttachmentIDs []string `json:"image_attachment_ids,omitempty" swaggerignore:"true"`
}

type DULUpdateData struct {
	Type       string              `json:"type" validate:"required,oneof=dul_update dul"`
	ID         string              `json:"id" swaggerignore:"true"`
	Attributes DULUpdateAttributes `json:"attributes" validate:"required"`
}

type DULUpdateRequest struct {
	Data DULUpdateData `json:"data" validate:"required"`
}
