2
0

user.go 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. package types
  2. type User struct {
  3. ID uint `json:"id"`
  4. Email string `json:"email"`
  5. EmailVerified bool `json:"email_verified"`
  6. FirstName string `json:"first_name"`
  7. LastName string `json:"last_name"`
  8. CompanyName string `json:"company_name"`
  9. }
  10. type CreateUserRequest struct {
  11. Email string `json:"email" form:"required,max=255,email"`
  12. Password string `json:"password" form:"required,max=255"`
  13. FirstName string `json:"first_name" form:"required,max=255"`
  14. LastName string `json:"last_name" form:"required,max=255"`
  15. CompanyName string `json:"company_name" form:"required,max=255"`
  16. ReferralMethod string `json:"referral_method" form:"max=255"`
  17. // ReferredBy is the referral code of the project from which this user was referred
  18. ReferredBy string `json:"referred_by_code" form:"max=255"`
  19. }
  20. type CreateUserResponse User
  21. type GetAuthenticatedUserResponse User
  22. type LoginUserRequest struct {
  23. Email string `json:"email" form:"required,max=255,email"`
  24. Password string `json:"password" form:"required,max=255"`
  25. }
  26. type LoginUserResponse User
  27. type CLILoginUserRequest struct {
  28. Redirect string `schema:"redirect" form:"required"`
  29. }
  30. type CLILoginExchangeRequest struct {
  31. AuthorizationCode string `json:"authorization_code" form:"required"`
  32. }
  33. type CLILoginExchangeResponse struct {
  34. Token string `json:"token" form:"required"`
  35. }
  36. type InitiateResetUserPasswordRequest struct {
  37. Email string `json:"email" form:"required"`
  38. }
  39. type VerifyTokenFinalizeRequest struct {
  40. TokenID uint `json:"token_id" schema:"token_id" form:"required"`
  41. Token string `json:"token" schema:"token" form:"required"`
  42. }
  43. type VerifyEmailFinalizeRequest struct {
  44. VerifyTokenFinalizeRequest
  45. }
  46. type VerifyResetUserPasswordRequest struct {
  47. VerifyTokenFinalizeRequest
  48. Email string `json:"email" form:"required,max=255,email"`
  49. }
  50. type FinalizeResetUserPasswordRequest struct {
  51. VerifyResetUserPasswordRequest
  52. NewPassword string `json:"new_password" form:"required,max=255"`
  53. }
  54. // ListUserProjectsResponse type for api responses to GET /projects
  55. type ListUserProjectsResponse []*ProjectList
  56. type WelcomeWebhookRequest struct {
  57. Email string `json:"email" schema:"email"`
  58. IsCompany bool `json:"isCompany" schema:"isCompany"`
  59. Company string `json:"company" schema:"company"`
  60. Role string `json:"role" schema:"role"`
  61. Name string `json:"name" schema:"name"`
  62. }
  63. type UpdateUserInfoRequest struct {
  64. FirstName string `json:"first_name" form:"required,max=255"`
  65. LastName string `json:"last_name" form:"required,max=255"`
  66. CompanyName string `json:"company_name" form:"required,max=255"`
  67. }