37 lines
1.2 KiB
Python

import datetime
from sqlalchemy import Column, Integer, VARCHAR, Enum, DateTime, Date, String
from sqlalchemy.sql import func
from enum import Enum as PyEnum
from app.infrastructure.database.models import Base
from werkzeug.security import check_password_hash, generate_password_hash
class UserGenderEnum(PyEnum):
MALE = 'мужской'
FEMALE = 'женский'
NOTHING = 'не указан'
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True, autoincrement=True)
first_name = Column(VARCHAR(150), nullable=False)
last_name = Column(VARCHAR(150), nullable=False)
patronymic = Column(VARCHAR(150))
gender = Column(Enum(UserGenderEnum), nullable=False)
birthday = Column(Date, nullable=False)
registration_date = Column(DateTime, nullable=False, default=func.utcnow)
login = Column(VARCHAR(150), nullable=False, unique=True)
password = Column(String, nullable=False)
email = Column(VARCHAR(200), nullable=False)
def check_password(self, password):
return check_password_hash(self.password, password)
def set_password(self, password):
self.password = generate_password_hash(password)