Documentation
¶
Overview ¶
Package repository provides data access repositories for domain entities.
Index ¶
- func SetTicketNumberGenerator(gen ticketnumber.Generator, store ticketnumber.CounterStore)
- func TicketNumberGeneratorInfo() (string, bool)
- type ACLRepository
- func (r *ACLRepository) GetACL(ctx context.Context, id int) (*models.ACL, error)
- func (r *ACLRepository) GetACLByName(ctx context.Context, name string) (*models.ACL, error)
- func (r *ACLRepository) GetAllACLs(ctx context.Context) ([]*models.ACL, error)
- func (r *ACLRepository) GetValidACLs(ctx context.Context) ([]*models.ACL, error)
- type APITokenRepository
- func (r *APITokenRepository) Create(ctx context.Context, token *models.APIToken) (int64, error)
- func (r *APITokenRepository) GetByID(ctx context.Context, id int64) (*models.APIToken, error)
- func (r *APITokenRepository) GetByPrefix(ctx context.Context, prefix string) ([]*models.APIToken, error)
- func (r *APITokenRepository) ListAll(ctx context.Context, includeRevoked bool) ([]*models.APIToken, error)
- func (r *APITokenRepository) ListByUser(ctx context.Context, userID int, userType models.APITokenUserType) ([]*models.APIToken, error)
- func (r *APITokenRepository) Revoke(ctx context.Context, id int64, revokedBy int) error
- func (r *APITokenRepository) UpdateLastUsed(ctx context.Context, id int64, ip string) error
- type ArticleRepository
- func (r *ArticleRepository) CountArticlesForTicket(ticketID uint, includeInternal bool) (int, error)
- func (r *ArticleRepository) Create(article *models.Article) error
- func (r *ArticleRepository) CreateAttachment(attachment *models.Attachment) error
- func (r *ArticleRepository) Delete(id uint, userID uint) error
- func (r *ArticleRepository) DeleteAttachment(id uint) error
- func (r *ArticleRepository) FindTicketByMessageID(ctx context.Context, messageID string) (*models.Ticket, error)
- func (r *ArticleRepository) GetArticleWithAttachments(id uint) (*models.Article, error)
- func (r *ArticleRepository) GetAttachmentByID(id uint) (*models.Attachment, error)
- func (r *ArticleRepository) GetAttachmentsByArticleID(articleID uint) ([]models.Attachment, error)
- func (r *ArticleRepository) GetByID(id uint) (*models.Article, error)
- func (r *ArticleRepository) GetByTicketID(ticketID uint, includeInternal bool) ([]models.Article, error)
- func (r *ArticleRepository) GetHTMLBodyAttachmentID(articleID uint) (*uint, error)
- func (r *ArticleRepository) GetHTMLBodyContent(articleID uint) (string, error)
- func (r *ArticleRepository) GetLatestArticleForTicket(ticketID uint) (*models.Article, error)
- func (r *ArticleRepository) GetLatestCustomerArticleForTicket(ticketID uint) (*models.Article, error)
- func (r *ArticleRepository) GetSenderTypeColors() (map[int]string, error)
- func (r *ArticleRepository) GetVisibleArticlesForCustomer(ticketID uint) ([]models.Article, error)
- func (r *ArticleRepository) Update(article *models.Article) error
- type AutoCloseResult
- type CannedResponseRepository
- type DBRoleRepository
- func (r *DBRoleRepository) AddUserToRole(userID, roleID, createdBy int) error
- func (r *DBRoleRepository) Create(role *models.DBRole) error
- func (r *DBRoleRepository) Delete(id int) error
- func (r *DBRoleRepository) GetByID(id int) (*models.DBRole, error)
- func (r *DBRoleRepository) GetByName(name string) (*models.DBRole, error)
- func (r *DBRoleRepository) GetGroupCount(roleID int) (int, error)
- func (r *DBRoleRepository) GetUserCount(roleID int) (int, error)
- func (r *DBRoleRepository) List() ([]*models.DBRole, error)
- func (r *DBRoleRepository) ListRoleUsers(roleID int) ([]int, error)
- func (r *DBRoleRepository) ListUserRoles(userID int) ([]*models.DBRole, error)
- func (r *DBRoleRepository) RemoveUserFromRole(userID, roleID int) error
- func (r *DBRoleRepository) SetRoleUsers(roleID int, userIDs []int, changedBy int) error
- func (r *DBRoleRepository) SetUserRoles(userID int, roleIDs []int, changedBy int) error
- func (r *DBRoleRepository) Update(role *models.DBRole) error
- type EmailAccountRepository
- func (r *EmailAccountRepository) Create(account *models.EmailAccount) (int, error)
- func (r *EmailAccountRepository) Delete(id int) error
- func (r *EmailAccountRepository) GetActiveAccounts() ([]*models.EmailAccount, error)
- func (r *EmailAccountRepository) GetByEmail(email string) (*models.EmailAccount, error)
- func (r *EmailAccountRepository) GetByID(id int) (*models.EmailAccount, error)
- func (r *EmailAccountRepository) GetByLogin(login string) (*models.EmailAccount, error)
- func (r *EmailAccountRepository) Update(account *models.EmailAccount) error
- type EmailTemplateRepository
- func (r *EmailTemplateRepository) Create(template *models.EmailTemplate) (int, error)
- func (r *EmailTemplateRepository) Delete(id int) error
- func (r *EmailTemplateRepository) GetAll() ([]*models.EmailTemplate, error)
- func (r *EmailTemplateRepository) GetByID(id int) (*models.EmailTemplate, error)
- func (r *EmailTemplateRepository) GetByName(name string) (*models.EmailTemplate, error)
- func (r *EmailTemplateRepository) GetByType(templateType string) ([]*models.EmailTemplate, error)
- func (r *EmailTemplateRepository) Update(template *models.EmailTemplate) error
- type ExecContext
- type FilterMatch
- type FilterSet
- type GenericAgentRepository
- func (r *GenericAgentRepository) GetAllJobs(ctx context.Context) ([]*models.GenericAgentJob, error)
- func (r *GenericAgentRepository) GetJob(ctx context.Context, name string) (*models.GenericAgentJob, error)
- func (r *GenericAgentRepository) GetValidJobs(ctx context.Context) ([]*models.GenericAgentJob, error)
- func (r *GenericAgentRepository) JobExists(ctx context.Context, name string) (bool, error)
- func (r *GenericAgentRepository) SetConfigValue(ctx context.Context, name, key, value string) error
- func (r *GenericAgentRepository) UpdateLastRun(ctx context.Context, name string, runTime time.Time) error
- type GroupRepository
- type GroupSQLRepository
- func (r *GroupSQLRepository) AddUserToGroup(userID uint, groupID uint) error
- func (r *GroupSQLRepository) Create(group *models.Group) error
- func (r *GroupSQLRepository) Delete(id uint) error
- func (r *GroupSQLRepository) GetByID(id uint) (*models.Group, error)
- func (r *GroupSQLRepository) GetByName(name string) (*models.Group, error)
- func (r *GroupSQLRepository) GetGroupMembers(groupID uint) ([]*models.User, error)
- func (r *GroupSQLRepository) GetUserGroups(userID uint) ([]string, error)
- func (r *GroupSQLRepository) List() ([]*models.Group, error)
- func (r *GroupSQLRepository) RemoveUserFromGroup(userID uint, groupID uint) error
- func (r *GroupSQLRepository) Update(group *models.Group) error
- type ITicketRepository
- type InternalNoteRepository
- type LDAPRepository
- type LookupAuditLog
- type LookupConfiguration
- type LookupRepository
- type MemoryCannedResponseRepository
- func (r *MemoryCannedResponseRepository) CreateResponse(ctx context.Context, response *models.CannedResponse) error
- func (r *MemoryCannedResponseRepository) DeleteResponse(ctx context.Context, id uint) error
- func (r *MemoryCannedResponseRepository) GetActiveResponses(ctx context.Context) ([]models.CannedResponse, error)
- func (r *MemoryCannedResponseRepository) GetCategories(ctx context.Context) ([]models.CannedResponseCategory, error)
- func (r *MemoryCannedResponseRepository) GetMostUsedResponses(ctx context.Context, limit int) ([]models.CannedResponse, error)
- func (r *MemoryCannedResponseRepository) GetResponseByID(ctx context.Context, id uint) (*models.CannedResponse, error)
- func (r *MemoryCannedResponseRepository) GetResponseByShortcut(ctx context.Context, shortcut string) (*models.CannedResponse, error)
- func (r *MemoryCannedResponseRepository) GetResponsesByCategory(ctx context.Context, category string) ([]models.CannedResponse, error)
- func (r *MemoryCannedResponseRepository) GetResponsesForUser(ctx context.Context, userID uint) ([]models.CannedResponse, error)
- func (r *MemoryCannedResponseRepository) GetUsageHistory(ctx context.Context, responseID uint, limit int) ([]models.CannedResponseUsage, error)
- func (r *MemoryCannedResponseRepository) IncrementUsageCount(ctx context.Context, responseID uint) error
- func (r *MemoryCannedResponseRepository) RecordUsage(ctx context.Context, usage *models.CannedResponseUsage) error
- func (r *MemoryCannedResponseRepository) SearchResponses(ctx context.Context, filter *models.CannedResponseFilter) ([]models.CannedResponse, error)
- func (r *MemoryCannedResponseRepository) UpdateResponse(ctx context.Context, response *models.CannedResponse) error
- type MemoryInternalNoteRepository
- func (r *MemoryInternalNoteRepository) AddEditHistory(ctx context.Context, edit *models.NoteEdit) error
- func (r *MemoryInternalNoteRepository) CreateCategory(ctx context.Context, category *models.NoteCategory) error
- func (r *MemoryInternalNoteRepository) CreateMention(ctx context.Context, mention *models.NoteMention) error
- func (r *MemoryInternalNoteRepository) CreateNote(ctx context.Context, note *models.InternalNote) error
- func (r *MemoryInternalNoteRepository) CreateTemplate(ctx context.Context, template *models.NoteTemplate) error
- func (r *MemoryInternalNoteRepository) DeleteCategory(ctx context.Context, id uint) error
- func (r *MemoryInternalNoteRepository) DeleteNote(ctx context.Context, id uint) error
- func (r *MemoryInternalNoteRepository) DeleteTemplate(ctx context.Context, id uint) error
- func (r *MemoryInternalNoteRepository) GetActivityLog(ctx context.Context, ticketID uint, limit int) ([]models.NoteActivity, error)
- func (r *MemoryInternalNoteRepository) GetCategories(ctx context.Context) ([]models.NoteCategory, error)
- func (r *MemoryInternalNoteRepository) GetEditHistory(ctx context.Context, noteID uint) ([]models.NoteEdit, error)
- func (r *MemoryInternalNoteRepository) GetImportantNotes(ctx context.Context, ticketID uint) ([]models.InternalNote, error)
- func (r *MemoryInternalNoteRepository) GetMentionsByUser(ctx context.Context, userID uint) ([]models.NoteMention, error)
- func (r *MemoryInternalNoteRepository) GetNoteByID(ctx context.Context, id uint) (*models.InternalNote, error)
- func (r *MemoryInternalNoteRepository) GetNoteStatistics(ctx context.Context, ticketID uint) (*models.NoteStatistics, error)
- func (r *MemoryInternalNoteRepository) GetNotesByAuthor(ctx context.Context, authorID uint) ([]models.InternalNote, error)
- func (r *MemoryInternalNoteRepository) GetNotesByCategory(ctx context.Context, category string) ([]models.InternalNote, error)
- func (r *MemoryInternalNoteRepository) GetNotesByTags(ctx context.Context, tags []string) ([]models.InternalNote, error)
- func (r *MemoryInternalNoteRepository) GetNotesByTicket(ctx context.Context, ticketID uint) ([]models.InternalNote, error)
- func (r *MemoryInternalNoteRepository) GetPinnedNotes(ctx context.Context, ticketID uint) ([]models.InternalNote, error)
- func (r *MemoryInternalNoteRepository) GetTemplateByID(ctx context.Context, id uint) (*models.NoteTemplate, error)
- func (r *MemoryInternalNoteRepository) GetTemplates(ctx context.Context) ([]models.NoteTemplate, error)
- func (r *MemoryInternalNoteRepository) IncrementTemplateUsage(ctx context.Context, id uint) error
- func (r *MemoryInternalNoteRepository) LogActivity(ctx context.Context, activity *models.NoteActivity) error
- func (r *MemoryInternalNoteRepository) MarkMentionAsRead(ctx context.Context, mentionID uint) error
- func (r *MemoryInternalNoteRepository) SearchNotes(ctx context.Context, filter *models.NoteFilter) ([]models.InternalNote, error)
- func (r *MemoryInternalNoteRepository) UpdateCategory(ctx context.Context, category *models.NoteCategory) error
- func (r *MemoryInternalNoteRepository) UpdateNote(ctx context.Context, note *models.InternalNote) error
- func (r *MemoryInternalNoteRepository) UpdateTemplate(ctx context.Context, template *models.NoteTemplate) error
- type MemoryLookupRepository
- func (r *MemoryLookupRepository) CreateQueue(ctx context.Context, queue *models.QueueInfo) error
- func (r *MemoryLookupRepository) CreateType(ctx context.Context, typ *models.LookupItem) error
- func (r *MemoryLookupRepository) DeleteQueue(ctx context.Context, id int) error
- func (r *MemoryLookupRepository) DeleteType(ctx context.Context, id int) error
- func (r *MemoryLookupRepository) ExportConfiguration(ctx context.Context) (*LookupConfiguration, error)
- func (r *MemoryLookupRepository) GetAuditLogs(ctx context.Context, entityType string, entityID int, limit int) ([]LookupAuditLog, error)
- func (r *MemoryLookupRepository) GetPriorities(ctx context.Context) ([]models.LookupItem, error)
- func (r *MemoryLookupRepository) GetPriorityByID(ctx context.Context, id int) (*models.LookupItem, error)
- func (r *MemoryLookupRepository) GetQueueByID(ctx context.Context, id int) (*models.QueueInfo, error)
- func (r *MemoryLookupRepository) GetQueues(ctx context.Context) ([]models.QueueInfo, error)
- func (r *MemoryLookupRepository) GetStatusByID(ctx context.Context, id int) (*models.LookupItem, error)
- func (r *MemoryLookupRepository) GetStatuses(ctx context.Context) ([]models.LookupItem, error)
- func (r *MemoryLookupRepository) GetTypeByID(ctx context.Context, id int) (*models.LookupItem, error)
- func (r *MemoryLookupRepository) GetTypes(ctx context.Context) ([]models.LookupItem, error)
- func (r *MemoryLookupRepository) ImportConfiguration(ctx context.Context, config *LookupConfiguration) error
- func (r *MemoryLookupRepository) LogChange(ctx context.Context, change *LookupAuditLog) error
- func (r *MemoryLookupRepository) UpdatePriority(ctx context.Context, priority *models.LookupItem) error
- func (r *MemoryLookupRepository) UpdateQueue(ctx context.Context, queue *models.QueueInfo) error
- func (r *MemoryLookupRepository) UpdateStatus(ctx context.Context, status *models.LookupItem) error
- func (r *MemoryLookupRepository) UpdateType(ctx context.Context, typ *models.LookupItem) error
- type MemorySLARepository
- func (r *MemorySLARepository) AddHoliday(ctx context.Context, holiday *models.SLAHoliday) error
- func (r *MemorySLARepository) CreateBusinessCalendar(ctx context.Context, calendar *models.BusinessCalendar) error
- func (r *MemorySLARepository) CreateSLA(ctx context.Context, sla *models.SLA) error
- func (r *MemorySLARepository) CreateTicketSLA(ctx context.Context, ticketSLA *models.TicketSLA) error
- func (r *MemorySLARepository) DeleteSLA(ctx context.Context, id uint) error
- func (r *MemorySLARepository) FindApplicableSLA(ctx context.Context, queueID uint, priority int, ticketType string, ...) (*models.SLA, error)
- func (r *MemorySLARepository) GetAllSLAs(ctx context.Context, activeOnly bool) ([]models.SLA, error)
- func (r *MemorySLARepository) GetBusinessCalendar(ctx context.Context, id uint) (*models.BusinessCalendar, error)
- func (r *MemorySLARepository) GetEscalationHistory(ctx context.Context, ticketSLAID uint) ([]models.SLAEscalationHistory, error)
- func (r *MemorySLARepository) GetHolidays(ctx context.Context, calendarID uint) ([]models.SLAHoliday, error)
- func (r *MemorySLARepository) GetSLA(ctx context.Context, id uint) (*models.SLA, error)
- func (r *MemorySLARepository) GetSLAMetrics(ctx context.Context, slaID uint, from, to time.Time) (*models.SLAMetrics, error)
- func (r *MemorySLARepository) GetSLAReport(ctx context.Context, from, to time.Time) (*models.SLAReport, error)
- func (r *MemorySLARepository) GetTicketSLA(ctx context.Context, ticketID uint) (*models.TicketSLA, error)
- func (r *MemorySLARepository) PauseSLA(ctx context.Context, pauseReason *models.SLAPauseReason) error
- func (r *MemorySLARepository) RecordEscalation(ctx context.Context, escalation *models.SLAEscalationHistory) error
- func (r *MemorySLARepository) ResumeSLA(ctx context.Context, ticketSLAID uint) error
- func (r *MemorySLARepository) UpdateBusinessCalendar(ctx context.Context, calendar *models.BusinessCalendar) error
- func (r *MemorySLARepository) UpdateSLA(ctx context.Context, sla *models.SLA) error
- func (r *MemorySLARepository) UpdateTicketSLA(ctx context.Context, ticketSLA *models.TicketSLA) error
- type MemorySessionRepository
- func (r *MemorySessionRepository) Create(session *models.Session) error
- func (r *MemorySessionRepository) Delete(sessionID string) error
- func (r *MemorySessionRepository) DeleteByMaxAge(maxAge time.Duration) (int, error)
- func (r *MemorySessionRepository) DeleteByUserID(userID int) (int, error)
- func (r *MemorySessionRepository) DeleteExpired(maxAge time.Duration) (int, error)
- func (r *MemorySessionRepository) GetByID(sessionID string) (*models.Session, error)
- func (r *MemorySessionRepository) GetByUserID(userID int) ([]*models.Session, error)
- func (r *MemorySessionRepository) List() ([]*models.Session, error)
- func (r *MemorySessionRepository) UpdateLastRequest(sessionID string) error
- type MemoryTicketMergeRepository
- func (r *MemoryTicketMergeRepository) CreateMerge(ctx context.Context, merge *models.TicketMerge) error
- func (r *MemoryTicketMergeRepository) CreateTicketRelation(ctx context.Context, relation *models.TicketRelation) error
- func (r *MemoryTicketMergeRepository) DeleteTicketRelation(ctx context.Context, relationID uint) error
- func (r *MemoryTicketMergeRepository) GetAllChildren(ctx context.Context, parentID uint) ([]uint, error)
- func (r *MemoryTicketMergeRepository) GetMerge(ctx context.Context, id uint) (*models.TicketMerge, error)
- func (r *MemoryTicketMergeRepository) GetMergeByChild(ctx context.Context, childID uint) (*models.TicketMerge, error)
- func (r *MemoryTicketMergeRepository) GetMergeHistory(ctx context.Context, ticketID uint) ([]models.TicketMerge, error)
- func (r *MemoryTicketMergeRepository) GetMergeStatistics(ctx context.Context, from, to time.Time) (*models.MergeStatistics, error)
- func (r *MemoryTicketMergeRepository) GetMergesByParent(ctx context.Context, parentID uint) ([]models.TicketMerge, error)
- func (r *MemoryTicketMergeRepository) GetTicketRelations(ctx context.Context, ticketID uint) ([]models.TicketRelation, error)
- func (r *MemoryTicketMergeRepository) IsMerged(ctx context.Context, ticketID uint) (bool, error)
- func (r *MemoryTicketMergeRepository) UnmergeTicket(ctx context.Context, mergeID uint, unmergedBy uint) error
- type MemoryTicketRepository
- func (r *MemoryTicketRepository) Count() (int, error)
- func (r *MemoryTicketRepository) CountByStatus(status string) (int, error)
- func (r *MemoryTicketRepository) Create(ticket *models.Ticket) error
- func (r *MemoryTicketRepository) Delete(id uint) error
- func (r *MemoryTicketRepository) GetByID(id uint) (*models.Ticket, error)
- func (r *MemoryTicketRepository) GetByTicketNumber(ticketNumber string) (*models.Ticket, error)
- func (r *MemoryTicketRepository) List(req *models.TicketListRequest) (*models.TicketListResponse, error)
- func (r *MemoryTicketRepository) Update(ticket *models.Ticket) error
- type MemoryTicketTemplateRepository
- func (r *MemoryTicketTemplateRepository) CreateTemplate(ctx context.Context, template *models.TicketTemplate) error
- func (r *MemoryTicketTemplateRepository) DeleteTemplate(ctx context.Context, id uint) error
- func (r *MemoryTicketTemplateRepository) GetActiveTemplates(ctx context.Context) ([]models.TicketTemplate, error)
- func (r *MemoryTicketTemplateRepository) GetCategories(ctx context.Context) ([]models.TemplateCategory, error)
- func (r *MemoryTicketTemplateRepository) GetTemplateByID(ctx context.Context, id uint) (*models.TicketTemplate, error)
- func (r *MemoryTicketTemplateRepository) GetTemplatesByCategory(ctx context.Context, category string) ([]models.TicketTemplate, error)
- func (r *MemoryTicketTemplateRepository) IncrementUsageCount(ctx context.Context, templateID uint) error
- func (r *MemoryTicketTemplateRepository) SearchTemplates(ctx context.Context, query string) ([]models.TicketTemplate, error)
- func (r *MemoryTicketTemplateRepository) UpdateTemplate(ctx context.Context, template *models.TicketTemplate) error
- type PermissionKey
- type PermissionRepository
- func (r *PermissionRepository) GetAllUserGroupPermissions() ([]UserGroupPermission, error)
- func (r *PermissionRepository) GetGroupPermissions(groupID uint) (map[uint][]string, error)
- func (r *PermissionRepository) GetUserGroupMatrix(userID, groupID uint) (map[string]bool, error)
- func (r *PermissionRepository) GetUserPermissions(userID uint) (map[uint][]string, error)
- func (r *PermissionRepository) RemoveUserGroupPermission(userID, groupID uint, permKey string) error
- func (r *PermissionRepository) SetUserGroupMatrix(userID, groupID uint, permissions map[string]bool) error
- func (r *PermissionRepository) SetUserGroupPermission(userID, groupID uint, permKey string, value int) error
- type PostmasterFilter
- type PostmasterFilterRepository
- func (r *PostmasterFilterRepository) Create(ctx context.Context, filter *PostmasterFilter) error
- func (r *PostmasterFilterRepository) Delete(ctx context.Context, name string) error
- func (r *PostmasterFilterRepository) Get(ctx context.Context, name string) (*PostmasterFilter, error)
- func (r *PostmasterFilterRepository) List(ctx context.Context) ([]PostmasterFilter, error)
- func (r *PostmasterFilterRepository) Update(ctx context.Context, name string, filter *PostmasterFilter) error
- type PriorityRepository
- type QueueRepository
- func (r *QueueRepository) Create(queue *models.Queue) error
- func (r *QueueRepository) GetByID(id uint) (*models.Queue, error)
- func (r *QueueRepository) GetByName(name string) (*models.Queue, error)
- func (r *QueueRepository) List() ([]*models.Queue, error)
- func (r *QueueRepository) Update(queue *models.Queue) error
- type RoleRepository
- type SLARepository
- type SessionRepository
- type SessionSQLRepository
- func (r *SessionSQLRepository) Create(session *models.Session) error
- func (r *SessionSQLRepository) Delete(sessionID string) error
- func (r *SessionSQLRepository) DeleteByMaxAge(maxAge time.Duration) (int, error)
- func (r *SessionSQLRepository) DeleteByUserID(userID int) (int, error)
- func (r *SessionSQLRepository) DeleteExpired(maxAge time.Duration) (int, error)
- func (r *SessionSQLRepository) GetByID(sessionID string) (*models.Session, error)
- func (r *SessionSQLRepository) GetByUserID(userID int) ([]*models.Session, error)
- func (r *SessionSQLRepository) List() ([]*models.Session, error)
- func (r *SessionSQLRepository) UpdateLastRequest(sessionID string) error
- type SystemMaintenanceRepository
- func (r *SystemMaintenanceRepository) Create(m *models.SystemMaintenance) error
- func (r *SystemMaintenanceRepository) Delete(id int) error
- func (r *SystemMaintenanceRepository) GetByID(id int) (*models.SystemMaintenance, error)
- func (r *SystemMaintenanceRepository) IsActive() (*models.SystemMaintenance, error)
- func (r *SystemMaintenanceRepository) IsComing(withinMinutes int) (*models.SystemMaintenance, error)
- func (r *SystemMaintenanceRepository) List() ([]*models.SystemMaintenance, error)
- func (r *SystemMaintenanceRepository) ListValid() ([]*models.SystemMaintenance, error)
- func (r *SystemMaintenanceRepository) Update(m *models.SystemMaintenance) error
- type TicketMergeRepository
- type TicketPriorityRepository
- func (r *TicketPriorityRepository) Create(priority *models.TicketPriority) error
- func (r *TicketPriorityRepository) GetByID(id uint) (*models.TicketPriority, error)
- func (r *TicketPriorityRepository) GetByName(name string) (*models.TicketPriority, error)
- func (r *TicketPriorityRepository) GetDefault() (*models.TicketPriority, error)
- func (r *TicketPriorityRepository) GetHighPriorities() ([]*models.TicketPriority, error)
- func (r *TicketPriorityRepository) List() ([]*models.TicketPriority, error)
- func (r *TicketPriorityRepository) Update(priority *models.TicketPriority) error
- type TicketRepository
- func (r *TicketRepository) AddTicketHistoryEntry(ctx context.Context, exec interface{}, entry models.TicketHistoryInsert) error
- func (r *TicketRepository) ArchiveTicket(ticketID uint, userID uint) error
- func (r *TicketRepository) AutoClosePendingTickets(ctx context.Context, now time.Time, transitions map[string]string, ...) (*AutoCloseResult, error)
- func (r *TicketRepository) Count() (int, error)
- func (r *TicketRepository) CountByStateID(stateID int) (int, error)
- func (r *TicketRepository) CountByStatus(status string) (int, error)
- func (r *TicketRepository) CountClosedToday() (int, error)
- func (r *TicketRepository) Create(ticket *models.Ticket) error
- func (r *TicketRepository) Delete(id uint) error
- func (r *TicketRepository) FindDuePendingReminders(ctx context.Context, now time.Time, limit int) ([]*models.PendingReminder, error)
- func (r *TicketRepository) GetByID(id uint) (*models.Ticket, error)
- func (r *TicketRepository) GetByTN(tn string) (*models.Ticket, error)
- func (r *TicketRepository) GetByTicketNumber(ticketNumber string) (*models.Ticket, error)
- func (r *TicketRepository) GetDB() *sql.DB
- func (r *TicketRepository) GetQueues() ([]models.Queue, error)
- func (r *TicketRepository) GetTicketHistoryEntries(ticketID uint, limit int) ([]models.TicketHistoryEntry, error)
- func (r *TicketRepository) GetTicketLinks(ticketID uint, limit int) ([]models.TicketLink, error)
- func (r *TicketRepository) GetTicketPriorities() ([]models.TicketPriority, error)
- func (r *TicketRepository) GetTicketStateByID(stateID int) (*models.TicketState, error)
- func (r *TicketRepository) GetTicketStates() ([]models.TicketState, error)
- func (r *TicketRepository) GetTicketWithRelations(id uint) (*models.Ticket, error)
- func (r *TicketRepository) GetTicketsByCustomer(customerID uint, includeArchived bool) ([]models.Ticket, error)
- func (r *TicketRepository) GetTicketsByOwner(ownerID uint, includeArchived bool) ([]models.Ticket, error)
- func (r *TicketRepository) List(req *models.TicketListRequest) (*models.TicketListResponse, error)
- func (r *TicketRepository) LockTicket(ticketID uint, userID uint, lockType int) error
- func (r *TicketRepository) QueueExists(queueID int) (bool, error)
- func (r *TicketRepository) RestoreTicket(ticketID uint, userID uint) error
- func (r *TicketRepository) UnlockTicket(ticketID uint, userID uint) error
- func (r *TicketRepository) Update(ticket *models.Ticket) error
- func (r *TicketRepository) UpdatePriority(ticketID uint, priorityID uint, userID uint) error
- func (r *TicketRepository) UpdateQueue(ticketID uint, queueID uint, userID uint) error
- func (r *TicketRepository) UpdateStatus(ticketID uint, stateID uint, userID uint) error
- type TicketStateRepository
- func (r *TicketStateRepository) Create(state *models.TicketState) error
- func (r *TicketStateRepository) GetByID(id uint) (*models.TicketState, error)
- func (r *TicketStateRepository) GetByName(name string) (*models.TicketState, error)
- func (r *TicketStateRepository) GetByTypeID(typeID uint) ([]*models.TicketState, error)
- func (r *TicketStateRepository) GetClosedStates() ([]*models.TicketState, error)
- func (r *TicketStateRepository) GetOpenStates() ([]*models.TicketState, error)
- func (r *TicketStateRepository) List() ([]*models.TicketState, error)
- func (r *TicketStateRepository) Update(state *models.TicketState) error
- type TicketTemplateRepository
- type TimeAccountingRepository
- type UserGroupPermission
- type UserRepository
- func (r *UserRepository) Create(user *models.User) error
- func (r *UserRepository) Delete(id uint) error
- func (r *UserRepository) GetByEmail(email string) (*models.User, error)
- func (r *UserRepository) GetByID(id uint) (*models.User, error)
- func (r *UserRepository) GetByLogin(login string) (*models.User, error)
- func (r *UserRepository) GetUserGroups(userID uint) ([]string, error)
- func (r *UserRepository) List() ([]*models.User, error)
- func (r *UserRepository) ListWithGroups() ([]*models.User, error)
- func (r *UserRepository) SetValidID(id uint, validID int, changeBy uint, changeTime time.Time) error
- func (r *UserRepository) Update(user *models.User) error
- func (r *UserRepository) UpdateProfile(id uint, firstName, lastName, title string, changeBy uint, ...) error
- type WebserviceRepository
- func (r *WebserviceRepository) Create(ctx context.Context, ws *models.WebserviceConfig, userID int) (int, error)
- func (r *WebserviceRepository) Delete(ctx context.Context, id int) error
- func (r *WebserviceRepository) Exists(ctx context.Context, name string) (bool, error)
- func (r *WebserviceRepository) ExistsExcluding(ctx context.Context, name string, excludeID int) (bool, error)
- func (r *WebserviceRepository) GetByID(ctx context.Context, id int) (*models.WebserviceConfig, error)
- func (r *WebserviceRepository) GetByName(ctx context.Context, name string) (*models.WebserviceConfig, error)
- func (r *WebserviceRepository) GetHistory(ctx context.Context, configID int) ([]*models.WebserviceConfigHistory, error)
- func (r *WebserviceRepository) GetHistoryEntry(ctx context.Context, historyID int64) (*models.WebserviceConfigHistory, error)
- func (r *WebserviceRepository) GetValidWebservicesForField(ctx context.Context) ([]*models.WebserviceConfig, error)
- func (r *WebserviceRepository) List(ctx context.Context) ([]*models.WebserviceConfig, error)
- func (r *WebserviceRepository) ListValid(ctx context.Context) ([]*models.WebserviceConfig, error)
- func (r *WebserviceRepository) RestoreFromHistory(ctx context.Context, historyID int64, userID int) error
- func (r *WebserviceRepository) Update(ctx context.Context, ws *models.WebserviceConfig, userID int) error
- type WorkflowRepository
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func SetTicketNumberGenerator ¶
func SetTicketNumberGenerator(gen ticketnumber.Generator, store ticketnumber.CounterStore)
SetTicketNumberGenerator injects the global ticket number generator and store used by new repositories.
func TicketNumberGeneratorInfo ¶
TicketNumberGeneratorInfo returns current generator name and date-based flag.
Types ¶
type ACLRepository ¶
type ACLRepository struct {
// contains filtered or unexported fields
}
ACLRepository handles database operations for ACLs.
func NewACLRepository ¶
func NewACLRepository(db *sql.DB) *ACLRepository
NewACLRepository creates a new ACL repository.
func (*ACLRepository) GetACLByName ¶
GetACLByName returns a single ACL by name.
func (*ACLRepository) GetAllACLs ¶
GetAllACLs returns all ACLs regardless of validity.
func (*ACLRepository) GetValidACLs ¶
GetValidACLs returns all valid (enabled) ACLs ordered by name.
type APITokenRepository ¶
type APITokenRepository struct {
// contains filtered or unexported fields
}
APITokenRepository handles database operations for API tokens
func NewAPITokenRepository ¶
func NewAPITokenRepository(db *sql.DB) *APITokenRepository
NewAPITokenRepository creates a new API token repository
func (*APITokenRepository) GetByPrefix ¶
func (r *APITokenRepository) GetByPrefix(ctx context.Context, prefix string) ([]*models.APIToken, error)
GetByPrefix retrieves tokens matching a prefix (for verification)
func (*APITokenRepository) ListAll ¶
func (r *APITokenRepository) ListAll(ctx context.Context, includeRevoked bool) ([]*models.APIToken, error)
ListAll retrieves all tokens (admin only)
func (*APITokenRepository) ListByUser ¶
func (r *APITokenRepository) ListByUser(ctx context.Context, userID int, userType models.APITokenUserType) ([]*models.APIToken, error)
ListByUser retrieves all tokens for a user
func (*APITokenRepository) UpdateLastUsed ¶
UpdateLastUsed updates the last used timestamp and IP
type ArticleRepository ¶
type ArticleRepository struct {
// contains filtered or unexported fields
}
ArticleRepository handles database operations for articles.
func NewArticleRepository ¶
func NewArticleRepository(db *sql.DB) *ArticleRepository
NewArticleRepository creates a new article repository.
func (*ArticleRepository) CountArticlesForTicket ¶
func (r *ArticleRepository) CountArticlesForTicket(ticketID uint, includeInternal bool) (int, error)
CountArticlesForTicket counts the number of articles for a ticket.
func (*ArticleRepository) Create ¶
func (r *ArticleRepository) Create(article *models.Article) error
Create creates a new article in the database (OTRS schema compatible).
func (*ArticleRepository) CreateAttachment ¶
func (r *ArticleRepository) CreateAttachment(attachment *models.Attachment) error
CreateAttachment creates a new attachment for an article.
func (*ArticleRepository) Delete ¶
func (r *ArticleRepository) Delete(id uint, userID uint) error
Delete soft deletes an article by setting valid_id to 0.
func (*ArticleRepository) DeleteAttachment ¶
func (r *ArticleRepository) DeleteAttachment(id uint) error
DeleteAttachment removes an attachment.
func (*ArticleRepository) FindTicketByMessageID ¶
func (r *ArticleRepository) FindTicketByMessageID(ctx context.Context, messageID string) (*models.Ticket, error)
FindTicketByMessageID resolves the ticket owning the provided Message-ID header.
func (*ArticleRepository) GetArticleWithAttachments ¶
func (r *ArticleRepository) GetArticleWithAttachments(id uint) (*models.Article, error)
GetArticleWithAttachments retrieves an article with all its attachments.
func (*ArticleRepository) GetAttachmentByID ¶
func (r *ArticleRepository) GetAttachmentByID(id uint) (*models.Attachment, error)
GetAttachmentByID retrieves a specific attachment.
func (*ArticleRepository) GetAttachmentsByArticleID ¶
func (r *ArticleRepository) GetAttachmentsByArticleID(articleID uint) ([]models.Attachment, error)
GetAttachmentsByArticleID retrieves all attachments for an article.
func (*ArticleRepository) GetByID ¶
func (r *ArticleRepository) GetByID(id uint) (*models.Article, error)
GetByID retrieves an article by its ID (joins MIME content).
func (*ArticleRepository) GetByTicketID ¶
func (r *ArticleRepository) GetByTicketID(ticketID uint, includeInternal bool) ([]models.Article, error)
GetByTicketID retrieves all articles for a specific ticket.
func (*ArticleRepository) GetHTMLBodyAttachmentID ¶
func (r *ArticleRepository) GetHTMLBodyAttachmentID(articleID uint) (*uint, error)
GetHTMLBodyAttachmentID finds the HTML body attachment for an article (OTRS-style).
func (*ArticleRepository) GetHTMLBodyContent ¶
func (r *ArticleRepository) GetHTMLBodyContent(articleID uint) (string, error)
GetHTMLBodyContent retrieves the HTML body content for an article.
func (*ArticleRepository) GetLatestArticleForTicket ¶
func (r *ArticleRepository) GetLatestArticleForTicket(ticketID uint) (*models.Article, error)
GetLatestArticleForTicket retrieves the most recent article for a ticket.
func (*ArticleRepository) GetLatestCustomerArticleForTicket ¶
func (r *ArticleRepository) GetLatestCustomerArticleForTicket(ticketID uint) (*models.Article, error)
GetLatestCustomerArticleForTicket gets the most recent customer article for a ticket.
func (*ArticleRepository) GetSenderTypeColors ¶
func (r *ArticleRepository) GetSenderTypeColors() (map[int]string, error)
GetSenderTypeColors returns a map of sender_type_id to hex color. Colors are looked up by matching article_sender_type.name to article_color.name.
func (*ArticleRepository) GetVisibleArticlesForCustomer ¶
func (r *ArticleRepository) GetVisibleArticlesForCustomer(ticketID uint) ([]models.Article, error)
GetVisibleArticlesForCustomer retrieves all customer-visible articles for a ticket.
type AutoCloseResult ¶
AutoCloseResult captures how many tickets each transition touched.
type CannedResponseRepository ¶
type CannedResponseRepository interface {
// Response CRUD operations
CreateResponse(ctx context.Context, response *models.CannedResponse) error
GetResponseByID(ctx context.Context, id uint) (*models.CannedResponse, error)
GetResponseByShortcut(ctx context.Context, shortcut string) (*models.CannedResponse, error)
GetActiveResponses(ctx context.Context) ([]models.CannedResponse, error)
GetResponsesByCategory(ctx context.Context, category string) ([]models.CannedResponse, error)
GetResponsesForUser(ctx context.Context, userID uint) ([]models.CannedResponse, error)
UpdateResponse(ctx context.Context, response *models.CannedResponse) error
DeleteResponse(ctx context.Context, id uint) error
// Usage tracking
IncrementUsageCount(ctx context.Context, responseID uint) error
RecordUsage(ctx context.Context, usage *models.CannedResponseUsage) error
GetUsageHistory(ctx context.Context, responseID uint, limit int) ([]models.CannedResponseUsage, error)
// Search and filtering
SearchResponses(ctx context.Context, filter *models.CannedResponseFilter) ([]models.CannedResponse, error)
GetMostUsedResponses(ctx context.Context, limit int) ([]models.CannedResponse, error)
// Categories
GetCategories(ctx context.Context) ([]models.CannedResponseCategory, error)
}
CannedResponseRepository defines the interface for canned response persistence.
type DBRoleRepository ¶
type DBRoleRepository struct {
// contains filtered or unexported fields
}
DBRoleRepository handles database operations for roles.
func NewDBRoleRepository ¶
func NewDBRoleRepository(db *sql.DB) *DBRoleRepository
NewDBRoleRepository creates a new database role repository.
func (*DBRoleRepository) AddUserToRole ¶
func (r *DBRoleRepository) AddUserToRole(userID, roleID, createdBy int) error
AddUserToRole adds a user to a role.
func (*DBRoleRepository) Create ¶
func (r *DBRoleRepository) Create(role *models.DBRole) error
Create creates a new role.
func (*DBRoleRepository) Delete ¶
func (r *DBRoleRepository) Delete(id int) error
Delete deletes a role by ID.
func (*DBRoleRepository) GetByID ¶
func (r *DBRoleRepository) GetByID(id int) (*models.DBRole, error)
GetByID returns a role by ID.
func (*DBRoleRepository) GetByName ¶
func (r *DBRoleRepository) GetByName(name string) (*models.DBRole, error)
GetByName returns a role by name.
func (*DBRoleRepository) GetGroupCount ¶
func (r *DBRoleRepository) GetGroupCount(roleID int) (int, error)
GetGroupCount returns the number of groups assigned to a role.
func (*DBRoleRepository) GetUserCount ¶
func (r *DBRoleRepository) GetUserCount(roleID int) (int, error)
GetUserCount returns the number of users assigned to a role.
func (*DBRoleRepository) List ¶
func (r *DBRoleRepository) List() ([]*models.DBRole, error)
List returns all roles.
func (*DBRoleRepository) ListRoleUsers ¶
func (r *DBRoleRepository) ListRoleUsers(roleID int) ([]int, error)
ListRoleUsers returns all users assigned to a role.
func (*DBRoleRepository) ListUserRoles ¶
func (r *DBRoleRepository) ListUserRoles(userID int) ([]*models.DBRole, error)
ListUserRoles returns all roles assigned to a user.
func (*DBRoleRepository) RemoveUserFromRole ¶
func (r *DBRoleRepository) RemoveUserFromRole(userID, roleID int) error
RemoveUserFromRole removes a user from a role.
func (*DBRoleRepository) SetRoleUsers ¶
func (r *DBRoleRepository) SetRoleUsers(roleID int, userIDs []int, changedBy int) error
SetRoleUsers sets the users for a role (replaces all existing).
func (*DBRoleRepository) SetUserRoles ¶
func (r *DBRoleRepository) SetUserRoles(userID int, roleIDs []int, changedBy int) error
SetUserRoles sets the roles for a user (replaces all existing).
type EmailAccountRepository ¶
type EmailAccountRepository struct {
// contains filtered or unexported fields
}
func NewEmailAccountRepository ¶
func NewEmailAccountRepository(db *sql.DB) *EmailAccountRepository
func (*EmailAccountRepository) Create ¶
func (r *EmailAccountRepository) Create(account *models.EmailAccount) (int, error)
func (*EmailAccountRepository) Delete ¶
func (r *EmailAccountRepository) Delete(id int) error
func (*EmailAccountRepository) GetActiveAccounts ¶
func (r *EmailAccountRepository) GetActiveAccounts() ([]*models.EmailAccount, error)
func (*EmailAccountRepository) GetByEmail ¶
func (r *EmailAccountRepository) GetByEmail(email string) (*models.EmailAccount, error)
GetByEmail exists for backward compatibility; it delegates to GetByLogin.
func (*EmailAccountRepository) GetByID ¶
func (r *EmailAccountRepository) GetByID(id int) (*models.EmailAccount, error)
func (*EmailAccountRepository) GetByLogin ¶
func (r *EmailAccountRepository) GetByLogin(login string) (*models.EmailAccount, error)
GetByLogin returns an account by login (mailbox username).
func (*EmailAccountRepository) Update ¶
func (r *EmailAccountRepository) Update(account *models.EmailAccount) error
type EmailTemplateRepository ¶
type EmailTemplateRepository struct {
// contains filtered or unexported fields
}
func NewEmailTemplateRepository ¶
func NewEmailTemplateRepository(db *sql.DB) *EmailTemplateRepository
func (*EmailTemplateRepository) Create ¶
func (r *EmailTemplateRepository) Create(template *models.EmailTemplate) (int, error)
func (*EmailTemplateRepository) Delete ¶
func (r *EmailTemplateRepository) Delete(id int) error
func (*EmailTemplateRepository) GetAll ¶
func (r *EmailTemplateRepository) GetAll() ([]*models.EmailTemplate, error)
func (*EmailTemplateRepository) GetByID ¶
func (r *EmailTemplateRepository) GetByID(id int) (*models.EmailTemplate, error)
func (*EmailTemplateRepository) GetByName ¶
func (r *EmailTemplateRepository) GetByName(name string) (*models.EmailTemplate, error)
func (*EmailTemplateRepository) GetByType ¶
func (r *EmailTemplateRepository) GetByType(templateType string) ([]*models.EmailTemplate, error)
func (*EmailTemplateRepository) Update ¶
func (r *EmailTemplateRepository) Update(template *models.EmailTemplate) error
type ExecContext ¶
type ExecContext interface {
ExecContext(context.Context, string, ...interface{}) (sql.Result, error)
}
ExecContext represents the subset of database operations needed to insert history entries.
type FilterMatch ¶
type FilterMatch struct {
Key string // Header name (From, To, Subject, X-Custom-Header)
Value string // Regex pattern
Not bool // Negate match
}
FilterMatch represents a match condition in a postmaster filter.
type FilterSet ¶
type FilterSet struct {
Key string // X-GoatFlow-Queue, X-GoatFlow-Priority, etc.
Value string // Value to set
}
FilterSet represents a set action in a postmaster filter.
type GenericAgentRepository ¶
type GenericAgentRepository struct {
// contains filtered or unexported fields
}
GenericAgentRepository handles database operations for generic agent jobs.
func NewGenericAgentRepository ¶
func NewGenericAgentRepository(db *sql.DB) *GenericAgentRepository
NewGenericAgentRepository creates a new generic agent repository.
func (*GenericAgentRepository) GetAllJobs ¶
func (r *GenericAgentRepository) GetAllJobs(ctx context.Context) ([]*models.GenericAgentJob, error)
GetAllJobs returns all generic agent jobs regardless of validity.
func (*GenericAgentRepository) GetJob ¶
func (r *GenericAgentRepository) GetJob(ctx context.Context, name string) (*models.GenericAgentJob, error)
GetJob returns a single job by name.
func (*GenericAgentRepository) GetValidJobs ¶
func (r *GenericAgentRepository) GetValidJobs(ctx context.Context) ([]*models.GenericAgentJob, error)
GetValidJobs returns all valid (enabled) generic agent jobs.
func (*GenericAgentRepository) SetConfigValue ¶
func (r *GenericAgentRepository) SetConfigValue(ctx context.Context, name, key, value string) error
SetConfigValue sets a single config key-value for a job.
func (*GenericAgentRepository) UpdateLastRun ¶
func (r *GenericAgentRepository) UpdateLastRun(ctx context.Context, name string, runTime time.Time) error
UpdateLastRun updates the last run time for a job.
type GroupRepository ¶
type GroupRepository interface {
CreateGroup(ctx context.Context, group *models.Group) error
GetGroup(ctx context.Context, id string) (*models.Group, error)
GetGroupByName(ctx context.Context, name string) (*models.Group, error)
GetByName(ctx context.Context, name string) (*models.Group, error)
UpdateGroup(ctx context.Context, group *models.Group) error
DeleteGroup(ctx context.Context, id string) error
ListGroups(ctx context.Context) ([]models.Group, error)
AddUserToGroup(ctx context.Context, groupID, userID string) error
RemoveUserFromGroup(ctx context.Context, groupID, userID string) error
GetUserGroups(ctx context.Context, userID string) ([]models.Group, error)
}
GroupRepository defines the interface for group operations.
type GroupSQLRepository ¶
type GroupSQLRepository struct {
// contains filtered or unexported fields
}
GroupSQLRepository handles database operations for groups.
func NewGroupRepository ¶
func NewGroupRepository(db *sql.DB) *GroupSQLRepository
NewGroupRepository creates a new group repository.
func (*GroupSQLRepository) AddUserToGroup ¶
func (r *GroupSQLRepository) AddUserToGroup(userID uint, groupID uint) error
AddUserToGroup adds a user to a group.
func (*GroupSQLRepository) Create ¶
func (r *GroupSQLRepository) Create(group *models.Group) error
Create creates a new group.
func (*GroupSQLRepository) Delete ¶
func (r *GroupSQLRepository) Delete(id uint) error
Delete permanently deletes a group and removes all member associations.
func (*GroupSQLRepository) GetByID ¶
func (r *GroupSQLRepository) GetByID(id uint) (*models.Group, error)
GetByID retrieves a group by ID.
func (*GroupSQLRepository) GetByName ¶
func (r *GroupSQLRepository) GetByName(name string) (*models.Group, error)
GetByName retrieves a group by name.
func (*GroupSQLRepository) GetGroupMembers ¶
func (r *GroupSQLRepository) GetGroupMembers(groupID uint) ([]*models.User, error)
GetGroupMembers retrieves all users in a group.
func (*GroupSQLRepository) GetUserGroups ¶
func (r *GroupSQLRepository) GetUserGroups(userID uint) ([]string, error)
GetUserGroups retrieves group names for a user.
func (*GroupSQLRepository) List ¶
func (r *GroupSQLRepository) List() ([]*models.Group, error)
List retrieves all groups (both active and inactive).
func (*GroupSQLRepository) RemoveUserFromGroup ¶
func (r *GroupSQLRepository) RemoveUserFromGroup(userID uint, groupID uint) error
RemoveUserFromGroup removes a user from a group.
type ITicketRepository ¶
type ITicketRepository interface {
Create(ticket *models.Ticket) error
GetByID(id uint) (*models.Ticket, error)
Update(ticket *models.Ticket) error
Delete(id uint) error
List(req *models.TicketListRequest) (*models.TicketListResponse, error)
GetByTicketNumber(ticketNumber string) (*models.Ticket, error)
Count() (int, error)
CountByStatus(status string) (int, error)
// Dashboard statistics methods
CountByStateID(stateID int) (int, error)
CountClosedToday() (int, error)
}
ITicketRepository defines the interface for ticket data operations.
type InternalNoteRepository ¶
type InternalNoteRepository interface {
// Note CRUD operations
CreateNote(ctx context.Context, note *models.InternalNote) error
GetNoteByID(ctx context.Context, id uint) (*models.InternalNote, error)
GetNotesByTicket(ctx context.Context, ticketID uint) ([]models.InternalNote, error)
GetPinnedNotes(ctx context.Context, ticketID uint) ([]models.InternalNote, error)
GetImportantNotes(ctx context.Context, ticketID uint) ([]models.InternalNote, error)
UpdateNote(ctx context.Context, note *models.InternalNote) error
DeleteNote(ctx context.Context, id uint) error
// Search and filtering
SearchNotes(ctx context.Context, filter *models.NoteFilter) ([]models.InternalNote, error)
GetNotesByAuthor(ctx context.Context, authorID uint) ([]models.InternalNote, error)
GetNotesByCategory(ctx context.Context, category string) ([]models.InternalNote, error)
GetNotesByTags(ctx context.Context, tags []string) ([]models.InternalNote, error)
// Edit history
AddEditHistory(ctx context.Context, edit *models.NoteEdit) error
GetEditHistory(ctx context.Context, noteID uint) ([]models.NoteEdit, error)
// Statistics
GetNoteStatistics(ctx context.Context, ticketID uint) (*models.NoteStatistics, error)
// Categories
GetCategories(ctx context.Context) ([]models.NoteCategory, error)
CreateCategory(ctx context.Context, category *models.NoteCategory) error
UpdateCategory(ctx context.Context, category *models.NoteCategory) error
DeleteCategory(ctx context.Context, id uint) error
// Templates
CreateTemplate(ctx context.Context, template *models.NoteTemplate) error
GetTemplates(ctx context.Context) ([]models.NoteTemplate, error)
GetTemplateByID(ctx context.Context, id uint) (*models.NoteTemplate, error)
UpdateTemplate(ctx context.Context, template *models.NoteTemplate) error
DeleteTemplate(ctx context.Context, id uint) error
IncrementTemplateUsage(ctx context.Context, id uint) error
// Mentions
CreateMention(ctx context.Context, mention *models.NoteMention) error
GetMentionsByUser(ctx context.Context, userID uint) ([]models.NoteMention, error)
MarkMentionAsRead(ctx context.Context, mentionID uint) error
// Activity tracking
LogActivity(ctx context.Context, activity *models.NoteActivity) error
GetActivityLog(ctx context.Context, ticketID uint, limit int) ([]models.NoteActivity, error)
}
InternalNoteRepository defines the interface for internal note persistence.
type LDAPRepository ¶
type LDAPRepository interface {
// Configuration management
CreateConfig(config *models.LDAPConfiguration) error
UpdateConfig(config *models.LDAPConfiguration) error
GetConfigByID(id int) (*models.LDAPConfiguration, error)
GetActiveConfig() (*models.LDAPConfiguration, error)
ListConfigs() ([]*models.LDAPConfiguration, error)
DeleteConfig(id int) error
// Sync history
CreateSyncHistory(history *models.LDAPSyncHistory) error
UpdateSyncHistory(history *models.LDAPSyncHistory) error
GetSyncHistoryByID(id int) (*models.LDAPSyncHistory, error)
ListSyncHistory(configID int, limit, offset int) ([]*models.LDAPSyncHistory, error)
GetLatestSyncHistory(configID int) (*models.LDAPSyncHistory, error)
DeleteOldSyncHistory(configID int, keepDays int) error
// User mappings
CreateUserMapping(mapping *models.LDAPUserMapping) error
UpdateUserMapping(mapping *models.LDAPUserMapping) error
GetUserMappingByUserID(userID int) (*models.LDAPUserMapping, error)
GetUserMappingByLDAPDN(configID int, dn string) (*models.LDAPUserMapping, error)
GetUserMappingByLDAPGUID(configID int, guid string) (*models.LDAPUserMapping, error)
ListUserMappings(configID int) ([]*models.LDAPUserMapping, error)
DeleteUserMapping(id int) error
// Group mappings
CreateGroupMapping(mapping *models.LDAPGroupMapping) error
UpdateGroupMapping(mapping *models.LDAPGroupMapping) error
GetGroupMappingByGroupID(groupID int) (*models.LDAPGroupMapping, error)
GetGroupMappingByLDAPDN(configID int, dn string) (*models.LDAPGroupMapping, error)
GetGroupMappingByLDAPGUID(configID int, guid string) (*models.LDAPGroupMapping, error)
ListGroupMappings(configID int) ([]*models.LDAPGroupMapping, error)
DeleteGroupMapping(id int) error
// Authentication logs
CreateAuthLog(log *models.LDAPAuthenticationLog) error
GetAuthLogsByUsername(username string, limit int) ([]*models.LDAPAuthenticationLog, error)
GetAuthLogsByTimeRange(configID int, startTime, endTime time.Time) ([]*models.LDAPAuthenticationLog, error)
DeleteOldAuthLogs(configID int, keepDays int) error
// Statistics
GetSyncStatistics(configID int) (*models.LDAPSyncStatistics, error)
GetAuthStatistics(configID int, days int) (map[string]interface{}, error)
// Testing
RecordConnectionTest(test *models.LDAPConnectionTest) error
}
LDAPRepository defines the interface for LDAP configuration and sync data.
type LookupAuditLog ¶
type LookupAuditLog struct {
ID int `json:"id"`
EntityType string `json:"entity_type"` // queue, priority, type, status
EntityID int `json:"entity_id"`
Action string `json:"action"` // create, update, delete
OldValue string `json:"old_value"`
NewValue string `json:"new_value"`
UserID int `json:"user_id"`
UserEmail string `json:"user_email"`
Timestamp time.Time `json:"timestamp"`
IPAddress string `json:"ip_address"`
}
LookupAuditLog represents an audit log entry for lookup changes.
type LookupConfiguration ¶
type LookupConfiguration struct {
Version string `json:"version"`
ExportedAt time.Time `json:"exported_at"`
ExportedBy string `json:"exported_by"`
Queues []models.QueueInfo `json:"queues"`
Priorities []models.LookupItem `json:"priorities"`
Types []models.LookupItem `json:"types"`
Statuses []models.LookupItem `json:"statuses"`
}
LookupConfiguration represents exportable/importable configuration.
type LookupRepository ¶
type LookupRepository interface {
// Queue operations
GetQueues(ctx context.Context) ([]models.QueueInfo, error)
GetQueueByID(ctx context.Context, id int) (*models.QueueInfo, error)
CreateQueue(ctx context.Context, queue *models.QueueInfo) error
UpdateQueue(ctx context.Context, queue *models.QueueInfo) error
DeleteQueue(ctx context.Context, id int) error
// Priority operations
GetPriorities(ctx context.Context) ([]models.LookupItem, error)
GetPriorityByID(ctx context.Context, id int) (*models.LookupItem, error)
UpdatePriority(ctx context.Context, priority *models.LookupItem) error
// Type operations
GetTypes(ctx context.Context) ([]models.LookupItem, error)
GetTypeByID(ctx context.Context, id int) (*models.LookupItem, error)
CreateType(ctx context.Context, typ *models.LookupItem) error
UpdateType(ctx context.Context, typ *models.LookupItem) error
DeleteType(ctx context.Context, id int) error
// Status operations
GetStatuses(ctx context.Context) ([]models.LookupItem, error)
GetStatusByID(ctx context.Context, id int) (*models.LookupItem, error)
UpdateStatus(ctx context.Context, status *models.LookupItem) error
// Audit operations
LogChange(ctx context.Context, change *LookupAuditLog) error
GetAuditLogs(ctx context.Context, entityType string, entityID int, limit int) ([]LookupAuditLog, error)
// Export/Import operations
ExportConfiguration(ctx context.Context) (*LookupConfiguration, error)
ImportConfiguration(ctx context.Context, config *LookupConfiguration) error
}
LookupRepository defines the interface for lookup data persistence.
type MemoryCannedResponseRepository ¶
type MemoryCannedResponseRepository struct {
// contains filtered or unexported fields
}
MemoryCannedResponseRepository is an in-memory implementation of CannedResponseRepository.
func NewMemoryCannedResponseRepository ¶
func NewMemoryCannedResponseRepository() *MemoryCannedResponseRepository
NewMemoryCannedResponseRepository creates a new in-memory canned response repository.
func (*MemoryCannedResponseRepository) CreateResponse ¶
func (r *MemoryCannedResponseRepository) CreateResponse(ctx context.Context, response *models.CannedResponse) error
CreateResponse creates a new canned response.
func (*MemoryCannedResponseRepository) DeleteResponse ¶
func (r *MemoryCannedResponseRepository) DeleteResponse(ctx context.Context, id uint) error
DeleteResponse deletes a response.
func (*MemoryCannedResponseRepository) GetActiveResponses ¶
func (r *MemoryCannedResponseRepository) GetActiveResponses(ctx context.Context) ([]models.CannedResponse, error)
GetActiveResponses retrieves all active responses.
func (*MemoryCannedResponseRepository) GetCategories ¶
func (r *MemoryCannedResponseRepository) GetCategories(ctx context.Context) ([]models.CannedResponseCategory, error)
GetCategories retrieves all unique categories.
func (*MemoryCannedResponseRepository) GetMostUsedResponses ¶
func (r *MemoryCannedResponseRepository) GetMostUsedResponses(ctx context.Context, limit int) ([]models.CannedResponse, error)
GetMostUsedResponses returns the most frequently used responses.
func (*MemoryCannedResponseRepository) GetResponseByID ¶
func (r *MemoryCannedResponseRepository) GetResponseByID(ctx context.Context, id uint) (*models.CannedResponse, error)
GetResponseByID retrieves a response by ID.
func (*MemoryCannedResponseRepository) GetResponseByShortcut ¶
func (r *MemoryCannedResponseRepository) GetResponseByShortcut(ctx context.Context, shortcut string) (*models.CannedResponse, error)
GetResponseByShortcut retrieves a response by its shortcut.
func (*MemoryCannedResponseRepository) GetResponsesByCategory ¶
func (r *MemoryCannedResponseRepository) GetResponsesByCategory(ctx context.Context, category string) ([]models.CannedResponse, error)
GetResponsesByCategory retrieves responses by category.
func (*MemoryCannedResponseRepository) GetResponsesForUser ¶
func (r *MemoryCannedResponseRepository) GetResponsesForUser(ctx context.Context, userID uint) ([]models.CannedResponse, error)
GetResponsesForUser retrieves responses accessible to a specific user.
func (*MemoryCannedResponseRepository) GetUsageHistory ¶
func (r *MemoryCannedResponseRepository) GetUsageHistory(ctx context.Context, responseID uint, limit int) ([]models.CannedResponseUsage, error)
GetUsageHistory retrieves usage history for a response.
func (*MemoryCannedResponseRepository) IncrementUsageCount ¶
func (r *MemoryCannedResponseRepository) IncrementUsageCount(ctx context.Context, responseID uint) error
IncrementUsageCount increments the usage count of a response.
func (*MemoryCannedResponseRepository) RecordUsage ¶
func (r *MemoryCannedResponseRepository) RecordUsage(ctx context.Context, usage *models.CannedResponseUsage) error
RecordUsage records when a response was used.
func (*MemoryCannedResponseRepository) SearchResponses ¶
func (r *MemoryCannedResponseRepository) SearchResponses(ctx context.Context, filter *models.CannedResponseFilter) ([]models.CannedResponse, error)
SearchResponses searches responses based on filter criteria.
func (*MemoryCannedResponseRepository) UpdateResponse ¶
func (r *MemoryCannedResponseRepository) UpdateResponse(ctx context.Context, response *models.CannedResponse) error
UpdateResponse updates an existing response.
type MemoryInternalNoteRepository ¶
type MemoryInternalNoteRepository struct {
// contains filtered or unexported fields
}
MemoryInternalNoteRepository is an in-memory implementation of InternalNoteRepository.
func NewMemoryInternalNoteRepository ¶
func NewMemoryInternalNoteRepository() *MemoryInternalNoteRepository
NewMemoryInternalNoteRepository creates a new in-memory internal note repository.
func (*MemoryInternalNoteRepository) AddEditHistory ¶
func (r *MemoryInternalNoteRepository) AddEditHistory(ctx context.Context, edit *models.NoteEdit) error
AddEditHistory adds an edit history entry.
func (*MemoryInternalNoteRepository) CreateCategory ¶
func (r *MemoryInternalNoteRepository) CreateCategory(ctx context.Context, category *models.NoteCategory) error
CreateCategory creates a new category.
func (*MemoryInternalNoteRepository) CreateMention ¶
func (r *MemoryInternalNoteRepository) CreateMention(ctx context.Context, mention *models.NoteMention) error
CreateMention creates a new mention.
func (*MemoryInternalNoteRepository) CreateNote ¶
func (r *MemoryInternalNoteRepository) CreateNote(ctx context.Context, note *models.InternalNote) error
CreateNote creates a new internal note.
func (*MemoryInternalNoteRepository) CreateTemplate ¶
func (r *MemoryInternalNoteRepository) CreateTemplate(ctx context.Context, template *models.NoteTemplate) error
CreateTemplate creates a new template.
func (*MemoryInternalNoteRepository) DeleteCategory ¶
func (r *MemoryInternalNoteRepository) DeleteCategory(ctx context.Context, id uint) error
DeleteCategory deletes a category.
func (*MemoryInternalNoteRepository) DeleteNote ¶
func (r *MemoryInternalNoteRepository) DeleteNote(ctx context.Context, id uint) error
DeleteNote deletes a note.
func (*MemoryInternalNoteRepository) DeleteTemplate ¶
func (r *MemoryInternalNoteRepository) DeleteTemplate(ctx context.Context, id uint) error
DeleteTemplate deletes a template.
func (*MemoryInternalNoteRepository) GetActivityLog ¶
func (r *MemoryInternalNoteRepository) GetActivityLog(ctx context.Context, ticketID uint, limit int) ([]models.NoteActivity, error)
GetActivityLog retrieves activity log for a ticket.
func (*MemoryInternalNoteRepository) GetCategories ¶
func (r *MemoryInternalNoteRepository) GetCategories(ctx context.Context) ([]models.NoteCategory, error)
GetCategories retrieves all unique categories.
func (*MemoryInternalNoteRepository) GetEditHistory ¶
func (r *MemoryInternalNoteRepository) GetEditHistory(ctx context.Context, noteID uint) ([]models.NoteEdit, error)
GetEditHistory retrieves edit history for a note.
func (*MemoryInternalNoteRepository) GetImportantNotes ¶
func (r *MemoryInternalNoteRepository) GetImportantNotes(ctx context.Context, ticketID uint) ([]models.InternalNote, error)
GetImportantNotes retrieves important notes for a ticket.
func (*MemoryInternalNoteRepository) GetMentionsByUser ¶
func (r *MemoryInternalNoteRepository) GetMentionsByUser(ctx context.Context, userID uint) ([]models.NoteMention, error)
GetMentionsByUser retrieves mentions for a user.
func (*MemoryInternalNoteRepository) GetNoteByID ¶
func (r *MemoryInternalNoteRepository) GetNoteByID(ctx context.Context, id uint) (*models.InternalNote, error)
GetNoteByID retrieves a note by ID.
func (*MemoryInternalNoteRepository) GetNoteStatistics ¶
func (r *MemoryInternalNoteRepository) GetNoteStatistics(ctx context.Context, ticketID uint) (*models.NoteStatistics, error)
GetNoteStatistics retrieves statistics for notes.
func (*MemoryInternalNoteRepository) GetNotesByAuthor ¶
func (r *MemoryInternalNoteRepository) GetNotesByAuthor(ctx context.Context, authorID uint) ([]models.InternalNote, error)
GetNotesByAuthor retrieves notes by author.
func (*MemoryInternalNoteRepository) GetNotesByCategory ¶
func (r *MemoryInternalNoteRepository) GetNotesByCategory(ctx context.Context, category string) ([]models.InternalNote, error)
GetNotesByCategory retrieves notes by category.
func (*MemoryInternalNoteRepository) GetNotesByTags ¶
func (r *MemoryInternalNoteRepository) GetNotesByTags(ctx context.Context, tags []string) ([]models.InternalNote, error)
GetNotesByTags retrieves notes by tags.
func (*MemoryInternalNoteRepository) GetNotesByTicket ¶
func (r *MemoryInternalNoteRepository) GetNotesByTicket(ctx context.Context, ticketID uint) ([]models.InternalNote, error)
GetNotesByTicket retrieves all notes for a ticket.
func (*MemoryInternalNoteRepository) GetPinnedNotes ¶
func (r *MemoryInternalNoteRepository) GetPinnedNotes(ctx context.Context, ticketID uint) ([]models.InternalNote, error)
GetPinnedNotes retrieves pinned notes for a ticket.
func (*MemoryInternalNoteRepository) GetTemplateByID ¶
func (r *MemoryInternalNoteRepository) GetTemplateByID(ctx context.Context, id uint) (*models.NoteTemplate, error)
GetTemplateByID retrieves a template by ID.
func (*MemoryInternalNoteRepository) GetTemplates ¶
func (r *MemoryInternalNoteRepository) GetTemplates(ctx context.Context) ([]models.NoteTemplate, error)
GetTemplates retrieves all templates.
func (*MemoryInternalNoteRepository) IncrementTemplateUsage ¶
func (r *MemoryInternalNoteRepository) IncrementTemplateUsage(ctx context.Context, id uint) error
IncrementTemplateUsage increments the usage count of a template.
func (*MemoryInternalNoteRepository) LogActivity ¶
func (r *MemoryInternalNoteRepository) LogActivity(ctx context.Context, activity *models.NoteActivity) error
LogActivity logs an activity.
func (*MemoryInternalNoteRepository) MarkMentionAsRead ¶
func (r *MemoryInternalNoteRepository) MarkMentionAsRead(ctx context.Context, mentionID uint) error
MarkMentionAsRead marks a mention as read.
func (*MemoryInternalNoteRepository) SearchNotes ¶
func (r *MemoryInternalNoteRepository) SearchNotes(ctx context.Context, filter *models.NoteFilter) ([]models.InternalNote, error)
SearchNotes searches notes based on filter criteria.
func (*MemoryInternalNoteRepository) UpdateCategory ¶
func (r *MemoryInternalNoteRepository) UpdateCategory(ctx context.Context, category *models.NoteCategory) error
UpdateCategory updates a category.
func (*MemoryInternalNoteRepository) UpdateNote ¶
func (r *MemoryInternalNoteRepository) UpdateNote(ctx context.Context, note *models.InternalNote) error
UpdateNote updates an existing note.
func (*MemoryInternalNoteRepository) UpdateTemplate ¶
func (r *MemoryInternalNoteRepository) UpdateTemplate(ctx context.Context, template *models.NoteTemplate) error
UpdateTemplate updates a template.
type MemoryLookupRepository ¶
type MemoryLookupRepository struct {
// contains filtered or unexported fields
}
MemoryLookupRepository is an in-memory implementation of LookupRepository.
func NewMemoryLookupRepository ¶
func NewMemoryLookupRepository() *MemoryLookupRepository
NewMemoryLookupRepository creates a new in-memory lookup repository with default data.
func (*MemoryLookupRepository) CreateQueue ¶
func (*MemoryLookupRepository) CreateType ¶
func (r *MemoryLookupRepository) CreateType(ctx context.Context, typ *models.LookupItem) error
func (*MemoryLookupRepository) DeleteQueue ¶
func (r *MemoryLookupRepository) DeleteQueue(ctx context.Context, id int) error
func (*MemoryLookupRepository) DeleteType ¶
func (r *MemoryLookupRepository) DeleteType(ctx context.Context, id int) error
func (*MemoryLookupRepository) ExportConfiguration ¶
func (r *MemoryLookupRepository) ExportConfiguration(ctx context.Context) (*LookupConfiguration, error)
Export/Import operations.
func (*MemoryLookupRepository) GetAuditLogs ¶
func (r *MemoryLookupRepository) GetAuditLogs(ctx context.Context, entityType string, entityID int, limit int) ([]LookupAuditLog, error)
func (*MemoryLookupRepository) GetPriorities ¶
func (r *MemoryLookupRepository) GetPriorities(ctx context.Context) ([]models.LookupItem, error)
Priority operations.
func (*MemoryLookupRepository) GetPriorityByID ¶
func (r *MemoryLookupRepository) GetPriorityByID(ctx context.Context, id int) (*models.LookupItem, error)
func (*MemoryLookupRepository) GetQueueByID ¶
func (*MemoryLookupRepository) GetStatusByID ¶
func (r *MemoryLookupRepository) GetStatusByID(ctx context.Context, id int) (*models.LookupItem, error)
func (*MemoryLookupRepository) GetStatuses ¶
func (r *MemoryLookupRepository) GetStatuses(ctx context.Context) ([]models.LookupItem, error)
Status operations.
func (*MemoryLookupRepository) GetTypeByID ¶
func (r *MemoryLookupRepository) GetTypeByID(ctx context.Context, id int) (*models.LookupItem, error)
func (*MemoryLookupRepository) GetTypes ¶
func (r *MemoryLookupRepository) GetTypes(ctx context.Context) ([]models.LookupItem, error)
Type operations.
func (*MemoryLookupRepository) ImportConfiguration ¶
func (r *MemoryLookupRepository) ImportConfiguration(ctx context.Context, config *LookupConfiguration) error
func (*MemoryLookupRepository) LogChange ¶
func (r *MemoryLookupRepository) LogChange(ctx context.Context, change *LookupAuditLog) error
Audit operations.
func (*MemoryLookupRepository) UpdatePriority ¶
func (r *MemoryLookupRepository) UpdatePriority(ctx context.Context, priority *models.LookupItem) error
func (*MemoryLookupRepository) UpdateQueue ¶
func (*MemoryLookupRepository) UpdateStatus ¶
func (r *MemoryLookupRepository) UpdateStatus(ctx context.Context, status *models.LookupItem) error
func (*MemoryLookupRepository) UpdateType ¶
func (r *MemoryLookupRepository) UpdateType(ctx context.Context, typ *models.LookupItem) error
type MemorySLARepository ¶
type MemorySLARepository struct {
// contains filtered or unexported fields
}
MemorySLARepository is an in-memory implementation of SLARepository.
func NewMemorySLARepository ¶
func NewMemorySLARepository() *MemorySLARepository
NewMemorySLARepository creates a new in-memory SLA repository.
func (*MemorySLARepository) AddHoliday ¶
func (r *MemorySLARepository) AddHoliday(ctx context.Context, holiday *models.SLAHoliday) error
AddHoliday adds a holiday to a calendar.
func (*MemorySLARepository) CreateBusinessCalendar ¶
func (r *MemorySLARepository) CreateBusinessCalendar(ctx context.Context, calendar *models.BusinessCalendar) error
CreateBusinessCalendar creates a new business calendar.
func (*MemorySLARepository) CreateTicketSLA ¶
func (r *MemorySLARepository) CreateTicketSLA(ctx context.Context, ticketSLA *models.TicketSLA) error
CreateTicketSLA creates a new ticket SLA tracking record.
func (*MemorySLARepository) DeleteSLA ¶
func (r *MemorySLARepository) DeleteSLA(ctx context.Context, id uint) error
DeleteSLA deletes an SLA.
func (*MemorySLARepository) FindApplicableSLA ¶
func (r *MemorySLARepository) FindApplicableSLA(ctx context.Context, queueID uint, priority int, ticketType string, tags []string) (*models.SLA, error)
FindApplicableSLA finds the best matching SLA for given conditions.
func (*MemorySLARepository) GetAllSLAs ¶
func (r *MemorySLARepository) GetAllSLAs(ctx context.Context, activeOnly bool) ([]models.SLA, error)
GetAllSLAs retrieves all SLAs.
func (*MemorySLARepository) GetBusinessCalendar ¶
func (r *MemorySLARepository) GetBusinessCalendar(ctx context.Context, id uint) (*models.BusinessCalendar, error)
GetBusinessCalendar retrieves a business calendar.
func (*MemorySLARepository) GetEscalationHistory ¶
func (r *MemorySLARepository) GetEscalationHistory(ctx context.Context, ticketSLAID uint) ([]models.SLAEscalationHistory, error)
GetEscalationHistory gets escalation history for a ticket SLA.
func (*MemorySLARepository) GetHolidays ¶
func (r *MemorySLARepository) GetHolidays(ctx context.Context, calendarID uint) ([]models.SLAHoliday, error)
GetHolidays gets holidays for a calendar.
func (*MemorySLARepository) GetSLAMetrics ¶
func (r *MemorySLARepository) GetSLAMetrics(ctx context.Context, slaID uint, from, to time.Time) (*models.SLAMetrics, error)
GetSLAMetrics calculates SLA metrics for a specific SLA.
func (*MemorySLARepository) GetSLAReport ¶
func (r *MemorySLARepository) GetSLAReport(ctx context.Context, from, to time.Time) (*models.SLAReport, error)
GetSLAReport generates an SLA report.
func (*MemorySLARepository) GetTicketSLA ¶
func (r *MemorySLARepository) GetTicketSLA(ctx context.Context, ticketID uint) (*models.TicketSLA, error)
GetTicketSLA retrieves ticket SLA by ticket ID.
func (*MemorySLARepository) PauseSLA ¶
func (r *MemorySLARepository) PauseSLA(ctx context.Context, pauseReason *models.SLAPauseReason) error
PauseSLA pauses SLA tracking.
func (*MemorySLARepository) RecordEscalation ¶
func (r *MemorySLARepository) RecordEscalation(ctx context.Context, escalation *models.SLAEscalationHistory) error
RecordEscalation records an escalation event.
func (*MemorySLARepository) ResumeSLA ¶
func (r *MemorySLARepository) ResumeSLA(ctx context.Context, ticketSLAID uint) error
ResumeSLA resumes SLA tracking.
func (*MemorySLARepository) UpdateBusinessCalendar ¶
func (r *MemorySLARepository) UpdateBusinessCalendar(ctx context.Context, calendar *models.BusinessCalendar) error
UpdateBusinessCalendar updates a business calendar.
func (*MemorySLARepository) UpdateTicketSLA ¶
func (r *MemorySLARepository) UpdateTicketSLA(ctx context.Context, ticketSLA *models.TicketSLA) error
UpdateTicketSLA updates a ticket SLA record.
type MemorySessionRepository ¶
type MemorySessionRepository struct {
// contains filtered or unexported fields
}
MemorySessionRepository is an in-memory implementation of session storage for testing.
func NewMemorySessionRepository ¶
func NewMemorySessionRepository() *MemorySessionRepository
NewMemorySessionRepository creates a new in-memory session repository.
func (*MemorySessionRepository) Create ¶
func (r *MemorySessionRepository) Create(session *models.Session) error
Create stores a new session.
func (*MemorySessionRepository) Delete ¶
func (r *MemorySessionRepository) Delete(sessionID string) error
Delete removes a session by its ID.
func (*MemorySessionRepository) DeleteByMaxAge ¶
func (r *MemorySessionRepository) DeleteByMaxAge(maxAge time.Duration) (int, error)
DeleteByMaxAge removes all sessions created more than maxAge ago. This enforces the maximum session lifetime regardless of activity.
func (*MemorySessionRepository) DeleteByUserID ¶
func (r *MemorySessionRepository) DeleteByUserID(userID int) (int, error)
DeleteByUserID removes all sessions for a specific user.
func (*MemorySessionRepository) DeleteExpired ¶
func (r *MemorySessionRepository) DeleteExpired(maxAge time.Duration) (int, error)
DeleteExpired removes all sessions older than the specified duration.
func (*MemorySessionRepository) GetByID ¶
func (r *MemorySessionRepository) GetByID(sessionID string) (*models.Session, error)
GetByID retrieves a session by its ID.
func (*MemorySessionRepository) GetByUserID ¶
func (r *MemorySessionRepository) GetByUserID(userID int) ([]*models.Session, error)
GetByUserID retrieves all sessions for a specific user.
func (*MemorySessionRepository) List ¶
func (r *MemorySessionRepository) List() ([]*models.Session, error)
List retrieves all sessions.
func (*MemorySessionRepository) UpdateLastRequest ¶
func (r *MemorySessionRepository) UpdateLastRequest(sessionID string) error
UpdateLastRequest updates the last request time for a session.
type MemoryTicketMergeRepository ¶
type MemoryTicketMergeRepository struct {
// contains filtered or unexported fields
}
MemoryTicketMergeRepository is an in-memory implementation of TicketMergeRepository.
func NewMemoryTicketMergeRepository ¶
func NewMemoryTicketMergeRepository() *MemoryTicketMergeRepository
NewMemoryTicketMergeRepository creates a new in-memory ticket merge repository.
func (*MemoryTicketMergeRepository) CreateMerge ¶
func (r *MemoryTicketMergeRepository) CreateMerge(ctx context.Context, merge *models.TicketMerge) error
CreateMerge creates a new merge record.
func (*MemoryTicketMergeRepository) CreateTicketRelation ¶
func (r *MemoryTicketMergeRepository) CreateTicketRelation(ctx context.Context, relation *models.TicketRelation) error
CreateTicketRelation creates a new ticket relation.
func (*MemoryTicketMergeRepository) DeleteTicketRelation ¶
func (r *MemoryTicketMergeRepository) DeleteTicketRelation(ctx context.Context, relationID uint) error
DeleteTicketRelation deletes a ticket relation.
func (*MemoryTicketMergeRepository) GetAllChildren ¶
func (r *MemoryTicketMergeRepository) GetAllChildren(ctx context.Context, parentID uint) ([]uint, error)
GetAllChildren retrieves all child ticket IDs for a parent.
func (*MemoryTicketMergeRepository) GetMerge ¶
func (r *MemoryTicketMergeRepository) GetMerge(ctx context.Context, id uint) (*models.TicketMerge, error)
GetMerge retrieves a merge by ID.
func (*MemoryTicketMergeRepository) GetMergeByChild ¶
func (r *MemoryTicketMergeRepository) GetMergeByChild(ctx context.Context, childID uint) (*models.TicketMerge, error)
GetMergeByChild retrieves the merge record for a child ticket.
func (*MemoryTicketMergeRepository) GetMergeHistory ¶
func (r *MemoryTicketMergeRepository) GetMergeHistory(ctx context.Context, ticketID uint) ([]models.TicketMerge, error)
GetMergeHistory retrieves all merge history for a ticket.
func (*MemoryTicketMergeRepository) GetMergeStatistics ¶
func (r *MemoryTicketMergeRepository) GetMergeStatistics(ctx context.Context, from, to time.Time) (*models.MergeStatistics, error)
GetMergeStatistics generates merge statistics.
func (*MemoryTicketMergeRepository) GetMergesByParent ¶
func (r *MemoryTicketMergeRepository) GetMergesByParent(ctx context.Context, parentID uint) ([]models.TicketMerge, error)
GetMergesByParent retrieves all active merges for a parent ticket.
func (*MemoryTicketMergeRepository) GetTicketRelations ¶
func (r *MemoryTicketMergeRepository) GetTicketRelations(ctx context.Context, ticketID uint) ([]models.TicketRelation, error)
GetTicketRelations retrieves all relations for a ticket.
func (*MemoryTicketMergeRepository) UnmergeTicket ¶
func (r *MemoryTicketMergeRepository) UnmergeTicket(ctx context.Context, mergeID uint, unmergedBy uint) error
UnmergeTicket marks a merge as inactive.
type MemoryTicketRepository ¶
type MemoryTicketRepository struct {
// contains filtered or unexported fields
}
MemoryTicketRepository implements TicketRepository with in-memory storage This is for development/testing. Production should use PostgreSQL implementation.
func NewMemoryTicketRepository ¶
func NewMemoryTicketRepository() *MemoryTicketRepository
NewMemoryTicketRepository creates a new in-memory ticket repository.
func (*MemoryTicketRepository) Count ¶
func (r *MemoryTicketRepository) Count() (int, error)
Count returns the total number of tickets.
func (*MemoryTicketRepository) CountByStatus ¶
func (r *MemoryTicketRepository) CountByStatus(status string) (int, error)
CountByStatus returns the count of tickets by status.
func (*MemoryTicketRepository) Create ¶
func (r *MemoryTicketRepository) Create(ticket *models.Ticket) error
Create saves a new ticket to memory.
func (*MemoryTicketRepository) Delete ¶
func (r *MemoryTicketRepository) Delete(id uint) error
Delete removes a ticket from memory.
func (*MemoryTicketRepository) GetByID ¶
func (r *MemoryTicketRepository) GetByID(id uint) (*models.Ticket, error)
GetByID retrieves a ticket by its ID.
func (*MemoryTicketRepository) GetByTicketNumber ¶
func (r *MemoryTicketRepository) GetByTicketNumber(ticketNumber string) (*models.Ticket, error)
GetByTicketNumber retrieves a ticket by its ticket number.
func (*MemoryTicketRepository) List ¶
func (r *MemoryTicketRepository) List(req *models.TicketListRequest) (*models.TicketListResponse, error)
List returns a paginated list of tickets.
type MemoryTicketTemplateRepository ¶
type MemoryTicketTemplateRepository struct {
// contains filtered or unexported fields
}
MemoryTicketTemplateRepository is an in-memory implementation of TicketTemplateRepository.
func NewMemoryTicketTemplateRepository ¶
func NewMemoryTicketTemplateRepository() *MemoryTicketTemplateRepository
NewMemoryTicketTemplateRepository creates a new in-memory ticket template repository.
func (*MemoryTicketTemplateRepository) CreateTemplate ¶
func (r *MemoryTicketTemplateRepository) CreateTemplate(ctx context.Context, template *models.TicketTemplate) error
CreateTemplate creates a new template.
func (*MemoryTicketTemplateRepository) DeleteTemplate ¶
func (r *MemoryTicketTemplateRepository) DeleteTemplate(ctx context.Context, id uint) error
DeleteTemplate deletes a template.
func (*MemoryTicketTemplateRepository) GetActiveTemplates ¶
func (r *MemoryTicketTemplateRepository) GetActiveTemplates(ctx context.Context) ([]models.TicketTemplate, error)
GetActiveTemplates retrieves all active templates.
func (*MemoryTicketTemplateRepository) GetCategories ¶
func (r *MemoryTicketTemplateRepository) GetCategories(ctx context.Context) ([]models.TemplateCategory, error)
GetCategories retrieves all unique categories.
func (*MemoryTicketTemplateRepository) GetTemplateByID ¶
func (r *MemoryTicketTemplateRepository) GetTemplateByID(ctx context.Context, id uint) (*models.TicketTemplate, error)
GetTemplateByID retrieves a template by ID.
func (*MemoryTicketTemplateRepository) GetTemplatesByCategory ¶
func (r *MemoryTicketTemplateRepository) GetTemplatesByCategory(ctx context.Context, category string) ([]models.TicketTemplate, error)
GetTemplatesByCategory retrieves templates by category.
func (*MemoryTicketTemplateRepository) IncrementUsageCount ¶
func (r *MemoryTicketTemplateRepository) IncrementUsageCount(ctx context.Context, templateID uint) error
IncrementUsageCount increments the usage count of a template.
func (*MemoryTicketTemplateRepository) SearchTemplates ¶
func (r *MemoryTicketTemplateRepository) SearchTemplates(ctx context.Context, query string) ([]models.TicketTemplate, error)
SearchTemplates searches templates by query string.
func (*MemoryTicketTemplateRepository) UpdateTemplate ¶
func (r *MemoryTicketTemplateRepository) UpdateTemplate(ctx context.Context, template *models.TicketTemplate) error
UpdateTemplate updates an existing template.
type PermissionKey ¶
type PermissionKey string
PermissionKey represents the OTRS permission types.
const ( PermissionRO PermissionKey = "ro" // Read Only PermissionMoveInto PermissionKey = "move_into" // Move tickets into queue PermissionCreate PermissionKey = "create" // Create tickets in queue PermissionNote PermissionKey = "note" // Add notes to tickets PermissionOwner PermissionKey = "owner" // Become ticket owner PermissionPriority PermissionKey = "priority" // Change ticket priority PermissionRW PermissionKey = "rw" // Read/Write (full access) )
type PermissionRepository ¶
type PermissionRepository struct {
// contains filtered or unexported fields
}
PermissionRepository handles database operations for permissions.
func NewPermissionRepository ¶
func NewPermissionRepository(db *sql.DB) *PermissionRepository
NewPermissionRepository creates a new permission repository.
func (*PermissionRepository) GetAllUserGroupPermissions ¶
func (r *PermissionRepository) GetAllUserGroupPermissions() ([]UserGroupPermission, error)
GetAllUserGroupPermissions gets complete permission matrix for all users and groups.
func (*PermissionRepository) GetGroupPermissions ¶
func (r *PermissionRepository) GetGroupPermissions(groupID uint) (map[uint][]string, error)
GetGroupPermissions retrieves all users and their permissions for a group.
func (*PermissionRepository) GetUserGroupMatrix ¶
func (r *PermissionRepository) GetUserGroupMatrix(userID, groupID uint) (map[string]bool, error)
GetUserGroupMatrix gets all permissions for a specific user-group combination.
func (*PermissionRepository) GetUserPermissions ¶
func (r *PermissionRepository) GetUserPermissions(userID uint) (map[uint][]string, error)
GetUserPermissions retrieves all permissions for a user.
func (*PermissionRepository) RemoveUserGroupPermission ¶
func (r *PermissionRepository) RemoveUserGroupPermission(userID, groupID uint, permKey string) error
RemoveUserGroupPermission removes a specific permission.
func (*PermissionRepository) SetUserGroupMatrix ¶
func (r *PermissionRepository) SetUserGroupMatrix(userID, groupID uint, permissions map[string]bool) error
SetUserGroupMatrix sets all permissions for a user-group combination.
func (*PermissionRepository) SetUserGroupPermission ¶
func (r *PermissionRepository) SetUserGroupPermission(userID, groupID uint, permKey string, value int) error
SetUserGroupPermission sets or updates a permission.
type PostmasterFilter ¶
type PostmasterFilter struct {
Name string
Stop bool
Matches []FilterMatch // f_type='Match' rows
Sets []FilterSet // f_type='Set' rows
}
PostmasterFilter represents a grouped postmaster filter with its match and set rules.
type PostmasterFilterRepository ¶
type PostmasterFilterRepository struct {
// contains filtered or unexported fields
}
PostmasterFilterRepository handles database operations for postmaster filters.
func NewPostmasterFilterRepository ¶
func NewPostmasterFilterRepository(db *sql.DB) *PostmasterFilterRepository
NewPostmasterFilterRepository creates a new repository instance.
func (*PostmasterFilterRepository) Create ¶
func (r *PostmasterFilterRepository) Create(ctx context.Context, filter *PostmasterFilter) error
Create creates a new postmaster filter with its match and set rules.
func (*PostmasterFilterRepository) Delete ¶
func (r *PostmasterFilterRepository) Delete(ctx context.Context, name string) error
Delete removes a postmaster filter and all its rules.
func (*PostmasterFilterRepository) Get ¶
func (r *PostmasterFilterRepository) Get(ctx context.Context, name string) (*PostmasterFilter, error)
Get returns a single postmaster filter by name.
func (*PostmasterFilterRepository) List ¶
func (r *PostmasterFilterRepository) List(ctx context.Context) ([]PostmasterFilter, error)
List returns all postmaster filters grouped by name.
func (*PostmasterFilterRepository) Update ¶
func (r *PostmasterFilterRepository) Update(ctx context.Context, name string, filter *PostmasterFilter) error
Update updates an existing postmaster filter by replacing all its rules.
type PriorityRepository ¶
type PriorityRepository struct {
// contains filtered or unexported fields
}
PriorityRepository handles database operations for ticket priorities.
func NewPriorityRepository ¶
func NewPriorityRepository(db *sql.DB) *PriorityRepository
NewPriorityRepository creates a new priority repository.
func (*PriorityRepository) GetByID ¶
func (r *PriorityRepository) GetByID(id uint) (*models.TicketPriority, error)
GetByID retrieves a priority by ID.
func (*PriorityRepository) GetByName ¶
func (r *PriorityRepository) GetByName(name string) (*models.TicketPriority, error)
GetByName retrieves a priority by name.
func (*PriorityRepository) List ¶
func (r *PriorityRepository) List() ([]*models.TicketPriority, error)
List retrieves all active priorities.
type QueueRepository ¶
type QueueRepository struct {
// contains filtered or unexported fields
}
QueueRepository handles database operations for queues.
func NewQueueRepository ¶
func NewQueueRepository(db *sql.DB) *QueueRepository
NewQueueRepository creates a new queue repository.
func (*QueueRepository) Create ¶
func (r *QueueRepository) Create(queue *models.Queue) error
Create creates a new queue.
func (*QueueRepository) GetByID ¶
func (r *QueueRepository) GetByID(id uint) (*models.Queue, error)
GetByID retrieves a queue by ID.
func (*QueueRepository) GetByName ¶
func (r *QueueRepository) GetByName(name string) (*models.Queue, error)
GetByName retrieves a queue by name.
type RoleRepository ¶
type RoleRepository interface {
CreateRole(ctx context.Context, role *models.Role) error
GetRole(ctx context.Context, id string) (*models.Role, error)
GetRoleByName(ctx context.Context, name string) (*models.Role, error)
GetByName(ctx context.Context, name string) (*models.Role, error)
UpdateRole(ctx context.Context, role *models.Role) error
DeleteRole(ctx context.Context, id string) error
ListRoles(ctx context.Context) ([]models.Role, error)
}
RoleRepository defines the interface for role operations.
type SLARepository ¶
type SLARepository interface {
// SLA management
CreateSLA(ctx context.Context, sla *models.SLA) error
GetSLA(ctx context.Context, id uint) (*models.SLA, error)
GetAllSLAs(ctx context.Context, activeOnly bool) ([]models.SLA, error)
UpdateSLA(ctx context.Context, sla *models.SLA) error
DeleteSLA(ctx context.Context, id uint) error
FindApplicableSLA(ctx context.Context, queueID uint, priority int, ticketType string, tags []string) (*models.SLA, error)
// Ticket SLA tracking
CreateTicketSLA(ctx context.Context, ticketSLA *models.TicketSLA) error
GetTicketSLA(ctx context.Context, ticketID uint) (*models.TicketSLA, error)
UpdateTicketSLA(ctx context.Context, ticketSLA *models.TicketSLA) error
GetSLAMetrics(ctx context.Context, slaID uint, from, to time.Time) (*models.SLAMetrics, error)
// Business calendar
CreateBusinessCalendar(ctx context.Context, calendar *models.BusinessCalendar) error
GetBusinessCalendar(ctx context.Context, id uint) (*models.BusinessCalendar, error)
UpdateBusinessCalendar(ctx context.Context, calendar *models.BusinessCalendar) error
AddHoliday(ctx context.Context, holiday *models.SLAHoliday) error
GetHolidays(ctx context.Context, calendarID uint) ([]models.SLAHoliday, error)
// Escalation tracking
RecordEscalation(ctx context.Context, escalation *models.SLAEscalationHistory) error
GetEscalationHistory(ctx context.Context, ticketSLAID uint) ([]models.SLAEscalationHistory, error)
// SLA pause/resume
PauseSLA(ctx context.Context, pauseReason *models.SLAPauseReason) error
ResumeSLA(ctx context.Context, ticketSLAID uint) error
// Reporting
GetSLAReport(ctx context.Context, from, to time.Time) (*models.SLAReport, error)
}
SLARepository defines the interface for SLA operations.
type SessionRepository ¶
type SessionRepository interface {
Create(session *models.Session) error
GetByID(sessionID string) (*models.Session, error)
GetByUserID(userID int) ([]*models.Session, error)
List() ([]*models.Session, error)
UpdateLastRequest(sessionID string) error
Delete(sessionID string) error
DeleteByUserID(userID int) (int, error)
DeleteExpired(maxAge time.Duration) (int, error)
DeleteByMaxAge(maxAge time.Duration) (int, error)
}
SessionRepository defines the interface for session operations.
type SessionSQLRepository ¶
type SessionSQLRepository struct {
// contains filtered or unexported fields
}
SessionSQLRepository handles database operations for the OTRS sessions table. The sessions table uses a key-value store format with columns: session_id, data_key, data_value, serialized
func NewSessionRepository ¶
func NewSessionRepository(db *sql.DB) *SessionSQLRepository
NewSessionRepository creates a new session repository.
func (*SessionSQLRepository) Create ¶
func (r *SessionSQLRepository) Create(session *models.Session) error
Create stores a new session in the key-value sessions table.
func (*SessionSQLRepository) Delete ¶
func (r *SessionSQLRepository) Delete(sessionID string) error
Delete removes a session by its ID.
func (*SessionSQLRepository) DeleteByMaxAge ¶
func (r *SessionSQLRepository) DeleteByMaxAge(maxAge time.Duration) (int, error)
DeleteByMaxAge removes all sessions created more than maxAge ago. This enforces the maximum session lifetime regardless of activity.
func (*SessionSQLRepository) DeleteByUserID ¶
func (r *SessionSQLRepository) DeleteByUserID(userID int) (int, error)
DeleteByUserID removes all sessions for a specific user.
func (*SessionSQLRepository) DeleteExpired ¶
func (r *SessionSQLRepository) DeleteExpired(maxAge time.Duration) (int, error)
DeleteExpired removes all sessions older than the specified duration.
func (*SessionSQLRepository) GetByID ¶
func (r *SessionSQLRepository) GetByID(sessionID string) (*models.Session, error)
GetByID retrieves a session by its ID.
func (*SessionSQLRepository) GetByUserID ¶
func (r *SessionSQLRepository) GetByUserID(userID int) ([]*models.Session, error)
GetByUserID retrieves all sessions for a specific user.
func (*SessionSQLRepository) List ¶
func (r *SessionSQLRepository) List() ([]*models.Session, error)
List retrieves all sessions.
func (*SessionSQLRepository) UpdateLastRequest ¶
func (r *SessionSQLRepository) UpdateLastRequest(sessionID string) error
UpdateLastRequest updates the last request time for a session.
type SystemMaintenanceRepository ¶
type SystemMaintenanceRepository struct {
// contains filtered or unexported fields
}
SystemMaintenanceRepository handles database operations for system maintenance records.
func NewSystemMaintenanceRepository ¶
func NewSystemMaintenanceRepository(db *sql.DB) *SystemMaintenanceRepository
NewSystemMaintenanceRepository creates a new system maintenance repository.
func (*SystemMaintenanceRepository) Create ¶
func (r *SystemMaintenanceRepository) Create(m *models.SystemMaintenance) error
Create inserts a new system maintenance record.
func (*SystemMaintenanceRepository) Delete ¶
func (r *SystemMaintenanceRepository) Delete(id int) error
Delete removes a system maintenance record by ID.
func (*SystemMaintenanceRepository) GetByID ¶
func (r *SystemMaintenanceRepository) GetByID(id int) (*models.SystemMaintenance, error)
GetByID retrieves a system maintenance record by ID.
func (*SystemMaintenanceRepository) IsActive ¶
func (r *SystemMaintenanceRepository) IsActive() (*models.SystemMaintenance, error)
IsActive returns the currently active maintenance record, or nil if none. A maintenance is active if current time is between start_date and stop_date and valid_id = 1.
func (*SystemMaintenanceRepository) IsComing ¶
func (r *SystemMaintenanceRepository) IsComing(withinMinutes int) (*models.SystemMaintenance, error)
IsComing returns an upcoming maintenance record within the specified minutes, or nil if none. An upcoming maintenance is one that starts within the next X minutes and is valid.
func (*SystemMaintenanceRepository) List ¶
func (r *SystemMaintenanceRepository) List() ([]*models.SystemMaintenance, error)
List retrieves all system maintenance records.
func (*SystemMaintenanceRepository) ListValid ¶
func (r *SystemMaintenanceRepository) ListValid() ([]*models.SystemMaintenance, error)
ListValid retrieves all valid (active) system maintenance records.
func (*SystemMaintenanceRepository) Update ¶
func (r *SystemMaintenanceRepository) Update(m *models.SystemMaintenance) error
Update updates an existing system maintenance record.
type TicketMergeRepository ¶
type TicketMergeRepository interface {
CreateMerge(ctx context.Context, merge *models.TicketMerge) error
GetMerge(ctx context.Context, id uint) (*models.TicketMerge, error)
GetMergesByParent(ctx context.Context, parentID uint) ([]models.TicketMerge, error)
GetMergeByChild(ctx context.Context, childID uint) (*models.TicketMerge, error)
UnmergeTicket(ctx context.Context, mergeID uint, unmergedBy uint) error
GetMergeHistory(ctx context.Context, ticketID uint) ([]models.TicketMerge, error)
IsMerged(ctx context.Context, ticketID uint) (bool, error)
GetAllChildren(ctx context.Context, parentID uint) ([]uint, error)
GetMergeStatistics(ctx context.Context, from, to time.Time) (*models.MergeStatistics, error)
// Ticket relations
CreateTicketRelation(ctx context.Context, relation *models.TicketRelation) error
GetTicketRelations(ctx context.Context, ticketID uint) ([]models.TicketRelation, error)
DeleteTicketRelation(ctx context.Context, relationID uint) error
}
TicketMergeRepository defines the interface for ticket merge operations.
type TicketPriorityRepository ¶
type TicketPriorityRepository struct {
// contains filtered or unexported fields
}
TicketPriorityRepository handles database operations for ticket priorities.
func NewTicketPriorityRepository ¶
func NewTicketPriorityRepository(db *sql.DB) *TicketPriorityRepository
NewTicketPriorityRepository creates a new ticket priority repository.
func (*TicketPriorityRepository) Create ¶
func (r *TicketPriorityRepository) Create(priority *models.TicketPriority) error
Create creates a new ticket priority.
func (*TicketPriorityRepository) GetByID ¶
func (r *TicketPriorityRepository) GetByID(id uint) (*models.TicketPriority, error)
GetByID retrieves a ticket priority by ID.
func (*TicketPriorityRepository) GetByName ¶
func (r *TicketPriorityRepository) GetByName(name string) (*models.TicketPriority, error)
GetByName retrieves a ticket priority by name.
func (*TicketPriorityRepository) GetDefault ¶
func (r *TicketPriorityRepository) GetDefault() (*models.TicketPriority, error)
GetDefault returns the default priority (usually "normal" with ID 3).
func (*TicketPriorityRepository) GetHighPriorities ¶
func (r *TicketPriorityRepository) GetHighPriorities() ([]*models.TicketPriority, error)
GetHighPriorities returns all priorities considered "high" (4=high, 5=very high).
func (*TicketPriorityRepository) List ¶
func (r *TicketPriorityRepository) List() ([]*models.TicketPriority, error)
List retrieves all active ticket priorities.
func (*TicketPriorityRepository) Update ¶
func (r *TicketPriorityRepository) Update(priority *models.TicketPriority) error
Update updates a ticket priority.
type TicketRepository ¶
type TicketRepository struct {
// contains filtered or unexported fields
}
TicketRepository handles database operations for tickets.
func NewTicketRepository ¶
func NewTicketRepository(db *sql.DB) *TicketRepository
NewTicketRepository creates a new ticket repository.
func (*TicketRepository) AddTicketHistoryEntry ¶
func (r *TicketRepository) AddTicketHistoryEntry(ctx context.Context, exec interface{}, entry models.TicketHistoryInsert) error
AddTicketHistoryEntry persists a ticket_history row for the provided ticket snapshot. The exec parameter accepts interface{} to satisfy the history.HistoryInserter interface, but must be either nil or implement ExecContext.
func (*TicketRepository) ArchiveTicket ¶
func (r *TicketRepository) ArchiveTicket(ticketID uint, userID uint) error
ArchiveTicket archives a ticket.
func (*TicketRepository) AutoClosePendingTickets ¶
func (r *TicketRepository) AutoClosePendingTickets( ctx context.Context, now time.Time, transitions map[string]string, systemUserID int, ) (*AutoCloseResult, error)
AutoClosePendingTickets moves tickets out of pending auto-close states when deadlines expire. This includes tickets with no pending date set (legacy/migrated data) - these are treated as due immediately to ensure they get processed.
func (*TicketRepository) Count ¶
func (r *TicketRepository) Count() (int, error)
Count returns the total number of tickets.
func (*TicketRepository) CountByStateID ¶
func (r *TicketRepository) CountByStateID(stateID int) (int, error)
CountByStateID returns the number of tickets with a specific state ID.
func (*TicketRepository) CountByStatus ¶
func (r *TicketRepository) CountByStatus(status string) (int, error)
CountByStatus returns the number of tickets with a specific status.
func (*TicketRepository) CountClosedToday ¶
func (r *TicketRepository) CountClosedToday() (int, error)
CountClosedToday returns the number of tickets closed today.
func (*TicketRepository) Create ¶
func (r *TicketRepository) Create(ticket *models.Ticket) error
Create creates a new ticket in the database.
func (*TicketRepository) Delete ¶
func (r *TicketRepository) Delete(id uint) error
Delete deletes a ticket from the database.
func (*TicketRepository) FindDuePendingReminders ¶
func (r *TicketRepository) FindDuePendingReminders(ctx context.Context, now time.Time, limit int) ([]*models.PendingReminder, error)
FindDuePendingReminders returns tickets in pending reminder states whose deadline has passed. This includes tickets with no pending date set (legacy/migrated data) - these are treated as due immediately to ensure they get processed.
func (*TicketRepository) GetByID ¶
func (r *TicketRepository) GetByID(id uint) (*models.Ticket, error)
GetByID retrieves a ticket by its ID.
func (*TicketRepository) GetByTN ¶
func (r *TicketRepository) GetByTN(tn string) (*models.Ticket, error)
GetByTN retrieves a ticket by its ticket number.
func (*TicketRepository) GetByTicketNumber ¶
func (r *TicketRepository) GetByTicketNumber(ticketNumber string) (*models.Ticket, error)
GetByTicketNumber retrieves a ticket by its ticket number.
func (*TicketRepository) GetDB ¶
func (r *TicketRepository) GetDB() *sql.DB
GetDB returns the database connection.
func (*TicketRepository) GetQueues ¶
func (r *TicketRepository) GetQueues() ([]models.Queue, error)
GetQueues retrieves all active queues.
func (*TicketRepository) GetTicketHistoryEntries ¶
func (r *TicketRepository) GetTicketHistoryEntries(ticketID uint, limit int) ([]models.TicketHistoryEntry, error)
GetTicketHistoryEntries returns recent history entries for a ticket.
func (*TicketRepository) GetTicketLinks ¶
func (r *TicketRepository) GetTicketLinks(ticketID uint, limit int) ([]models.TicketLink, error)
GetTicketLinks returns linked tickets for a ticket.
func (*TicketRepository) GetTicketPriorities ¶
func (r *TicketRepository) GetTicketPriorities() ([]models.TicketPriority, error)
GetTicketPriorities retrieves all active ticket priorities.
func (*TicketRepository) GetTicketStateByID ¶
func (r *TicketRepository) GetTicketStateByID(stateID int) (*models.TicketState, error)
GetTicketStateByID returns the ticket state row for a given ID if it exists.
func (*TicketRepository) GetTicketStates ¶
func (r *TicketRepository) GetTicketStates() ([]models.TicketState, error)
GetTicketStates retrieves all active ticket states.
func (*TicketRepository) GetTicketWithRelations ¶
func (r *TicketRepository) GetTicketWithRelations(id uint) (*models.Ticket, error)
GetTicketWithRelations retrieves a ticket with all related data.
func (*TicketRepository) GetTicketsByCustomer ¶
func (r *TicketRepository) GetTicketsByCustomer(customerID uint, includeArchived bool) ([]models.Ticket, error)
GetTicketsByCustomer retrieves all tickets for a specific customer.
func (*TicketRepository) GetTicketsByOwner ¶
func (r *TicketRepository) GetTicketsByOwner(ownerID uint, includeArchived bool) ([]models.Ticket, error)
GetTicketsByOwner retrieves all tickets assigned to a specific user.
func (*TicketRepository) List ¶
func (r *TicketRepository) List(req *models.TicketListRequest) (*models.TicketListResponse, error)
List retrieves a paginated list of tickets with filters.
func (*TicketRepository) LockTicket ¶
func (r *TicketRepository) LockTicket(ticketID uint, userID uint, lockType int) error
LockTicket locks a ticket for a specific user.
func (*TicketRepository) QueueExists ¶
func (r *TicketRepository) QueueExists(queueID int) (bool, error)
QueueExists checks whether a queue with the given ID exists.
func (*TicketRepository) RestoreTicket ¶
func (r *TicketRepository) RestoreTicket(ticketID uint, userID uint) error
RestoreTicket restores an archived ticket.
func (*TicketRepository) UnlockTicket ¶
func (r *TicketRepository) UnlockTicket(ticketID uint, userID uint) error
UnlockTicket unlocks a ticket.
func (*TicketRepository) Update ¶
func (r *TicketRepository) Update(ticket *models.Ticket) error
Update updates a ticket in the database.
func (*TicketRepository) UpdatePriority ¶
func (r *TicketRepository) UpdatePriority(ticketID uint, priorityID uint, userID uint) error
UpdatePriority updates the priority of a ticket.
func (*TicketRepository) UpdateQueue ¶
func (r *TicketRepository) UpdateQueue(ticketID uint, queueID uint, userID uint) error
UpdateQueue transfers a ticket to a different queue.
func (*TicketRepository) UpdateStatus ¶
func (r *TicketRepository) UpdateStatus(ticketID uint, stateID uint, userID uint) error
UpdateStatus updates the status of a ticket.
type TicketStateRepository ¶
type TicketStateRepository struct {
// contains filtered or unexported fields
}
TicketStateRepository handles database operations for ticket states.
func NewTicketStateRepository ¶
func NewTicketStateRepository(db *sql.DB) *TicketStateRepository
NewTicketStateRepository creates a new ticket state repository.
func (*TicketStateRepository) Create ¶
func (r *TicketStateRepository) Create(state *models.TicketState) error
Create creates a new ticket state.
func (*TicketStateRepository) GetByID ¶
func (r *TicketStateRepository) GetByID(id uint) (*models.TicketState, error)
GetByID retrieves a ticket state by ID.
func (*TicketStateRepository) GetByName ¶
func (r *TicketStateRepository) GetByName(name string) (*models.TicketState, error)
GetByName retrieves a ticket state by name.
func (*TicketStateRepository) GetByTypeID ¶
func (r *TicketStateRepository) GetByTypeID(typeID uint) ([]*models.TicketState, error)
GetByTypeID retrieves all ticket states for a specific type.
func (*TicketStateRepository) GetClosedStates ¶
func (r *TicketStateRepository) GetClosedStates() ([]*models.TicketState, error)
GetClosedStates returns all ticket states that are considered "closed".
func (*TicketStateRepository) GetOpenStates ¶
func (r *TicketStateRepository) GetOpenStates() ([]*models.TicketState, error)
GetOpenStates returns all ticket states that are considered "open".
func (*TicketStateRepository) List ¶
func (r *TicketStateRepository) List() ([]*models.TicketState, error)
List retrieves all active ticket states.
func (*TicketStateRepository) Update ¶
func (r *TicketStateRepository) Update(state *models.TicketState) error
Update updates a ticket state.
type TicketTemplateRepository ¶
type TicketTemplateRepository interface {
// Template CRUD operations
CreateTemplate(ctx context.Context, template *models.TicketTemplate) error
GetTemplateByID(ctx context.Context, id uint) (*models.TicketTemplate, error)
GetActiveTemplates(ctx context.Context) ([]models.TicketTemplate, error)
GetTemplatesByCategory(ctx context.Context, category string) ([]models.TicketTemplate, error)
UpdateTemplate(ctx context.Context, template *models.TicketTemplate) error
DeleteTemplate(ctx context.Context, id uint) error
// Usage tracking
IncrementUsageCount(ctx context.Context, templateID uint) error
// Search and filtering
SearchTemplates(ctx context.Context, query string) ([]models.TicketTemplate, error)
// Categories
GetCategories(ctx context.Context) ([]models.TemplateCategory, error)
}
TicketTemplateRepository defines the interface for ticket template persistence.
type TimeAccountingRepository ¶
type TimeAccountingRepository struct {
// contains filtered or unexported fields
}
func NewTimeAccountingRepository ¶
func NewTimeAccountingRepository(db *sql.DB) *TimeAccountingRepository
func (*TimeAccountingRepository) Create ¶
func (r *TimeAccountingRepository) Create(entry *models.TimeAccounting) (int, error)
Create inserts a time accounting row and returns its id.
func (*TimeAccountingRepository) ListByTicket ¶
func (r *TimeAccountingRepository) ListByTicket(ticketID int) ([]models.TimeAccounting, error)
ListByTicket fetches time accounting entries for a ticket ordered by create_time.
type UserGroupPermission ¶
type UserGroupPermission struct {
UserID uint
GroupID uint
PermissionKey string
PermissionValue int
}
UserGroupPermission represents a permission entry.
type UserRepository ¶
type UserRepository struct {
// contains filtered or unexported fields
}
UserRepository handles database operations for users.
func NewUserRepository ¶
func NewUserRepository(db *sql.DB) *UserRepository
NewUserRepository creates a new user repository.
func (*UserRepository) Create ¶
func (r *UserRepository) Create(user *models.User) error
Create creates a new user.
func (*UserRepository) Delete ¶
func (r *UserRepository) Delete(id uint) error
Delete deletes a user by ID.
func (*UserRepository) GetByEmail ¶
func (r *UserRepository) GetByEmail(email string) (*models.User, error)
GetByEmail retrieves a user by email.
func (*UserRepository) GetByID ¶
func (r *UserRepository) GetByID(id uint) (*models.User, error)
GetByID retrieves a user by ID.
func (*UserRepository) GetByLogin ¶
func (r *UserRepository) GetByLogin(login string) (*models.User, error)
GetByLogin retrieves a user by login username.
func (*UserRepository) GetUserGroups ¶
func (r *UserRepository) GetUserGroups(userID uint) ([]string, error)
GetUserGroups retrieves the group names for a specific user.
func (*UserRepository) List ¶
func (r *UserRepository) List() ([]*models.User, error)
List retrieves all users (both active and inactive).
func (*UserRepository) ListWithGroups ¶
func (r *UserRepository) ListWithGroups() ([]*models.User, error)
ListWithGroups retrieves all users with their associated groups.
func (*UserRepository) SetValidID ¶
func (r *UserRepository) SetValidID(id uint, validID int, changeBy uint, changeTime time.Time) error
SetValidID updates only the validity status metadata for a user.
func (*UserRepository) Update ¶
func (r *UserRepository) Update(user *models.User) error
Update updates a user.
func (*UserRepository) UpdateProfile ¶
func (r *UserRepository) UpdateProfile(id uint, firstName, lastName, title string, changeBy uint, changeTime time.Time) error
UpdateProfile updates only the profile display fields for a user (first_name, last_name, title). This is safe for self-service profile editing.
type WebserviceRepository ¶
type WebserviceRepository struct {
// contains filtered or unexported fields
}
WebserviceRepository handles database operations for GenericInterface webservices.
func NewWebserviceRepository ¶
func NewWebserviceRepository(db *sql.DB) *WebserviceRepository
NewWebserviceRepository creates a new webservice repository.
func (*WebserviceRepository) Create ¶
func (r *WebserviceRepository) Create(ctx context.Context, ws *models.WebserviceConfig, userID int) (int, error)
Create creates a new webservice configuration.
func (*WebserviceRepository) Delete ¶
func (r *WebserviceRepository) Delete(ctx context.Context, id int) error
Delete deletes a webservice configuration.
func (*WebserviceRepository) ExistsExcluding ¶
func (r *WebserviceRepository) ExistsExcluding(ctx context.Context, name string, excludeID int) (bool, error)
ExistsExcluding checks if a webservice with the given name exists, excluding a specific ID.
func (*WebserviceRepository) GetByID ¶
func (r *WebserviceRepository) GetByID(ctx context.Context, id int) (*models.WebserviceConfig, error)
GetByID retrieves a webservice configuration by ID.
func (*WebserviceRepository) GetByName ¶
func (r *WebserviceRepository) GetByName(ctx context.Context, name string) (*models.WebserviceConfig, error)
GetByName retrieves a webservice configuration by name.
func (*WebserviceRepository) GetHistory ¶
func (r *WebserviceRepository) GetHistory(ctx context.Context, configID int) ([]*models.WebserviceConfigHistory, error)
GetHistory retrieves the configuration history for a webservice.
func (*WebserviceRepository) GetHistoryEntry ¶
func (r *WebserviceRepository) GetHistoryEntry(ctx context.Context, historyID int64) (*models.WebserviceConfigHistory, error)
GetHistoryEntry retrieves a specific history entry.
func (*WebserviceRepository) GetValidWebservicesForField ¶
func (r *WebserviceRepository) GetValidWebservicesForField(ctx context.Context) ([]*models.WebserviceConfig, error)
GetValidWebservicesForField returns valid webservices suitable for dynamic field configuration. This is used by the WebserviceDropdown/WebserviceMultiselect field types.
func (*WebserviceRepository) List ¶
func (r *WebserviceRepository) List(ctx context.Context) ([]*models.WebserviceConfig, error)
List retrieves all webservice configurations.
func (*WebserviceRepository) ListValid ¶
func (r *WebserviceRepository) ListValid(ctx context.Context) ([]*models.WebserviceConfig, error)
ListValid retrieves only valid (active) webservice configurations.
func (*WebserviceRepository) RestoreFromHistory ¶
func (r *WebserviceRepository) RestoreFromHistory(ctx context.Context, historyID int64, userID int) error
RestoreFromHistory restores a webservice configuration from a history entry.
func (*WebserviceRepository) Update ¶
func (r *WebserviceRepository) Update(ctx context.Context, ws *models.WebserviceConfig, userID int) error
Update updates an existing webservice configuration.
type WorkflowRepository ¶
type WorkflowRepository interface {
// Workflow CRUD operations
Create(workflow *models.Workflow) error
GetByID(id int) (*models.Workflow, error)
Update(workflow *models.Workflow) error
Delete(id int) error
// Query operations
GetAll() ([]*models.Workflow, error)
GetActiveWorkflows() ([]*models.Workflow, error)
GetByStatus(status models.WorkflowStatus) ([]*models.Workflow, error)
GetByTriggerType(triggerType models.TriggerType) ([]*models.Workflow, error)
Search(query string) ([]*models.Workflow, error)
// Trigger operations
CreateTrigger(trigger *models.Trigger) error
UpdateTrigger(trigger *models.Trigger) error
DeleteTrigger(id int) error
GetTriggersByWorkflow(workflowID int) ([]*models.Trigger, error)
// Condition operations
CreateCondition(condition *models.Condition) error
UpdateCondition(condition *models.Condition) error
DeleteCondition(id int) error
GetConditionsByWorkflow(workflowID int) ([]*models.Condition, error)
// Action operations
CreateAction(action *models.Action) error
UpdateAction(action *models.Action) error
DeleteAction(id int) error
GetActionsByWorkflow(workflowID int) ([]*models.Action, error)
// Execution tracking
CreateExecution(execution *models.WorkflowExecution) error
UpdateExecution(execution *models.WorkflowExecution) error
GetExecutionByID(id int) (*models.WorkflowExecution, error)
GetExecutionsByWorkflow(workflowID int, limit int) ([]*models.WorkflowExecution, error)
GetExecutionsByTicket(ticketID int) ([]*models.WorkflowExecution, error)
GetExecutionsByDateRange(start, end time.Time) ([]*models.WorkflowExecution, error)
GetFailedExecutions(limit int) ([]*models.WorkflowExecution, error)
// Schedule operations
CreateSchedule(schedule *models.WorkflowSchedule) error
UpdateSchedule(schedule *models.WorkflowSchedule) error
DeleteSchedule(id int) error
GetScheduleByWorkflow(workflowID int) (*models.WorkflowSchedule, error)
GetActiveSchedules() ([]*models.WorkflowSchedule, error)
GetSchedulesDueForExecution(before time.Time) ([]*models.WorkflowSchedule, error)
// Template operations
CreateTemplate(template *models.WorkflowTemplate) error
GetTemplateByID(id int) (*models.WorkflowTemplate, error)
GetTemplatesByCategory(category string) ([]*models.WorkflowTemplate, error)
GetAllTemplates() ([]*models.WorkflowTemplate, error)
IncrementTemplateUsage(id int) error
// Statistics
GetWorkflowStats(workflowID int) (map[string]interface{}, error)
GetGlobalWorkflowStats() (map[string]interface{}, error)
}
WorkflowRepository defines the interface for workflow data operations.
Source Files
¶
- acl_repository.go
- api_token_repository.go
- article_repository.go
- canned_response_repository.go
- db_role_repository.go
- email_account_repository.go
- email_template_repository.go
- generic_agent_repository.go
- group_repository.go
- group_sql_repository.go
- interfaces.go
- internal_note_repository.go
- ldap_repository.go
- lookup_repository.go
- memory_canned_response_repository.go
- memory_internal_note_repository.go
- memory_lookup_repository.go
- memory_session_repository.go
- memory_sla_repository.go
- memory_ticket_merge_repository.go
- memory_ticket_repository.go
- memory_ticket_template_repository.go
- permission_repository.go
- postmaster_filter_repository.go
- priority_repository.go
- queue_repository.go
- role_repository.go
- scheduler_repository.go
- session_repository.go
- system_maintenance_repository.go
- ticket_autoclose.go
- ticket_pending.go
- ticket_priority_repository.go
- ticket_repository.go
- ticket_state_repository.go
- ticket_template_repository.go
- time_accounting_repository.go
- user_repository.go
- webservice_repository.go
- workflow_repository.go