memos/api/memo.go

95 lines
2.1 KiB
Go
Raw Normal View History

2021-12-08 23:43:14 +08: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"
2022-11-26 14:23:29 +08:00
// Private is the PRIVATE visibility.
Private Visibility = "PRIVATE"
)
2023-05-25 21:50:37 +08:00
func (v Visibility) String() string {
switch v {
case Public:
return "PUBLIC"
case Protected:
return "PROTECTED"
2022-11-26 14:23:29 +08:00
case Private:
return "PRIVATE"
}
return "PRIVATE"
}
2023-05-25 21:50:37 +08:00
type MemoResponse struct {
2022-05-03 11:49:10 +08:00
ID int `json:"id"`
// Standard fields
2022-05-19 18:32:04 +08:00
RowStatus RowStatus `json:"rowStatus"`
CreatorID int `json:"creatorId"`
CreatedTs int64 `json:"createdTs"`
UpdatedTs int64 `json:"updatedTs"`
2022-02-03 15:32:03 +08:00
2022-05-03 11:49:10 +08:00
// Domain specific fields
Content string `json:"content"`
Visibility Visibility `json:"visibility"`
Pinned bool `json:"pinned"`
2022-09-05 21:14:17 +08:00
// Related fields
2023-05-25 21:50:37 +08:00
CreatorName string `json:"creatorName"`
ResourceIDList []int
ResourceList []*Resource `json:"resourceList"`
RelationList []*MemoRelation `json:"relationList"`
2021-12-08 23:43:14 +08:00
}
2023-05-25 21:50:37 +08:00
type CreateMemoRequest struct {
2022-05-03 11:49:10 +08:00
// Standard fields
CreatorID int `json:"-"`
CreatedTs *int64 `json:"createdTs"`
2022-02-18 22:21:10 +08:00
2022-05-03 11:49:10 +08:00
// Domain specific fields
2022-08-25 22:02:32 +08:00
Visibility Visibility `json:"visibility"`
Content string `json:"content"`
2022-10-01 10:57:14 +08:00
// Related fields
ResourceIDList []int `json:"resourceIdList"`
RelationList []*MemoRelationUpsert `json:"relationList"`
2021-12-08 23:43:14 +08:00
}
2023-05-25 21:50:37 +08:00
type PatchMemoRequest struct {
2022-12-23 18:38:24 +08:00
ID int `json:"-"`
2021-12-08 23:43:14 +08:00
2022-05-03 11:49:10 +08:00
// Standard fields
CreatedTs *int64 `json:"createdTs"`
UpdatedTs *int64
2022-05-19 18:32:04 +08:00
RowStatus *RowStatus `json:"rowStatus"`
2022-05-03 11:49:10 +08:00
// Domain specific fields
Content *string `json:"content"`
Visibility *Visibility `json:"visibility"`
// Related fields
ResourceIDList []int `json:"resourceIdList"`
RelationList []*MemoRelationUpsert `json:"relationList"`
2021-12-09 22:02:57 +08:00
}
2023-05-25 21:50:37 +08:00
type FindMemoRequest struct {
2022-12-28 20:22:52 +08:00
ID *int
2022-05-03 11:49:10 +08:00
// Standard fields
2022-12-28 20:22:52 +08:00
RowStatus *RowStatus
CreatorID *int
2022-05-19 18:32:04 +08:00
// Domain specific fields
Pinned *bool
ContentSearch *string
VisibilityList []Visibility
2022-06-21 21:58:33 +08:00
// Pagination
Limit *int
Offset *int
2021-12-08 23:43:14 +08:00
}