temp_user.go 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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. TmpUserInvitePending TempUserStatus = "InvitePending"
  13. TmpUserCompleted TempUserStatus = "Completed"
  14. TmpUserEmailPending TempUserStatus = "EmailPending"
  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 GetTempUsersForOrgQuery struct {
  52. OrgId int64
  53. Status TempUserStatus
  54. Result []*TempUserDTO
  55. }
  56. type GetTempUserByCodeQuery struct {
  57. Code string
  58. Result *TempUserDTO
  59. }
  60. type TempUserDTO struct {
  61. Id int64 `json:"id"`
  62. OrgId int64 `json:"orgId"`
  63. Name string `json:"name"`
  64. Email string `json:"email"`
  65. Role RoleType `json:"role"`
  66. InvitedByLogin string `json:"invitedByLogin"`
  67. InvitedByEmail string `json:"invitedByEmail"`
  68. InvitedByName string `json:"invitedByName"`
  69. Code string `json:"code"`
  70. Status TempUserStatus `json:"status"`
  71. Url string `json:"url"`
  72. EmailSent bool `json:"emailSent"`
  73. EmailSentOn time.Time `json:"emailSentOn"`
  74. Created time.Time `json:"createdOn"`
  75. }