Files
sale/backend/internal/models/ticket.go
T

40 lines
1.2 KiB
Go

package models
import (
"time"
"gorm.io/gorm"
)
type Ticket struct {
ID uint `gorm:"primaryKey" json:"id"`
UserID uint `gorm:"index;not null" json:"user_id"`
Title string `gorm:"size:200;not null" json:"title"`
Content string `gorm:"type:text;not null" json:"content"`
Category string `gorm:"size:50" json:"category"`
Status string `gorm:"size:20;not null;default:'pending'" json:"status"`
AssignedTo *uint `json:"assigned_to"`
Reply string `gorm:"type:text" json:"reply"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
DeletedAt gorm.DeletedAt `gorm:"index" json:"-"`
User User `gorm:"foreignKey:UserID" json:"user,omitempty"`
Assignee *User `gorm:"foreignKey:AssignedTo" json:"assignee,omitempty"`
}
func (Ticket) TableName() string {
return "tickets"
}
const (
TicketStatusPending = "pending"
TicketStatusProcessing = "processing"
TicketStatusResolved = "resolved"
TicketStatusClosed = "closed"
TicketCategoryOrder = "order"
TicketCategoryAccount = "account"
TicketCategoryProduct = "product"
TicketCategoryOther = "other"
)