Overview
The CommonGrants.Models
namespace contains a standard models that are used by CommonGrants API routes.
Models
Section titled “Models” Opportunity A funding opportunity
Competition A competition for funding opportunities
Application An application to a funding opportunity
Form A form for a funding opportunity
FormResponse A response to a form
Mapping A mapping of a form response to a proposal
Proposal A proposal to a funding opportunity
Organization An organization that can apply to or host funding opportunities
Person A person affiliated with an organization or grant application
The most common use for the CommonGrants.Models
namespace is extending the OpportunityBase
model with a set of custom fields. The quickstart has a more in depth tutorial, but here’s a quick example of how you can add support for custom fields:
import "@common-grants/core"
// Exposes the `Fields` and `Models` namespaces so that they can be accessed// without a `CommonGrants` prefixusing CommonGrants;
model Agency extends Fields.CustomField { name: "Agency"; type: Fields.CustomFieldType.string; value: string; description: "The agency managing the funding opportunity.";}
// Create a custom Opportunity type using the templatemodel CustomOpportunity extends Models.OpportunityBase { @example(#{ agency: #{ name: "Agency", type: Fields.CustomFieldType.string, value: "Department of Energy", description: "The agency managing the funding opportunity.", }, }) customFields: { agency: Agency; };}