"""
SCM Public Queries — Contract v1.

کوئری‌هایی که سایر ماژول‌ها می‌توانند از SCM درخواست دهند.
"""
from dataclasses import dataclass
from typing import Optional
from uuid import UUID


@dataclass(frozen=True)
class GetVendorSummary:
    """دریافت خلاصه اطلاعات تأمین‌کننده."""
    tenant_id: UUID
    vendor_id: UUID


@dataclass(frozen=True)
class GetVendorsByProduct:
    """دریافت لیست تأمین‌کنندگان یک کالا."""
    tenant_id: UUID
    product_id: UUID


@dataclass(frozen=True)
class GetPurchaseOrderSummary:
    """دریافت خلاصه سفارش خرید."""
    tenant_id: UUID
    po_id: UUID


@dataclass(frozen=True)
class GetVendorOpenOrders:
    """دریافت سفارش‌های باز یک تأمین‌کننده."""
    tenant_id: UUID
    vendor_id: UUID


@dataclass(frozen=True)
class GetProductPurchaseHistory:
    """دریافت تاریخچه خرید یک کالا."""
    tenant_id: UUID
    product_id: UUID
    limit: int = 10
