from sqlalchemy.orm import Session from app.models.owner import Owner from app.schemas.owner import OwnerCreate, OwnerUpdate class OwnerRepository: def __init__(self, db: Session): self.db = db def get(self, owner_id: int) -> Owner: return self.db.query(Owner).filter(Owner.id == owner_id).first() def get_all(self, skip: int = 0, limit: int = 100) -> list[Owner]: return self.db.query(Owner).offset(skip).limit(limit).all() def create(self, owner: OwnerCreate) -> Owner: db_owner = Owner(**owner.dict()) self.db.add(db_owner) self.db.commit() self.db.refresh(db_owner) return db_owner def update(self, owner_id: int, owner: OwnerUpdate) -> Owner: db_owner = self.get(owner_id) if db_owner: for key, value in owner.dict().items(): setattr(db_owner, key, value) self.db.commit() self.db.refresh(db_owner) return db_owner def delete(self, owner_id: int) -> Owner: db_owner = self.get(owner_id) if db_owner: self.db.delete(db_owner) self.db.commit() return db_owner