""" The Client table """ from fastapi import APIRouter, HTTPException from sqlmodel import Session, select from app.api.deps import SessionDep, exists from app.schemas.models import Client from app.schemas.schemas import ClientCreate from typing import Sequence router = APIRouter(prefix="/clients", tags=["clients"]) @router.get("/", response_model=Client) def fetch_clients(client: Client, session: SessionDep) -> Sequence[Client]: """Fetch client list """ clients = session.exec(select(Client)).all() return clients @router.post("/", response_model=ClientCreate) def create_client(client_data: ClientCreate, session: SessionDep) -> Client: existing = exists(session, Client, tin_number=client_data.tin_number) if existing: raise HTTPException(status_code=400, detail="Client with this tin number already exists") client = Client.model_validate(client_data) session.add(client) session.commit() session.refresh(client) return client