o
    Xh;                     @   sP   d dl Z d dlmZmZ d dlmZmZ deddfddZdeddfdd	ZdS )
    N)HTTPExceptionstatus)SignupRequestLoginRequestrequestreturnc              
   C   s  | j rt| j  dkrttjdd| jrt| j dkr&ttjddt| jdk r4ttjddtd| jsBttjddzd	}t|| j	sSttjd
dW n t
yl } zttjdt| dd}~ww | j| jkrzttjddt| jdk rttjddtd| jsttjddtd| jsttjddtd| jsttjddtd| jsttjdd| jdurt| j dkrttjdddS dS )z{
    Validate all fields of the signup request.
    Raises HTTPException with appropriate message if validation fails.
    r   zName cannot be emptystatus_codedetailzUsername cannot be empty   z+Username must be at least 3 characters longz^[a-zA-Z0-9_]+$z;Username can only contain letters, numbers, and underscores0^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$Invalid email format+Please enter a valid email address. Error: NzPasswords do not match   z+Password must be at least 8 characters longz[A-Z]z3Password must contain at least one uppercase letterz[a-z]z3Password must contain at least one lowercase letterz[0-9]z(Password must contain at least one digitz[!@#$%^&*(),.?\":{}|<>]z4Password must contain at least one special characterz-Organization name cannot be empty if provided)namelenstripr   r   HTTP_400_BAD_REQUESTusernamerematchemail	Exceptionstrpasswordconfirm_passwordsearchorganizationr   patterne r!   D/var/www/html/construction_image-detection-poc/src/utils/validate.pyvalidate_signup_request   s   r#   c              
   C   s   | j rt| j  dkrttjddzd}t|| j s$ttjddW n ty= } zttjdt	| dd}~ww | j
rJt| j
 dkrQttjdddS )	zz
    Validate all fields of the login request.
    Raises HTTPException with appropriate message if validation fails.
    r   zEmail cannot be emptyr   r   r   r   NzPassword cannot be empty)r   r   r   r   r   r   r   r   r   r   r   r   r!   r!   r"   validate_login_request`   s4   r$   )	r   fastapir   r   src.schemas.auth_schemar   r   r#   r$   r!   r!   r!   r"   <module>   s
    Z