63 lines
2.4 KiB
Go
63 lines
2.4 KiB
Go
package dto
|
|
|
|
import (
|
|
"git.itzana.me/StrafesNET/dev-service/pkg/model"
|
|
)
|
|
|
|
// AdminUpdateUserRequest is the request body for updating a user as admin
|
|
type AdminUpdateUserRequest struct {
|
|
Active bool `json:"active"`
|
|
RateLimitID uint32 `json:"rate_limit_id"`
|
|
}
|
|
|
|
// AdminUserResponse is the full user detail response for admin
|
|
type AdminUserResponse struct {
|
|
ID uint64 `json:"id"`
|
|
Username string `json:"username"`
|
|
Active bool `json:"active"`
|
|
RateLimit model.RateLimit `json:"rate_limit"`
|
|
RateLimitStatus UserRateLimitStatus `json:"rate_limit_status"`
|
|
Permissions []model.Permission `json:"permissions"`
|
|
}
|
|
|
|
// CreatePermissionRequest is the request body for creating a permission
|
|
type CreatePermissionRequest struct {
|
|
Service string `json:"service" binding:"required"`
|
|
PermissionName string `json:"permission_name" binding:"required"`
|
|
Title string `json:"title" binding:"required"`
|
|
Description string `json:"description"`
|
|
IsDefault bool `json:"is_default"`
|
|
}
|
|
|
|
// UpdatePermissionRequest is the request body for updating a permission
|
|
type UpdatePermissionRequest struct {
|
|
Service string `json:"service" binding:"required"`
|
|
PermissionName string `json:"permission_name" binding:"required"`
|
|
Title string `json:"title" binding:"required"`
|
|
Description string `json:"description"`
|
|
IsDefault bool `json:"is_default"`
|
|
}
|
|
|
|
// SetPermissionDefaultRequest is the request body for toggling permission default status
|
|
type SetPermissionDefaultRequest struct {
|
|
IsDefault bool `json:"is_default"`
|
|
}
|
|
|
|
// CreateRateLimitRequest is the request body for creating a rate limit
|
|
type CreateRateLimitRequest struct {
|
|
BurstDuration uint64 `json:"burst_duration" binding:"required"`
|
|
BurstLimit uint64 `json:"burst_limit" binding:"required"`
|
|
DailyLimit uint64 `json:"daily_limit" binding:"required"`
|
|
MonthlyLimit uint64 `json:"monthly_limit" binding:"required"`
|
|
MaxApplications uint32 `json:"max_applications" binding:"required"`
|
|
}
|
|
|
|
// UpdateRateLimitRequest is the request body for updating a rate limit
|
|
type UpdateRateLimitRequest struct {
|
|
BurstDuration uint64 `json:"burst_duration"`
|
|
BurstLimit uint64 `json:"burst_limit"`
|
|
DailyLimit uint64 `json:"daily_limit"`
|
|
MonthlyLimit uint64 `json:"monthly_limit"`
|
|
MaxApplications uint32 `json:"max_applications"`
|
|
}
|