/
tag.go
25 lines (18 loc) · 944 Bytes
/
tag.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package models
import "github.com/google/uuid"
type Tag struct {
Model
Name string `gorm:"type:varchar(255);not null" json:"name" validate:"required,max=255"`
CategoryID uuid.UUID `gorm:"type:uuid;not null" json:"category_id" validate:"required,uuid4"`
User []User `gorm:"many2many:user_tags;constraint:OnUpdate:CASCADE,OnDelete:CASCADE;" json:"-" validate:"-"`
Club []Club `gorm:"many2many:club_tags;constraint:OnUpdate:CASCADE,OnDelete:CASCADE;" json:"-" validate:"-"`
Event []Event `gorm:"many2many:event_tags;constraint:OnUpdate:CASCADE,OnDelete:CASCADE;" json:"-" validate:"-"`
}
type CreateTagRequestBody struct {
Name string `json:"name" validate:"required,max=255"`
CategoryID uuid.UUID `json:"category_id" validate:"required,uuid4"`
}
type UpdateTagRequestBody struct {
Name string `json:"name" validate:"omitempty,max=255"`
CategoryID uuid.UUID `json:"category_id" validate:"omitempty,uuid4"`
}