from sqlmodel import Session, select from src.models import Productor def get_all(session: Session) -> list[Productor]: statement = select(Productor) return session.exec(statement).all() def get_one(session: Session, productor_id: int) -> Productor: return session.get(Productor, productor_id) def create_one(session: Session, productor: Productor) -> Productor: productor_create = productor.model_dump(exclude_unset=True) new_productor = Productor(**productor_create) session.add(new_productor) session.commit() session.refresh(new_productor) return new_productor def update_one(session: Session, id: int, productor: Productor) -> Productor: statement = select(Productor).where(Productor.id == id) result = session.exec(statement) new_productor = result.first() if not new_productor: return None productor_updates = productor.model_dump(exclude_unset=True) for key, value in productor_updates.items(): setattr(new_productor, key, value) session.add(new_productor) session.commit() session.refresh(new_productor) return new_productor def delete_one(session: Session, id: int) -> Productor: statement = select(Productor).where(Productor.id == id) result = session.exec(statement) productor = result.first() if not productor: return None session.delete(productor) session.commit() return productor