86 lines
4.2 KiB
Go
86 lines
4.2 KiB
Go
|
|
package request
|
||
|
|
|
||
|
|
// CreateClientApprovalSettingsRequest represents request for creating client approval settings
|
||
|
|
type CreateClientApprovalSettingsRequest struct {
|
||
|
|
RequiresApproval bool `json:"requires_approval" validate:"required"`
|
||
|
|
DefaultWorkflowId *uint `json:"default_workflow_id" validate:"omitempty,min=1"`
|
||
|
|
AutoPublishArticles bool `json:"auto_publish_articles"`
|
||
|
|
ApprovalExemptUsers []uint `json:"approval_exempt_users" validate:"omitempty,dive,min=1"`
|
||
|
|
ApprovalExemptRoles []uint `json:"approval_exempt_roles" validate:"omitempty,dive,min=1"`
|
||
|
|
ApprovalExemptCategories []uint `json:"approval_exempt_categories" validate:"omitempty,dive,min=1"`
|
||
|
|
RequireApprovalFor []string `json:"require_approval_for" validate:"omitempty,dive,min=1"`
|
||
|
|
SkipApprovalFor []string `json:"skip_approval_for" validate:"omitempty,dive,min=1"`
|
||
|
|
IsActive bool `json:"is_active"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// UpdateClientApprovalSettingsRequest represents request for updating client approval settings
|
||
|
|
type UpdateClientApprovalSettingsRequest struct {
|
||
|
|
RequiresApproval *bool `json:"requires_approval"`
|
||
|
|
DefaultWorkflowId **uint `json:"default_workflow_id"` // double pointer to allow nil
|
||
|
|
AutoPublishArticles *bool `json:"auto_publish_articles"`
|
||
|
|
ApprovalExemptUsers []uint `json:"approval_exempt_users" validate:"omitempty,dive,min=1"`
|
||
|
|
ApprovalExemptRoles []uint `json:"approval_exempt_roles" validate:"omitempty,dive,min=1"`
|
||
|
|
ApprovalExemptCategories []uint `json:"approval_exempt_categories" validate:"omitempty,dive,min=1"`
|
||
|
|
RequireApprovalFor []string `json:"require_approval_for" validate:"omitempty,dive,min=1"`
|
||
|
|
SkipApprovalFor []string `json:"skip_approval_for" validate:"omitempty,dive,min=1"`
|
||
|
|
IsActive *bool `json:"is_active"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// ToggleApprovalRequest represents request for toggling approval requirement
|
||
|
|
type ToggleApprovalRequest struct {
|
||
|
|
RequiresApproval bool `json:"requires_approval" validate:"required"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// EnableApprovalRequest represents request for enabling approval with smooth transition
|
||
|
|
type EnableApprovalRequest struct {
|
||
|
|
DefaultWorkflowId *uint `json:"default_workflow_id" validate:"omitempty,min=1"`
|
||
|
|
Reason string `json:"reason" validate:"omitempty,max=500"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// DisableApprovalRequest represents request for disabling approval system
|
||
|
|
type DisableApprovalRequest struct {
|
||
|
|
Reason string `json:"reason" validate:"required,max=500"`
|
||
|
|
HandleAction string `json:"handle_action" validate:"required,oneof=auto_approve keep_pending reset_to_draft"` // How to handle pending articles
|
||
|
|
}
|
||
|
|
|
||
|
|
// SetDefaultWorkflowRequest represents request for setting default workflow
|
||
|
|
type SetDefaultWorkflowRequest struct {
|
||
|
|
WorkflowId *uint `json:"workflow_id" validate:"omitempty,min=1"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// AddExemptUserRequest represents request for adding user to exemption
|
||
|
|
type AddExemptUserRequest struct {
|
||
|
|
UserId uint `json:"user_id" validate:"required,min=1"`
|
||
|
|
Reason string `json:"reason" validate:"omitempty,max=500"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// RemoveExemptUserRequest represents request for removing user from exemption
|
||
|
|
type RemoveExemptUserRequest struct {
|
||
|
|
UserId uint `json:"user_id" validate:"required,min=1"`
|
||
|
|
Reason string `json:"reason" validate:"omitempty,max=500"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// AddExemptRoleRequest represents request for adding role to exemption
|
||
|
|
type AddExemptRoleRequest struct {
|
||
|
|
RoleId uint `json:"role_id" validate:"required,min=1"`
|
||
|
|
Reason string `json:"reason" validate:"omitempty,max=500"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// RemoveExemptRoleRequest represents request for removing role from exemption
|
||
|
|
type RemoveExemptRoleRequest struct {
|
||
|
|
RoleId uint `json:"role_id" validate:"required,min=1"`
|
||
|
|
Reason string `json:"reason" validate:"omitempty,max=500"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// AddExemptCategoryRequest represents request for adding category to exemption
|
||
|
|
type AddExemptCategoryRequest struct {
|
||
|
|
CategoryId uint `json:"category_id" validate:"required,min=1"`
|
||
|
|
Reason string `json:"reason" validate:"omitempty,max=500"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// RemoveExemptCategoryRequest represents request for removing category from exemption
|
||
|
|
type RemoveExemptCategoryRequest struct {
|
||
|
|
CategoryId uint `json:"category_id" validate:"required,min=1"`
|
||
|
|
Reason string `json:"reason" validate:"omitempty,max=500"`
|
||
|
|
}
|