Organizations
Industry identity, organization status, and internal dialogue notes
An organization is the industry-side company, university, federally funded research and development center (FFRDC), university affiliated research center (UARC), foreign partner, or other participant. It is separate from the person who logs in: one organization may have multiple User rows.
Organization
| Column | Prisma type | Required? | Default | Meaning |
|---|---|---|---|---|
id | String | Yes | cuid() | Organization identifier. |
name | String | Yes; unique | None | Registered organization name. |
orgType | OrgType | Yes | COMPANY | Organization category. |
status | OrgStatus | Yes | NEW | Government review/lifecycle state. |
cageCode | String? | No | NULL | Commercial and Government Entity identifier. |
uei | String? | No | NULL | Unique Entity Identifier used in federal systems. |
smallBusiness | Boolean | Yes | false | Whether the organization identifies as small business. |
nontraditional | Boolean | Yes | false | Whether it identifies as a nontraditional defense contractor. |
website | String? | No | NULL | Public website. |
city | String? | No | NULL | City. |
state | String? | No | NULL | State or region. |
country | String | Yes | "USA" | Country label. |
description | String? | No | NULL | Organization summary. |
techTags | String | Yes | "" | Lowercase comma-separated capabilities. |
createdAt | DateTime | Yes | now() | Registration time. |
updatedAt | DateTime | Yes | @updatedAt | Last profile update. |
Relations are users, submissions, engagements, and dialogueNotes. The portal profile route intentionally exposes only editable profile fields; government-only status and dialogue are controlled by separate government routes.
OrgType enum
| Value | Meaning |
|---|---|
COMPANY | Commercial company. |
ACADEMIA | University or academic laboratory. |
FFRDC | Federally funded research and development center. |
UARC | University affiliated research center. |
FOREIGN_PARTNER | Foreign partner organization. |
OTHER | Another organization type not represented above. |
OrgStatus enum
| Value | Meaning |
|---|---|
NEW | Newly registered or newly encountered. |
UNDER_REVIEW | Government review is in progress. |
ACTIVE | Participating organization in good standing for the pilot. |
WATCHLIST | Requires additional attention or coordination. |
INACTIVE | Not currently active in the ledger. |
OrgDialogueNote
| Column | Prisma type | Required? | Default | Meaning |
|---|---|---|---|---|
id | String | Yes | cuid() | Note identifier. |
organizationId | String | Yes | None | Organization discussed. |
authorId | String | Yes | None | Government user who wrote it. |
body | String | Yes | None | Internal dialogue context. |
createdAt | DateTime | Yes | now() | Creation time. |
The organization and author relations make the note auditable. These notes are not the same as a public description or an industry submission; they are government ledger context.
Lifecycle
The registration route creates the organization and its first industry user transactionally. A government status update changes only the status field and writes an audit event; it does not delete submissions or engagements.
Optional identity fields
CAGE and UEI are optional because a pilot participant may begin discovery before all registration identifiers are available. The API validates their lengths but does not implement an external CAGE/UEI lookup. A blank form value is normalized to an empty or null-compatible stored value according to the route.
country defaults to USA in the database even though the registration form does not require a country field. nontraditional is present in the model and seeded from the small-business fixture for the pilot; readers should not infer that every small business is automatically a nontraditional contractor outside this demo data.
Organization name is unique. Profile updates do not rename the organization, which prevents an industry contact from changing the identity used in historical engagement and submission records.