Announcements and calls
Public information published by government users
Announcements and calls are the public-facing publishing records. An announcement shares information; a Call for Technology invites relevant capability submissions. Neither model stores source-selection decisions or procurement-sensitive content.
Announcement
| Column | Prisma type | Required? | Default | Meaning |
|---|---|---|---|---|
id | String | Yes | cuid() | Announcement identifier. |
title | String | Yes | None | Public headline. |
body | String | Yes | None | Public message. |
authorId | String | Yes | None | Government publisher. |
published | Boolean | Yes | true | Publication flag used by public feeds. |
createdAt | DateTime | Yes | now() | Publication/creation time. |
The author relation identifies the government user who published it. The portal feed filters to published records and orders newest first.
CallForTechnology
| Column | Prisma type | Required? | Default | Meaning |
|---|---|---|---|---|
id | String | Yes | cuid() | Call identifier. |
title | String | Yes | None | Public call title. |
description | String | Yes | None | What the government team wants to learn. |
techTags | String | Yes | "" | Lowercase matching vocabulary. |
status | CallStatus | Yes | OPEN | Whether submissions may reference it. |
closesAt | DateTime? | No | NULL | Optional closing date. |
createdAt | DateTime | Yes | now() | Creation time. |
submissions is the reverse relation for submissions that reference the call.
CallStatus enum
| Value | Meaning |
|---|---|
OPEN | Visible as an open call and eligible for new references. |
CLOSED | No longer open for new submissions. |
Publication behavior
Government publishing routes validate title and body lengths, normalize call tags, create an audit event, and notify industry users subject to their notification settings. The public portal routes expose only published announcements and open calls.
Dates and closure
closesAt is optional, and the call helper also treats a past closing date as closed even if the stored enum still says OPEN. This prevents a stale status value from keeping a time-bounded call open. A government PATCH can explicitly set CLOSED.
Announcements use a Boolean published rather than a separate publication event model. The current create route creates published records. If future drafts are added, the feed must continue filtering by this flag and the API must document who can publish.
Neither model stores an attachment. Calls and announcements are text records with tags/deadlines; technical files belong to submissions.