refactor: raw struct for store

This commit is contained in:
boojack
2022-05-19 18:32:04 +08:00
parent 0b50122aac
commit bc22f69ac5
22 changed files with 687 additions and 188 deletions

21
api/api.go Normal file
View File

@@ -0,0 +1,21 @@
package api
// RowStatus is the status for a row.
type RowStatus string
const (
// Normal is the status for a normal row.
Normal RowStatus = "NORMAL"
// Archived is the status for an archived row.
Archived RowStatus = "ARCHIVED"
)
func (e RowStatus) String() string {
switch e {
case Normal:
return "NORMAL"
case Archived:
return "ARCHIVED"
}
return ""
}

View File

@@ -4,13 +4,14 @@ type Memo struct {
ID int `json:"id"`
// Standard fields
CreatedTs int64 `json:"createdTs"`
UpdatedTs int64 `json:"updatedTs"`
RowStatus string `json:"rowStatus"`
RowStatus RowStatus `json:"rowStatus"`
CreatorID int `json:"creatorId"`
CreatedTs int64 `json:"createdTs"`
UpdatedTs int64 `json:"updatedTs"`
// Domain specific fields
Content string `json:"content"`
CreatorID int `json:"creatorId"`
Content string `json:"content"`
Pinned bool `json:"pinned"`
}
type MemoCreate struct {
@@ -27,7 +28,7 @@ type MemoPatch struct {
ID int
// Standard fields
RowStatus *string `json:"rowStatus"`
RowStatus *RowStatus `json:"rowStatus"`
// Domain specific fields
Content *string `json:"content"`
@@ -37,8 +38,11 @@ type MemoFind struct {
ID *int `json:"id"`
// Standard fields
CreatorID *int `json:"creatorId"`
RowStatus *string `json:"rowStatus"`
RowStatus *RowStatus `json:"rowStatus"`
CreatorID *int `json:"creatorId"`
// Domain specific fields
Pinned *bool
}
type MemoDelete struct {

21
api/memo_organizer.go Normal file
View File

@@ -0,0 +1,21 @@
package api
type MemoOrganizer struct {
ID int
// Domain specific fields
MemoID int
UserID int
Pinned bool
}
type MemoOrganizerFind struct {
MemoID int
UserID int
}
type MemoOrganizerUpsert struct {
MemoID int
UserID int
Pinned bool `json:"pinned"`
}

View File

@@ -4,10 +4,10 @@ type Shortcut struct {
ID int `json:"id"`
// Standard fields
CreatorID int
CreatedTs int64 `json:"createdTs"`
UpdatedTs int64 `json:"updatedTs"`
RowStatus string `json:"rowStatus"`
RowStatus RowStatus `json:"rowStatus"`
CreatorID int `json:"creatorId"`
CreatedTs int64 `json:"createdTs"`
UpdatedTs int64 `json:"updatedTs"`
// Domain specific fields
Title string `json:"title"`
@@ -27,7 +27,7 @@ type ShortcutPatch struct {
ID int
// Standard fields
RowStatus *string `json:"rowStatus"`
RowStatus *RowStatus `json:"rowStatus"`
// Domain specific fields
Title *string `json:"title"`

View File

@@ -10,12 +10,23 @@ const (
NormalUser Role = "USER"
)
func (e Role) String() string {
switch e {
case Owner:
return "OWNER"
case NormalUser:
return "USER"
}
return "USER"
}
type User struct {
ID int `json:"id"`
// Standard fields
CreatedTs int64 `json:"createdTs"`
UpdatedTs int64 `json:"updatedTs"`
RowStatus RowStatus `json:"rowStatus"`
CreatedTs int64 `json:"createdTs"`
UpdatedTs int64 `json:"updatedTs"`
// Domain specific fields
Email string `json:"email"`
@@ -38,6 +49,9 @@ type UserCreate struct {
type UserPatch struct {
ID int
// Standard fields
RowStatus *RowStatus `json:"rowStatus"`
// Domain specific fields
Email *string `json:"email"`
Name *string `json:"name"`
@@ -50,6 +64,9 @@ type UserPatch struct {
type UserFind struct {
ID *int `json:"id"`
// Standard fields
RowStatus *RowStatus `json:"rowStatus"`
// Domain specific fields
Email *string `json:"email"`
Role *Role