# Wallboard API Terminology

UI and API use different terms. Quick reference for translation.

## Entity Mapping

| UI Term | API Entity | Notes |
|---------|------------|-------|
| Channel | `campaign` | level=WIDGET |
| Schedule | `campaign` | level=TOP |
| Sub-channel | `message` | |
| Sub-channel Group | `messageGroup` | |
| Screen / Player / Display | `device` | |
| Device Folder | `deviceGroup` | |
| Media Folder | `fileFolder` | |
| Content Folder | `contentGroup` | |
| Playlist / Loop | `simpleLoop` | JSON `slides` = UI "pages" |
| Slide | `content` | structureType=SLIDE |
| Content (Interactive) | `content` | structureType=COMPLEX |
| Template | `template` | |
| Settings > Apps | `customApp` (`/api/customApp/myApps`) | Customer-owned app records |
| Administrator > Apps | `custom-app` (`/api/custom-app`) | Platform-owned app records |
| HTML apps / HTML/CSS/JS bundle | `HTML_BUNDLE` | Custom-app type; Widgets use `WIDGET` |
| Data Source / Feed | `datasource` | |
| Action / Actions | `webhookEventAction` | Integrations menu; resource-limit key `WEBHOOK` |
| Notification rule | `alertRule` | Monitoring rule; distinct from a personal inbox item |
| Notification | `notification` | Personal inbox item under `/api/notifications` |
| Announcement | `notification` category `CUSTOM` | Custom message in the personal inbox |
| In-app notification | `alertRuleNotificationChannel` type `USER_NOTIFICATION` | Alert-rule channel addressed to selected customer users |
| Webhook | `alertRuleNotificationChannel` type `WEBHOOK` | Alert-rule channel addressed to a URL |
| Quick Filter | `quickFilter` | |
| Tag | `tag` | |
| User / Member | `user` | |
| Team | `team` | |
| Network Owner | `subreseller` | |
| Client / Tenant | `customer` | |
| Advertiser | `advertiser` | /api/adv |
| Licenses / Customer Licenses | `licenseOrder` | UI: "Licenses" (customer), "Customer Licenses" (admin) |
| License Package / License Template | `licensePackage` | Admin-only templates |
| UI Profile | `userInterfaceProfile` | |
| Device Profiles | `deviceInstallRule` | Resource-limit key `DEVICE_PROFILE`; counts rules, not devices |
| Server-wide UI profile | `userInterfaceProfileTemplate` | Admin-managed reusable UI profile template assignable to customers |
| Logs / Audit Log | `log` | |
| Device Metrics / Device Stats | `deviceStat` | |

**Package label:** The UI calls the `licenseTier=STARTER` value **Essential**.

## Content Type Hierarchy

```
SystemContent (base)
├── Template                         → /api/template
└── DeviceContent (abstract)         → /api/v2/deviceContent (combined query)
    ├── Content (slides, multi-page) → /api/content
    └── SimpleLoop (playlists)       → /api/simpleLoop
```

**`/api/v2/deviceContent`**: Queries Content + SimpleLoop together. Use `deviceContentType` to distinguish.

| deviceContentType | structureType | UI Term |
|-------------------|---------------|---------|
| `simpleLoop` | - | Playlist |
| `content` | `SLIDE` | Slide |
| `content` | `COMPLEX` | Content (Interactive) |

## Embedding Rules

| Container | Can Embed |
|-----------|-----------|
| Playlist | Media files, folders, Slides, nested playlists (NOT multi-page Content) |
| Slide | Slides, playlists, channels (via widgets) |
| Content (COMPLEX) | Slides, playlists, channels, content, media (full) |

## Enum Values

### User Roles (hierarchical - higher includes lower)

| API Value | UI Display |
|-----------|------------|
| `ADMIN` | Super Administrator |
| `OWNER` | Administrator |
| `TECHNICIAN` | Technical manager |
| `APPROVER` | Content manager |
| `EDITOR` | Content editor |
| `VIEWER` | View only |
| `DEVICE_USER` | Device user |

Note: `MESSENGER` exists in backend enum but is unused/not supported.

### License Types

| API Value | UI Name |
|-----------|---------|
| `BASIC` | Lite |
| `PROFESSIONAL` | Professional |
| `DBA` | Broadcaster (legacy, not used for new orders) |
| `ENTERPRISE` | Premium |
| `VIDEO_WALL` | Video Wall |

### Platforms

| Code | Description |
|------|-------------|
| `ANDROID` | Android media players |
| `WINDOWS` | Windows PCs and players |
| `BRIGHTSIGN` | BrightSign players |
| `SAMSUNG` | Samsung Tizen displays |
| `LG` | LG webOS displays |
| `CHROME_OS` | Chrome OS devices |
| `UNKNOWN` | Unknown platform |

Note: `TIZEN`, `WEBOS`, `JSCORE` are UI-level aliases, not backend enum values. `PWA` and `BROWSER` exist in enum but are deprecated/unused.

### Data Source Types

| sourceType | type/systemDatasourceType | Description |
|------------|---------------------------|-------------|
| `INTERNAL` | - | Manual/API data |
| `EXTERNAL` | JSON, XML, RSS, ICAL, GOOGLESHEET_API, CALENDAR, JDBC, SHAREPOINT_LISTS, MICROSOFT_WORKBOOK(_V2), WEATHER, TOAST, CAP, SCREENSHOT, CUSTOM_INTEGRATION, WEBSITE_CONTENT, USER_ACTIVE_DIRECTORY(_V2), FACEBOOK_PAGE_FEED, FACEBOOK_IG_PAGE_FEED, INSTAGRAM_FEED, SHAREPOINT_NEWS, FILE_FROM_URL, POWER_BI_EXPORT, AMADEUS_EVENT, NOTION_DATA_SOURCE | External sources |
| `SYSTEM` | FILES, DEVICES, SCREENSHOT, AI_DATASOURCE, CALENDAR_MERGE | System data |

**structureType**: `TABLE`, `KEY_VALUE`, `LIST`, `FEED`, `WAY_FINDING`, `CUSTOM`
