Hardata API
Versión del documento: 1.1
Contrato fuente: OpenAPI 3.1.1, API v1.0
Estado de referencia: 14 de septiembre de 2026
Esta es la referencia pública y autocontenida de HARDATA API. Permite autenticar, consultar y administrar materiales, metadata, catálogos y tráfico publicitario, además de ejecutar el algoritmo de programación. Debe utilizarse junto con HARDATA ECP cuando una aplicación también necesite observar o controlar HDX en tiempo real.
Esta documentación no contiene tokens, claves, usuarios, contraseñas ni valores privados de una instalación. Todos los valores de autenticación de los ejemplos son marcadores que el integrador debe sustituir en tiempo de ejecución.
1. URL base y transporte
La especificación de referencia declara http://localhost:5010/. En una instalación real, la URL base es provista por HARDATA o por el administrador del sistema. No codifique localhost ni un puerto como constantes de producto.
- Transporte HTTP/HTTPS.
- Cuerpos JSON en UTF-8 salvo
multipart/form-datay streaming de materiales. - Fechas y horas deben enviarse en el formato indicado por el esquema de cada campo.
- Los identificadores son opacos: no deduzca significado, orden ni permanencia a partir de su valor. Cuando el esquema declara
int64, su representación decimal sigue siendo un identificador, no un número apto para cálculos de negocio. - En producción use HTTPS y valide el certificado.
2. Autenticación
La especificación declara autenticación HTTP Bearer con tokens JWT. Obtenga un token con POST /api/v1/auth/login y envíelo en las solicitudes protegidas:
Authorization: Bearer <token-jwt>
Ejemplo de login sin credenciales reales:
POST /api/v1/auth/login
Content-Type: application/json
{ "username": "<usuario>", "password": "<contraseña>" }
Respuesta: LoginResponse, con success, message, token y refreshToken. Cuando el token haya vencido, renueve con POST /api/v1/auth/refresh. Nunca registre el cuerpo del login ni el token. La fuente OpenAPI define el esquema Bearer, pero no anota seguridad operación por operación; una integración debe considerar protegido cualquier endpoint que la instalación no exponga expresamente como público y manejar 401 Unauthorized.
La URL base, las credenciales y el token de HARDATA API se configuran y administran separadamente de la conexión HARDATA ECP. Una sesión WebSocket autenticada no autentica solicitudes HTTP, session.setup no descubre la API y una App no debe asumir que ambos servicios comparten credenciales aunque una instalación concreta los haya aprovisionado así.
3. Convenciones de cliente
- Enviar
Accept: application/jsonpara respuestas JSON. - Enviar
Content-Type: application/jsonpara altas y modificaciones JSON. - Tratar
200y201como éxito con cuerpo;204como éxito sin cuerpo. - Manejar
400como entrada inválida,401como autenticación ausente/vencida,404como recurso inexistente,409como conflicto y500como error interno. - Para errores con cuerpo
ProblemDetails, conservarstatus,title,detail,typeeinstance. - No reintentar automáticamente
POST,PUToDELETEsi el resultado es desconocido. Consultar primero el estado del recurso. - Aplicar timeout, cancelación y backoff con jitter. Renovar el token según la política de la instalación.
- Tolerar propiedades adicionales para mantener compatibilidad con extensiones futuras.
Relación de materialId con HARDATA ECP
materialId es un Int64 en HARDATA Database y en HARDATA API. HARDATA ECP lo transporta como string decimal canónico para evitar pérdida de precisión: 0 o una secuencia sin cero inicial entre 1 y 9223372036854775807.
Para consultar la metadata de un nodo ECP, la App usa esa secuencia literalmente como {materialId} en GET /api/v1/material/{materialId}. El servidor la convierte a Int64 con cultura invariante. No debe convertirse antes a Number de JavaScript; para leer respuestas JSON que contengan identificadores int64 fuera del rango seguro de JavaScript se requiere un parser que preserve enteros de 64 bits.
4. Ejemplos mínimos
Consultar un material
GET /api/v1/material/12345
Authorization: Bearer <token-jwt>
Accept: application/json
Consultar timing para automatización
Use GET /api/v1/material/{materialId}. Los campos temporales enteros de MaterialResponse se expresan en milisegundos:
startPosyendPos: posiciones de inicio y fin sobre la línea de tiempo del archivo;endPos = 0indica que se usa el final físico.punchIneintro: posiciones medidas desde el comienzo del archivo.punchOutyoutro: anticipaciones medidas hacia atrás desde el fin efectivo; por ejemplo,punchOut = 1500comienza el crossfade cuando quedan 1500 ms.punchInFadeLengthypunchOutFadeLength: duraciones de fade.insertOver: desplazamiento temporal, también en milisegundos.
Una aplicación como AI Operator puede combinar esta metadata con positionMs, durationMs y remainingMs recibidos por HARDATA ECP. HARDATA API no reemplaza los timers ni eventos de reproducción de ECP; antes de comparar magnitudes, la App debe respetar la orientación de cada marcador y mantener una sola unidad.
Búsqueda paginada
GET /api/v1/material/search?q=nombre&page=1&pageSize=50
Authorization: Bearer <token-jwt>
Streaming con seeking
GET /api/v1/material/12345/stream?fileId=67890
Authorization: Bearer <token-jwt>
Range: bytes=0-1048575
El endpoint puede responder 200 o 206; manejar 416 cuando el rango no sea válido.
5. Catálogo completo de endpoints
Agency
GET /api/v1/traffic/agency
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
array de AgencyResponse | OK |
POST /api/v1/traffic/agency
Cuerpo: CreateAgencyRequest. Content-Type: application/json, text/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
AgencyResponse | OK |
GET /api/v1/traffic/agency/{agencyId}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
agencyId |
path | integer (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
AgencyResponse | OK |
PUT /api/v1/traffic/agency/{agencyId}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
agencyId |
path | integer (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
Cuerpo: UpdateAgencyRequest. Content-Type: application/json, text/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
AgencyResponse | OK |
DELETE /api/v1/traffic/agency/{agencyId}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
agencyId |
path | integer (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
sin esquema declarado | OK |
GET /api/v1/traffic/agency/types
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
sin esquema declarado | OK |
GET /api/v1/traffic/agency/statuses
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
sin esquema declarado | OK |
Album
GET /api/v1/album
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
array de AlbumResponse | OK |
POST /api/v1/album
Cuerpo: CreateAlbumRequest. Content-Type: application/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
201 |
AlbumResponse | Created |
400 |
ProblemDetails | Bad Request |
409 |
ProblemDetails | Conflict |
GET /api/v1/album/{id}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
id |
path | integer (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
AlbumResponse | OK |
404 |
ProblemDetails | Not Found |
PUT /api/v1/album/{id}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
id |
path | integer (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
Cuerpo: UpdateAlbumRequest. Content-Type: application/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
AlbumResponse | OK |
400 |
ProblemDetails | Bad Request |
404 |
ProblemDetails | Not Found |
409 |
ProblemDetails | Conflict |
DELETE /api/v1/album/{id}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
id |
path | integer (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
204 |
sin esquema declarado | No Content |
404 |
ProblemDetails | Not Found |
409 |
ProblemDetails | Conflict |
Algorithm
POST /api/v1/traffic/algorithm/schedule
Execute the scheduling algorithm for a specific date and station.
Cuerpo: ScheduleRequest. Content-Type: application/json, text/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
SchedulingResponse | Scheduling completed successfully. |
400 |
ProblemDetails | Invalid request parameters. |
401 |
ProblemDetails | Unauthorized - JWT token required. |
500 |
sin esquema declarado | Internal server error during scheduling. |
GET /api/v1/traffic/algorithm/stats
Get scheduling statistics for a specific date and station. Useful for preview before running the full algorithm.
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
stationId |
query | integer o string (int32) | no | Station ID. patrón ^-?(?:0|[1-9]\d*)$ |
date |
query | string (date) | no | Schedule date (YYYY-MM-DD). |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
SchedulingStats | Statistics retrieved successfully. |
400 |
ProblemDetails | Invalid parameters. |
401 |
ProblemDetails | Unauthorized - JWT token required. |
AssetType
GET /api/v1/asset-type
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
array de AssetTypeResponse | OK |
GET /api/v1/asset-type/{assetTypeId}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
assetTypeId |
path | integer (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
AssetTypeResponse | OK |
404 |
ProblemDetails | Not Found |
Auth
POST /api/v1/auth/login
Cuerpo: HdxLoginRequest. Content-Type: application/json, text/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
LoginResponse | OK |
POST /api/v1/auth/refresh
Cuerpo: RefreshTokenRequest. Content-Type: application/json, text/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
LoginResponse | OK |
Break Templates
GET /api/v1/traffic/breaktemplate
Listar todos los templates
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
includeInactive |
query | boolean | no | predeterminado False |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
array de BreakTemplateResponse | OK |
401 |
ProblemDetails | Unauthorized |
POST /api/v1/traffic/breaktemplate
Cuerpo: CreateBreakTemplateRequest. Content-Type: application/json, text/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
BreakTemplateResponse | OK |
GET /api/v1/traffic/breaktemplate/{id}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
id |
path | integer (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
BreakTemplateResponse | OK |
PUT /api/v1/traffic/breaktemplate/{id}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
id |
path | integer (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
Cuerpo: UpdateBreakTemplateRequest. Content-Type: application/json, text/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
BreakTemplateResponse | OK |
DELETE /api/v1/traffic/breaktemplate/{id}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
id |
path | integer (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
sin esquema declarado | OK |
GET /api/v1/traffic/breaktemplate/station/{stationId}
Obtener templates por emisora
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
stationId |
path | integer (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
includeInactive |
query | boolean | no | predeterminado False |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
array de BreakTemplateResponse | OK |
401 |
ProblemDetails | Unauthorized |
DELETE /api/v1/traffic/breaktemplate/{id}/hard
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
id |
path | integer (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
sin esquema declarado | OK |
BreakType
GET /api/v1/traffic/break-types
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
array de sin esquema declarado | OK |
POST /api/v1/traffic/break-types
Cuerpo: CreateBreakTypeRequest. Content-Type: application/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
201 |
sin esquema declarado | Created |
409 |
ProblemDetails | Conflict |
PUT /api/v1/traffic/break-types/{id}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
id |
path | integer (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
Cuerpo: UpdateBreakTypeRequest. Content-Type: application/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
sin esquema declarado | OK |
404 |
ProblemDetails | Not Found |
DELETE /api/v1/traffic/break-types/{id}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
id |
path | integer (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
204 |
sin esquema declarado | No Content |
404 |
ProblemDetails | Not Found |
409 |
ProblemDetails | Conflict |
Campaign
GET /api/v1/traffic/campaign
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
array de CampaignResponse | OK |
POST /api/v1/traffic/campaign
Cuerpo: CreateCampaignRequest. Content-Type: application/json, text/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
CampaignResponse | OK |
GET /api/v1/traffic/campaign/{campaignId}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
campaignId |
path | integer (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
CampaignResponse | OK |
PUT /api/v1/traffic/campaign/{campaignId}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
campaignId |
path | integer (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
Cuerpo: UpdateCampaignRequest. Content-Type: application/json, text/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
CampaignResponse | OK |
DELETE /api/v1/traffic/campaign/{campaignId}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
campaignId |
path | integer (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
sin esquema declarado | OK |
GET /api/v1/traffic/campaign/statuses
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
sin esquema declarado | OK |
Category
GET /api/v1/category
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
array de CategoryResponse | OK |
POST /api/v1/category
Cuerpo: CreateCategoryRequest. Content-Type: application/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
201 |
CategoryResponse | Created |
400 |
ProblemDetails | Bad Request |
404 |
ProblemDetails | Not Found |
409 |
ProblemDetails | Conflict |
GET /api/v1/category/{categoryId}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
categoryId |
path | integer (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
CategoryResponse | OK |
404 |
ProblemDetails | Not Found |
PUT /api/v1/category/{categoryId}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
categoryId |
path | integer (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
Cuerpo: UpdateCategoryRequest. Content-Type: application/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
CategoryResponse | OK |
400 |
ProblemDetails | Bad Request |
404 |
ProblemDetails | Not Found |
409 |
ProblemDetails | Conflict |
DELETE /api/v1/category/{categoryId}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
categoryId |
path | integer (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
204 |
sin esquema declarado | No Content |
404 |
ProblemDetails | Not Found |
409 |
ProblemDetails | Conflict |
GET /api/v1/category/storages
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
array de CategoryResponse | OK |
GET /api/v1/category/{categoryId}/nextcode
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
categoryId |
path | integer (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
NextCodeResponse | OK |
400 |
ProblemDetails | Bad Request |
404 |
ProblemDetails | Not Found |
GET /api/v1/category/{categoryId}/children
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
categoryId |
path | integer (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
array de CategoryResponse | OK |
404 |
ProblemDetails | Not Found |
GET /api/v1/category/{categoryId}/ancestors
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
categoryId |
path | integer (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
array de CategoryResponse | OK |
404 |
ProblemDetails | Not Found |
GET /api/v1/category/{categoryId}/descendants
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
categoryId |
path | integer (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
array de CategoryResponse | OK |
404 |
ProblemDetails | Not Found |
Client
GET /api/v1/traffic/client
Obtiene todos los clientes.
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
array de ClientResponse | Lista de clientes. |
POST /api/v1/traffic/client
Crea un nuevo cliente.
Cuerpo: CreateClientRequest. Content-Type: application/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
ClientResponse | Cliente creado. |
GET /api/v1/traffic/client/{clientId}
Obtiene un cliente por su ID.
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
clientId |
path | integer (int32) | sí | ID del cliente. patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
ClientResponse | Cliente encontrado. |
PUT /api/v1/traffic/client/{clientId}
Actualiza un cliente existente.
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
clientId |
path | integer (int32) | sí | ID del cliente a actualizar. patrón ^-?(?:0|[1-9]\d*)$ |
Cuerpo: UpdateClientRequest. Content-Type: application/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
ClientResponse | Cliente actualizado. |
DELETE /api/v1/traffic/client/{clientId}
Elimina un cliente por su ID.
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
clientId |
path | integer (int32) | sí | ID del cliente a eliminar. patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
sin esquema declarado | Resultado de la operaci�n. |
GET /api/v1/traffic/client/statuses
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
sin esquema declarado | OK |
Clip Metadata
GET /api/v1/traffic/clip_metadata
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
array de ClipMetadataResponse | OK |
POST /api/v1/traffic/clip_metadata
Cuerpo: CreateClipMetadataRequest. Content-Type: application/json, text/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
ClipMetadataResponse | OK |
GET /api/v1/traffic/clip_metadata/{clipMetadataId}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
clipMetadataId |
path | integer (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
ClipMetadataResponse | OK |
DELETE /api/v1/traffic/clip_metadata/{clipMetadataId}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
clipMetadataId |
path | integer (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
sin esquema declarado | OK |
Common
GET /api/v1/traffic/common/scopes
Alcances posibles (National / Local). Usado en Order, BreakTemplateZone y ClipMetadata.
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
sin esquema declarado | OK |
GET /api/v1/traffic/common/weekdays
Valores base del bitmask de días de la semana. Usado en OrderDaypart y BreakTemplate.
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
sin esquema declarado | OK |
GET /api/v1/traffic/common/break-types
Tipos de tanda disponibles (Simple, Rotativa, etc.). Usado en BreakTemplate.
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
sin esquema declarado | OK |
Company
GET /api/v1/company
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
array de CompanyResponse | OK |
POST /api/v1/company
Cuerpo: CreateCompanyRequest. Content-Type: application/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
201 |
CompanyResponse | Created |
400 |
ProblemDetails | Bad Request |
409 |
ProblemDetails | Conflict |
GET /api/v1/company/{companyId}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
companyId |
path | integer (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
CompanyResponse | OK |
404 |
ProblemDetails | Not Found |
PUT /api/v1/company/{companyId}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
companyId |
path | integer (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
Cuerpo: UpdateCompanyRequest. Content-Type: application/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
CompanyResponse | OK |
400 |
ProblemDetails | Bad Request |
404 |
ProblemDetails | Not Found |
409 |
ProblemDetails | Conflict |
DELETE /api/v1/company/{companyId}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
companyId |
path | integer (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
204 |
sin esquema declarado | No Content |
404 |
ProblemDetails | Not Found |
409 |
ProblemDetails | Conflict |
FileType
GET /api/v1/file-type
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
array de FileTypeResponse | OK |
GET /api/v1/file-type/{fileTypeId}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
fileTypeId |
path | integer (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
FileTypeResponse | OK |
404 |
ProblemDetails | Not Found |
Genre
GET /api/v1/genre
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
array de GenreResponse | OK |
POST /api/v1/genre
Cuerpo: CreateGenreRequest. Content-Type: application/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
201 |
GenreResponse | Created |
400 |
ProblemDetails | Bad Request |
409 |
ProblemDetails | Conflict |
GET /api/v1/genre/{id}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
id |
path | integer (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
GenreResponse | OK |
404 |
ProblemDetails | Not Found |
PUT /api/v1/genre/{id}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
id |
path | integer (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
Cuerpo: UpdateGenreRequest. Content-Type: application/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
GenreResponse | OK |
400 |
ProblemDetails | Bad Request |
404 |
ProblemDetails | Not Found |
409 |
ProblemDetails | Conflict |
DELETE /api/v1/genre/{id}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
id |
path | integer (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
204 |
sin esquema declarado | No Content |
404 |
ProblemDetails | Not Found |
409 |
ProblemDetails | Conflict |
Industry
GET /api/v1/traffic/industry
Obtiene todos los rubros.
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
array de IndustryResponse | Lista de rubros. |
POST /api/v1/traffic/industry
Crea nuevos rubros.
Cuerpo: array de string. Content-Type: application/json, text/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
array de IndustryResponse | Lista de rubros creados. |
GET /api/v1/traffic/industry/{industryId}
Obtiene rubro especifico por id.
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
industryId |
path | integer (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
IndustryResponse | Rubro especifico. |
PUT /api/v1/traffic/industry/{industryId}
Actualiza un rubro existente.
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
industryId |
path | integer (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
Cuerpo: UpdateIndustryRequest. Content-Type: application/json, text/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
IndustryResponse | Rubro actualizado. |
DELETE /api/v1/traffic/industry/{industryId}
Elimina un rubro existente.
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
industryId |
path | integer (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
sin esquema declarado | Rubro eliminado. |
Material
GET /api/v1/material
Obtiene todos los materiales, con filtros opcionales y paginación. Cada fila de CATEGORYMATERIAL (master o link) se devuelve como un material. Por defecto excluye la papelera (isDeleted=false).
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
CategoryId |
query | integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
Title |
query | string | no | |
Code |
query | string | no | |
MediaTypeId |
query | integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
MaterialStateId |
query | integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
HasFiles |
query | boolean | no | |
IsDeleted |
query | boolean | no | |
page |
query | integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$; predeterminado 1 |
pageSize |
query | integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$; predeterminado 50 |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
PagedResponseOfMaterialResponse | OK |
GET /api/v1/material/search
Busca materiales por texto libre en todos los campos relevantes (title, code, comments, rdsText, tags, customFields, artist/author names, album, genre, company).
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
q |
query | string | no | |
page |
query | integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$; predeterminado 1 |
pageSize |
query | integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$; predeterminado 50 |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
PagedResponseOfMaterialResponse | OK |
GET /api/v1/material/{materialId}
Obtiene un material por su ID.
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
materialId |
path | integer (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
MaterialResponse | OK |
404 |
ProblemDetails | Not Found |
PUT /api/v1/material/{materialId}
Actualiza la metadata de un material existente.
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
materialId |
path | integer (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
Cuerpo: UpdateMaterialRequest. Content-Type: application/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
MaterialResponse | OK |
404 |
ProblemDetails | Not Found |
409 |
ProblemDetails | Conflict |
DELETE /api/v1/material/{materialId}
Elimina un material completo: archivos físicos, MATERIALFILE, FILE, CATEGORYMATERIAL y finalmente MATERIAL. Orden secuencial para respetar FKs.
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
materialId |
path | integer (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
204 |
sin esquema declarado | No Content |
404 |
ProblemDetails | Not Found |
GET /api/v1/material/{materialId}/stream
Stream de audio/video para reproducción en el frontend. Soporta range requests para seeking.
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
materialId |
path | integer (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
fileId |
query | integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
sin esquema declarado | OK |
206 |
sin esquema declarado | Partial Content |
401 |
ProblemDetails | Unauthorized |
404 |
ProblemDetails | Not Found |
416 |
ProblemDetails | Range Not Satisfiable |
POST /api/v1/material/placeholder
Crea un material placeholder sin audio.
Cuerpo: MaterialPlaceholderRequest. Content-Type: application/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
201 |
MaterialResponse | Created |
409 |
ProblemDetails | Conflict |
GET /api/v1/material/{materialId}/files
Obtiene todos los archivos asociados a un material.
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
materialId |
path | integer (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
array de MaterialFileResponse | OK |
404 |
ProblemDetails | Not Found |
PUT /api/v1/material/{materialId}/category/{categoryId}
Mueve un material a otra categoría. Reemplaza todos los vínculos de categoría existentes.
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
materialId |
path | integer (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
categoryId |
path | integer (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
sin esquema declarado | OK |
404 |
ProblemDetails | Not Found |
DELETE /api/v1/material/{materialId}/files/{fileId}
Elimina un archivo asociado a un material, incluyendo el archivo físico del storage.
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
materialId |
path | integer (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
fileId |
path | integer (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
204 |
sin esquema declarado | No Content |
404 |
ProblemDetails | Not Found |
POST /api/v1/material/batch-delete
Elimina múltiples materiales en una sola transacción secuencial para evitar deadlocks.
Cuerpo: BatchDeleteRequest. Content-Type: application/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
sin esquema declarado | OK |
400 |
ProblemDetails | Bad Request |
POST /api/v1/material/fill
Adjunta un archivo de audio o video a un material existente.
Cuerpo: multipart/form-data. Obligatorio: sí.
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
materialId |
integer o string (int64) | sí | |
file |
archivo binario | sí |
| Estado | Respuesta | Descripción |
|---|---|---|
201 |
MaterialFillResponse | Created |
400 |
ProblemDetails | Bad Request |
404 |
ProblemDetails | Not Found |
GET /api/v1/material/{materialId}/artists
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
materialId |
path | integer (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
array de MaterialArtistResponse | OK |
404 |
ProblemDetails | Not Found |
POST /api/v1/material/{materialId}/artists
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
materialId |
path | integer (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
Cuerpo: LinkArtistRequest. Content-Type: application/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
201 |
MaterialArtistResponse | Created |
400 |
ProblemDetails | Bad Request |
404 |
ProblemDetails | Not Found |
409 |
ProblemDetails | Conflict |
DELETE /api/v1/material/{materialId}/artists/{personId}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
materialId |
path | integer (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
personId |
path | integer (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
204 |
sin esquema declarado | No Content |
404 |
ProblemDetails | Not Found |
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
materialId |
path | integer (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
array de MaterialAuthorResponse | OK |
404 |
ProblemDetails | Not Found |
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
materialId |
path | integer (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
Cuerpo: LinkAuthorRequest. Content-Type: application/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
201 |
MaterialAuthorResponse | Created |
400 |
ProblemDetails | Bad Request |
404 |
ProblemDetails | Not Found |
409 |
ProblemDetails | Conflict |
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
materialId |
path | integer (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
personId |
path | integer (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
204 |
sin esquema declarado | No Content |
404 |
ProblemDetails | Not Found |
MediaType
GET /api/v1/media-type
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
array de MediaTypeResponse | OK |
GET /api/v1/media-type/{mediaTypeId}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
mediaTypeId |
path | integer (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
MediaTypeResponse | OK |
404 |
ProblemDetails | Not Found |
Order
GET /api/v1/traffic/order
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
array de OrderResponse | OK |
POST /api/v1/traffic/order
Cuerpo: CreateOrderRequest. Content-Type: application/json, text/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
OrderResponse | OK |
GET /api/v1/traffic/order/{orderId}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
orderId |
path | integer (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
OrderResponse | OK |
PUT /api/v1/traffic/order/{orderId}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
orderId |
path | integer (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
Cuerpo: UpdateOrderRequest. Content-Type: application/json, text/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
OrderResponse | OK |
DELETE /api/v1/traffic/order/{orderId}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
orderId |
path | integer (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
sin esquema declarado | OK |
GET /api/v1/traffic/order/statuses
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
sin esquema declarado | OK |
GET /api/v1/traffic/order/position-types
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
sin esquema declarado | OK |
GET /api/v1/traffic/order/protection-levels
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
sin esquema declarado | OK |
Order Daypart
GET /api/v1/traffic/order_daypart
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
array de OrderDaypartDto | OK |
POST /api/v1/traffic/order_daypart
Cuerpo: CreateOrderDaypartRequest. Content-Type: application/json, text/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
OrderDaypartDto | OK |
GET /api/v1/traffic/order_daypart/{id}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
id |
path | integer (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
OrderDaypartDto | OK |
PUT /api/v1/traffic/order_daypart/{id}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
id |
path | integer (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
Cuerpo: UpdateOrderDaypartRequest. Content-Type: application/json, text/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
OrderDaypartDto | OK |
DELETE /api/v1/traffic/order_daypart/{id}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
id |
path | integer (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
sin esquema declarado | OK |
Person
GET /api/v1/person
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
array de PersonResponse | OK |
POST /api/v1/person
Cuerpo: CreatePersonRequest. Content-Type: application/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
201 |
PersonResponse | Created |
400 |
ProblemDetails | Bad Request |
409 |
ProblemDetails | Conflict |
GET /api/v1/person/{id}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
id |
path | integer (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
PersonResponse | OK |
404 |
ProblemDetails | Not Found |
PUT /api/v1/person/{id}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
id |
path | integer (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
Cuerpo: UpdatePersonRequest. Content-Type: application/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
PersonResponse | OK |
400 |
ProblemDetails | Bad Request |
404 |
ProblemDetails | Not Found |
409 |
ProblemDetails | Conflict |
DELETE /api/v1/person/{id}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
id |
path | integer (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
204 |
sin esquema declarado | No Content |
404 |
ProblemDetails | Not Found |
409 |
ProblemDetails | Conflict |
PGM5
GET /api/v1/traffic/pgm5/all
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
FromDate |
query | string (date) | no | |
ToDate |
query | string (date) | no | |
Status |
query | integer o string (uint8) | no | patrón ^-?(?:0|[1-9]\d*)$ |
StationId |
query | integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
array de Pgm5SummaryResponse | OK |
400 |
ProblemDetails | Bad Request |
GET /api/v1/traffic/pgm5/{pgmId}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
pgmId |
path | integer (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
SchedulingResponse | OK |
400 |
ProblemDetails | Bad Request |
404 |
ProblemDetails | Not Found |
DELETE /api/v1/traffic/pgm5/{pgmId}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
pgmId |
path | integer (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
204 |
sin esquema declarado | No Content |
400 |
ProblemDetails | Bad Request |
404 |
ProblemDetails | Not Found |
GET /api/v1/traffic/pgm5
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
stationId |
query | integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
date |
query | string (date) | no |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
SchedulingResponse | OK |
400 |
ProblemDetails | Bad Request |
404 |
ProblemDetails | Not Found |
POST /api/v1/traffic/pgm5
Cuerpo: SavePgm5Request. Content-Type: application/json, text/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
SavePgm5Response | OK |
400 |
ProblemDetails | Bad Request |
GET /api/v1/traffic/pgm5/exists
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
stationId |
query | integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
date |
query | string (date) | no |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
Pgm5ExistsResponse | OK |
400 |
ProblemDetails | Bad Request |
PATCH /api/v1/traffic/pgm5/{pgmId}/status
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
pgmId |
path | integer (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
Cuerpo: UpdatePgm5StatusRequest. Content-Type: application/json, text/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
Pgm5SummaryResponse | OK |
400 |
ProblemDetails | Bad Request |
404 |
ProblemDetails | Not Found |
PGM
GET /api/v1/pgm
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
StationId |
query | integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
Date |
query | string | no | |
ProgrammingTypeId |
query | integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
Active |
query | boolean | no |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
sin esquema declarado | OK |
400 |
ProblemDetails | Bad Request |
POST /api/v1/pgm
Cuerpo: CreatePgmRequest. Content-Type: application/json, text/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
201 |
PgmResponse | Created |
400 |
ProblemDetails | Bad Request |
GET /api/v1/pgm/types
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
array de ProgrammingTypeResponse | OK |
GET /api/v1/pgm/conditions
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
array de PgmConditionResponse | OK |
GET /api/v1/pgm/{pgmId}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
pgmId |
path | integer (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
PgmResponse | OK |
400 |
ProblemDetails | Bad Request |
404 |
ProblemDetails | Not Found |
PUT /api/v1/pgm/{pgmId}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
pgmId |
path | integer (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
Cuerpo: UpdatePgmRequest. Content-Type: application/json, text/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
PgmResponse | OK |
400 |
ProblemDetails | Bad Request |
404 |
ProblemDetails | Not Found |
DELETE /api/v1/pgm/{pgmId}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
pgmId |
path | integer (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
204 |
sin esquema declarado | No Content |
400 |
ProblemDetails | Bad Request |
404 |
ProblemDetails | Not Found |
PriorityType
GET /api/v1/priority-type
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
array de PriorityTypeResponse | OK |
GET /api/v1/priority-type/{priorityTypeId}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
priorityTypeId |
path | integer (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
PriorityTypeResponse | OK |
404 |
ProblemDetails | Not Found |
Report
GET /api/v1/traffic/reports/programming
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
startDate |
query | string (date) | no | |
endDate |
query | string (date) | no | |
stationId |
query | integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
clientId |
query | integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
orderId |
query | integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
array de SchedulingResponse | OK |
400 |
ProblemDetails | Bad Request |
401 |
ProblemDetails | Unauthorized |
GET /api/v1/traffic/reports/orders
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
startDate |
query | string (date) | no | |
endDate |
query | string (date) | no | |
stationId |
query | integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
clientId |
query | integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
orderId |
query | integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
array de ReportOrdenesItem | OK |
400 |
ProblemDetails | Bad Request |
401 |
ProblemDetails | Unauthorized |
GET /api/v1/traffic/reports/schedule
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
startDate |
query | string (date) | no | |
endDate |
query | string (date) | no | |
stationId |
query | integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
array de ReportScheduleItem | OK |
400 |
ProblemDetails | Bad Request |
401 |
ProblemDetails | Unauthorized |
GET /api/v1/traffic/reports/break-occupancy
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
startDate |
query | string (date) | no | |
endDate |
query | string (date) | no | |
stationId |
query | integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
array de ReportBreakOccupancyItem | OK |
400 |
ProblemDetails | Bad Request |
401 |
ProblemDetails | Unauthorized |
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
startDate |
query | string (date) | no | |
endDate |
query | string (date) | no | |
stationId |
query | integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
array de ReportIndustryShareItem | OK |
400 |
ProblemDetails | Bad Request |
401 |
ProblemDetails | Unauthorized |
GET /api/v1/traffic/reports/audit
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
from |
query | string (date-time) | no | |
to |
query | string (date-time) | no | |
method |
query | string | no | |
statusCode |
query | integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
userId |
query | integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
limit |
query | integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
array de ReportAuditLogItem | OK |
400 |
ProblemDetails | Bad Request |
401 |
ProblemDetails | Unauthorized |
RythmType
GET /api/v1/rythm-type
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
array de RythmTypeResponse | OK |
GET /api/v1/rythm-type/{rythmTypeId}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
rythmTypeId |
path | integer (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
RythmTypeResponse | OK |
404 |
ProblemDetails | Not Found |
Settings
GET /api/v1/traffic/settings
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
SettingsResponse | OK |
404 |
ProblemDetails | Not Found |
PATCH /api/v1/traffic/settings
Cuerpo: UpdateSettingsRequest. Content-Type: application/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
SettingsResponse | OK |
400 |
ProblemDetails | Bad Request |
404 |
ProblemDetails | Not Found |
Station
GET /api/v1/station
Obtener todas las estaciones
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
array de sin esquema declarado | OK |
401 |
ProblemDetails | Unauthorized |
GET /api/v1/station/{stationId}
Obtener estación por ID
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
stationId |
path | integer (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
sin esquema declarado | OK |
400 |
ProblemDetails | Bad Request |
401 |
ProblemDetails | Unauthorized |
404 |
ProblemDetails | Not Found |
Template
GET /api/v1/traffic/template
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
includeInactive |
query | boolean | no | predeterminado False |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
array de TemplateResponse | OK |
POST /api/v1/traffic/template
Cuerpo: CreateTemplateRequest. Content-Type: application/json, text/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
201 |
TemplateResponse | Created |
400 |
ProblemDetails | Bad Request |
GET /api/v1/traffic/template/{id}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
id |
path | integer (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
TemplateResponse | OK |
404 |
ProblemDetails | Not Found |
PUT /api/v1/traffic/template/{id}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
id |
path | integer (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
Cuerpo: UpdateTemplateRequest. Content-Type: application/json, text/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
TemplateResponse | OK |
400 |
ProblemDetails | Bad Request |
404 |
ProblemDetails | Not Found |
DELETE /api/v1/traffic/template/{id}
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
id |
path | integer (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
204 |
sin esquema declarado | No Content |
404 |
ProblemDetails | Not Found |
DELETE /api/v1/traffic/template/{id}/hard
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
id |
path | integer (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
204 |
sin esquema declarado | No Content |
404 |
ProblemDetails | Not Found |
User
POST /api/v1/traffic/user/refreshusers
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
sin esquema declarado | OK |
GET /api/v1/traffic/users
Obtiene todos los usuarios.
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
sin esquema declarado | OK |
GET /api/v1/traffic/user/{userid}
Obtiene un usuario por su ID.
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
userid |
path | integer o string (int32) | sí | ID del usuario. patrón ^-?(?:0|[1-9]\d*)$ |
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
sin esquema declarado | OK |
PUT /api/v1/traffic/user/{userid}
Actualiza el roleid de un usuario (endpoint singular).
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
userid |
path | integer o string (int32) | sí | ID del usuario. patrón ^-?(?:0|[1-9]\d*)$ |
Cuerpo: UpdateUserRoleDto. Content-Type: application/json, text/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
sin esquema declarado | OK |
PUT /api/v1/traffic/users/{userid}
Actualiza el roleid de un usuario (endpoint plural).
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
userid |
path | integer o string (int32) | sí | ID del usuario. patrón ^-?(?:0|[1-9]\d*)$ |
Cuerpo: UpdateUserRoleDto. Content-Type: application/json, text/json, application/*+json. Obligatorio: sí.
| Estado | Respuesta | Descripción |
|---|---|---|
200 |
sin esquema declarado | OK |
6. Modelos de datos
Los nombres y tipos siguientes se derivan directamente del contrato OpenAPI. Una propiedad no marcada como obligatoria puede estar ausente; además, algunos modelos heredados admiten valores nulos aunque el esquema no siempre los marque explícitamente. Los clientes deben deserializar de manera tolerante.
Modelo ActiveStage
Active stage of the scheduler. Controls which logic is enabled.
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
| `` | sin esquema declarado | sí |
Modelo AgencyResponse
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
agencyId |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
name |
string | no | |
type |
integer o string (uint8) | no | patrón ^-?(?:0|[1-9]\d*)$ |
typeName |
null o string | no | |
contact |
null o string | no | |
phone |
null o string | no | |
email |
null o string | no | |
commission |
null o number o string (double) | no | patrón ^-?(?:0|[1-9]\d*)(?:\.\d+)?$ |
notes |
null o string | no | |
status |
integer o string (uint8) | no | patrón ^-?(?:0|[1-9]\d*)$ |
statusName |
null o string | no |
Modelo AlbumResponse
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
albumId |
integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
albumName |
string | no | |
albumYear |
null o string | no | |
genreId |
null o integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
catalogCode |
null o string | no | |
companyId |
null o integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
comments |
null o string | no | |
imageFileId |
null o integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
Modelo AssetTypeResponse
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
assetTypeId |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
assetTypeName |
null o string | no |
Modelo BatchDeleteRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
materialIds |
array de integer o string (int64) | no |
Modelo BreakClipResponse
Clip fijo pre-asignado.
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
position |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
clipId |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
materialId |
integer o string (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
assetTypeId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
assetTypeName |
string | sí | |
title |
null o string | no | |
durationSeconds |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
playedDate |
null o string (date-time) | no | |
aired |
boolean | no |
Modelo BreakResponse
Información de un break (tanda) programado.
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
breakId |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
templateId |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
name |
string | sí | |
startTime |
string (time) | sí | |
totalDuration |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
breakType |
string | sí | |
zones |
array de ZoneResponse | sí | |
clips |
array de BreakClipResponse | sí |
Modelo BreakTemplateClipResponse
DTO de respuesta para un clip de template.
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
clipId |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
materialId |
null o integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
randomArtisticCategoryId |
null o integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
assetTypeName |
null o string | no | |
title |
null o string | no | |
durationSeconds |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
position |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
Modelo BreakTemplateResponse
DTO de respuesta para un template de tanda.
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
breakTemplateId |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
templateId |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
stationId |
integer o string (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
templateName |
string | sí | |
name |
string | sí | |
startTime |
string (time) | sí | |
dayOffset |
boolean | sí | |
totalDuration |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
breakType |
integer o string (uint8) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
breakTypeName |
null o string | sí | |
dayOfWeek |
integer o string (uint8) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
specificDate |
null o string (date) | no | |
isActive |
boolean | sí | |
utcCreated |
string (date-time) | sí | |
utcModified |
string (date-time) | sí | |
zones |
array de BreakTemplateZoneResponse | no | |
clips |
array de BreakTemplateClipResponse | no |
Modelo BreakTemplateZoneResponse
DTO de respuesta para una zona de template.
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
zoneId |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
scope |
Scope | sí | |
scopeName |
null o string | sí | |
maxDuration |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
position |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
Modelo CampaignResponse
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
campaignId |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
clientId |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
clientName |
null o string | no | |
agencyId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
agencyName |
null o string | no | |
name |
string | no | |
startDate |
string (date) | no | |
endDate |
string (date) | no | |
status |
integer o string (uint8) | no | patrón ^-?(?:0|[1-9]\d*)$ |
statusName |
null o string | no | |
notes |
null o string | no |
Modelo CategoryResponse
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
categoryId |
integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
categoryName |
string | no | |
nodeLevel |
null o string | no | |
description |
null o string | no | |
counter |
null o string | no | |
prefix |
null o string | no | |
isStorage |
null o boolean | no | |
assetTypeId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
storageName |
null o string | no | |
utcCreatedDate |
null o string | no | |
utcCreatedTime |
null o string | no | |
utcModifiedDate |
null o string | no | |
utcModifiedTime |
null o string | no |
Modelo ClientResponse
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
clientId |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
companyName |
string | no | |
industries |
array de IndustryItem | no | |
contact |
null o string | no | |
phone |
null o string | no | |
email |
null o string | no | |
status |
integer o string (uint8) | no | patrón ^-?(?:0|[1-9]\d*)$ |
statusName |
null o string | no | |
notes |
null o string | no |
Modelo ClipMetadataResponse
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
clipMetadataId |
integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
materialId |
integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
orderId |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
Modelo ClipRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
materialId |
integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
Modelo ClipResponse
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
materialId |
integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
code |
null o string | no | |
title |
null o string | no | |
duration |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
categoryId |
null o integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
categoryName |
null o string | no |
Modelo CompanyResponse
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
companyId |
integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
companyName |
string | no | |
utcCreatedDate |
null o string | no | |
utcCreatedTime |
null o string | no | |
utcModifiedDate |
null o string | no | |
utcModifiedTime |
null o string | no |
Modelo CreateAgencyRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
name |
string | no | |
type |
integer o string (uint8) | no | patrón ^-?(?:0|[1-9]\d*)$ |
contact |
null o string | no | |
phone |
null o string | no | |
email |
null o string | no | |
commission |
null o number o string (double) | no | patrón ^-?(?:0|[1-9]\d*)(?:\.\d+)?$ |
notes |
null o string | no | |
status |
integer o string (uint8) | no | patrón ^-?(?:0|[1-9]\d*)$ |
Modelo CreateAlbumRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
albumName |
string | sí | |
albumYear |
null o string | no | |
genreId |
null o integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
catalogCode |
null o string | no | |
companyId |
null o integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
comments |
null o string | no | |
imageFileId |
null o integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
Modelo CreateBreakTemplateClipRequest
DTO para crear un clip dentro de un template.
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
materialId |
null o integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
randomArtisticCategoryId |
null o integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
position |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
Modelo CreateBreakTemplateRequest
DTO para crear un nuevo template de tanda. Incluye zonas y clips asociados.
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
templateId |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
name |
string | sí | |
startTime |
string (time) | sí | |
dayOffset |
boolean | sí | |
totalDuration |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
breakType |
integer o string (uint8) | no | patrón ^-?(?:0|[1-9]\d*)$ |
isActive |
boolean | no | |
zones |
array de CreateBreakTemplateZoneRequest | no | |
clips |
array de CreateBreakTemplateClipRequest | no |
Modelo CreateBreakTemplateZoneRequest
DTO para crear una zona dentro de un template.
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
scope |
Scope | no | |
maxDuration |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
position |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
Modelo CreateBreakTypeRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
name |
string | sí |
Modelo CreateCampaignRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
clientId |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
agencyId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
name |
string | no | |
startDate |
string (date) | no | |
endDate |
string (date) | no | |
status |
integer o string (uint8) | no | patrón ^-?(?:0|[1-9]\d*)$ |
notes |
null o string | no |
Modelo CreateCategoryRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
categoryName |
string | no | |
parentCategoryId |
integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
description |
null o string | no | |
assetTypeId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
prefix |
null o string | no |
Modelo CreateClientRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
companyName |
string | no | |
industryIds |
array de integer o string (int32) | no | |
contact |
null o string | no | |
phone |
null o string | no | |
email |
null o string | no | |
status |
integer o string (uint8) | no | patrón ^-?(?:0|[1-9]\d*)$ |
notes |
null o string | no |
Modelo CreateClipMetadataRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
materialId |
integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
Modelo CreateCompanyRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
companyName |
string | sí |
Modelo CreateGenreRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
genreName |
string | sí |
Modelo CreateOrderDaypartRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
orderId |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
stationId |
integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
fixedTime |
boolean | no | |
startTime |
string (time) | no | |
endTime |
string (time) | no | |
startDayOffset |
boolean | no | |
endDayOffset |
boolean | no | |
weekdays |
integer o string (uint8) | no | patrón ^-?(?:0|[1-9]\d*)$ |
orderRuns |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
Modelo CreateOrderRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
campaignId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
clientId |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
duration |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
startDate |
string (date) | no | |
endDate |
null o string (date) | no | |
priority |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
breakTypeFilter |
integer o string (uint8) | no | patrón ^-?(?:0|[1-9]\d*)$ |
positionType |
integer o string (uint8) | no | patrón ^-?(?:0|[1-9]\d*)$ |
manualPosition |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
scope |
integer o string (uint8) | no | patrón ^-?(?:0|[1-9]\d*)$ |
protectionLevel |
integer o string (uint8) | no | patrón ^-?(?:0|[1-9]\d*)$ |
minSeparation |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
maxFrequency |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
interleaveArtistic |
boolean | no | |
title |
null o string | no | |
status |
integer o string (uint8) | no | patrón ^-?(?:0|[1-9]\d*)$ |
dayparts |
array de OrderDaypartDto | no | |
clips |
array de ClipRequest | no | |
industryIds |
array de integer o string (int32) | no |
Modelo CreatePersonRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
personName |
string | sí |
Modelo CreatePgmRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
stationId |
integer o string (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
date |
string | sí | |
programmingTypeId |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
active |
boolean | no | |
blocks |
array de PgmBlockRequest | sí |
Modelo CreateTemplateRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
stationId |
integer o string (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
name |
string | sí | |
dayOfWeek |
integer o string (uint8) | no | patrón ^-?(?:0|[1-9]\d*)$ |
startTime |
string (time) | sí | |
endTime |
string (time) | sí | |
endDayOffset |
boolean | sí | |
specificDate |
null o string (date) | no | |
isActive |
boolean | no |
Modelo FileTypeResponse
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
fileTypeId |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
fileTypeName |
null o string | no |
Modelo GenreResponse
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
genreId |
integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
genreName |
string | no |
Modelo HdxLoginRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
username |
string | no | |
password |
string | no |
Modelo IFormFile
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
| `` | sin esquema declarado | sí |
Modelo IndustryItem
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
industryId |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
name |
string | no |
Modelo IndustryResponse
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
industryId |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
name |
string | no |
Modelo LinkArtistRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
personId |
integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
order |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
unique |
boolean | no |
Modelo LinkAuthorRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
personId |
integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
order |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
unique |
boolean | no |
Modelo LoginResponse
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
success |
boolean | no | |
message |
string | no | |
token |
null o string | no | |
refreshToken |
null o string | no |
Modelo MaterialArtistResponse
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
personId |
integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
personName |
string | no | |
order |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
unique |
boolean | no |
Modelo MaterialAuthorResponse
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
personId |
integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
personName |
string | no | |
order |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
unique |
boolean | no |
Modelo MaterialFileResponse
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
fileId |
integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
fileName |
string | no | |
fileTypeId |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
subFolder |
string | no | |
mimeType |
null o string | no | |
fileSize |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
utcCreatedDate |
string | no | |
utcCreatedTime |
string | no | |
fullPath |
string | no |
Modelo MaterialFillResponse
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
materialId |
integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
fileId |
integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
Modelo MaterialPlaceholderRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
rdsText |
null o string | sí | |
code |
string | sí | |
comments |
null o string | sí | |
title |
string | sí | |
categoryId |
integer o string (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
assetTypeId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
mediaTypeId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
albumId |
null o integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
companyId |
null o integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
genreId |
null o integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
rythmId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
artistIds |
array de integer o string (int64) | no | |
authorIds |
array de integer o string (int64) | no |
Modelo MaterialResponse
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
materialId |
integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
title |
null o string | no | |
code |
null o string | no | |
rdsText |
null o string | no | |
comments |
null o string | no | |
priorityId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
assetTypeId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
mediaTypeId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
materialStateId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
startPos |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
endPos |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
intro |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
outro |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
punchIn |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
punchOut |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
punchInFadeLength |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
punchOutFadeLength |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
punchInFadeTypeId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
punchOutFadeTypeId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
insertOver |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
length |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
contractStartDate |
null o string | no | |
contractEndDate |
null o string | no | |
utcCreatedDate |
null o string | no | |
utcCreatedTime |
null o string | no | |
utcModifiedDate |
null o string | no | |
utcModifiedTime |
null o string | no | |
contentTypeId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
contentDate |
null o string | no | |
contentTime |
null o string | no | |
oldMaterialId |
null o integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
vStandard |
null o string | no | |
archiveStateId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
customField0 |
null o string | no | |
customField1 |
null o string | no | |
customField2 |
null o string | no | |
customField3 |
null o string | no | |
customField4 |
null o string | no | |
customField5 |
null o string | no | |
customField6 |
null o string | no | |
customField7 |
null o string | no | |
customField8 |
null o string | no | |
customField9 |
null o string | no | |
national |
boolean | no | |
independent |
boolean | no | |
skipSadaic |
boolean | no | |
useTypeId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
recordingTypeId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
personType |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
languageId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
bpm |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
tags |
null o string | no | |
rythmId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
utcDcsCuratedDate |
null o string | no | |
utcDcsCuratedTime |
null o string | no | |
acousticId |
null o string | no | |
companyId |
null o integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
albumId |
null o integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
genreId |
null o integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
categoryId |
null o integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
categoryName |
null o string | no | |
isDeleted |
null o boolean | no | |
master |
null o boolean | no |
Modelo MediaTypeResponse
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
mediaTypeId |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
mediaTypeName |
null o string | no |
Modelo NextCodeResponse
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
code |
string | no |
Modelo OrderDaypartDto
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
daypartId |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
orderId |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
stationId |
integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
fixedTime |
boolean | no | |
startTime |
string (time) | no | |
endTime |
string (time) | no | |
startDayOffset |
boolean | no | |
endDayOffset |
boolean | no | |
weekdays |
integer o string (uint8) | no | patrón ^-?(?:0|[1-9]\d*)$ |
orderRuns |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
Modelo OrderResponse
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
orderId |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
campaignId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
campaignName |
null o string | no | |
clientId |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
clientName |
null o string | no | |
duration |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
startDate |
string (date) | no | |
endDate |
null o string (date) | no | |
priority |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
breakTypeFilter |
integer o string (uint8) | no | patrón ^-?(?:0|[1-9]\d*)$ |
breakTypeFilterName |
null o string | no | |
positionType |
integer o string (uint8) | no | patrón ^-?(?:0|[1-9]\d*)$ |
positionTypeName |
null o string | no | |
manualPosition |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
scopeId |
integer o string (uint8) | no | patrón ^-?(?:0|[1-9]\d*)$ |
scopeName |
null o string | no | |
protectionLevel |
integer o string (uint8) | no | patrón ^-?(?:0|[1-9]\d*)$ |
protectionLevelName |
null o string | no | |
interleaveArtistic |
boolean | no | |
title |
null o string | no | |
status |
integer o string (uint8) | no | patrón ^-?(?:0|[1-9]\d*)$ |
statusName |
null o string | no | |
dayparts |
array de OrderDaypartDto | no | |
clips |
array de ClipResponse | no | |
industries |
array de IndustryResponse | no |
Modelo PagedResponseOfMaterialResponse
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
data |
array de MaterialResponse | no | |
total |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
Modelo PersonResponse
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
personId |
integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
personName |
string | no |
Modelo Pgm5ExistsResponse
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
exists |
boolean | no | |
pgmId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
status |
null o integer o string (uint8) | no | patrón ^-?(?:0|[1-9]\d*)$ |
statusName |
null o string | no |
Modelo Pgm5SummaryResponse
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
pgmId |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
stationId |
integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
pgmDate |
string (date) | no | |
templateId |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
status |
integer o string (uint8) | no | patrón ^-?(?:0|[1-9]\d*)$ |
statusName |
null o string | no | |
reviewReasons |
array de string | no | |
unplaced |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
forced |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
conflict |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
Modelo PgmBlockRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
description |
null o string | no | |
blockTime |
string | sí | |
events |
array de PgmEventRequest | sí |
Modelo PgmBlockResponse
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
description |
null o string | no | |
blockTime |
string | no | |
events |
array de PgmEventResponse | no |
Modelo PgmConditionResponse
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
condition |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
name |
string | no | |
description |
string | no |
Modelo PgmEventRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
materialId |
integer o string (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
condition |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
trafficCode |
null o string | no | |
trafficIndex |
null o string | no |
Modelo PgmEventResponse
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
materialId |
integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
condition |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
trafficCode |
null o string | no | |
trafficIndex |
null o string | no |
Modelo PgmResponse
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
id |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
stationId |
integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
date |
string | no | |
programmingTypeId |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
programmingTypeName |
null o string | no | |
active |
boolean | no | |
utcModifiedDate |
string | no | |
utcModifiedTime |
string | no | |
blocks |
array de PgmBlockResponse | no |
Modelo PriorityTypeResponse
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
priorityTypeId |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
priorityTypeName |
null o string | no |
Modelo ProblemDetails
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
type |
null o string | no | |
title |
null o string | no | |
status |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
detail |
null o string | no | |
instance |
null o string | no |
Modelo ProgrammingTypeResponse
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
id |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
name |
null o string | no |
Modelo RefreshTokenRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
refreshToken |
string | no |
Modelo ReportAuditLogItem
Fila de auditoría de acciones de usuarios.
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
id |
integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
createdAt |
string (date-time) | no | |
userId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
username |
null o string | no | |
method |
string | no | |
path |
string | no | |
action |
string | no | |
detail |
null o string | no | |
statusCode |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
elapsedMs |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
error |
null o string | no |
Modelo ReportBreakOccupancyItem
Ocupación promedio de tanda por hora en el rango.
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
hour |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
ocupacionPct |
number o string (double) | sí | patrón ^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$ |
zonaUsadaSeg |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
zonaMaxSeg |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
zonas |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
Modelo ReportIndustryShareItem
Participación por rubro (industria) en el rango.
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
rubro |
string | sí | |
segundos |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
spots |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
porcentaje |
number o string (double) | sí | patrón ^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$ |
Modelo ReportOrdenesItem
Proyección de airings por orden en un rango de fechas.
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
orderId |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
orderTitle |
null o string | no | |
clientId |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
clientName |
null o string | no | |
campaignId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
campaignName |
null o string | no | |
duration |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
vecesQueSaldra |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
programadosReal |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
Modelo ReportScheduleItem
As-run log: una fila por emisión de material (spot o clip) en el rango.
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
playedDate |
null o string (date) | no | Actual air date (null if not aired yet). |
playedTime |
null o string (time) | no | Actual air time (null if not aired yet). |
orderTitle |
null o string | no | Advertising order title. |
clientName |
null o string | no | |
campaignName |
null o string | no | |
industry |
null o string | no | Advertiser industry. |
hdxMaterialName |
null o string | no | HDX material name. |
duration |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
aired |
boolean | no |
Modelo RythmTypeResponse
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
rythmTypeId |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
rythmTypeName |
null o string | no |
Modelo SaveBreakClipRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
position |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
clipId |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
materialId |
integer o string (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
assetTypeId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
assetTypeName |
null o string | no | |
title |
null o string | no | |
durationSeconds |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
Modelo SaveBreakRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
breakId |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
templateId |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
name |
string | sí | |
startTime |
string (time) | sí | |
totalDuration |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
breakType |
string | sí | |
zones |
array de SaveZoneRequest | sí | |
clips |
array de SaveBreakClipRequest | sí |
Modelo SavePgm5Request
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
pgmId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
scheduleDate |
string (date) | sí | |
stationId |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
status |
null o integer o string (uint8) | no | patrón ^-?(?:0|[1-9]\d*)$ |
statusName |
null o string | no | |
reviewReasons |
array de string | no | |
breaks |
array de SaveBreakRequest | sí | |
summary |
SchedulingSummary | sí | |
unplaced |
array de SaveUnplacedRequest | sí | |
metrics |
SchedulingMetricsResponse | sí | |
statusId |
integer o string (uint8) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
reviewReason |
null o string | no |
Modelo SavePgm5Response
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
pgmId |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
stationId |
integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
pgmDate |
string (date) | no | |
templateId |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
status |
integer o string (uint8) | no | patrón ^-?(?:0|[1-9]\d*)$ |
statusName |
null o string | no | |
breakCount |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
zoneCount |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
clipCount |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
spotCount |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
unplacedCount |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
overwritten |
boolean | no |
Modelo SaveSpotRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
position |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
orderId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
orderTitle |
null o string | no | |
campaignId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
campaignName |
null o string | no | |
clientId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
clientName |
null o string | no | |
industry |
null o string | no | |
materialId |
integer o string (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
durationSeconds |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
assetTypeId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
assetTypeName |
null o string | no | |
positionType |
null o string | no | |
lockState |
string | sí | |
conflictReason |
null o string | no |
Modelo SaveUnplacedRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
instanceId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
orderId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
orderTitle |
null o string | no | |
campaignId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
campaignName |
null o string | no | |
clientId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
clientName |
null o string | no | |
industry |
null o string | no | |
materialId |
integer o string (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
durationSeconds |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
assetTypeId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
assetTypeName |
null o string | no | |
positionType |
null o string | no | |
probableCause |
string | sí |
Modelo SaveZoneRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
zoneId |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
scopeId |
integer o string (uint8) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
scopeName |
string | sí | |
position |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
maxDuration |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
usedDuration |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
spots |
array de SaveSpotRequest | sí |
Modelo ScheduleRequest
Request to execute the scheduling algorithm.
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
stationId |
integer o string (int32) | sí | Station ID to schedule. patrón ^-?(?:0|[1-9]\d*)$ |
scheduleDate |
string (date) | sí | Date to schedule (commercial day). |
activeStage |
ActiveStage | no | Active algorithm stage (Stage1, Stage2, or Stage3). Default: Stage1. |
scoreWeights |
null o ScoreWeights | no | Custom scoring weights (optional). If null, uses default weights. |
ignoreSoftConstraints |
boolean | no | If true, ignores soft constraints (separation, frequency, competitive protection). Spots that violate soft constraints will be assigned with state CONFLICT. Default: false (respects all constraints). |
ignoreHardConstraints |
boolean | no | If true, ignores all constraints except physical duration. Spots will be assigned with state FORCED even if they violate hard constraints. Implies IgnoreSoftConstraints = true. Default: false (respects hard constraints). |
savePgm |
boolean | no | If true, persists the generated PGM5 in HDX. If false, only returns the generated result. |
Modelo SchedulingMetricsResponse
Métricas del resultado.
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
totalConflicts |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
totalForced |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
totalUnplaced |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
overallFulfillmentPercentage |
number o string (double) | sí | patrón ^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$ |
Modelo SchedulingResponse
Respuesta jerárquica del algoritmo de scheduling. Estructura: Breaks → Zones → Spots
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
pgmId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
scheduleDate |
string (date) | sí | |
stationId |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
status |
null o integer o string (uint8) | no | patrón ^-?(?:0|[1-9]\d*)$ |
statusName |
null o string | no | |
reviewReasons |
array de string | no | |
breaks |
array de BreakResponse | sí | |
summary |
SchedulingSummary | sí | |
unplaced |
array de UnplacedResponse | sí | |
metrics |
SchedulingMetricsResponse | sí |
Modelo SchedulingStats
Statistics about scheduling availability for a date.
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
stationId |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
scheduleDate |
string (date) | sí | |
breakCount |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
totalBreakDurationSeconds |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
campaignCount |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
orderCount |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
totalDesiredRuns |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
Modelo SchedulingSummary
Resumen general del resultado.
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
totalBreaks |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
totalSpots |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
totalCommands |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
totalDuration |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
usedDuration |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
Modelo Scope
Scope of a spot or zone: National or Local.
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
| `` | sin esquema declarado | sí |
Modelo ScoreWeights
Pesos para el cálculo de puntaje de candidatos en el scoring del algoritmo.
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
w1_Priority |
number o string (double) | no | patrón ^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$ |
w2_Separation |
number o string (double) | no | patrón ^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$ |
w3_Distribution |
number o string (double) | no | patrón ^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$ |
w4_Variety |
number o string (double) | no | patrón ^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$ |
w5_Frequency |
number o string (double) | no | patrón ^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$ |
w6_Occupation |
number o string (double) | no | patrón ^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$ |
Modelo SettingsResponse
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
settingId |
integer o string (uint8) | no | patrón ^-?(?:0|[1-9]\d*)$ |
autoApprovePgm |
boolean | no | |
forceFullPlacement |
boolean | no | |
enableAdvancedLog |
boolean | no | |
materialCodeByCategory |
boolean | no | |
defaultArtisticCategoryId |
null o integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
utcModified |
string (date-time) | no |
Modelo SpotResponse
Spot (comercial/artístico) asignado.
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
position |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
orderId |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
orderTitle |
null o string | no | |
campaignId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
campaignName |
null o string | no | |
clientId |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
clientName |
null o string | no | |
industry |
null o string | no | |
materialId |
integer o string (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
durationSeconds |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
assetTypeId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
assetTypeName |
string | sí | |
positionType |
null o string | no | |
lockState |
string | sí | |
conflictReason |
null o string | no | |
playedDate |
null o string (date-time) | no | |
aired |
boolean | no |
Modelo TemplateBreakTemplateSummaryResponse
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
breakTemplateId |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
name |
string | sí | |
startTime |
string (time) | sí | |
dayOffset |
boolean | sí | |
totalDuration |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
breakType |
integer o string (uint8) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
breakTypeName |
null o string | no | |
isActive |
boolean | sí |
Modelo TemplateResponse
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
templateId |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
stationId |
integer o string (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
name |
string | sí | |
dayOfWeek |
integer o string (uint8) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
startTime |
string (time) | sí | |
endTime |
string (time) | sí | |
endDayOffset |
boolean | sí | |
specificDate |
null o string (date) | no | |
isActive |
boolean | sí | |
utcCreated |
string (date-time) | sí | |
utcModified |
string (date-time) | sí | |
breakTemplates |
array de TemplateBreakTemplateSummaryResponse | no |
Modelo UnplacedResponse
Spot que no pudo ser asignado.
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
instanceId |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
orderId |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
orderTitle |
null o string | no | |
campaignId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
campaignName |
null o string | no | |
clientId |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
clientName |
null o string | no | |
industry |
null o string | no | |
materialId |
integer o string (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
durationSeconds |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
assetTypeId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
assetTypeName |
string | sí | |
positionType |
null o string | no | |
probableCause |
string | sí |
Modelo UpdateAgencyRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
name |
string | no | |
type |
integer o string (uint8) | no | patrón ^-?(?:0|[1-9]\d*)$ |
contact |
null o string | no | |
phone |
null o string | no | |
email |
null o string | no | |
commission |
null o number o string (double) | no | patrón ^-?(?:0|[1-9]\d*)(?:\.\d+)?$ |
notes |
null o string | no | |
status |
integer o string (uint8) | no | patrón ^-?(?:0|[1-9]\d*)$ |
Modelo UpdateAlbumRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
albumName |
string | sí | |
albumYear |
null o string | no | |
genreId |
null o integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
catalogCode |
null o string | no | |
companyId |
null o integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
comments |
null o string | no | |
imageFileId |
null o integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
Modelo UpdateBreakTemplateRequest
DTO para actualizar un template existente.
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
templateId |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
name |
string | sí | |
startTime |
string (time) | sí | |
dayOffset |
boolean | sí | |
totalDuration |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
breakType |
integer o string (uint8) | no | patrón ^-?(?:0|[1-9]\d*)$ |
isActive |
boolean | no | |
zones |
array de CreateBreakTemplateZoneRequest | no | |
clips |
array de CreateBreakTemplateClipRequest | no |
Modelo UpdateBreakTypeRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
name |
string | sí |
Modelo UpdateCampaignRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
clientId |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
agencyId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
name |
string | no | |
startDate |
string (date) | no | |
endDate |
string (date) | no | |
status |
integer o string (uint8) | no | patrón ^-?(?:0|[1-9]\d*)$ |
notes |
null o string | no |
Modelo UpdateCategoryRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
categoryName |
string | no | |
description |
null o string | no | |
prefix |
null o string | no | |
assetTypeId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
Modelo UpdateClientRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
companyName |
string | no | |
industryIds |
array de integer o string (int32) | no | |
contact |
null o string | no | |
phone |
null o string | no | |
email |
null o string | no | |
status |
integer o string (uint8) | no | patrón ^-?(?:0|[1-9]\d*)$ |
notes |
null o string | no |
Modelo UpdateCompanyRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
companyName |
string | sí |
Modelo UpdateGenreRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
genreName |
string | sí |
Modelo UpdateIndustryRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
name |
string | no |
Modelo UpdateMaterialRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
title |
null o string | no | |
code |
null o string | no | |
comments |
null o string | no | |
rdsText |
null o string | no | |
assetTypeId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
mediaTypeId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
albumId |
null o integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
companyId |
null o integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
genreId |
null o integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
priorityId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
materialStateId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
startPos |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
endPos |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
intro |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
outro |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
punchIn |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
punchOut |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
punchInFadeLength |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
punchOutFadeLength |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
punchInFadeTypeId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
punchOutFadeTypeId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
insertOver |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
contractStartDate |
null o string | no | |
contractEndDate |
null o string | no | |
contentTypeId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
contentDate |
null o string | no | |
contentTime |
null o string | no | |
vStandard |
null o string | no | |
archiveStateId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
customField0 |
null o string | no | |
customField1 |
null o string | no | |
customField2 |
null o string | no | |
customField3 |
null o string | no | |
customField4 |
null o string | no | |
customField5 |
null o string | no | |
customField6 |
null o string | no | |
customField7 |
null o string | no | |
customField8 |
null o string | no | |
customField9 |
null o string | no | |
national |
null o boolean | no | |
independent |
null o boolean | no | |
skipSadaic |
null o boolean | no | |
useTypeId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
recordingTypeId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
personType |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
languageId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
bpm |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
tags |
null o string | no | |
rythmId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
Modelo UpdateOrderDaypartRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
stationId |
integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
fixedTime |
boolean | no | |
startTime |
string (time) | no | |
endTime |
string (time) | no | |
startDayOffset |
boolean | no | |
endDayOffset |
boolean | no | |
weekdays |
integer o string (uint8) | no | patrón ^-?(?:0|[1-9]\d*)$ |
orderRuns |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
Modelo UpdateOrderRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
campaignId |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
clientId |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
duration |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
startDate |
string (date) | no | |
endDate |
null o string (date) | no | |
priority |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
breakTypeFilter |
integer o string (uint8) | no | patrón ^-?(?:0|[1-9]\d*)$ |
positionType |
integer o string (uint8) | no | patrón ^-?(?:0|[1-9]\d*)$ |
manualPosition |
null o integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
scope |
integer o string (uint8) | no | patrón ^-?(?:0|[1-9]\d*)$ |
protectionLevel |
integer o string (uint8) | no | patrón ^-?(?:0|[1-9]\d*)$ |
minSeparation |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
maxFrequency |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
interleaveArtistic |
boolean | no | |
title |
null o string | no | |
status |
integer o string (uint8) | no | patrón ^-?(?:0|[1-9]\d*)$ |
dayparts |
array de OrderDaypartDto | no | |
clips |
array de ClipRequest | no | |
industryIds |
array de integer o string (int32) | no |
Modelo UpdatePersonRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
personName |
string | sí |
Modelo UpdatePgm5StatusRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
statusId |
integer o string (uint8) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
reviewReason |
null o string | no |
Modelo UpdatePgmRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
stationId |
integer o string (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
date |
string | sí | |
programmingTypeId |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
active |
boolean | no | |
blocks |
array de PgmBlockRequest | sí |
Modelo UpdateSettingsRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
autoApprovePgm |
null o boolean | no | |
forceFullPlacement |
null o boolean | no | |
enableAdvancedLog |
null o boolean | no | |
materialCodeByCategory |
null o boolean | no | |
defaultArtisticCategoryId |
null o integer o string (int64) | no | patrón ^-?(?:0|[1-9]\d*)$ |
Modelo UpdateTemplateRequest
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
stationId |
integer o string (int64) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
name |
string | sí | |
dayOfWeek |
integer o string (uint8) | no | patrón ^-?(?:0|[1-9]\d*)$ |
startTime |
string (time) | sí | |
endTime |
string (time) | sí | |
endDayOffset |
boolean | sí | |
specificDate |
null o string (date) | no | |
isActive |
boolean | no |
Modelo UpdateUserRoleDto
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
roleid |
integer o string (int32) | no | patrón ^-?(?:0|[1-9]\d*)$ |
Modelo ZoneResponse
Zona dentro de un break.
| Propiedad | Tipo | Obligatoria | Descripción y restricciones |
|---|---|---|---|
zoneId |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
scopeId |
integer o string (uint8) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
scopeName |
string | sí | |
position |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
maxDuration |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
usedDuration |
integer o string (int32) | sí | patrón ^-?(?:0|[1-9]\d*)$ |
spots |
array de SpotResponse | sí |
7. Flujos recomendados
Aplicación de asistencia al aire
- Autenticarse y mantener el token fuera de logs.
- Usar HARDATA ECP para obtener playlists,
playlistItemId,materialId, timers y cambios de actual/siguiente. - Consultar
GET /api/v1/material/{materialId}para metadata y marcas de audio. - Consultar artistas y autores mediante los endpoints asociados al material cuando sea necesario.
- Cachear respuestas por
materialId, con invalidación razonable; no consultar en cada evento de timer. - Tomar decisiones de transporte exclusivamente con el estado autoritativo de HARDATA ECP.
Gestión de tráfico
- Crear o consultar agencias, clientes, campañas y órdenes.
- Configurar dayparts, clips, industrias, prioridades y restricciones.
- Configurar templates y templates de tanda por emisora.
- Consultar estadísticas del algoritmo.
- Ejecutar la programación y revisar conflictos, no ubicados y métricas.
8. Seguridad y privacidad
- No incluir usuarios, contraseñas, JWT, claves o URLs privadas en código fuente, repositorios, telemetría o capturas.
- Guardar secretos en el almacén seguro del sistema operativo o en un gestor de secretos.
- Evitar registrar cuerpos que puedan contener datos personales, contactos, emails o tokens.
- Aplicar mínimo privilegio y separar cuentas de lectura de cuentas con capacidad de modificación o borrado.
- Confirmar explícitamente operaciones destructivas, especialmente hard delete, batch delete y eliminación de archivos físicos.
- No exponer el endpoint de broadcast WebSocket a usuarios sin autorización administrativa.
9. Checklist de implementación
- URL base configurable y HTTPS en producción.
- Login y token fuera de logs.
- Bearer enviado sólo al host esperado.
- Timeouts, cancelación y backoff implementados.
200,201,204,206,400,401,404,409,416y500manejados.- Paginación aplicada en listados de materiales.
- Streaming implementa Range requests.
- Mutaciones desconocidas no se reintentan automáticamente.
- Eliminaciones físicas requieren confirmación.
- Modelos toleran campos adicionales y nulos.
- HARDATA ECP se usa como autoridad para el estado al aire.