a
    gh                     @   s4   d dl mZmZmZ d dlmZ G dd deZdS )    )Schemafieldsvalidate)common_passwordsc                   @   s  e Zd ZdZg dZejdddZejdej	dddd	gd
diddZ
ejdej	dddd	ejeddgd
diddZejdejddej	dddd	gd
diddZejdej	dddejdddgd
d id!dZejdej	dddejed"dgd
d#id$dZd%S )&RegisterSchemaai  
    Schema for validating user registration data.

    Attributes:
        username (str): User's chosen username.
        first_name (str): User's first name.
        last_name (str): User's last name.
        email (str): User's email address.
        password (str): User's password.
        password_confirm (str): Confirmation of the user's password.
    )zAnonymous CompanyzBrands CompanyzAd Agency CompanyzTV Channels CompanyFzUser username)requireddescription      z1company name must be between 1 and 150 characters)minmaxerrorr   zcompany name is required.zUser company name)r   r   error_messagesr   T2   z0Company type must be between 1 and 50 characterszInvalid company type)r   zCompany type is required.zUser Company typezInvalid email format   d   z*Email must be between 5 and 100 characterszEmail is required.z
User email   z&Password must be at least 8 characters)r   r   z"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).+$zXPassword must contain at least one lowercase letter, one uppercase letter, and one digitzPassword is required.zUser passwordz$Common or easily guessable password.z"Password confirmation is required.zConfirm passwordN)__name__
__module____qualname____doc__allowed_company_typesr   Stringusernamer   Lengthcompany_nameOneOfcompany_typeEmailemailRegexppasswordNoneOfr   password_confirm r$   r$   /app/app/schema/register.pyr      s`   

r   N)marshmallowr   r   r   app.utils.password_generatorr   r   r$   r$   r$   r%   <module>   s   