import { Observable } from 'rxjs';
import { InventoryRecord, Offer, OfferLookupQuery } from '../models/offer.model';

/** Per docs/backend/PHASE-3-CATALOG-OFFER-FULFILLMENT-CONTRACT.md §7. */
export interface OfferGateway {
  loadOffers(sellerId?: string): Observable<Offer[]>;
  lookup(query: OfferLookupQuery): Observable<Offer[]>;
  loadInventory(offerId: string): Observable<InventoryRecord | null>;
  publish(offerId: string): Observable<{ ok: true } | { ok: false; errors: string[] }>;
}
