package request import ( "go-humas-be/app/database/entity" "go-humas-be/utils/paginator" "time" ) type MasterMenusGeneric interface { ToEntity() } type MasterMenusQueryRequest struct { Name string `json:"name" validate:"required"` Description string `json:"description" validate:"required"` ModuleId int `json:"module_id" validate:"required"` ParentMenuId int `json:"parent_menu_id" validate:"required"` Icon string `json:"icon" validate:"required"` Position int `json:"position" validate:"required"` StatusId int `json:"status_id" validate:"required"` IsActive bool `json:"is_active" validate:"required"` Pagination *paginator.Pagination `json:"pagination"` } type MasterMenusCreateRequest struct { Name string `json:"name" validate:"required"` Description string `json:"description" validate:"required"` ModuleId int `json:"module_id" validate:"required"` ParentMenuId int `json:"parent_menu_id" validate:"required"` Icon string `json:"icon" validate:"required"` Position int `json:"position" validate:"required"` StatusId int `json:"status_id" validate:"required"` IsActive bool `json:"is_active" validate:"required"` } func (req MasterMenusCreateRequest) ToEntity() *entity.MasterMenus { return &entity.MasterMenus{ Name: req.Name, Description: req.Description, ModuleId: req.ModuleId, ParentMenuId: req.ParentMenuId, Icon: req.Icon, Position: req.Position, StatusId: req.StatusId, IsActive: req.IsActive, } } type MasterMenusUpdateRequest struct { ID uint `json:"id" validate:"required"` Name string `json:"name" validate:"required"` Description string `json:"description" validate:"required"` ModuleId int `json:"module_id" validate:"required"` ParentMenuId int `json:"parent_menu_id" validate:"required"` Icon string `json:"icon" validate:"required"` Position int `json:"position" validate:"required"` StatusId int `json:"status_id" validate:"required"` IsActive bool `json:"is_active" validate:"required"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` } func (req MasterMenusUpdateRequest) ToEntity() *entity.MasterMenus { return &entity.MasterMenus{ ID: req.ID, Name: req.Name, Description: req.Description, ModuleId: req.ModuleId, ParentMenuId: req.ParentMenuId, Icon: req.Icon, Position: req.Position, StatusId: req.StatusId, IsActive: req.IsActive, CreatedAt: req.CreatedAt, UpdatedAt: req.UpdatedAt, } }