from sqlalchemy.orm import Session from app.models.category import Category from app.schemas.category import CategoryCreate, CategoryUpdate def create_category(db: Session, data: CategoryCreate) -> Category: cat = Category(name=data.name, description=data.description) db.add(cat) db.commit() db.refresh(cat) return cat def get_categories(db: Session): return db.query(Category).all() def get_category(db: Session, category_id: str): return db.query(Category).filter(Category.id == category_id).first() def update_category(db: Session, category_id: str, data: CategoryUpdate): cat = get_category(db, category_id) if not cat: return None for field, value in data.model_dump(exclude_unset=True).items(): setattr(cat, field, value) db.commit() db.refresh(cat) return cat def delete_category(db: Session, category_id: str): cat = get_category(db, category_id) if not cat: return False db.delete(cat) db.commit() return True