-
Notifications
You must be signed in to change notification settings - Fork 6
/
team_user.go
43 lines (36 loc) · 951 Bytes
/
team_user.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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/*
Copyright 2021 Adevinta
*/
package api
import (
"time"
)
// UserTeam ...
type UserTeam struct {
UserID string `gorm:"primary_key;AUTO_INCREMENT" json:"user_id" validate:"required"`
User *User `json:"user" validate:"-"`
TeamID string `gorm:"primary_key;AUTO_INCREMENT" json:"team_id" validate:"required"`
Team *Team `json:"team" validate:"-"`
Role Role `json:"role"`
CreatedAt time.Time `json:"-"`
UpdatedAt time.Time `json:"-"`
}
func (UserTeam) TableName() string {
return "user_team"
}
func (ut UserTeam) ToResponse() *MemberResponse {
response := &MemberResponse{}
if ut.User != nil {
response.User = *ut.User.ToResponse()
}
response.Role = ut.Role
return response
}
type TeamMembersReponse struct {
Team *TeamResponse `json:"team"`
Members []MemberResponse `json:"members"`
}
type MemberResponse struct {
User UserResponse `json:"user"`
Role Role `json:"role"`
}