temp_user.go 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. package models
  2. import (
  3. "errors"
  4. "time"
  5. )
  6. // Typed errors
  7. var (
  8. ErrTempUserNotFound = errors.New("User not found")
  9. )
  10. type TempUserStatus string
  11. const (
  12. TmpUserSignUpStarted TempUserStatus = "SignUpStarted"
  13. TmpUserInvitePending TempUserStatus = "InvitePending"
  14. TmpUserCompleted TempUserStatus = "Completed"
  15. TmpUserRevoked TempUserStatus = "Revoked"
  16. )
  17. // TempUser holds data for org invites and unconfirmed sign ups
  18. type TempUser struct {
  19. Id int64
  20. OrgId int64
  21. Version int
  22. Email string
  23. Name string
  24. Role RoleType
  25. InvitedByUserId int64
  26. Status TempUserStatus
  27. EmailSent bool
  28. EmailSentOn time.Time
  29. Code string
  30. RemoteAddr string
  31. Created time.Time
  32. Updated time.Time
  33. }
  34. // ---------------------
  35. // COMMANDS
  36. type CreateTempUserCommand struct {
  37. Email string
  38. Name string
  39. OrgId int64
  40. InvitedByUserId int64
  41. Status TempUserStatus
  42. Code string
  43. Role RoleType
  44. RemoteAddr string
  45. Result *TempUser
  46. }
  47. type UpdateTempUserStatusCommand struct {
  48. Code string
  49. Status TempUserStatus
  50. }
  51. type GetTempUsersQuery struct {
  52. OrgId int64
  53. Email string
  54. Status TempUserStatus
  55. Result []*TempUserDTO
  56. }
  57. type GetTempUserByCodeQuery struct {
  58. Code string
  59. Result *TempUserDTO
  60. }
  61. type TempUserDTO struct {
  62. Id int64 `json:"id"`
  63. OrgId int64 `json:"orgId"`
  64. Name string `json:"name"`
  65. Email string `json:"email"`
  66. Role RoleType `json:"role"`
  67. InvitedByLogin string `json:"invitedByLogin"`
  68. InvitedByEmail string `json:"invitedByEmail"`
  69. InvitedByName string `json:"invitedByName"`
  70. Code string `json:"code"`
  71. Status TempUserStatus `json:"status"`
  72. Url string `json:"url"`
  73. EmailSent bool `json:"emailSent"`
  74. EmailSentOn time.Time `json:"emailSentOn"`
  75. Created time.Time `json:"createdOn"`
  76. }