Add User model

This commit is contained in:
Backend IM Bot 2025-03-26 19:29:09 +00:00
parent 2df92db228
commit d7c46b7bde

View File

@ -1,17 +1,24 @@
from sqlalchemy import Column, String, Integer, Boolean, DateTime, ForeignKey from sqlalchemy import Column, String, Integer, Boolean, DateTime, ForeignKey, Enum
from sqlalchemy.orm import relationship from sqlalchemy.orm import relationship
from sqlalchemy.sql import func from sqlalchemy.sql import func
from sqlalchemy.dialects.postgresql import UUID
from core.database import Base from core.database import Base
import uuid import uuid
from datetime import datetime from datetime import datetime
class User(Base): class User(Base):
__tablename__ = "users" __tablename__ = "users"
id = Column(String, primary_key=True, default=lambda: str(uuid.uuid4()))
username = Column(String, unique=True, nullable=False, index=True) id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4)
email = Column(String, unique=True, nullable=False) username = Column(String(50), unique=True, nullable=False, index=True)
password = Column(String, nullable=False) email = Column(String(255), unique=True, nullable=False, index=True)
full_name = Column(String, nullable=False) password = Column(String(255), nullable=False)
is_active = Column(Boolean, default=True) first_name = Column(String(50), nullable=True)
created_at = Column(DateTime, default=func.now()) last_name = Column(String(50), nullable=True)
updated_at = Column(DateTime, default=func.now(), onupdate=func.now()) phone_number = Column(String(20), unique=True, nullable=True)
role = Column(Enum('admin', 'user', name='user_roles'), default='user')
is_active = Column(Boolean, default=True, nullable=False)
is_verified = Column(Boolean, default=False, nullable=False)
last_login = Column(DateTime, nullable=True)
created_at = Column(DateTime(timezone=True), server_default=func.now(), nullable=False)
updated_at = Column(DateTime(timezone=True), server_default=func.now(), onupdate=func.now(), nullable=False)