system-prompts-and-models-o.../salesflow-saas/backend/app/models/base.py

25 lines
833 B
Python

import uuid
from datetime import datetime, timezone
from sqlalchemy import Column, DateTime, ForeignKey, String
from sqlalchemy.orm import declared_attr
from app.database import Base
from app.models.compat import UUID, default_uuid
class BaseModel(Base):
__abstract__ = True
id = Column(UUID(as_uuid=True), primary_key=True, default=default_uuid)
created_at = Column(DateTime(timezone=True), default=lambda: datetime.now(timezone.utc))
updated_at = Column(DateTime(timezone=True),
default=lambda: datetime.now(timezone.utc),
onupdate=lambda: datetime.now(timezone.utc))
class TenantModel(BaseModel):
__abstract__ = True
@declared_attr
def tenant_id(cls):
return Column(UUID(as_uuid=True), ForeignKey("tenants.id"), nullable=False, index=True)