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

28 lines
1.2 KiB
Python

from sqlalchemy import Column, String, Boolean, DateTime
from app.models.compat import JSONB, IS_SQLITE
from sqlalchemy.orm import relationship
from datetime import datetime, timezone
from app.models.base import BaseModel
class Tenant(BaseModel):
__tablename__ = "tenants"
name = Column(String(255), nullable=False)
name_ar = Column(String(255))
slug = Column(String(100), unique=True, nullable=False, index=True)
industry = Column(String(100))
plan = Column(String(50), default="basic")
logo_url = Column(String(500))
phone = Column(String(20))
email = Column(String(255))
whatsapp_number = Column(String(20))
settings = Column(JSONB(), default=dict)
is_active = Column(Boolean, default=True)
updated_at = Column(DateTime(timezone=True), default=lambda: datetime.now(timezone.utc), onupdate=lambda: datetime.now(timezone.utc))
users = relationship("User", cascade="all, delete-orphan", foreign_keys="User.tenant_id")
leads = relationship("Lead", cascade="all, delete-orphan", foreign_keys="Lead.tenant_id")
customers = relationship("Customer", cascade="all, delete-orphan", foreign_keys="Customer.tenant_id")
deals = relationship("Deal", cascade="all, delete-orphan", foreign_keys="Deal.tenant_id")