package oppintel // View is the read API shape of one normalized record. It omits the raw payload and its object key: // the retained raw is internal provenance, not part of the read surface. EstimatedValue renders as a // fixed two decimal string so the exact figure survives JSON, and is empty (never a fabricated zero) // when the source gave no value. PlanningNote is set only on forecast rows so the client always shows // that a forecast is planning data. type View struct { ID string `json:"id"` Source string `json:"source"` SourceRecordID string `json:"source_record_id"` Kind string `json:"kind"` IsPlanning bool `json:"is_planning"` PlanningNote string `json:"planning_note,omitempty"` Title string `json:"title"` Agency string `json:"agency"` SubAgency string `json:"sub_agency,omitempty"` NAICS string `json:"naics,omitempty"` PSC string `json:"psc,omitempty"` PlaceOfPerformance string `json:"place_of_performance,omitempty"` SetAside string `json:"set_aside,omitempty"` ContractVehicle string `json:"contract_vehicle,omitempty"` EstimatedValue string `json:"estimated_value,omitempty"` ValueSource string `json:"value_source,omitempty"` IncumbentName string `json:"incumbent_name,omitempty"` PostedDate string `json:"posted_date,omitempty"` ResponseDeadline string `json:"response_deadline,omitempty"` EstimatedAwardDate string `json:"estimated_award_date,omitempty"` UILink string `json:"ui_link,omitempty"` SyncedAt string `json:"synced_at"` }