sass-imobiliaria/backend/app/models/user.py

38 lines
1.3 KiB
Python

import uuid
from datetime import datetime
from app.extensions import db
class ClientUser(db.Model):
__tablename__ = "client_users"
id = db.Column(
db.String(36),
primary_key=True,
default=lambda: str(uuid.uuid4()),
)
name = db.Column(db.String(150), nullable=False)
email = db.Column(db.String(254), unique=True, nullable=False, index=True)
password_hash = db.Column(db.String(100), nullable=False)
role = db.Column(db.String(20), nullable=False, default="client")
created_at = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
# Contato
phone = db.Column(db.String(20), nullable=True)
whatsapp = db.Column(db.String(20), nullable=True)
# Dados pessoais
cpf = db.Column(db.String(14), nullable=True)
birth_date = db.Column(db.Date, nullable=True)
# Endereço
address_street = db.Column(db.String(200), nullable=True)
address_number = db.Column(db.String(20), nullable=True)
address_complement = db.Column(db.String(100), nullable=True)
address_neighborhood = db.Column(db.String(100), nullable=True)
address_city = db.Column(db.String(100), nullable=True)
address_state = db.Column(db.String(2), nullable=True)
address_zip = db.Column(db.String(9), nullable=True)
# Observações internas (admin)
notes = db.Column(db.Text, nullable=True)