Documentation
¶
Overview ¶
Package repository provides data access repositories for domain entities.
Index ¶
- Variables
- 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) Create(article *models.Article) error
- func (r *ArticleRepository) FindTicketByMessageID(ctx context.Context, messageID string) (*models.Ticket, error)
- func (r *ArticleRepository) GetByID(id uint) (*models.Article, error)
- func (r *ArticleRepository) GetByTicketID(ticketID uint, includeInternal bool) ([]models.Article, 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)
- type AutoCloseResult
- 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 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 IdentityProviderRepository
- func (r *IdentityProviderRepository) CreateProvider(p *models.IdentityProvider) error
- func (r *IdentityProviderRepository) DeleteProvider(id uint) error
- func (r *IdentityProviderRepository) GetGlobalProviders() ([]*models.IdentityProvider, error)
- func (r *IdentityProviderRepository) GetProvider(id uint) (*models.IdentityProvider, error)
- func (r *IdentityProviderRepository) GetProviderByOrgAndType(orgID uint, providerType string) (*models.IdentityProvider, error)
- func (r *IdentityProviderRepository) GetProvidersByOrg(orgID uint) ([]*models.IdentityProvider, error)
- func (r *IdentityProviderRepository) ListProviders() ([]*models.IdentityProvider, error)
- func (r *IdentityProviderRepository) UpdateProvider(p *models.IdentityProvider) error
- type LookupAuditLog
- type LookupConfiguration
- type LookupRepository
- 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 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 OrgPluginAccess
- 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) ReplaceUserPermissionsFrom(sourceUserID, targetUserID, changeBy uint) 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 PluginAccessRepository
- func (r *PluginAccessRepository) HasCustomerAccess(orgID int64, pluginName, customerLogin string) (bool, error)
- func (r *PluginAccessRepository) ListForOrg(orgID int64) ([]OrgPluginAccess, error)
- func (r *PluginAccessRepository) ReplaceForOrgPlugin(orgID int64, pluginName string, groupID int, createdBy 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) ListAll() ([]*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 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 TicketQueueResolverImpl
- 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) 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) List() ([]*models.TicketState, error)
- func (r *TicketStateRepository) Update(state *models.TicketState) error
- type TicketTemplateRepository
- type TimeAccountingRepository
- type UserGroupPermission
- type UserRepository
- func (r *UserRepository) AddUserToGroup(userID uint, groupName string) error
- 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) SyncGroups(userID uint, groupNames []string) 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 ¶
var (
ErrIdentityProviderNotFound = errors.New("identity provider not found")
)
var ErrPermissionUserNotFound = errors.New("user not found")
ErrPermissionUserNotFound is returned when a user referenced by a permission operation does not exist.
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) Create ¶
func (r *ArticleRepository) Create(article *models.Article) error
Create creates a new article in the database (OTRS schema compatible).
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) 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) GetHTMLBodyContent ¶
func (r *ArticleRepository) GetHTMLBodyContent(articleID uint) (string, error)
GetHTMLBodyContent returns the article's HTML body (its last HTML body part, see storage.IsHTMLBody), or "" when it has none.
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.
type AutoCloseResult ¶
AutoCloseResult captures how many tickets each transition touched.
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, refreshing the change audit fields when the user already has it. role_user has no unique key on (user_id, role_id), so this checks for the row instead of relying on an upsert.
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 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)
}
ITicketRepository defines the interface for ticket data operations.
type IdentityProviderRepository ¶ added in v0.9.0
type IdentityProviderRepository struct {
// contains filtered or unexported fields
}
IdentityProviderRepository handles database operations for identity providers.
func NewIdentityProviderRepository ¶ added in v0.9.0
func NewIdentityProviderRepository(db *sql.DB) *IdentityProviderRepository
NewIdentityProviderRepository creates a new identity provider repository.
func (*IdentityProviderRepository) CreateProvider ¶ added in v0.9.0
func (r *IdentityProviderRepository) CreateProvider(p *models.IdentityProvider) error
CreateProvider inserts a new identity provider.
func (*IdentityProviderRepository) DeleteProvider ¶ added in v0.9.0
func (r *IdentityProviderRepository) DeleteProvider(id uint) error
DeleteProvider deletes an identity provider by ID.
func (*IdentityProviderRepository) GetGlobalProviders ¶ added in v0.9.0
func (r *IdentityProviderRepository) GetGlobalProviders() ([]*models.IdentityProvider, error)
GetGlobalProviders returns all global (org_id NULL) providers.
func (*IdentityProviderRepository) GetProvider ¶ added in v0.9.0
func (r *IdentityProviderRepository) GetProvider(id uint) (*models.IdentityProvider, error)
GetProvider returns an identity provider by ID.
func (*IdentityProviderRepository) GetProviderByOrgAndType ¶ added in v0.9.0
func (r *IdentityProviderRepository) GetProviderByOrgAndType(orgID uint, providerType string) (*models.IdentityProvider, error)
GetProviderByOrgAndType returns the best matching provider for an org and type. Prefers org-scoped, falls back to global.
func (*IdentityProviderRepository) GetProvidersByOrg ¶ added in v0.9.0
func (r *IdentityProviderRepository) GetProvidersByOrg(orgID uint) ([]*models.IdentityProvider, error)
GetProvidersByOrg returns all providers for a specific org (including global).
func (*IdentityProviderRepository) ListProviders ¶ added in v0.9.0
func (r *IdentityProviderRepository) ListProviders() ([]*models.IdentityProvider, error)
ListProviders returns all providers (for admin list).
func (*IdentityProviderRepository) UpdateProvider ¶ added in v0.9.0
func (r *IdentityProviderRepository) UpdateProvider(p *models.IdentityProvider) error
UpdateProvider updates an existing identity provider.
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 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 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 OrgPluginAccess ¶ added in v0.8.3
type OrgPluginAccess struct {
ID int64
OrgID int64
PluginName string
GroupID int
GroupName string // joined from `groups` for display
CreateTime time.Time
CreateBy int
}
OrgPluginAccess is one row from gk_org_plugin_access — a binding that says "in org_id, members of group_id are allowed to use plugin_name".
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) ReplaceUserPermissionsFrom ¶ added in v0.10.0
func (r *PermissionRepository) ReplaceUserPermissionsFrom(sourceUserID, targetUserID, changeBy uint) error
ReplaceUserPermissionsFrom makes the target user's group permissions an exact copy of the source user's: every group_user row of the target is removed and each row of the source is recreated for the target, in one transaction. changeBy is recorded in the audit columns of the new rows. Both users must exist (ErrPermissionUserNotFound otherwise).
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 PluginAccessRepository ¶ added in v0.8.3
type PluginAccessRepository struct {
// contains filtered or unexported fields
}
PluginAccessRepository is the read/write API for gk_org_plugin_access.
func NewPluginAccessRepository ¶ added in v0.8.3
func NewPluginAccessRepository(db *sql.DB) *PluginAccessRepository
NewPluginAccessRepository constructs a repository bound to db.
func (*PluginAccessRepository) HasCustomerAccess ¶ added in v0.8.3
func (r *PluginAccessRepository) HasCustomerAccess(orgID int64, pluginName, customerLogin string) (bool, error)
HasCustomerAccess is the hot-path check for RequirePluginAccess. Returns true when the customer_login is in at least one group entitled to use plugin_name in org_id. A single JOIN'd query covers the three-way check (enablement, group membership, customer) so the middleware stays cheap on every request.
func (*PluginAccessRepository) ListForOrg ¶ added in v0.8.3
func (r *PluginAccessRepository) ListForOrg(orgID int64) ([]OrgPluginAccess, error)
ListForOrg returns every (plugin_name, group) binding for an org, used by the org admin page.
func (*PluginAccessRepository) ReplaceForOrgPlugin ¶ added in v0.8.3
func (r *PluginAccessRepository) ReplaceForOrgPlugin(orgID int64, pluginName string, groupID int, createdBy int) error
ReplaceForOrgPlugin enforces the "one group per (org, plugin)" UI rule: delete every existing row for (org_id, plugin_name) and insert the caller's chosen groupID. Passing groupID = 0 disables the plugin for the org (delete without re-insert). createdBy records the admin making the change for auditability.
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.
func (*QueueRepository) List ¶
func (r *QueueRepository) List() ([]*models.Queue, error)
List retrieves all active queues.
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 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 TicketQueueResolverImpl ¶ added in v0.9.0
type TicketQueueResolverImpl struct{}
TicketQueueResolverImpl resolves ticket identifiers to queue IDs. Implements middleware.TicketQueueResolver.
func (*TicketQueueResolverImpl) ResolveTickets ¶ added in v0.10.0
func (r *TicketQueueResolverImpl) ResolveTickets(db *sql.DB, ticketIDStr string) ([]middleware.ResolvedTicket, error)
ResolveTickets returns every ticket the identifier can name: the ticket whose tn equals it (first) and, for a numeric identifier, the ticket with that id. Handlers read the path value either way, so the access check must cover both when they differ.
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) 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) 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) AddUserToGroup ¶ added in v0.9.0
func (r *UserRepository) AddUserToGroup(userID uint, groupName string) error
AddUserToGroup adds a user to an existing group by name. Uses INSERT ... SELECT so it only inserts when the group exists and is active (valid_id=1). Groups not found locally are silently skipped.
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) SyncGroups ¶ added in v0.9.0
func (r *UserRepository) SyncGroups(userID uint, groupNames []string) error
SyncGroups assigns a user to all matching local groups. Failures on individual groups are logged but don't abort the flow.
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
- db_role_repository.go
- email_account_repository.go
- generic_agent_repository.go
- group_repository.go
- group_sql_repository.go
- identity_provider_repository.go
- identity_provider_secrets.go
- interfaces.go
- lookup_repository.go
- memory_lookup_repository.go
- memory_session_repository.go
- memory_sla_repository.go
- memory_ticket_template_repository.go
- permission_repository.go
- plugin_access_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_queue_resolver.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