-
-
Save sfletche/0996ea207272547a5deb0a5148626752 to your computer and use it in GitHub Desktop.
{ | |
"id": { "type": "string" }, | |
"status": { "enum": ["offered", "accepted", "applied", "declined", "disqualified", "expired", "unavailable"] }, | |
"archived": { "type": "boolean" }, | |
"expire_at": { "type": "datetime" }, | |
"critical_at": { "type": "datetime" }, | |
"contractor_location": { "type": "location" }, | |
"lead_contact": { | |
"type": "object", | |
"properties": { | |
"name": { "type": "string" }, | |
"phone": { "type": "string" }, | |
"email": { "type": "string" } | |
} | |
}, | |
"availability": { "type": "availability" }, | |
"project_categories": { | |
"type": "array", | |
"items": { "type": "string" } | |
}, | |
"accepted_by": { | |
"type": "object", | |
"properties": { | |
"name": { "type": "string" }, | |
"date": { "type": "datetime" } | |
} | |
}, | |
"application": { | |
"type": "object", | |
"properties": { | |
"id": { "type": "integer" }, | |
"program": { "type": "string" }, | |
"sales_rep_id": { "type": "string" }, | |
"sales_rep_name": { "type": "string" }, | |
"created_at": { "type": "datetime" } | |
} | |
}, | |
"declined_by": { | |
"type": "object", | |
"properties": { | |
"name": { "type": "string" }, | |
"reason": { "type": "string" }, | |
"date": { "type": "datetime"} | |
} | |
}, | |
"disqualified_by": { | |
"type": "object", | |
"properties": { | |
"name": { "type": "string" }, | |
"reason": { "type": "string" }, | |
"date": { "type": "datetime"} | |
} | |
}, | |
"unavailable_at": { "type": "datetime" }, | |
"decline_reasons": { | |
"type": "object", | |
"patternProperties": { | |
"\d+": { "type": "string" } | |
}, | |
"additionalProperties": false | |
}, | |
"disqualify_reasons": { | |
"type": "object", | |
"patternProperties": { | |
"\d+": { "type": "string" } | |
}, | |
"additionalProperties": false | |
} | |
} |
i suggest the status by snake_cased ('expired', 'accepted' ... ) not sure how application
differs from applied
👍
I suggest potential_programs
become availability
or eligibility
... whatever is more consistent with the rest of our apis.
👍
application_data should probably become application.
application_data.start_date should probably become application.created_at (for consistency)
👍
An "Open" state is probably needed too, this indicates that the lead hasn't been accepted yet. Should "Open" be past tense though?
👍
@davidstocker: property_owners
was meant to represent the property owners that will be listed on the application (could be 1 applicant, could be 2, could be more). is that the same as lead_contact
?
added lead_contact
object
added "unavailable_at"
splitting declined
into rejected
and disqualified
because the "declined" status naming is still in flux, i'm reverting "rejected" back to "declined" and simply adding "disqualified" (minimizing the changes until the language has been settled)
added decline_reasons
changed availability
to single object (from array of objects)
disqualify_reasons
is now disqualified_reasons
updating adding critical
flag
I suggest calling
expiration_date
toexpire_at
.. a little more consistent with datetime conventions in our apis.👍