feat: team draft

This commit is contained in:
2024-11-12 19:15:13 +07:00
parent 8159b65605
commit f5250d5361
23 changed files with 313 additions and 48 deletions
+3 -1
View File
@@ -13,7 +13,9 @@ type Model struct {
}
func (m *Model) BeforeCreate(tx *gorm.DB) error {
m.ID = m.GenerateID()
if m.ID == "" {
m.ID = m.GenerateID()
}
return nil
}
+23
View File
@@ -0,0 +1,23 @@
package models
import "time"
type Team struct {
Model
Name string `json:"name" gorm:"type:varchar(32)"`
Icon string `json:"icon" gorm:"type:varchar(2)"`
Members []*User `json:"members" gorm:"many2many:team_members"`
Timestamps
SoftDeletes
}
type TeamMembers struct {
TeamID string `json:"teamId" gorm:"primarykey;type:varchar(26)"`
Team Team `json:"team"`
UserID string `json:"userId" gorm:"primarykey;type:varchar(26)"`
User User `json:"user"`
Role string `json:"role" gorm:"type:varchar(16)"`
CreatedAt time.Time `json:"createdAt"`
}
+2
View File
@@ -14,6 +14,8 @@ type User struct {
Email string `json:"email" gorm:"unique"`
Role string `json:"role" gorm:"default:user;not null;index:users_role_idx;type:varchar(8)"`
Teams []*Team `json:"teams" gorm:"many2many:team_members"`
Timestamps
SoftDeletes
}