Files
dev-service/pkg/api/dto/admin.go
itzaname 9a913ab90b
All checks were successful
continuous-integration/drone/push Build is passing
Attempt adding admin dashboard
2026-02-25 23:07:31 -05:00

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"`
}