213 lines
7.2 KiB
Go
213 lines
7.2 KiB
Go
package request
|
|
|
|
import (
|
|
"strconv"
|
|
"time"
|
|
"web-qudo-be/app/database/entity/users"
|
|
"web-qudo-be/utils/paginator"
|
|
)
|
|
|
|
type UsersGeneric interface {
|
|
ToEntity()
|
|
}
|
|
|
|
type UsersQueryRequest struct {
|
|
Username *string `json:"username"`
|
|
Email *string `json:"email"`
|
|
Fullname *string `json:"fullname"`
|
|
PhoneNumber *string `json:"phoneNumber"`
|
|
WorkType *string `json:"workType"`
|
|
GenderType *string `json:"genderType"`
|
|
IdentityType *string `json:"identityType"`
|
|
IdentityGroup *string `json:"identityGroup"`
|
|
IdentityGroupNumber *string `json:"identityGroupNumber"`
|
|
IdentityNumber *string `json:"identityNumber"`
|
|
UserRoleId *int `json:"userRoleId"`
|
|
StatusId *int `json:"statusId"`
|
|
Pagination *paginator.Pagination `json:"pagination"`
|
|
}
|
|
|
|
type UsersCreateRequest struct {
|
|
Username string `json:"username" validate:"required,lowercase"`
|
|
Email string `json:"email" validate:"required,email"`
|
|
Fullname string `json:"fullname" validate:"required"`
|
|
UserLevelId uint `json:"userLevelId" validate:"required"`
|
|
UserRoleId uint `json:"userRoleId" validate:"required"`
|
|
Password string `json:"password" validate:"required"`
|
|
PhoneNumber *string `json:"phoneNumber"`
|
|
Address *string `json:"address"`
|
|
WorkType *string `json:"workType"`
|
|
GenderType *string `json:"genderType"`
|
|
IdentityType *string `json:"identityType"`
|
|
IdentityGroup *string `json:"identityGroup"`
|
|
IdentityGroupNumber *string `json:"identityGroupNumber"`
|
|
IdentityNumber *string `json:"identityNumber"`
|
|
DateOfBirth *string `json:"dateOfBirth"`
|
|
LastEducation *string `json:"lastEducation"`
|
|
}
|
|
|
|
func (req UsersCreateRequest) ToEntity() *users.Users {
|
|
return &users.Users{
|
|
Username: req.Username,
|
|
Email: req.Email,
|
|
Fullname: req.Fullname,
|
|
Address: req.Address,
|
|
PhoneNumber: req.PhoneNumber,
|
|
WorkType: req.WorkType,
|
|
GenderType: req.GenderType,
|
|
IdentityType: req.IdentityType,
|
|
IdentityGroup: req.IdentityGroup,
|
|
IdentityGroupNumber: req.IdentityGroupNumber,
|
|
IdentityNumber: req.IdentityNumber,
|
|
DateOfBirth: req.DateOfBirth,
|
|
LastEducation: req.LastEducation,
|
|
UserRoleId: req.UserRoleId,
|
|
UserLevelId: req.UserLevelId,
|
|
}
|
|
}
|
|
|
|
type UsersUpdateRequest struct {
|
|
Username string `json:"username" validate:"required,lowercase"`
|
|
Email string `json:"email" validate:"required,email"`
|
|
Fullname string `json:"fullname" validate:"required"`
|
|
UserLevelId uint `json:"userLevelId" validate:"required"`
|
|
UserRoleId uint `json:"userRoleId" validate:"required"`
|
|
PhoneNumber *string `json:"phoneNumber"`
|
|
Address *string `json:"address"`
|
|
WorkType *string `json:"workType"`
|
|
GenderType *string `json:"genderType"`
|
|
IdentityType *string `json:"identityType"`
|
|
IdentityGroup *string `json:"identityGroup"`
|
|
IdentityGroupNumber *string `json:"identityGroupNumber"`
|
|
IdentityNumber *string `json:"identityNumber"`
|
|
DateOfBirth *string `json:"dateOfBirth"`
|
|
LastEducation *string `json:"lastEducation"`
|
|
StatusId *int `json:"statusId"`
|
|
}
|
|
|
|
func (req UsersUpdateRequest) ToEntity() *users.Users {
|
|
return &users.Users{
|
|
Username: req.Username,
|
|
Email: req.Email,
|
|
Fullname: req.Fullname,
|
|
Address: req.Address,
|
|
PhoneNumber: req.PhoneNumber,
|
|
WorkType: req.WorkType,
|
|
GenderType: req.GenderType,
|
|
IdentityType: req.IdentityType,
|
|
IdentityGroup: req.IdentityGroup,
|
|
IdentityGroupNumber: req.IdentityGroupNumber,
|
|
IdentityNumber: req.IdentityNumber,
|
|
DateOfBirth: req.DateOfBirth,
|
|
LastEducation: req.LastEducation,
|
|
UserRoleId: req.UserRoleId,
|
|
StatusId: req.StatusId,
|
|
UserLevelId: req.UserLevelId,
|
|
UpdatedAt: time.Now(),
|
|
}
|
|
}
|
|
|
|
type UserLogin struct {
|
|
Username *string `json:"username"`
|
|
Password *string `json:"password"`
|
|
RefreshToken *string `json:"refreshToken"`
|
|
}
|
|
|
|
type UserForgotPassword struct {
|
|
Username string `json:"username"`
|
|
}
|
|
|
|
type UserSavePassword struct {
|
|
Password string `json:"password"`
|
|
ConfirmPassword string `json:"confirmPassword"`
|
|
}
|
|
|
|
type UserResetPassword struct {
|
|
CodeRequest string `json:"codeRequest"`
|
|
UserId string `json:"userId"`
|
|
Password string `json:"password"`
|
|
ConfirmPassword string `json:"confirmPassword"`
|
|
}
|
|
|
|
type UserEmailValidationRequest struct {
|
|
Username *string `json:"username"`
|
|
Password *string `json:"password"`
|
|
OldEmail *string `json:"oldEmail"`
|
|
NewEmail *string `json:"newEmail"`
|
|
}
|
|
|
|
type UserOtpRequest struct {
|
|
Email string `json:"email" validate:"required,email"`
|
|
Name *string `json:"name"`
|
|
}
|
|
|
|
type UserOtpValidation struct {
|
|
Email *string `json:"email"`
|
|
Username *string `json:"username"`
|
|
OtpCode string `json:"otpCode"`
|
|
}
|
|
|
|
type UsersQueryRequestContext struct {
|
|
Username string `json:"username"`
|
|
Email string `json:"email"`
|
|
Fullname string `json:"fullname"`
|
|
PhoneNumber string `json:"phoneNumber"`
|
|
WorkType string `json:"workType"`
|
|
GenderType string `json:"genderType"`
|
|
IdentityType string `json:"identityType"`
|
|
IdentityGroup string `json:"identityGroup"`
|
|
IdentityGroupNumber string `json:"identityGroupNumber"`
|
|
IdentityNumber string `json:"identityNumber"`
|
|
UserRoleId string `json:"userRoleId"`
|
|
StatusId string `json:"statusId"`
|
|
}
|
|
|
|
func (req UsersQueryRequestContext) ToParamRequest() UsersQueryRequest {
|
|
var request UsersQueryRequest
|
|
|
|
if username := req.Username; username != "" {
|
|
request.Username = &username
|
|
}
|
|
if email := req.Email; email != "" {
|
|
request.Email = &email
|
|
}
|
|
if fullname := req.Fullname; fullname != "" {
|
|
request.Fullname = &fullname
|
|
}
|
|
if phoneNumber := req.PhoneNumber; phoneNumber != "" {
|
|
request.PhoneNumber = &phoneNumber
|
|
}
|
|
if workType := req.WorkType; workType != "" {
|
|
request.WorkType = &workType
|
|
}
|
|
if genderType := req.GenderType; genderType != "" {
|
|
request.GenderType = &genderType
|
|
}
|
|
if identityType := req.IdentityType; identityType != "" {
|
|
request.IdentityType = &identityType
|
|
}
|
|
if identityGroup := req.IdentityGroup; identityGroup != "" {
|
|
request.IdentityGroup = &identityGroup
|
|
}
|
|
if identityGroupNumber := req.IdentityGroupNumber; identityGroupNumber != "" {
|
|
request.IdentityGroupNumber = &identityGroupNumber
|
|
}
|
|
if identityNumber := req.IdentityNumber; identityNumber != "" {
|
|
request.IdentityNumber = &identityNumber
|
|
}
|
|
if userRoleIdStr := req.UserRoleId; userRoleIdStr != "" {
|
|
userRoleId, err := strconv.Atoi(userRoleIdStr)
|
|
if err == nil {
|
|
request.UserRoleId = &userRoleId
|
|
}
|
|
}
|
|
if statusIdStr := req.StatusId; statusIdStr != "" {
|
|
statusId, err := strconv.Atoi(statusIdStr)
|
|
if err == nil {
|
|
request.StatusId = &statusId
|
|
}
|
|
}
|
|
|
|
return request
|
|
}
|