mirror of
https://github.com/khairul169/vaulterm.git
synced 2026-09-15 17:03:30 +07:00
feat: team draft
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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"`
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user