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

108 lines
3.2 KiB
Go
Raw Normal View History

2025-09-28 01:53:09 +00:00
package request
import (
2025-09-30 13:34:56 +00:00
"netidhub-saas-be/app/database/entity"
"netidhub-saas-be/utils/paginator"
2025-09-28 01:53:09 +00:00
"strconv"
"time"
)
type UserLevelsGeneric interface {
ToEntity()
}
type UserLevelsQueryRequest struct {
Name *string `json:"name"`
LevelNumber *int `json:"levelNumber"`
ParentLevelId *int `json:"parentLevelId"`
ProvinceId *int `json:"provinceId"`
Pagination *paginator.Pagination `json:"pagination"`
}
type UserLevelsCreateRequest struct {
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"`
}
func (req UserLevelsCreateRequest) ToEntity() *entity.UserLevels {
return &entity.UserLevels{
Name: req.Name,
AliasName: req.AliasName,
LevelNumber: req.LevelNumber,
ParentLevelId: req.ParentLevelId,
ProvinceId: req.ProvinceId,
IsApprovalActive: req.IsApprovalActive,
Group: req.Group,
IsActive: req.IsActive,
}
}
type UserLevelsUpdateRequest struct {
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"`
}
func (req UserLevelsUpdateRequest) ToEntity() *entity.UserLevels {
return &entity.UserLevels{
Name: req.Name,
AliasName: req.AliasName,
LevelNumber: req.LevelNumber,
ParentLevelId: req.ParentLevelId,
ProvinceId: req.ProvinceId,
IsApprovalActive: req.IsApprovalActive,
Group: req.Group,
UpdatedAt: time.Now(),
}
}
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
}
}
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
}