admin_profile.go 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package request
  2. import "time"
  3. type AdminUserProfile struct {
  4. ID int64 `gorm:"primary_key;not_null;auto_increment;" json:"id"`
  5. UserID uint `json:"user_id"`
  6. Avatar string `json:"avatar"`
  7. PhoneNumber string `json:"phone_number"`
  8. Email string `json:"email"`
  9. Bio string `json:"bio"`
  10. Birthdate time.Time `json:"birthdate"`
  11. Gender int `json:"gender"`
  12. Address string `json:"address"`
  13. Website string `json:"website"`
  14. SocialLinks []AdminUserProfileSocialLink `gorm:"ForeignKey:ProfileID" json:"social_links"`
  15. Educations []AdminUserProfileEducation `gorm:"ForeignKey:ProfileID" json:"educations"`
  16. WorkHistories []AdminUserProfileWorkHistory `gorm:"ForeignKey:ProfileID" json:"work_histories"` // 多对多关系,例如用户的工作经历
  17. CreatedAt time.Time
  18. UpdatedAt time.Time
  19. }
  20. // UserProfileSocialLink 表示用户的社交链接
  21. type AdminUserProfileSocialLink struct {
  22. ID int64 `gorm:"primary_key;not_null;auto_increment;" json:"id"`
  23. ProfileID uint `json:"profile_id"`
  24. URL string `json:"url"`
  25. Platform string `json:"platform"`
  26. }
  27. // UserProfileEducation 表示用户的教育经历
  28. type AdminUserProfileEducation struct {
  29. ID int64 `gorm:"primary_key;not_null;auto_increment;" json:"id"`
  30. ProfileID uint `json:"profile_id"`
  31. School string `json:"school"`
  32. Degree string `json:"degree"`
  33. Graduated time.Time `json:"graduated"`
  34. }
  35. // UserProfileWorkHistory 表示用户的工作经历
  36. type AdminUserProfileWorkHistory struct {
  37. ID int64 `gorm:"primary_key;not_null;auto_increment;" json:"id"`
  38. ProfileID uint `json:"profile_id"`
  39. Company string `json:"company"`
  40. Position string `json:"position"`
  41. StartDate time.Time `json:"start_date"`
  42. EndDate time.Time `json:"end_date"`
  43. Responsibilities string `json:"responsibilities"`
  44. }