dukcapil/internal/router/health_handler.go
2025-10-30 12:40:32 +07:00

192 lines
5.2 KiB
Go

package router
import "github.com/gin-gonic/gin"
type HealthHandler interface {
HealthCheck(c *gin.Context)
}
type UserHandler interface {
ListUsers(c *gin.Context)
CreateUser(c *gin.Context)
UpdateUser(c *gin.Context)
DeleteUser(c *gin.Context)
GetProfile(c *gin.Context)
GetUserProfile(c *gin.Context)
UpdateProfile(c *gin.Context)
ChangePassword(c *gin.Context)
ListTitles(c *gin.Context)
GetActiveUsersForMention(c *gin.Context)
}
type FileHandler interface {
UploadProfileAvatar(c *gin.Context)
UploadDocument(c *gin.Context)
}
type RBACHandler interface {
CreatePermission(c *gin.Context)
UpdatePermission(c *gin.Context)
DeletePermission(c *gin.Context)
ListPermissions(c *gin.Context)
CreateRole(c *gin.Context)
UpdateRole(c *gin.Context)
DeleteRole(c *gin.Context)
ListRoles(c *gin.Context)
// New methods
GetPermissionsGrouped(c *gin.Context)
CreateOrUpdateRole(c *gin.Context)
GetRoleDetail(c *gin.Context)
}
type MasterHandler interface {
// labels
CreateLabel(c *gin.Context)
UpdateLabel(c *gin.Context)
DeleteLabel(c *gin.Context)
ListLabels(c *gin.Context)
// priorities
CreatePriority(c *gin.Context)
UpdatePriority(c *gin.Context)
DeletePriority(c *gin.Context)
ListPriorities(c *gin.Context)
// institutions
CreateInstitution(c *gin.Context)
UpdateInstitution(c *gin.Context)
DeleteInstitution(c *gin.Context)
ListInstitutions(c *gin.Context)
// disposition actions
CreateDispositionAction(c *gin.Context)
UpdateDispositionAction(c *gin.Context)
DeleteDispositionAction(c *gin.Context)
ListDispositionActions(c *gin.Context)
// departments
ListDepartments(c *gin.Context)
CreateDepartment(c *gin.Context)
GetDepartment(c *gin.Context)
UpdateDepartment(c *gin.Context)
DeleteDepartment(c *gin.Context)
GetOrganizationalChart(c *gin.Context)
GetOrganizationalChartByID(c *gin.Context)
}
type LetterHandler interface {
CreateIncomingLetter(c *gin.Context)
GetIncomingLetter(c *gin.Context)
ListIncomingLetters(c *gin.Context)
SearchIncomingLetters(c *gin.Context)
GetLetterUnreadCounts(c *gin.Context)
MarkIncomingLetterAsRead(c *gin.Context)
MarkOutgoingLetterAsRead(c *gin.Context)
UpdateIncomingLetter(c *gin.Context)
DeleteIncomingLetter(c *gin.Context)
BulkDeleteIncomingLetters(c *gin.Context)
BulkArchiveIncomingLetters(c *gin.Context)
ArchiveIncomingLetter(c *gin.Context)
CreateDispositions(c *gin.Context)
GetEnhancedDispositionsByLetter(c *gin.Context)
GetDepartmentDispositionStatus(c *gin.Context)
UpdateDispositionStatus(c *gin.Context)
GetLetterCTA(c *gin.Context)
CreateDiscussion(c *gin.Context)
UpdateDiscussion(c *gin.Context)
}
type LetterOutgoingHandler interface {
CreateOutgoingLetter(c *gin.Context)
GetOutgoingLetter(c *gin.Context)
ListOutgoingLetters(c *gin.Context)
SearchOutgoingLetters(c *gin.Context)
UpdateOutgoingLetter(c *gin.Context)
DeleteOutgoingLetter(c *gin.Context)
BulkDeleteOutgoingLetters(c *gin.Context)
SubmitForApproval(c *gin.Context)
ApproveOutgoingLetter(c *gin.Context)
RejectOutgoingLetter(c *gin.Context)
ReviseOutgoingLetter(c *gin.Context)
SendOutgoingLetter(c *gin.Context)
ArchiveOutgoingLetter(c *gin.Context)
GetLetterApprovalInfo(c *gin.Context)
GetLetterApprovals(c *gin.Context)
AddRecipients(c *gin.Context)
UpdateRecipient(c *gin.Context)
RemoveRecipient(c *gin.Context)
AddAttachments(c *gin.Context)
RemoveAttachment(c *gin.Context)
CreateDiscussion(c *gin.Context)
UpdateDiscussion(c *gin.Context)
DeleteDiscussion(c *gin.Context)
GetApprovalDiscussions(c *gin.Context)
GetApprovalTimeline(c *gin.Context)
BulkArchiveOutgoingLetters(c *gin.Context)
}
type AdminApprovalFlowHandler interface {
CreateApprovalFlow(c *gin.Context)
GetApprovalFlow(c *gin.Context)
GetApprovalFlowByDepartment(c *gin.Context)
UpdateApprovalFlow(c *gin.Context)
DeleteApprovalFlow(c *gin.Context)
ListApprovalFlows(c *gin.Context)
ListApprovalFlowsByDepartment(c *gin.Context)
ActivateApprovalFlow(c *gin.Context)
DeactivateApprovalFlow(c *gin.Context)
CloneApprovalFlow(c *gin.Context)
}
type DispositionRouteHandler interface {
Create(c *gin.Context)
BulkCreateOrUpdate(c *gin.Context)
Update(c *gin.Context)
Get(c *gin.Context)
ListByFromDept(c *gin.Context)
SetActive(c *gin.Context)
ListGrouped(c *gin.Context)
ListAll(c *gin.Context)
}
type OnlyOfficeHandler interface {
ProcessCallback(c *gin.Context)
GetEditorConfig(c *gin.Context)
GetOnlyOfficeConfig(c *gin.Context)
LockDocument(c *gin.Context)
UnlockDocument(c *gin.Context)
GetDocumentSession(c *gin.Context)
}
type AnalyticsHandler interface {
GetDashboard(c *gin.Context)
GetLetterVolume(c *gin.Context)
GetStatusDistribution(c *gin.Context)
GetPriorityDistribution(c *gin.Context)
GetDepartmentStats(c *gin.Context)
GetMonthlyTrend(c *gin.Context)
GetApprovalMetrics(c *gin.Context)
}
type NotificationHandler interface {
TriggerNotification(c *gin.Context)
BulkTriggerNotification(c *gin.Context)
GetSubscriber(c *gin.Context)
UpdateSubscriberChannel(c *gin.Context)
TriggerNotificationForCurrentUser(c *gin.Context)
GetCurrentUserSubscriber(c *gin.Context)
UpdateCurrentUserSubscriberChannel(c *gin.Context)
}
type RepositoryAttachmentHandler interface {
CreateAttachment(c *gin.Context)
DeleteAttachment(c *gin.Context)
GetAttachment(c *gin.Context)
ListAttachment(c *gin.Context)
}