@@ -18,6 +18,7 @@ type Project struct {
|
||||
SubtractAmount int `json:"subtractAmount" db:"subtract_amount"`
|
||||
StatusTag *string `json:"statusTag" db:"status_tag"`
|
||||
Favorite bool `json:"favorite" db:"favorite"`
|
||||
Tags []string `json:"tags" db:"tags"`
|
||||
}
|
||||
|
||||
func (project *Project) Update(update ProjectUpdate) {
|
||||
@@ -62,6 +63,9 @@ func (project *Project) Update(update ProjectUpdate) {
|
||||
if update.Favorite != nil {
|
||||
project.Favorite = *update.Favorite
|
||||
}
|
||||
if update.SetTags != nil {
|
||||
project.Tags = update.SetTags
|
||||
}
|
||||
|
||||
if project.StatusTag != nil && project.Active {
|
||||
project.StatusTag = nil
|
||||
@@ -80,6 +84,7 @@ type ProjectUpdate struct {
|
||||
SubtractAmount *int `json:"subtractAmount"`
|
||||
StatusTag *string `json:"statusTag"`
|
||||
ClearStatusTag bool `json:"clearStatusTag"`
|
||||
SetTags []string `json:"setTags"`
|
||||
Favorite *bool `json:"favorite"`
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
package models
|
||||
|
||||
import "context"
|
||||
|
||||
type ProjectGroup struct {
|
||||
ID string `json:"id" db:"id"`
|
||||
UserID string `json:"-" db:"user_id"`
|
||||
Name string `json:"name" db:"name"`
|
||||
Abbreviation string `json:"abbreviation" db:"abbreviation"`
|
||||
CategoryNames map[string]string `json:"categoryNames" db:"category_names"`
|
||||
}
|
||||
|
||||
type ProjectGroupUpdate struct {
|
||||
Name *string `json:"name"`
|
||||
Abbreviation *string `json:"abbreviation"`
|
||||
SetCategoryNames map[string]string `json:"setCategoryNames"`
|
||||
ResetCategoryName *string `json:"resetCategoryName"`
|
||||
}
|
||||
|
||||
type ProjectGroupFilter struct {
|
||||
UserID string `json:"userId"`
|
||||
}
|
||||
|
||||
type ProjectGroupRepository interface {
|
||||
Find(ctx context.Context, id string) (*ProjectGroup, error)
|
||||
List(ctx context.Context, filter ProjectGroupFilter) ([]*ProjectGroup, error)
|
||||
Insert(ctx context.Context, group ProjectGroup) error
|
||||
Update(ctx context.Context, group ProjectGroup) error
|
||||
Delete(ctx context.Context, group ProjectGroup) error
|
||||
}
|
||||
Reference in New Issue
Block a user