the beginning of the idiots

This commit is contained in:
2025-10-24 14:51:13 -05:00
parent 0b377030c6
commit cb06217ef7
123 changed files with 10279 additions and 0 deletions

View File

@@ -0,0 +1,53 @@
"""
Tenants API routes
"""
from fastapi import APIRouter, Depends, HTTPException, status
from typing import List
from pydantic import BaseModel
from sqlalchemy.orm import Session
from ..database import SessionLocal
from ..models import Tenant
from ..config.settings import settings
router = APIRouter()
# Pydantic models for tenants
class TenantCreate(BaseModel):
name: str
subdomain: str
class TenantResponse(BaseModel):
id: int
name: str
subdomain: str
is_active: bool
class Config:
from_attributes = True
@router.get("/", response_model=List[TenantResponse])
async def get_tenants(skip: int = 0, limit: int = 100, db: Session = Depends(SessionLocal)):
"""Get all tenants"""
tenants = db.query(Tenant).offset(skip).limit(limit).all()
return tenants
@router.get("/{tenant_id}", response_model=TenantResponse)
async def get_tenant(tenant_id: int, db: Session = Depends(SessionLocal)):
"""Get a specific tenant"""
tenant = db.query(Tenant).filter(Tenant.id == tenant_id).first()
if not tenant:
raise HTTPException(status_code=404, detail="Tenant not found")
return tenant
@router.post("/", response_model=TenantResponse)
async def create_tenant(tenant: TenantCreate, db: Session = Depends(SessionLocal)):
"""Create a new tenant"""
if not settings.MULTI_TENANT_ENABLED:
raise HTTPException(status_code=400, detail="Multi-tenant is not enabled")
db_tenant = Tenant(**tenant.model_dump())
db.add(db_tenant)
db.commit()
db.refresh(db_tenant)
return db_tenant