models

package
v0.7.0-alpha Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 6, 2025 License: AGPL-3.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AppliedSLA

type AppliedSLA struct {
	ID                      int       `db:"id"`
	CreatedAt               time.Time `db:"created_at"`
	Status                  string    `db:"status"`
	ConversationID          int       `db:"conversation_id"`
	SLAPolicyID             int       `db:"sla_policy_id"`
	FirstResponseDeadlineAt null.Time `db:"first_response_deadline_at"`
	ResolutionDeadlineAt    null.Time `db:"resolution_deadline_at"`
	FirstResponseBreachedAt null.Time `db:"first_response_breached_at"`
	ResolutionBreachedAt    null.Time `db:"resolution_breached_at"`
	FirstResponseMetAt      null.Time `db:"first_response_met_at"`
	ResolutionMetAt         null.Time `db:"resolution_met_at"`

	// Conversation fields.
	ConversationFirstResponseAt null.Time `db:"conversation_first_response_at"`
	ConversationResolvedAt      null.Time `db:"conversation_resolved_at"`
	ConversationUUID            string    `db:"conversation_uuid"`
	ConversationReferenceNumber string    `db:"conversation_reference_number"`
	ConversationSubject         string    `db:"conversation_subject"`
	ConversationAssignedUserID  null.Int  `db:"conversation_assigned_user_id"`
	ConversationStatus          string    `db:"conversation_status"`
}

AppliedSLA represents an SLA policy applied to a conversation

type SLAEvent

type SLAEvent struct {
	ID           int       `db:"id"`
	CreatedAt    time.Time `db:"created_at"`
	UpdatedAt    time.Time `db:"updated_at"`
	AppliedSLAID int       `db:"applied_sla_id"`
	SlaPolicyID  int       `db:"sla_policy_id"`
	Type         string    `db:"type"`
	DeadlineAt   time.Time `db:"deadline_at"`
	MetAt        null.Time `db:"met_at"`
	BreachedAt   null.Time `db:"breached_at"`
}

type SLAPolicy

type SLAPolicy struct {
	ID                int              `db:"id" json:"id"`
	CreatedAt         time.Time        `db:"created_at" json:"created_at"`
	UpdatedAt         time.Time        `db:"updated_at" json:"updated_at"`
	Name              string           `db:"name" json:"name"`
	Description       string           `db:"description" json:"description"`
	FirstResponseTime null.String      `db:"first_response_time" json:"first_response_time"`
	NextResponseTime  null.String      `db:"next_response_time" json:"next_response_time"`
	ResolutionTime    null.String      `db:"resolution_time" json:"resolution_time"`
	Notifications     SlaNotifications `db:"notifications" json:"notifications"`
}

SLAPolicy represents a service level agreement policy definition

type ScheduledSLANotification

type ScheduledSLANotification struct {
	ID               int            `db:"id" json:"id"`
	CreatedAt        time.Time      `db:"created_at" json:"created_at"`
	UpdatedAt        time.Time      `db:"updated_at" json:"updated_at"`
	SlaEventID       null.Int       `db:"sla_event_id" json:"sla_event_id"`
	AppliedSLAID     int            `db:"applied_sla_id" json:"applied_sla_id"`
	Metric           string         `db:"metric" json:"metric"`
	NotificationType string         `db:"notification_type" json:"notification_type"`
	Recipients       pq.StringArray `db:"recipients" json:"recipients"`
	SendAt           time.Time      `db:"send_at" json:"send_at"`
	ProcessedAt      null.Time      `db:"processed_at" json:"processed_at,omitempty"`
}

ScheduledSLANotification represents a scheduled SLA notification

type SlaNotification

type SlaNotification struct {
	Type          string   `db:"type" json:"type"`
	Recipients    []string `db:"recipients" json:"recipients"`
	TimeDelay     string   `db:"time_delay" json:"time_delay"`
	TimeDelayType string   `db:"time_delay_type" json:"time_delay_type"`
	Metric        string   `db:"metric" json:"metric"`
}

SlaNotification represents the notification settings for an SLA policy

type SlaNotifications

type SlaNotifications []SlaNotification

func (*SlaNotifications) Scan

func (sn *SlaNotifications) Scan(src any) error

Scan implements the sql.Scanner interface.

func (SlaNotifications) Value

func (sn SlaNotifications) Value() (driver.Value, error)

Value implements the driver.Valuer interface.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL