/
user_org.go
40 lines (33 loc) · 1 KB
/
user_org.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
package domains
import "time"
// Target: domains/user_org.go
type UserOrgRole string
const (
UserRoleOwner UserOrgRole = "owner"
UserRoleManager UserOrgRole = "manager"
UserRoleEditor UserOrgRole = "editor"
UserRoleViewer UserOrgRole = "viewer"
UserRoleGuest UserOrgRole = "guest"
)
type UserOrg struct {
Id int64 `json:"id" db:"id"`
UserId int64 `json:"user_id" db:"user_id"`
OrgId int64 `json:"org_id" db:"org_id"`
Role UserOrgRole `json:"role" db:"role" example:"owner" enums:"owner,manager,editor,viewer,guest"`
Status UserStatus `json:"status" db:"status" example:"active" enums:"active"`
CreatedAt time.Time `json:"created_at" db:"created_at"`
UpdatedAt time.Time `json:"updated_at" db:"updated_at"`
}
type UserWithRoles struct {
User
OrgRole map[int64]string `json:"org_role"`
}
func (u UserWithRoles) GetOrgIds() []int64 {
ids := make([]int64, 0)
if len(u.OrgRole) > 0 {
for id := range u.OrgRole {
ids = append(ids, id)
}
}
return ids
}