Overview
The CommonGrants.Models
namespace contains a standard models that are used by CommonGrants API routes.
Models
Section titled “Models”Learn more about the standard models defined by the CommonGrants protocol:
Opportunity Models
Section titled “Opportunity Models” Opportunity Base Base model for a funding opportunity
Opportunity Status Status of an opportunity, e.g. 'open'
Opportunity Timeline Key dates in the opportunity's timeline, e.g. application deadline
Opportunity Funding Details about the funding available for an opportunity
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; };}