UNPKG

@lineai/gov-deals

Version:

Explore Federal contracts for government building renovations, city hall renovations, courthouse updates, library modernizations, federal building improvement contracts, base housing and facilities upgrades.

43 lines (42 loc) 1.28 kB
/** * Common interface for all data sources */ import { SamOpportunity, SamOpportunitySearchFilters, SamOpportunitySearchResponse } from '../types/opportunities'; import { GovDealsPaginationParams } from '../types/common'; /** * Interface that all data sources must implement * This allows swapping between SAM.gov API and CSV data */ export interface OpportunitiesDataSource { /** * Search for opportunities */ search(filters?: SamOpportunitySearchFilters, pagination?: GovDealsPaginationParams): Promise<SamOpportunitySearchResponse>; /** * Get opportunity by ID */ getById(noticeId: string): Promise<SamOpportunity>; /** * Get opportunity description */ getDescription(noticeId: string): Promise<string>; /** * Search for construction opportunities */ searchConstruction(additionalFilters?: Partial<SamOpportunitySearchFilters>, pagination?: GovDealsPaginationParams): Promise<SamOpportunitySearchResponse>; } /** * Data source types */ export type DataSourceType = 'api' | 'csv'; /** * Configuration for data sources */ export interface DataSourceConfig { type: DataSourceType; apiKey?: string; baseUrl?: string; csvPath?: string; timeout?: number; debug?: boolean; }