O2Sound_ver2_final/backend/app/repositories/item_repository.py

36 lines
1.2 KiB
Python

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)