123456789101112131415161718192021222324252627282930313233343536373839 |
- package ticket
- import (
- _ "embed"
- "fmt"
- "github.com/lithammer/shortuuid/v4"
- "google.golang.org/protobuf/encoding/protojson"
- "time"
- )
- func New(id string) *Ticket {
- return &Ticket{
- Id: id,
- Thread: []*Message{},
- }
- }
- func NewId(suffix string) string {
- now := time.Now()
- return fmt.Sprintf("t%s%d%03d-%s",
- suffix,
- now.Year(),
- now.YearDay(),
- shortuuid.New())
- }
- func (t *Ticket) Marshal() ([]byte, error) {
- return protojson.Marshal(t)
- }
- //goland:noinspection GoUnusedExportedFunction
- func Unmarshal(d []byte) (*Ticket, error) {
- t := &Ticket{}
- if err := protojson.Unmarshal(d, t); err != nil {
- return nil, err
- }
- return t, nil
- }
|