import { Observable } from 'rxjs';
import { MarketplaceRevision } from '../models/marketplace-revision.model';

/** Per docs/backend/PHASE-9-TENANT-REGISTRY-DOMAINS-CONTRACT.md §5. */
export interface MarketplaceRevisionGateway {
  createDraft(marketplaceId: string): Observable<MarketplaceRevision>;
  validate(marketplaceId: string, revisionId: string): Observable<MarketplaceRevision>;
  publish(marketplaceId: string, revisionId: string): Observable<MarketplaceRevision>;
  /** Creates a NEW revision pointing at the prior published content - never mutates the old one. */
  rollback(marketplaceId: string, revisionId: string): Observable<MarketplaceRevision>;
}
