# AnnouncementDto

A model the API reference uses in a request or a response. The operation pages link every field typed as this model here.

Data transfer object for announcement entities.

## Fields
- `extraProperties` (object): (nullable, read only)
- `id` (string(uuid))
- `creationTime` (string(date-time)): The date and time when this entity was created.
- `creatorId` (string(uuid)): The ID of the user who created this entity. (nullable)
- `lastModificationTime` (string(date-time)): The date and time when this entity was last modified. (nullable)
- `lastModifierId` (string(uuid)): The ID of the user who last modified this entity. (nullable)
- `isDeleted` (boolean): Indicates whether this entity has been deleted.
- `deleterId` (string(uuid)): The ID of the user who deleted this entity, if it is deleted. (nullable)
- `deletionTime` (string(date-time)): The date and time when this entity was deleted, if it is deleted. (nullable)
- `tenantId` (string(uuid)): The tenant this announcement belongs to. Null for host-level announcements. (nullable)
- `concurrencyStamp` (string): Concurrency stamp for optimistic locking. (nullable)
- `entityVersion` (integer(int32)): Entity version for optimistic concurrency.
- `title` (string): The announcement title. (nullable)
- `body` (string): The announcement body content (supports Markdown). (nullable)
- `scope` ([AnnouncementScope](https://devportal.demo.winkpg.io/docs/api/models/AnnouncementScope.md)): The organizational scope of the announcement.
  Values:
  - `Host`: Host-level (system-wide) announcement visible to all users across all tenants. Only host admins can create. TenantId will be null.
  - `Tenant`: Tenant-scoped announcement visible to all users within a specific tenant. Tenant admins can create for their own tenant.
  - `Reseller`: Reseller-scoped announcement visible to users at or below the specified reseller in the hierarchy (including sub-resellers and merchants under them). Uses ResellerPathPrefix with StartsWith matching.
  - `Merchant`: Merchant-scoped announcement visible to users associated with a specific merchant.
- `priority` ([AnnouncementPriority](https://devportal.demo.winkpg.io/docs/api/models/AnnouncementPriority.md)): The priority level of the announcement.
  Values:
  - `Normal`: Normal priority. Standard styling in the notification dropdown.
  - `Important`: Important priority. Highlighted styling (e.g., orange badge).
  - `Critical`: Critical priority. Emphasized styling (e.g., red badge). When combined with PopupOnLogin display option, shows as a blocking modal.
- `displayOptions` ([AnnouncementDisplayOptions](https://devportal.demo.winkpg.io/docs/api/models/AnnouncementDisplayOptions.md)): How the announcement should be displayed to users.
  Values:
  - `DropdownOnly`: Announcement appears only in the notification dropdown in the header toolbar.
  - `PopupOnLogin`: Announcement appears as a popup modal on user login/page load. The popup is shown once and tracked via UserAnnouncementState.PopupShownAt.
  - `Both`: Announcement appears in both the dropdown and as a popup on login.
- `resellerId` (string(uuid)): The reseller ID for reseller-scoped announcements. (nullable)
- `resellerPathPrefix` (string): The reseller path prefix for hierarchical matching. (nullable)
- `merchantId` (string(uuid)): The merchant ID for merchant-scoped announcements. (nullable)
- `startDateUtc` (string(date-time)): When the announcement becomes active. (nullable)
- `endDateUtc` (string(date-time)): When the announcement expires. (nullable)
- `isEnabled` (boolean): Whether the announcement is enabled.
- `externalLinkUrl` (string): Optional external link URL. (nullable)
- `externalLinkText` (string): Optional external link display text. (nullable)
- `createdByUserId` (string(uuid)): The user who created this announcement.
- `targetAudience` ([AnnouncementTargetAudienceDto](https://devportal.demo.winkpg.io/docs/api/models/AnnouncementTargetAudienceDto.md)): The target audience configuration.
  Fields:
  - `type` ([AudienceType](https://devportal.demo.winkpg.io/docs/api/models/AudienceType.md)): The type of audience targeting.
    Values:
    - `All`: All users within the announcement's scope receive the announcement.
    - `Roles`: Only users with specific roles within the scope receive the announcement. The RoleNames property specifies which roles.
    - `Users`: Only specific users within the scope receive the announcement. The UserIds property specifies which users.
  - `roleNames` (array<string>): Role names when targeting by roles. (nullable)
  - `userIds` (array<string(uuid)>): User IDs when targeting specific users. (nullable)
- `isActive` (boolean): Whether the announcement is currently active (within schedule and enabled).
- `targetedUserCount` (integer(int32)): Estimated number of targeted users (snapshot from create/update time).  Null if the count could not be computed. (nullable)

## See also

- [All documentation](https://devportal.demo.winkpg.io/llms.txt): the machine-readable index of every public page on this site.
