memo.go 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. package api
  2. // Visibility is the type of a visibility.
  3. type Visibility string
  4. const (
  5. // Public is the PUBLIC visibility.
  6. Public Visibility = "PUBLIC"
  7. // Protected is the PROTECTED visibility.
  8. Protected Visibility = "PROTECTED"
  9. // Private is the PRIVATE visibility.
  10. Private Visibility = "PRIVATE"
  11. )
  12. func (e Visibility) String() string {
  13. switch e {
  14. case Public:
  15. return "PUBLIC"
  16. case Protected:
  17. return "PROTECTED"
  18. case Private:
  19. return "PRIVATE"
  20. }
  21. return "PRIVATE"
  22. }
  23. type Memo struct {
  24. ID int `json:"id"`
  25. // Standard fields
  26. RowStatus RowStatus `json:"rowStatus"`
  27. CreatorID int `json:"creatorId"`
  28. CreatedTs int64 `json:"createdTs"`
  29. UpdatedTs int64 `json:"updatedTs"`
  30. // Domain specific fields
  31. Content string `json:"content"`
  32. Visibility Visibility `json:"visibility"`
  33. Pinned bool `json:"pinned"`
  34. DisplayTs int64 `json:"displayTs"`
  35. // Related fields
  36. Creator *User `json:"creator"`
  37. ResourceList []*Resource `json:"resourceList"`
  38. }
  39. type MemoCreate struct {
  40. // Standard fields
  41. CreatorID int `json:"-"`
  42. // Domain specific fields
  43. Visibility Visibility `json:"visibility"`
  44. Content string `json:"content"`
  45. // Related fields
  46. ResourceIDList []int `json:"resourceIdList"`
  47. }
  48. type MemoPatch struct {
  49. ID int `json:"-"`
  50. // Standard fields
  51. CreatedTs *int64 `json:"createdTs"`
  52. UpdatedTs *int64
  53. RowStatus *RowStatus `json:"rowStatus"`
  54. // Domain specific fields
  55. Content *string `json:"content"`
  56. Visibility *Visibility `json:"visibility"`
  57. // Related fields
  58. ResourceIDList []int `json:"resourceIdList"`
  59. }
  60. type MemoFind struct {
  61. ID *int
  62. // Standard fields
  63. RowStatus *RowStatus
  64. CreatorID *int
  65. // Domain specific fields
  66. Pinned *bool
  67. ContentSearch *string
  68. VisibilityList []Visibility
  69. // Pagination
  70. Limit int
  71. Offset int
  72. }
  73. type MemoDelete struct {
  74. ID int
  75. }