maybe good

This commit is contained in:
HotSwapp
2025-08-08 15:55:15 -05:00
parent ab6f163c15
commit b257a06787
80 changed files with 19739 additions and 0 deletions

37
app/models/user.py Normal file
View File

@@ -0,0 +1,37 @@
"""
User authentication models
"""
from sqlalchemy import Column, Integer, String, Boolean, DateTime
from sqlalchemy.orm import relationship
from sqlalchemy.sql import func
from app.models.base import BaseModel
class User(BaseModel):
"""
User authentication and authorization
"""
__tablename__ = "users"
id = Column(Integer, primary_key=True, autoincrement=True)
username = Column(String(50), unique=True, nullable=False, index=True)
email = Column(String(100), unique=True, nullable=False, index=True)
hashed_password = Column(String(100), nullable=False)
first_name = Column(String(50))
last_name = Column(String(50))
full_name = Column(String(100)) # Keep for backward compatibility
# Authorization
is_active = Column(Boolean, default=True)
is_admin = Column(Boolean, default=False)
# Activity tracking
last_login = Column(DateTime(timezone=True))
created_at = Column(DateTime(timezone=True), server_default=func.now())
updated_at = Column(DateTime(timezone=True), server_default=func.now(), onupdate=func.now())
# Relationships
audit_logs = relationship("AuditLog", back_populates="user")
def __repr__(self):
return f"<User(username='{self.username}', email='{self.email}')>"