35f5084005
git-subtree-dir: backend git-subtree-mainline:dc11190527git-subtree-split:acae976622
65 lines
2.4 KiB
Go
65 lines
2.4 KiB
Go
package dto
|
|
|
|
import "time"
|
|
|
|
// RequestOTPRequest بدنهی درخواست ارسال کد تایید
|
|
type RequestOTPRequest struct {
|
|
Phone string `json:"phone" binding:"required"`
|
|
}
|
|
|
|
// VerifyOTPRequest بدنهی درخواست تایید کد
|
|
type VerifyOTPRequest struct {
|
|
Phone string `json:"phone" binding:"required"`
|
|
OTP string `json:"otp" binding:"required"`
|
|
}
|
|
|
|
// RefreshTokenRequest بدنهی درخواست رفرش توکن
|
|
type RefreshTokenRequest struct {
|
|
RefreshToken string `json:"refresh_token" binding:"required"`
|
|
}
|
|
|
|
// TokenPair جفت توکن access/refresh
|
|
type TokenPair struct {
|
|
AccessToken string `json:"access_token"`
|
|
RefreshToken string `json:"refresh_token"`
|
|
}
|
|
|
|
// AuthResponse پاسخ استاندارد بعد از ورود موفق
|
|
type AuthResponse struct {
|
|
Tokens TokenPair `json:"tokens"`
|
|
User UserProfile `json:"user"`
|
|
IsNewUser bool `json:"is_new_user"`
|
|
OnboardingDone bool `json:"onboarding_done"`
|
|
}
|
|
|
|
// UserProfile نمایش خلاصهی پروفایل کاربر (بدون دادههای حساس)
|
|
type UserProfile struct {
|
|
ID uint `json:"id"`
|
|
Phone string `json:"phone"`
|
|
FirstName string `json:"first_name,omitempty"`
|
|
Gender *string `json:"gender,omitempty"`
|
|
BirthDate *string `json:"birth_date,omitempty"`
|
|
HeightCM *int `json:"height_cm,omitempty"`
|
|
WeightKG *int `json:"weight_kg,omitempty"`
|
|
CurrentStep int `json:"current_step"`
|
|
IsOnboarded bool `json:"is_onboarded"`
|
|
ApprovalStatus string `json:"approval_status"`
|
|
RejectionReason *string `json:"rejection_reason,omitempty"`
|
|
IsAdmin bool `json:"is_admin"`
|
|
State string `json:"state"`
|
|
BlockedReason *string `json:"blocked_reason,omitempty"`
|
|
BlockedAt *time.Time `json:"blocked_at,omitempty"`
|
|
Bio *string `json:"bio,omitempty"`
|
|
StreakCount int `json:"streak_count"`
|
|
NotifyMatches bool `json:"notify_matches"`
|
|
NotifyMessages bool `json:"notify_messages"`
|
|
NotifyLikes bool `json:"notify_likes"`
|
|
}
|
|
|
|
// UserProfileWithPhotos برای لیستهای ادمینی که علاوه بر خلاصهی پروفایل، عکس
|
|
// کاربر رو هم نشون میدن (مثلاً کاربران در انتظار تایید).
|
|
type UserProfileWithPhotos struct {
|
|
UserProfile
|
|
Photos []string `json:"photos"`
|
|
}
|