2025-09-19 04:08:42 +00:00
|
|
|
package request
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"narasi-ahli-be/app/database/entity"
|
|
|
|
|
"narasi-ahli-be/utils/paginator"
|
|
|
|
|
"strconv"
|
|
|
|
|
"time"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type UserRoleAccessesGeneric interface {
|
|
|
|
|
ToEntity()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type UserRoleAccessesQueryRequest struct {
|
|
|
|
|
UserRoleId *int `json:"userRoleId" validate:"required"`
|
|
|
|
|
MenuId *int `json:"menuId" validate:"required"`
|
|
|
|
|
IsActive *bool `json:"isActive" validate:"required"`
|
|
|
|
|
Pagination *paginator.Pagination `json:"pagination"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type UserRoleAccessesCreateRequest struct {
|
|
|
|
|
MenuId int `json:"menuId" validate:"required"`
|
|
|
|
|
IsViewEnabled bool `json:"isViewEnabled" validate:"required"`
|
|
|
|
|
IsInsertEnabled bool `json:"isInsertEnabled" validate:"required"`
|
|
|
|
|
IsUpdateEnabled bool `json:"isUpdateEnabled" validate:"required"`
|
|
|
|
|
IsDeleteEnabled bool `json:"isDeleteEnabled" validate:"required"`
|
|
|
|
|
IsApprovalEnabled bool `json:"isApprovalEnabled" validate:"required"`
|
|
|
|
|
IsAdminEnabled bool `json:"isAdminEnabled" validate:"required"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (req UserRoleAccessesCreateRequest) ToEntity() *entity.UserRoleAccesses {
|
|
|
|
|
return &entity.UserRoleAccesses{
|
|
|
|
|
MenuId: req.MenuId,
|
|
|
|
|
IsViewEnabled: req.IsViewEnabled,
|
|
|
|
|
IsInsertEnabled: req.IsInsertEnabled,
|
|
|
|
|
IsUpdateEnabled: req.IsUpdateEnabled,
|
|
|
|
|
IsDeleteEnabled: req.IsDeleteEnabled,
|
|
|
|
|
IsApprovalEnabled: req.IsApprovalEnabled,
|
|
|
|
|
IsAdminEnabled: req.IsAdminEnabled,
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type UserRoleAccessesUpdateRequest struct {
|
|
|
|
|
ID uint `json:"id" validate:"required"`
|
2025-09-19 18:45:40 +00:00
|
|
|
UserRoleId uint `json:"userRoleId" validate:"required"`
|
|
|
|
|
MenuId int `json:"menuId" validate:"required"`
|
|
|
|
|
IsViewEnabled bool `json:"isViewEnabled" validate:"required"`
|
|
|
|
|
IsInsertEnabled bool `json:"isInsertEnabled" validate:"required"`
|
|
|
|
|
IsUpdateEnabled bool `json:"isUpdateEnabled" validate:"required"`
|
|
|
|
|
IsDeleteEnabled bool `json:"isDeleteEnabled" validate:"required"`
|
|
|
|
|
IsApprovalEnabled bool `json:"isApprovalEnabled" validate:"required"`
|
|
|
|
|
IsAdminEnabled bool `json:"isAdminEnabled" validate:"required"`
|
2025-09-19 04:08:42 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (req UserRoleAccessesUpdateRequest) ToEntity() *entity.UserRoleAccesses {
|
|
|
|
|
return &entity.UserRoleAccesses{
|
|
|
|
|
ID: req.ID,
|
|
|
|
|
UserRoleId: req.UserRoleId,
|
|
|
|
|
MenuId: req.MenuId,
|
|
|
|
|
IsViewEnabled: req.IsViewEnabled,
|
|
|
|
|
IsInsertEnabled: req.IsInsertEnabled,
|
|
|
|
|
IsUpdateEnabled: req.IsUpdateEnabled,
|
|
|
|
|
IsDeleteEnabled: req.IsDeleteEnabled,
|
|
|
|
|
IsApprovalEnabled: req.IsApprovalEnabled,
|
|
|
|
|
IsAdminEnabled: req.IsAdminEnabled,
|
|
|
|
|
UpdatedAt: time.Now(),
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type UserRoleAccessesQueryRequestContext struct {
|
|
|
|
|
UserRoleId string `json:"userRoleId"`
|
|
|
|
|
MenuId string `json:"menuId"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (req UserRoleAccessesQueryRequestContext) ToParamRequest() UserRoleAccessesQueryRequest {
|
|
|
|
|
var request UserRoleAccessesQueryRequest
|
|
|
|
|
|
|
|
|
|
if userRoleIdStr := req.UserRoleId; userRoleIdStr != "" {
|
|
|
|
|
userRoleId, err := strconv.Atoi(userRoleIdStr)
|
|
|
|
|
if err == nil {
|
|
|
|
|
request.UserRoleId = &userRoleId
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if menuIdStr := req.MenuId; menuIdStr != "" {
|
|
|
|
|
menuId, err := strconv.Atoi(menuIdStr)
|
|
|
|
|
if err == nil {
|
|
|
|
|
request.MenuId = &menuId
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return request
|
|
|
|
|
}
|