medol-be/app/module/user_levels/request/user_levels.request.go

108 lines
3.2 KiB
Go
Raw Permalink Normal View History

2024-03-05 19:15:53 +00:00
package request
import (
"strconv"
2024-03-05 19:15:53 +00:00
"time"
2025-07-02 06:03:52 +00:00
"web-medols-be/app/database/entity"
"web-medols-be/utils/paginator"
2024-03-05 19:15:53 +00:00
)
type UserLevelsGeneric interface {
ToEntity()
}
type UserLevelsQueryRequest struct {
Name *string `json:"name"`
LevelNumber *int `json:"levelNumber"`
ParentLevelId *int `json:"parentLevelId"`
ProvinceId *int `json:"provinceId"`
2024-03-05 19:15:53 +00:00
Pagination *paginator.Pagination `json:"pagination"`
}
type UserLevelsCreateRequest struct {
2025-03-03 02:13:00 +00:00
Name string `json:"name" validate:"required"`
AliasName string `json:"aliasName" validate:"required"`
LevelNumber int `json:"levelNumber" validate:"required"`
ParentLevelId *int `json:"parentLevelId"`
ProvinceId *int `json:"provinceId"`
Group *string `json:"group"`
IsApprovalActive *bool `json:"isApprovalActive"`
IsActive *bool `json:"isActive"`
2024-03-05 19:15:53 +00:00
}
func (req UserLevelsCreateRequest) ToEntity() *entity.UserLevels {
return &entity.UserLevels{
2025-03-03 02:13:00 +00:00
Name: req.Name,
AliasName: req.AliasName,
LevelNumber: req.LevelNumber,
ParentLevelId: req.ParentLevelId,
ProvinceId: req.ProvinceId,
IsApprovalActive: req.IsApprovalActive,
Group: req.Group,
IsActive: req.IsActive,
2024-03-05 19:15:53 +00:00
}
}
type UserLevelsUpdateRequest struct {
2025-03-03 02:13:00 +00:00
Name string `json:"name" validate:"required"`
AliasName string `json:"aliasName" validate:"required"`
LevelNumber int `json:"levelNumber" validate:"required"`
ParentLevelId *int `json:"parentLevelId"`
IsApprovalActive *bool `json:"isApprovalActive"`
Group *string `json:"group"`
ProvinceId *int `json:"provinceId"`
2024-03-05 19:15:53 +00:00
}
func (req UserLevelsUpdateRequest) ToEntity() *entity.UserLevels {
return &entity.UserLevels{
2025-03-03 02:13:00 +00:00
Name: req.Name,
AliasName: req.AliasName,
LevelNumber: req.LevelNumber,
ParentLevelId: req.ParentLevelId,
ProvinceId: req.ProvinceId,
IsApprovalActive: req.IsApprovalActive,
Group: req.Group,
UpdatedAt: time.Now(),
}
}
2025-04-14 07:17:41 +00:00
type UserLevelsApprovalRequest struct {
Ids string `json:"ids" validate:"required"`
IsApprovalActive bool `json:"isApprovalActive" validate:"required"`
}
type UserLevelsQueryRequestContext struct {
Name string `json:"name"`
LevelNumber string `json:"levelNumber"`
ParentLevelId string `json:"parentLevelId"`
ProvinceId string `json:"provinceId"`
}
func (req UserLevelsQueryRequestContext) ToParamRequest() UserLevelsQueryRequest {
var request UserLevelsQueryRequest
if name := req.Name; name != "" {
request.Name = &name
}
if levelNumberStr := req.LevelNumber; levelNumberStr != "" {
LevelNumber, err := strconv.Atoi(levelNumberStr)
if err == nil {
request.LevelNumber = &LevelNumber
}
2024-03-05 19:15:53 +00:00
}
if parentLevelIdStr := req.ParentLevelId; parentLevelIdStr != "" {
parentLevelId, err := strconv.Atoi(parentLevelIdStr)
if err == nil {
request.ParentLevelId = &parentLevelId
}
}
if provinceIdStr := req.ProvinceId; provinceIdStr != "" {
provinceId, err := strconv.Atoi(provinceIdStr)
if err == nil {
request.ProvinceId = &provinceId
}
}
return request
2024-03-05 19:15:53 +00:00
}