import { Observable } from 'rxjs';
import { Floor, Lead, RentListing, SchemePin, Shop, ShopCategory } from '../models/mall-content.model';

/** Per docs/backend/PHASE-10-CONTENT-MODULES-CONTRACT.md §2. */
export interface MallContentGateway {
  loadShops(): Observable<Shop[]>;
  loadShopCategories(): Observable<ShopCategory[]>;
  loadFloors(): Observable<Floor[]>;
  loadSchemePins(floorId: string): Observable<SchemePin[]>;
  loadRentListings(): Observable<RentListing[]>;
  submitLead(lead: Omit<Lead, 'id' | 'createdAt'>): Observable<Lead>;
}
