memos/api/memo.go

86 lines
1.6 KiB
Go
Raw Normal View History

2021-12-08 18:43:14 +03:00
package api
// Visibility is the type of a visibility.
type Visibility string
const (
// Public is the PUBLIC visibility.
Public Visibility = "PUBLIC"
// Protected is the PROTECTED visibility.
Protected Visibility = "PROTECTED"
// Privite is the PRIVATE visibility.
Privite Visibility = "PRIVATE"
)
func (e Visibility) String() string {
switch e {
case Public:
return "PUBLIC"
case Protected:
return "PROTECTED"
case Privite:
return "PRIVATE"
}
return "PRIVATE"
}
2022-02-03 10:32:03 +03:00
type Memo struct {
2022-05-03 06:49:10 +03:00
ID int `json:"id"`
// Standard fields
2022-05-19 13:32:04 +03:00
RowStatus RowStatus `json:"rowStatus"`
CreatorID int `json:"creatorId"`
CreatedTs int64 `json:"createdTs"`
UpdatedTs int64 `json:"updatedTs"`
2022-02-03 10:32:03 +03:00
2022-05-03 06:49:10 +03:00
// Domain specific fields
Content string `json:"content"`
Visibility Visibility `json:"visibility"`
Pinned bool `json:"pinned"`
2022-09-05 16:14:17 +03:00
// Related fields
Creator *User `json:"creator"`
2021-12-08 18:43:14 +03:00
}
2022-02-03 10:32:03 +03:00
type MemoCreate struct {
2022-05-03 06:49:10 +03:00
// Standard fields
2022-05-02 21:05:43 +03:00
CreatorID int
2022-02-18 17:21:10 +03:00
2022-05-03 06:49:10 +03:00
// Domain specific fields
2022-08-25 17:02:32 +03:00
Visibility Visibility `json:"visibility"`
Content string `json:"content"`
2021-12-08 18:43:14 +03:00
}
2022-02-03 10:32:03 +03:00
type MemoPatch struct {
2022-05-02 21:05:43 +03:00
ID int
2021-12-08 18:43:14 +03:00
2022-05-03 06:49:10 +03:00
// Standard fields
2022-08-25 17:02:32 +03:00
CreatedTs *int64 `json:"createdTs"`
2022-05-19 13:32:04 +03:00
RowStatus *RowStatus `json:"rowStatus"`
2022-05-03 06:49:10 +03:00
// Domain specific fields
Content *string `json:"content"`
Visibility *Visibility `json:"visibility"`
2021-12-09 17:02:57 +03:00
}
2022-02-03 10:32:03 +03:00
type MemoFind struct {
2022-05-03 06:49:10 +03:00
ID *int `json:"id"`
// Standard fields
2022-05-19 13:32:04 +03:00
RowStatus *RowStatus `json:"rowStatus"`
CreatorID *int `json:"creatorId"`
// Domain specific fields
Pinned *bool
ContentSearch *string
VisibilityList []Visibility
2022-06-21 16:58:33 +03:00
// Pagination
Limit int
Offset int
2021-12-08 18:43:14 +03:00
}
2022-02-03 10:32:03 +03:00
type MemoDelete struct {
2022-05-17 16:21:13 +03:00
ID int `json:"id"`
2022-02-03 10:32:03 +03:00
}