team_member.go 988 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package models
  2. import (
  3. "errors"
  4. "time"
  5. )
  6. // Typed errors
  7. var (
  8. ErrTeamMemberAlreadyAdded = errors.New("User is already added to this team")
  9. )
  10. // TeamMember model
  11. type TeamMember struct {
  12. Id int64
  13. OrgId int64
  14. TeamId int64
  15. UserId int64
  16. Created time.Time
  17. Updated time.Time
  18. }
  19. // ---------------------
  20. // COMMANDS
  21. type AddTeamMemberCommand struct {
  22. UserId int64 `json:"userId" binding:"Required"`
  23. OrgId int64 `json:"-"`
  24. TeamId int64 `json:"-"`
  25. }
  26. type RemoveTeamMemberCommand struct {
  27. OrgId int64 `json:"-"`
  28. UserId int64
  29. TeamId int64
  30. }
  31. // ----------------------
  32. // QUERIES
  33. type GetTeamMembersQuery struct {
  34. OrgId int64
  35. TeamId int64
  36. UserId int64
  37. Result []*TeamMemberDTO
  38. }
  39. // ----------------------
  40. // Projections and DTOs
  41. type TeamMemberDTO struct {
  42. OrgId int64 `json:"orgId"`
  43. TeamId int64 `json:"teamId"`
  44. UserId int64 `json:"userId"`
  45. Email string `json:"email"`
  46. Login string `json:"login"`
  47. AvatarUrl string `json:"avatarUrl"`
  48. }