export interface SamPointOfContact {
  type?: string;
  fullName?: string;
  email?: string;
  phone?: string;
}

export interface SamPlaceOfPerformance {
  city?: { code?: string; name?: string };
  state?: { code?: string; name?: string };
  country?: { code?: string; name?: string };
  zip?: string;
}

export interface SamOpportunityRecord {
  noticeId: string;
  title: string;
  solicitationNumber?: string;
  fullParentPathName?: string;
  postedDate?: string;
  type?: string;
  responseDeadLine?: string;
  naicsCode?: string;
  naicsCodes?: string[];
  classificationCode?: string;
  active?: string;
  setAside?: string;
  typeOfSetAside?: string;
  typeOfSetAsideDescription?: string;
  award?: {
    amount?: string | number;
    number?: string;
    date?: string;
  };
  pointOfContact?: SamPointOfContact[];
  placeOfPerformance?: SamPlaceOfPerformance;
  uiLink?: string;
  description?: string;
}

export interface SamSearchResponse {
  totalRecords?: number;
  limit?: number;
  offset?: number;
  opportunitiesData?: SamOpportunityRecord[];
  errorCode?: string;
  errorMessage?: string;
}

export interface SamSearchParams {
  naicsCode: string;
  state?: string;
  postedFrom: string;
  postedTo: string;
  limit?: number;
  offset?: number;
  title?: string;
}
