Overview
The CommonGrants.Models
namespace contains a standard models that are used by CommonGrants API routes.
Models
Learn more about the standard models defined by the CommonGrants protocol:
Opportunity Models
Model | Description |
---|---|
OpportunityBase | Base model for a funding opportunity |
OppStatus | Status of an opportunity |
OppTimeline | Key dates in the opportunity’s timeline |
OppFunding | Details about the funding available for an opportunity |
Usage
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; };}