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) UploadDocumentFinal(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) AddFinalAttachments(c *gin.Context) RemoveFinalAttachment(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) }