member.dto.ts 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. import { FastifyRequest } from 'fastify'
  2. import { VipLevel, MemberStatus } from '../entities/member.entity'
  3. import { Pagination } from './common.dto'
  4. export interface CreateMemberBody {
  5. userId: number
  6. email?: string
  7. phone?: string
  8. vipLevel?: VipLevel
  9. status?: MemberStatus
  10. vipExpireTime?: Date
  11. ip?: string
  12. }
  13. export interface UpdateMemberBody {
  14. id: number
  15. userId?: number
  16. email?: string
  17. phone?: string
  18. vipLevel?: VipLevel
  19. status?: MemberStatus
  20. vipExpireTime?: Date
  21. ip?: string
  22. }
  23. export interface ListMemberQuery extends Pagination {
  24. vipLevel?: VipLevel | VipLevel[]
  25. status?: MemberStatus | MemberStatus[]
  26. userId?: number
  27. }
  28. export interface MemberResponse {
  29. id: number
  30. userId: number
  31. email?: string
  32. phone?: string
  33. vipLevel: VipLevel
  34. status: MemberStatus
  35. vipExpireTime?: Date
  36. lastLoginAt?: Date
  37. ip?: string
  38. createdAt: Date
  39. updatedAt: Date
  40. }
  41. export interface UpdateGuestBody {
  42. userId: number
  43. name: string
  44. password: string
  45. email?: string
  46. phone?: string
  47. }
  48. export interface MemberLoginBody {
  49. name: string
  50. password: string
  51. }
  52. export interface ResetPasswordBody {
  53. password: string
  54. }
  55. export interface RegisterBody {
  56. name: string
  57. password: string
  58. email?: string
  59. phone?: string
  60. code?: string
  61. memberCode?: string
  62. landingDomain?: string // 落地域名,通过落地域名查询相关团队进行绑定
  63. }
  64. export interface UpdateProfileBody {
  65. name: string
  66. email?: string
  67. }