Source identity
| Field | Recorded value |
|---|---|
| Source type | GitHub source |
| Original record | Janady13/missionmatch / internal/modules/opportunities/capture_dto.go |
| Date | Not specified in source |
| Repository | Janady13/missionmatch |
| Revision | 720d47fae476b0d38477ae4401697d372b1ea2bc |
| Branch | feature/opportunity-to-outcome |
| Path or archive member | internal/modules/opportunities/capture_dto.go |
| Original SHA-256 | b49c8496ea338e6720355e415fc613c6fc3c7e131e66c560ee62c113996618e5 |
| Git blob SHA | 6d17b03981bd018eb86a0452aec1292bf0e17ff2 |
| Reading-copy SHA-256 | b49c8496ea338e6720355e415fc613c6fc3c7e131e66c560ee62c113996618e5 |
Recovered source transcript
Download complete source text ↓68 lines · 3.3 KB
package opportunities
// TrackedOppInput creates a tracked opportunity. The intake form's minimum is source_type, title,
// agency_name, solicitation_number, response_deadline, prime_or_sub, capture owner, and status; the
// intelligence fields below are optional. status defaults to identified so a terse manual entry still
// produces a valid row, and a manual opportunity has the same shape as a synced one.
type TrackedOppInput struct {
SourceType string `json:"source_type"`
Title string `json:"title"`
AgencyName string `json:"agency_name"`
OfficeName string `json:"office_name"`
SolicitationNumber string `json:"solicitation_number"`
NoticeType string `json:"notice_type"`
ResponseDeadline string `json:"response_deadline"` // RFC3339 or YYYY-MM-DD or ""
PrimeOrSub string `json:"prime_or_sub"` // "", prime, sub
Status string `json:"status"` // defaults to identified
CaptureOwnerUserID string `json:"capture_owner_user_id"` // uuid or ""
NaicsCode string `json:"naics_code"`
PscCode string `json:"psc_code"`
SetAsideCode string `json:"set_aside_code"`
PlaceOfPerformance string `json:"place_of_performance"`
IncumbentName string `json:"incumbent_name"`
SourceURL string `json:"source_url"`
}
// TrackedOppPatch updates a subset of a tracked opportunity. A nil pointer leaves the column unchanged, so
// a caller sends only what it means to change.
type TrackedOppPatch struct {
Title *string `json:"title"`
AgencyName *string `json:"agency_name"`
OfficeName *string `json:"office_name"`
SolicitationNumber *string `json:"solicitation_number"`
NoticeType *string `json:"notice_type"`
ResponseDeadline *string `json:"response_deadline"`
PrimeOrSub *string `json:"prime_or_sub"`
Status *string `json:"status"`
CaptureOwnerUserID *string `json:"capture_owner_user_id"`
NaicsCode *string `json:"naics_code"`
PscCode *string `json:"psc_code"`
SetAsideCode *string `json:"set_aside_code"`
PlaceOfPerformance *string `json:"place_of_performance"`
IncumbentName *string `json:"incumbent_name"`
SourceURL *string `json:"source_url"`
}
// TrackedOpportunity is the app facing view of a tenant tracked opportunity.
type TrackedOpportunity struct {
ID string `json:"id"`
SourceType string `json:"source_type"`
Title string `json:"title"`
AgencyName string `json:"agency_name"`
OfficeName string `json:"office_name"`
SolicitationNumber string `json:"solicitation_number"`
NoticeType string `json:"notice_type"`
ResponseDeadline string `json:"response_deadline"` // RFC3339 or ""
PrimeOrSub string `json:"prime_or_sub"`
Status string `json:"status"`
CaptureOwnerUserID string `json:"capture_owner_user_id"`
NaicsCode string `json:"naics_code"`
PscCode string `json:"psc_code"`
SetAsideCode string `json:"set_aside_code"`
PlaceOfPerformance string `json:"place_of_performance"`
IncumbentName string `json:"incumbent_name"`
SourceURL string `json:"source_url"`
CreatedAt string `json:"created_at"`
UpdatedAt string `json:"updated_at"`
}