from sqlalchemy.orm import Session from app.domain.models.item import Item from sqlalchemy.dialects.postgresql import UUID from app.repositories.base_repository import BaseRepository from typing import Optional class ItemRepository(BaseRepository[Item]): '''업체 레포지토리''' def __init__(self, db: Session): super().__init__(Item, db) def get_items(self, id: UUID) -> list[Item]: '''업체(items) 가져오기''' return self.db.query(Item).filter( Item.user_id == id, Item.deleted == False ).all() def get_by_order_id(self, order_id: UUID) -> Optional[Item]: '''주문 ID로 업체 정보 조회''' from app.domain.models.order import Order return self.db.query(Item).join(Order).filter( Order.id == order_id, Item.deleted == False, Order.deleted == False ).first() def update_item(self, item_id: UUID, update_data: dict) -> Optional[Item]: '''ID로 업체 정보 업데이트''' return self.update(item_id, update_data) def delete_item(self, item_id: UUID) -> bool: '''ID로 업체 삭제''' return self.soft_delete(item_id)