MIF_E31222379_BE/dto/auth_dto.go

43 lines
920 B
Go

package dto
import (
"regexp"
"strings"
)
type RegisterRequest struct {
Phone string `json:"phone"`
}
type VerifyOTPRequest struct {
Phone string `json:"phone"`
OTP string `json:"otp"`
DeviceID string `json:"device_id"`
}
type UserDataResponse struct {
UserID string `json:"user_id"`
UserRole string `json:"user_role"`
Token string `json:"token"`
}
func (r *RegisterRequest) Validate() (map[string][]string, bool) {
errors := make(map[string][]string)
if strings.TrimSpace(r.Phone) == "" {
errors["phone"] = append(errors["phone"], "Phone is required")
} else if !IsValidPhoneNumber(r.Phone) {
errors["phone"] = append(errors["phone"], "Invalid phone number format. Use 62 followed by 9-13 digits")
}
if len(errors) > 0 {
return errors, false
}
return nil, true
}
func IsValidPhoneNumber(phone string) bool {
re := regexp.MustCompile(`^62\d{9,13}$`)
return re.MatchString(phone)
}