summaryrefslogtreecommitdiff
path: root/shrine/types/ticket/response.go
blob: c76c352228c6f5e159e99c68c9e68acb42d5a169 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package ticket

import (
	"shrine/types/user"
	"time"
)

type CategoryResponse struct {
	Ref         string `json:"ref"`
	Name        string `json:"name"`
	Description string `json:"description"`
	SortOrder   uint   `json:"sort_order"`
}

type MessageResponse struct {
	Ref       string                       `json:"ref"`
	Sender    user.CitizenSummaryResponse  `json:"sender"`
	Body      string                       `json:"body"`
	IsStaff   bool                         `json:"is_staff"`
	CreatedAt time.Time                    `json:"created_at"`
}

type TicketResponse struct {
	Ref       string                        `json:"ref"`
	Subject   string                        `json:"subject"`
	Category  CategoryResponse              `json:"category"`
	Priority  string                        `json:"priority"`
	Status    string                        `json:"status"`
	User      user.CitizenSummaryResponse   `json:"user"`
	Assignee  *user.CitizenSummaryResponse  `json:"assignee"`
	CreatedAt time.Time                     `json:"created_at"`
	UpdatedAt time.Time                     `json:"updated_at"`
}

type DetailResponse struct {
	TicketResponse
	Messages []MessageResponse `json:"messages"`
}