package airrescuechecklist import ( "time" "gorm.io/gorm" "wucher/internal/shared/pkg/uuidv7" ) type AirRescuerChecklist struct { ID []byte `gorm:"column:id;type:binary(16);primaryKey"` HEMSBaseID []byte `gorm:"column:hems_base_id;type:binary(16);not null"` ScopeCode string `gorm:"column:scope_code;type:varchar(20);not null"` Title string `gorm:"column:title;type:varchar(150);not null"` Position int `gorm:"column:position;not null;default:1"` CreatedAt time.Time `gorm:"column:created_at;autoCreateTime"` CreatedBy []byte `gorm:"column:created_by;type:binary(16)"` UpdatedAt time.Time `gorm:"column:updated_at;autoUpdateTime"` UpdatedBy []byte `gorm:"column:updated_by;type:binary(16)"` DeletedAt *time.Time `gorm:"column:deleted_at"` DeletedBy []byte `gorm:"column:deleted_by;type:binary(16)"` } func (AirRescuerChecklist) TableName() string { return "air_rescuer_checklists" } func (h *AirRescuerChecklist) BeforeCreate(tx *gorm.DB) error { if len(h.ID) == 0 { h.ID = uuidv7.MustBytes() } return nil } type AirRescuerChecklistItem struct { ID []byte `gorm:"column:id;type:binary(16);primaryKey"` ChecklistID []byte `gorm:"column:checklist_id;type:binary(16);not null"` Name string `gorm:"column:name;type:varchar(255);not null"` Position int `gorm:"column:position;not null;default:1"` CreatedAt time.Time `gorm:"column:created_at;autoCreateTime"` CreatedBy []byte `gorm:"column:created_by;type:binary(16)"` UpdatedAt time.Time `gorm:"column:updated_at;autoUpdateTime"` UpdatedBy []byte `gorm:"column:updated_by;type:binary(16)"` DeletedAt *time.Time `gorm:"column:deleted_at"` DeletedBy []byte `gorm:"column:deleted_by;type:binary(16)"` } func (AirRescuerChecklistItem) TableName() string { return "air_rescuer_checklist_items" } func (h *AirRescuerChecklistItem) BeforeCreate(tx *gorm.DB) error { if len(h.ID) == 0 { h.ID = uuidv7.MustBytes() } return nil } type HEMSBaseView struct { ID []byte BaseName string BaseAbbreviation string BaseCategory string Position int } type ChecklistHeaderView struct { ID []byte HEMSBaseID []byte BaseName string BaseAbbreviation string BaseCategory string ScopeCode string Title string Position int CreatedAt time.Time CreatedBy []byte UpdatedAt time.Time } type ChecklistItemView struct { ID []byte ChecklistID []byte Name string Position int CreatedAt time.Time CreatedBy []byte UpdatedAt time.Time } type ChecklistHeaderFilter struct { HEMSBaseID []byte BaseName string BaseAbbreviation string ScopeCode string CategoryType string } type HEMSBaseFilter struct { HEMSBaseID []byte BaseName string BaseAbbreviation string CategoryType string } type ChecklistCreateInput struct { Checklist AirRescuerChecklist Items []AirRescuerChecklistItem } type ChecklistItemReorderInput struct { ID []byte Position int }