add project tags.
continuous-integration/drone/push Build is passing

This commit is contained in:
2021-04-18 18:03:06 +02:00
parent 03eccfff1f
commit 5a508fe8bb
11 changed files with 196 additions and 12 deletions
+5
View File
@@ -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"`
}
+30
View File
@@ -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
}