package shared

type FileManagerFolderAttributes struct {
	ParentID       string `json:"parent_id,omitempty" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"`
	Name           string `json:"name" example:"operations"`
	NameNormalized string `json:"name_normalized,omitempty" example:"operations"`
	Depth          int    `json:"depth" example:"1"`
	PathCache      string `json:"path_cache,omitempty" example:"/root/operations"`
	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"`
	PurgeAt        string `json:"purge_at,omitempty" example:"2026-04-12T03:04:05Z"`
}

type FileManagerFolderLocationAttributes struct {
	ParentID string `json:"parent_id" example:"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d"`
}

type FileManagerFolderAuditAttributes struct {
	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"`
}

type FileManagerFolderDetailAttributes struct {
	Name           string                               `json:"name" example:"operations"`
	NameNormalized string                               `json:"name_normalized,omitempty" example:"operations"`
	Depth          *int                                 `json:"depth,omitempty" example:"1"`
	PathCache      string                               `json:"path_cache,omitempty" example:"/root/operations"`
	Location       *FileManagerFolderLocationAttributes `json:"location,omitempty"`
	Audit          FileManagerFolderAuditAttributes     `json:"audit"`
}
