user.go 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  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. AuthProvider string `json:"auth_provider"`
  20. ExternalId string `json:"external_id"`
  21. }
  22. type CreateUserResponse User
  23. type GetAuthenticatedUserResponse User
  24. type LoginUserRequest struct {
  25. Email string `json:"email" form:"required,max=255,email"`
  26. Password string `json:"password" form:"required,max=255"`
  27. }
  28. type LoginUserResponse User
  29. type CLILoginUserRequest struct {
  30. Redirect string `schema:"redirect" form:"required"`
  31. }
  32. type CLILoginExchangeRequest struct {
  33. AuthorizationCode string `json:"authorization_code" form:"required"`
  34. }
  35. type CLILoginExchangeResponse struct {
  36. Token string `json:"token" form:"required"`
  37. }
  38. type InitiateResetUserPasswordRequest struct {
  39. Email string `json:"email" form:"required"`
  40. }
  41. type VerifyTokenFinalizeRequest struct {
  42. TokenID uint `json:"token_id" schema:"token_id" form:"required"`
  43. Token string `json:"token" schema:"token" form:"required"`
  44. }
  45. type VerifyEmailFinalizeRequest struct {
  46. VerifyTokenFinalizeRequest
  47. }
  48. type VerifyResetUserPasswordRequest struct {
  49. VerifyTokenFinalizeRequest
  50. Email string `json:"email" form:"required,max=255,email"`
  51. }
  52. type FinalizeResetUserPasswordRequest struct {
  53. VerifyResetUserPasswordRequest
  54. NewPassword string `json:"new_password" form:"required,max=255"`
  55. }
  56. // ListUserProjectsResponse type for api responses to GET /projects
  57. type ListUserProjectsResponse []*ProjectList
  58. type WelcomeWebhookRequest struct {
  59. Email string `json:"email" schema:"email"`
  60. IsCompany bool `json:"isCompany" schema:"isCompany"`
  61. Company string `json:"company" schema:"company"`
  62. Role string `json:"role" schema:"role"`
  63. Name string `json:"name" schema:"name"`
  64. }
  65. type UpdateUserInfoRequest struct {
  66. FirstName string `json:"first_name" form:"required,max=255"`
  67. LastName string `json:"last_name" form:"required,max=255"`
  68. CompanyName string `json:"company_name" form:"required,max=255"`
  69. }