from src.domain.interfaces.product_repository import ProductRepositoryInterface
from src.core.exceptions import NotFoundError


class DeleteProductUseCase:
    """Soft-deletes a product by ID."""

    def __init__(self, product_repo: ProductRepositoryInterface):
        self.product_repo = product_repo

    def execute(self, product_id: int) -> None:
        deleted = self.product_repo.delete(product_id)
        if not deleted:
            raise NotFoundError(f"Product {product_id} not found")
