from fastapi import APIRouter, Depends, HTTPException, status, Query from sqlalchemy.orm import Session from typing import List, Optional from app.database import get_db from app.schemas.supplier import SupplierCreate, SupplierUpdate, SupplierResponse from app.crud import supplier as supplier_crud router = APIRouter( prefix="/suppliers", tags=["Suppliers"] ) @router.get("/", response_model=List[SupplierResponse]) def get_suppliers( skip: int = 0, limit: int = 100, include_inactive: bool = False, db: Session = Depends(get_db) ): return supplier_crud.get_suppliers(db, skip=skip, limit=limit, include_inactive=include_inactive) @router.get("/{supplier_id}", response_model=SupplierResponse) def get_supplier(supplier_id: int, db: Session = Depends(get_db)): db_supplier = supplier_crud.get_supplier(db, supplier_id=supplier_id) if db_supplier is None: raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail="Supplier not found") return db_supplier @router.post("/", response_model=SupplierResponse, status_code=status.HTTP_201_CREATED) def create_supplier(supplier: SupplierCreate, db: Session = Depends(get_db)): return supplier_crud.create_supplier(db=db, supplier=supplier) @router.put("/{supplier_id}", response_model=SupplierResponse) def update_supplier(supplier_id: int, supplier: SupplierUpdate, db: Session = Depends(get_db)): return supplier_crud.update_supplier(db=db, supplier_id=supplier_id, supplier=supplier) @router.delete("/{supplier_id}") def delete_supplier(supplier_id: int, db: Session = Depends(get_db)): return supplier_crud.delete_supplier(db=db, supplier_id=supplier_id)