models

package
v1.0.1 Latest Latest
Warning

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

Go to latest
Published: Jan 28, 2026 License: AGPL-3.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const (
	UserModel = "user"

	SystemUserEmail = "System"

	// User types
	UserTypeAgent   = "agent"
	UserTypeContact = "contact"

	// User availability statuses
	Online  = "online"
	Offline = "offline"
	// Away due to inactivity
	Away = "away"
	// Away due to manual setting from sidebar
	AwayManual         = "away_manual"
	AwayAndReassigning = "away_and_reassigning"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Note

type Note 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"`
	ContactID int         `db:"contact_id" json:"contact_id"`
	Note      string      `db:"note" json:"note"`
	UserID    int         `db:"user_id" json:"user_id"`
	FirstName string      `db:"first_name" json:"first_name"`
	LastName  string      `db:"last_name" json:"last_name"`
	AvatarURL null.String `db:"avatar_url" json:"avatar_url"`
}

type User

type User 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"`
	FirstName              string               `db:"first_name" json:"first_name"`
	LastName               string               `db:"last_name" json:"last_name"`
	Email                  null.String          `db:"email" json:"email"`
	Type                   string               `db:"type" json:"type"`
	AvailabilityStatus     string               `db:"availability_status" json:"availability_status"`
	PhoneNumberCountryCode null.String          `db:"phone_number_country_code" json:"phone_number_country_code"`
	PhoneNumber            null.String          `db:"phone_number" json:"phone_number"`
	AvatarURL              null.String          `db:"avatar_url" json:"avatar_url"`
	Enabled                bool                 `db:"enabled" json:"enabled"`
	Password               null.String          `db:"password" json:"-"`
	LastActiveAt           null.Time            `db:"last_active_at" json:"last_active_at"`
	LastLoginAt            null.Time            `db:"last_login_at" json:"last_login_at"`
	Roles                  pq.StringArray       `db:"roles" json:"roles"`
	Permissions            pq.StringArray       `db:"permissions" json:"permissions"`
	CustomAttributes       json.RawMessage      `db:"custom_attributes" json:"custom_attributes"`
	Teams                  tmodels.TeamsCompact `db:"teams" json:"teams"`
	ContactChannelID       int                  `db:"contact_channel_id" json:"contact_channel_id,omitempty"`
	NewPassword            string               `db:"-" json:"new_password,omitempty"`
	SendWelcomeEmail       bool                 `db:"-" json:"send_welcome_email,omitempty"`
	InboxID                int                  `json:"-"`
	SourceChannel          null.String          `json:"-"`
	SourceChannelID        null.String          `json:"-"`

	// API Key fields
	APIKey           null.String `db:"api_key" json:"api_key"`
	APIKeyLastUsedAt null.Time   `db:"api_key_last_used_at" json:"api_key_last_used_at"`
	APISecret        null.String `db:"api_secret" json:"-"`
}

func (*User) FullName

func (u *User) FullName() string

func (*User) HasAdminRole

func (u *User) HasAdminRole() bool

func (*User) IsSystemUser

func (u *User) IsSystemUser() bool

type UserCompact

type UserCompact struct {
	ID        int         `db:"id" json:"id"`
	Type      string      `db:"type" json:"type"`
	FirstName string      `db:"first_name" json:"first_name"`
	LastName  string      `db:"last_name" json:"last_name"`
	Email     null.String `db:"email" json:"email"`
	Enabled   bool        `db:"enabled" json:"enabled"`
	AvatarURL null.String `db:"avatar_url" json:"avatar_url"`
	CreatedAt time.Time   `db:"created_at" json:"created_at"`
	UpdatedAt time.Time   `db:"updated_at" json:"updated_at"`

	Total int `db:"total" json:"-"`
}

Jump to

Keyboard shortcuts

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