from rest_framework import serializers
from auth_apis.models import *

class  LoginSerializer(serializers.Serializer):
    isd_code     = serializers.CharField(required=True,error_messages={'required':'Country code is required.'})
    phone_number = serializers.CharField(required=True,error_messages={'required':'Phone number is required.'})


class VerifyOtpSerializer(serializers.Serializer):
    otp          = serializers.CharField(required=True,error_messages={'required':'OTP is required.'})
    isd_code     = serializers.CharField(required=True,error_messages={'required':'Country code is required.'})
    phone_number = serializers.CharField(required=True,error_messages={'required':'Phone number is required.'})

class UpdateProfileSerializer(serializers.Serializer):
    first_name   = serializers.CharField(required=False)
    last_name    = serializers.CharField(required=False)
    isd_code     = serializers.CharField(required=False)
    phone_number = serializers.CharField(required=False)
    dob          = serializers.CharField(required=False)
    email        = serializers.CharField(required=False)


class AddAddressSerializer(serializers.Serializer):
    address_label = serializers.CharField(required=True,error_messages={'required':'Address label is required.'})
    name = serializers.CharField(required=True,error_messages={'required':'Name is required.'})
    address_line = serializers.CharField(required=True,error_messages={'required':'Address line is required.'})
    country = serializers.CharField(required=True,error_messages={'required':'Country is required.'})
    state = serializers.CharField(required=True,error_messages={'required':'State is required.'})
    city = serializers.CharField(required=True,error_messages={'required':'City is required.'})
    latitude = serializers.CharField(required=True,error_messages={'required':'Latitude is required.'})
    longitude = serializers.CharField(required=True,error_messages={'required':'Longitude is required.'}) 
    pin_code = serializers.CharField(required=True,error_messages={'required':'Pin code is required.'})
    isd_code = serializers.CharField(required=True,error_messages={'required':'Country code is required.'})
    phone_number = serializers.CharField(required=True,error_messages={'required':'Phone number is required.'})
    


class RegisterSerializer(serializers.Serializer):
    isd_code =  serializers.CharField(required=True,error_messages={'required':'Country code is required.'})
    phone_number = serializers.CharField(required =True,error_messages={'required':'Phone number is required.'})
    password = serializers.CharField(required = True,error_messages={'required':'Password is required.'})

class UpdateProfileSerializer(serializers.Serializer):
    isd_code     = serializers.CharField(required=True,error_messages={'required':'Country code is required.'})
    phone_number = serializers.CharField(required=True,error_messages={'required':'Phone number is required.'})
    dob          = serializers.CharField(required=False)
    email        = serializers.CharField(required=True,error_messages={'required':'Email is required.'})
    first_name   = serializers.CharField(required=False)
    last_name    = serializers.CharField(required=False)


class VerifyOtppannelSerializer(serializers.Serializer):
    otp = serializers.CharField(required=True,error_messages={'required':'OTP is required.'})
    isd_code  = serializers.CharField(required=True,error_messages={'required':'Country code is required.'})
    phone_number = serializers.CharField(required=True,error_messages={'required':'Phone number is required.'})


class ResetPasswordSerializer(serializers.Serializer):
    old_password = serializers.CharField(required=True,error_messages={'required':'Old password is required.'})
    new_password = serializers.CharField(required =True,error_messages={'required':'New password is required.'})
    confirm_password = serializers.CharField(required=True,error_messages={'required':'Confirm password is required.'})


class loginSerializer(serializers.Serializer):
    isd_code =  serializers.CharField(required=True,error_messages={'required':'Country code is required.'})
    phone_number =  serializers.CharField(required=True,error_messages={'required':'Phone number is required.'})
    password =  serializers.CharField(required=True,error_messages={'required':'Password is required.'})


class ForgetPasswordSerializer(serializers.Serializer):
    isd_code = serializers.CharField(required = True,error_messages={'required':'Country code is required.'})
    phone_number = serializers.CharField(required = True,error_messages={'required':'Phone number is required.'})
    password = serializers.CharField(required = True,error_messages={'required':'Password is required.'})
    confirm_password = serializers.CharField(required = True,error_messages={'required':'Confirm password is required.'})