{
  "openapi": "3.1.1",
  "info": {
    "title": "Hardata API",
    "description": "API de gestión de tráfico publicitario de Hardata.",
    "version": "v1.0"
  },
  "servers": [
    {
      "url": "http://localhost:5010/"
    }
  ],
  "paths": {
    "/api/v1/traffic/agency": {
      "get": {
        "tags": ["Agency"],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AgencyResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AgencyResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AgencyResponse"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": ["Agency"],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateAgencyRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateAgencyRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateAgencyRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AgencyResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgencyResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgencyResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/traffic/agency/{agencyId}": {
      "get": {
        "tags": ["Agency"],
        "parameters": [
          {
            "name": "agencyId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AgencyResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgencyResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgencyResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": ["Agency"],
        "parameters": [
          {
            "name": "agencyId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateAgencyRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateAgencyRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateAgencyRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AgencyResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgencyResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgencyResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": ["Agency"],
        "parameters": [
          {
            "name": "agencyId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/traffic/agency/types": {
      "get": {
        "tags": ["Agency"],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/traffic/agency/statuses": {
      "get": {
        "tags": ["Agency"],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/album": {
      "get": {
        "tags": ["Album"],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AlbumResponse"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": ["Album"],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateAlbumRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateAlbumRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlbumResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/album/{id}": {
      "get": {
        "tags": ["Album"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlbumResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": ["Album"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateAlbumRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateAlbumRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlbumResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": ["Album"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {}
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/traffic/algorithm/schedule": {
      "post": {
        "tags": ["Algorithm"],
        "description": "Execute the scheduling algorithm for a specific date and station.",
        "requestBody": {
          "description": "Scheduling request with date, station, and options.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScheduleRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ScheduleRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ScheduleRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Scheduling completed successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SchedulingResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized - JWT token required.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error during scheduling.",
            "content": {
              "application/json": {}
            }
          }
        }
      }
    },
    "/api/v1/traffic/algorithm/stats": {
      "get": {
        "tags": ["Algorithm"],
        "description": "Get scheduling statistics for a specific date and station.\r\nUseful for preview before running the full algorithm.",
        "parameters": [
          {
            "name": "stationId",
            "in": "query",
            "description": "Station ID.",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": ["integer", "string"],
              "format": "int32"
            }
          },
          {
            "name": "date",
            "in": "query",
            "description": "Schedule date (YYYY-MM-DD).",
            "schema": {
              "type": "string",
              "format": "date"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Statistics retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SchedulingStats"
                }
              }
            }
          },
          "400": {
            "description": "Invalid parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized - JWT token required.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/asset-type": {
      "get": {
        "tags": ["AssetType"],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AssetTypeResponse"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/asset-type/{assetTypeId}": {
      "get": {
        "tags": ["AssetType"],
        "parameters": [
          {
            "name": "assetTypeId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetTypeResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/login": {
      "post": {
        "tags": ["Auth"],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HdxLoginRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/HdxLoginRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/HdxLoginRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/auth/refresh": {
      "post": {
        "tags": ["Auth"],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RefreshTokenRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RefreshTokenRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RefreshTokenRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/traffic/breaktemplate": {
      "get": {
        "tags": ["Break Templates"],
        "description": "Listar todos los templates",
        "parameters": [
          {
            "name": "includeInactive",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BreakTemplateResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": ["Break Templates"],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateBreakTemplateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateBreakTemplateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateBreakTemplateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BreakTemplateResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/traffic/breaktemplate/{id}": {
      "get": {
        "tags": ["Break Templates"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BreakTemplateResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": ["Break Templates"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateBreakTemplateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateBreakTemplateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateBreakTemplateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BreakTemplateResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": ["Break Templates"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          }
        }
      }
    },
    "/api/v1/traffic/breaktemplate/station/{stationId}": {
      "get": {
        "tags": ["Break Templates"],
        "description": "Obtener templates por emisora",
        "parameters": [
          {
            "name": "stationId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "includeInactive",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BreakTemplateResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/traffic/breaktemplate/{id}/hard": {
      "delete": {
        "tags": ["Break Templates"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          }
        }
      }
    },
    "/api/v1/traffic/break-types": {
      "get": {
        "tags": ["BreakType"],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": ["BreakType"],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateBreakTypeRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateBreakTypeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {}
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/traffic/break-types/{id}": {
      "put": {
        "tags": ["BreakType"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateBreakTypeRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateBreakTypeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": ["BreakType"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {}
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/traffic/campaign": {
      "get": {
        "tags": ["Campaign"],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CampaignResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CampaignResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CampaignResponse"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": ["Campaign"],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCampaignRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCampaignRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCampaignRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CampaignResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CampaignResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CampaignResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/traffic/campaign/{campaignId}": {
      "get": {
        "tags": ["Campaign"],
        "parameters": [
          {
            "name": "campaignId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CampaignResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CampaignResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CampaignResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": ["Campaign"],
        "parameters": [
          {
            "name": "campaignId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCampaignRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCampaignRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCampaignRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CampaignResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CampaignResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CampaignResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": ["Campaign"],
        "parameters": [
          {
            "name": "campaignId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/traffic/campaign/statuses": {
      "get": {
        "tags": ["Campaign"],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/category": {
      "get": {
        "tags": ["Category"],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CategoryResponse"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": ["Category"],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCategoryRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCategoryRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CategoryResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/category/{categoryId}": {
      "get": {
        "tags": ["Category"],
        "parameters": [
          {
            "name": "categoryId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CategoryResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": ["Category"],
        "parameters": [
          {
            "name": "categoryId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCategoryRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCategoryRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CategoryResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": ["Category"],
        "parameters": [
          {
            "name": "categoryId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {}
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/category/storages": {
      "get": {
        "tags": ["Category"],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CategoryResponse"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/category/{categoryId}/nextcode": {
      "get": {
        "tags": ["Category"],
        "parameters": [
          {
            "name": "categoryId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NextCodeResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/category/{categoryId}/children": {
      "get": {
        "tags": ["Category"],
        "parameters": [
          {
            "name": "categoryId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CategoryResponse"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/category/{categoryId}/ancestors": {
      "get": {
        "tags": ["Category"],
        "parameters": [
          {
            "name": "categoryId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CategoryResponse"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/category/{categoryId}/descendants": {
      "get": {
        "tags": ["Category"],
        "parameters": [
          {
            "name": "categoryId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CategoryResponse"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/traffic/client": {
      "get": {
        "tags": ["Client"],
        "description": "Obtiene todos los clientes.",
        "responses": {
          "200": {
            "description": "Lista de clientes.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ClientResponse"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": ["Client"],
        "description": "Crea un nuevo cliente.",
        "requestBody": {
          "description": "Datos del cliente a crear.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateClientRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateClientRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Cliente creado.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/traffic/client/{clientId}": {
      "get": {
        "tags": ["Client"],
        "description": "Obtiene un cliente por su ID.",
        "parameters": [
          {
            "name": "clientId",
            "in": "path",
            "description": "ID del cliente.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Cliente encontrado.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": ["Client"],
        "description": "Actualiza un cliente existente.",
        "parameters": [
          {
            "name": "clientId",
            "in": "path",
            "description": "ID del cliente a actualizar.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "Datos actualizados del cliente.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateClientRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateClientRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Cliente actualizado.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": ["Client"],
        "description": "Elimina un cliente por su ID.",
        "parameters": [
          {
            "name": "clientId",
            "in": "path",
            "description": "ID del cliente a eliminar.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Resultado de la operaci�n."
          }
        }
      }
    },
    "/api/v1/traffic/client/statuses": {
      "get": {
        "tags": ["Client"],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/traffic/clip_metadata": {
      "get": {
        "tags": ["Clip Metadata"],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ClipMetadataResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ClipMetadataResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ClipMetadataResponse"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": ["Clip Metadata"],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateClipMetadataRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateClipMetadataRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateClipMetadataRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ClipMetadataResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClipMetadataResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClipMetadataResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/traffic/clip_metadata/{clipMetadataId}": {
      "get": {
        "tags": ["Clip Metadata"],
        "parameters": [
          {
            "name": "clipMetadataId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ClipMetadataResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClipMetadataResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClipMetadataResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": ["Clip Metadata"],
        "parameters": [
          {
            "name": "clipMetadataId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/traffic/common/scopes": {
      "get": {
        "tags": ["Common"],
        "description": "Alcances posibles (National / Local).\r\nUsado en Order, BreakTemplateZone y ClipMetadata.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          }
        }
      }
    },
    "/api/v1/traffic/common/weekdays": {
      "get": {
        "tags": ["Common"],
        "description": "Valores base del bitmask de días de la semana.\r\nUsado en OrderDaypart y BreakTemplate.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          }
        }
      }
    },
    "/api/v1/traffic/common/break-types": {
      "get": {
        "tags": ["Common"],
        "description": "Tipos de tanda disponibles (Simple, Rotativa, etc.).\r\nUsado en BreakTemplate.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          }
        }
      }
    },
    "/api/v1/company": {
      "get": {
        "tags": ["Company"],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CompanyResponse"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": ["Company"],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCompanyRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCompanyRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/company/{companyId}": {
      "get": {
        "tags": ["Company"],
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": ["Company"],
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCompanyRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCompanyRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": ["Company"],
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {}
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/file-type": {
      "get": {
        "tags": ["FileType"],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FileTypeResponse"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/file-type/{fileTypeId}": {
      "get": {
        "tags": ["FileType"],
        "parameters": [
          {
            "name": "fileTypeId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileTypeResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/genre": {
      "get": {
        "tags": ["Genre"],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GenreResponse"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": ["Genre"],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateGenreRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateGenreRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenreResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/genre/{id}": {
      "get": {
        "tags": ["Genre"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenreResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": ["Genre"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateGenreRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateGenreRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenreResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": ["Genre"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {}
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/traffic/industry": {
      "get": {
        "tags": ["Industry"],
        "description": "Obtiene todos los rubros.",
        "responses": {
          "200": {
            "description": "Lista de rubros.",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/IndustryResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/IndustryResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/IndustryResponse"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": ["Industry"],
        "description": "Crea nuevos rubros.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Lista de rubros creados.",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/IndustryResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/IndustryResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/IndustryResponse"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/traffic/industry/{industryId}": {
      "get": {
        "tags": ["Industry"],
        "description": "Obtiene rubro especifico por id.",
        "parameters": [
          {
            "name": "industryId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Rubro especifico.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/IndustryResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IndustryResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/IndustryResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": ["Industry"],
        "description": "Actualiza un rubro existente.",
        "parameters": [
          {
            "name": "industryId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateIndustryRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateIndustryRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateIndustryRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Rubro actualizado.",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/IndustryResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IndustryResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/IndustryResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": ["Industry"],
        "description": "Elimina un rubro existente.",
        "parameters": [
          {
            "name": "industryId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Rubro eliminado."
          }
        }
      }
    },
    "/api/v1/material": {
      "get": {
        "tags": ["Material"],
        "description": "Obtiene todos los materiales, con filtros opcionales y paginación.\r\nCada fila de CATEGORYMATERIAL (master o link) se devuelve como un material.\r\nPor defecto excluye la papelera (isDeleted=false).",
        "parameters": [
          {
            "name": "CategoryId",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": ["integer", "string"],
              "format": "int64"
            }
          },
          {
            "name": "Title",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Code",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "MediaTypeId",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": ["integer", "string"],
              "format": "int32"
            }
          },
          {
            "name": "MaterialStateId",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": ["integer", "string"],
              "format": "int32"
            }
          },
          {
            "name": "HasFiles",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsDeleted",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": ["integer", "string"],
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": ["integer", "string"],
              "format": "int32",
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfMaterialResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/material/search": {
      "get": {
        "tags": ["Material"],
        "description": "Busca materiales por texto libre en todos los campos relevantes\r\n(title, code, comments, rdsText, tags, customFields, artist/author names, album, genre, company).",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": ["integer", "string"],
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": ["integer", "string"],
              "format": "int32",
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedResponseOfMaterialResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/material/{materialId}": {
      "get": {
        "tags": ["Material"],
        "description": "Obtiene un material por su ID.",
        "parameters": [
          {
            "name": "materialId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MaterialResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": ["Material"],
        "description": "Actualiza la metadata de un material existente.",
        "parameters": [
          {
            "name": "materialId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateMaterialRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateMaterialRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MaterialResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": ["Material"],
        "description": "Elimina un material completo: archivos físicos, MATERIALFILE, FILE,\r\nCATEGORYMATERIAL y finalmente MATERIAL. Orden secuencial para respetar FKs.",
        "parameters": [
          {
            "name": "materialId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {}
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/material/{materialId}/stream": {
      "get": {
        "tags": ["Material"],
        "description": "Stream de audio/video para reproducción en el frontend.\r\nSoporta range requests para seeking.",
        "parameters": [
          {
            "name": "materialId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "fileId",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": ["integer", "string"],
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "206": {
            "description": "Partial Content",
            "content": {
              "application/json": {}
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "416": {
            "description": "Range Not Satisfiable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/material/placeholder": {
      "post": {
        "tags": ["Material"],
        "description": "Crea un material placeholder sin audio.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MaterialPlaceholderRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MaterialPlaceholderRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MaterialResponse"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/material/{materialId}/files": {
      "get": {
        "tags": ["Material"],
        "description": "Obtiene todos los archivos asociados a un material.",
        "parameters": [
          {
            "name": "materialId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MaterialFileResponse"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/material/{materialId}/category/{categoryId}": {
      "put": {
        "tags": ["Material"],
        "description": "Mueve un material a otra categoría. Reemplaza todos los vínculos de categoría existentes.",
        "parameters": [
          {
            "name": "materialId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "categoryId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/material/{materialId}/files/{fileId}": {
      "delete": {
        "tags": ["Material"],
        "description": "Elimina un archivo asociado a un material, incluyendo el archivo físico del storage.",
        "parameters": [
          {
            "name": "materialId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "fileId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {}
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/material/batch-delete": {
      "post": {
        "tags": ["Material"],
        "description": "Elimina múltiples materiales en una sola transacción secuencial para evitar deadlocks.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchDeleteRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/BatchDeleteRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/material/fill": {
      "post": {
        "tags": ["Material"],
        "description": "Adjunta un archivo de audio o video a un material existente.",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "allOf": [
                  {
                    "type": "object",
                    "properties": {
                      "materialId": {
                        "pattern": "^-?(?:0|[1-9]\\d*)$",
                        "type": ["integer", "string"],
                        "format": "int64"
                      }
                    }
                  },
                  {
                    "type": "object",
                    "properties": {
                      "file": {
                        "$ref": "#/components/schemas/IFormFile"
                      }
                    }
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MaterialFillResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/material/{materialId}/artists": {
      "get": {
        "tags": ["Material"],
        "parameters": [
          {
            "name": "materialId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MaterialArtistResponse"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": ["Material"],
        "parameters": [
          {
            "name": "materialId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LinkArtistRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/LinkArtistRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MaterialArtistResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/material/{materialId}/artists/{personId}": {
      "delete": {
        "tags": ["Material"],
        "parameters": [
          {
            "name": "materialId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "personId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {}
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/material/{materialId}/authors": {
      "get": {
        "tags": ["Material"],
        "parameters": [
          {
            "name": "materialId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MaterialAuthorResponse"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": ["Material"],
        "parameters": [
          {
            "name": "materialId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LinkAuthorRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/LinkAuthorRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MaterialAuthorResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/material/{materialId}/authors/{personId}": {
      "delete": {
        "tags": ["Material"],
        "parameters": [
          {
            "name": "materialId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "personId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {}
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/media-type": {
      "get": {
        "tags": ["MediaType"],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MediaTypeResponse"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/media-type/{mediaTypeId}": {
      "get": {
        "tags": ["MediaType"],
        "parameters": [
          {
            "name": "mediaTypeId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MediaTypeResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/traffic/order": {
      "get": {
        "tags": ["Order"],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderResponse"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": ["Order"],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateOrderRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateOrderRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateOrderRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/OrderResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/traffic/order/{orderId}": {
      "get": {
        "tags": ["Order"],
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/OrderResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": ["Order"],
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateOrderRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateOrderRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateOrderRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/OrderResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": ["Order"],
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/traffic/order/statuses": {
      "get": {
        "tags": ["Order"],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/traffic/order/position-types": {
      "get": {
        "tags": ["Order"],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/traffic/order/protection-levels": {
      "get": {
        "tags": ["Order"],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/traffic/order_daypart": {
      "get": {
        "tags": ["Order Daypart"],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderDaypartDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderDaypartDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderDaypartDto"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": ["Order Daypart"],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateOrderDaypartRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateOrderDaypartRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateOrderDaypartRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/OrderDaypartDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderDaypartDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderDaypartDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/traffic/order_daypart/{id}": {
      "get": {
        "tags": ["Order Daypart"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/OrderDaypartDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderDaypartDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderDaypartDto"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": ["Order Daypart"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateOrderDaypartRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateOrderDaypartRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateOrderDaypartRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/OrderDaypartDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderDaypartDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderDaypartDto"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": ["Order Daypart"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/person": {
      "get": {
        "tags": ["Person"],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PersonResponse"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": ["Person"],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePersonRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePersonRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PersonResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/person/{id}": {
      "get": {
        "tags": ["Person"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PersonResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": ["Person"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePersonRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePersonRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PersonResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": ["Person"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {}
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/traffic/pgm5/all": {
      "get": {
        "tags": ["PGM5"],
        "parameters": [
          {
            "name": "FromDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "ToDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "Status",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": ["integer", "string"],
              "format": "uint8"
            }
          },
          {
            "name": "StationId",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": ["integer", "string"],
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Pgm5SummaryResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/traffic/pgm5/{pgmId}": {
      "get": {
        "tags": ["PGM5"],
        "parameters": [
          {
            "name": "pgmId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SchedulingResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": ["PGM5"],
        "parameters": [
          {
            "name": "pgmId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {}
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/traffic/pgm5": {
      "get": {
        "tags": ["PGM5"],
        "parameters": [
          {
            "name": "stationId",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": ["integer", "string"],
              "format": "int64"
            }
          },
          {
            "name": "date",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SchedulingResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": ["PGM5"],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SavePgm5Request"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SavePgm5Request"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SavePgm5Request"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SavePgm5Response"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/traffic/pgm5/exists": {
      "get": {
        "tags": ["PGM5"],
        "parameters": [
          {
            "name": "stationId",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": ["integer", "string"],
              "format": "int64"
            }
          },
          {
            "name": "date",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Pgm5ExistsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/traffic/pgm5/{pgmId}/status": {
      "patch": {
        "tags": ["PGM5"],
        "parameters": [
          {
            "name": "pgmId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePgm5StatusRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePgm5StatusRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePgm5StatusRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Pgm5SummaryResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/pgm": {
      "get": {
        "tags": ["PGM"],
        "parameters": [
          {
            "name": "StationId",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": ["integer", "string"],
              "format": "int64"
            }
          },
          {
            "name": "Date",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ProgrammingTypeId",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": ["integer", "string"],
              "format": "int32"
            }
          },
          {
            "name": "Active",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {}
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": ["PGM"],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePgmRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePgmRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePgmRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PgmResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/pgm/types": {
      "get": {
        "tags": ["PGM"],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProgrammingTypeResponse"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/pgm/conditions": {
      "get": {
        "tags": ["PGM"],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PgmConditionResponse"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/pgm/{pgmId}": {
      "get": {
        "tags": ["PGM"],
        "parameters": [
          {
            "name": "pgmId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PgmResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": ["PGM"],
        "parameters": [
          {
            "name": "pgmId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePgmRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePgmRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePgmRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PgmResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": ["PGM"],
        "parameters": [
          {
            "name": "pgmId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {}
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/priority-type": {
      "get": {
        "tags": ["PriorityType"],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PriorityTypeResponse"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/priority-type/{priorityTypeId}": {
      "get": {
        "tags": ["PriorityType"],
        "parameters": [
          {
            "name": "priorityTypeId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PriorityTypeResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/traffic/reports/programming": {
      "get": {
        "tags": ["Report"],
        "parameters": [
          {
            "name": "startDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "stationId",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": ["integer", "string"],
              "format": "int64"
            }
          },
          {
            "name": "clientId",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": ["integer", "string"],
              "format": "int32"
            }
          },
          {
            "name": "orderId",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": ["integer", "string"],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SchedulingResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/traffic/reports/orders": {
      "get": {
        "tags": ["Report"],
        "parameters": [
          {
            "name": "startDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "stationId",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": ["integer", "string"],
              "format": "int64"
            }
          },
          {
            "name": "clientId",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": ["integer", "string"],
              "format": "int32"
            }
          },
          {
            "name": "orderId",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": ["integer", "string"],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ReportOrdenesItem"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/traffic/reports/schedule": {
      "get": {
        "tags": ["Report"],
        "parameters": [
          {
            "name": "startDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "stationId",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": ["integer", "string"],
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ReportScheduleItem"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/traffic/reports/break-occupancy": {
      "get": {
        "tags": ["Report"],
        "parameters": [
          {
            "name": "startDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "stationId",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": ["integer", "string"],
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ReportBreakOccupancyItem"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/traffic/reports/industry-share": {
      "get": {
        "tags": ["Report"],
        "parameters": [
          {
            "name": "startDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "stationId",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": ["integer", "string"],
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ReportIndustryShareItem"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/traffic/reports/audit": {
      "get": {
        "tags": ["Report"],
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "to",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "method",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "statusCode",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": ["integer", "string"],
              "format": "int32"
            }
          },
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": ["integer", "string"],
              "format": "int32"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": ["integer", "string"],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ReportAuditLogItem"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/rythm-type": {
      "get": {
        "tags": ["RythmType"],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RythmTypeResponse"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/rythm-type/{rythmTypeId}": {
      "get": {
        "tags": ["RythmType"],
        "parameters": [
          {
            "name": "rythmTypeId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RythmTypeResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/traffic/settings": {
      "get": {
        "tags": ["Settings"],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SettingsResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": ["Settings"],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSettingsRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSettingsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SettingsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/station": {
      "get": {
        "tags": ["Station"],
        "description": "Obtener todas las estaciones",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/station/{stationId}": {
      "get": {
        "tags": ["Station"],
        "description": "Obtener estación por ID",
        "parameters": [
          {
            "name": "stationId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/traffic/template": {
      "get": {
        "tags": ["Template"],
        "parameters": [
          {
            "name": "includeInactive",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TemplateResponse"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": ["Template"],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTemplateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTemplateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTemplateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TemplateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/traffic/template/{id}": {
      "get": {
        "tags": ["Template"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TemplateResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": ["Template"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTemplateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTemplateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTemplateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TemplateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": ["Template"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {}
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/traffic/template/{id}/hard": {
      "delete": {
        "tags": ["Template"],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {}
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/traffic/user/refreshusers": {
      "post": {
        "tags": ["User"],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/traffic/users": {
      "get": {
        "tags": ["User"],
        "description": "Obtiene todos los usuarios.",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/traffic/user/{userid}": {
      "get": {
        "tags": ["User"],
        "description": "Obtiene un usuario por su ID.",
        "parameters": [
          {
            "name": "userid",
            "in": "path",
            "description": "ID del usuario.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": ["integer", "string"],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "put": {
        "tags": ["User"],
        "description": "Actualiza el roleid de un usuario (endpoint singular).",
        "parameters": [
          {
            "name": "userid",
            "in": "path",
            "description": "ID del usuario.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": ["integer", "string"],
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "Objeto con el nuevo roleid.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateUserRoleDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateUserRoleDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateUserRoleDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/traffic/users/{userid}": {
      "put": {
        "tags": ["User"],
        "description": "Actualiza el roleid de un usuario (endpoint plural).",
        "parameters": [
          {
            "name": "userid",
            "in": "path",
            "description": "ID del usuario.",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": ["integer", "string"],
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "Objeto con el nuevo roleid.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateUserRoleDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateUserRoleDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateUserRoleDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "ActiveStage": {
        "type": "integer",
        "description": "Active stage of the scheduler. Controls which logic is enabled."
      },
      "AgencyResponse": {
        "type": "object",
        "properties": {
          "agencyId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "type": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          },
          "typeName": {
            "type": ["null", "string"]
          },
          "contact": {
            "type": ["null", "string"]
          },
          "phone": {
            "type": ["null", "string"]
          },
          "email": {
            "type": ["null", "string"]
          },
          "commission": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": ["null", "number", "string"],
            "format": "double"
          },
          "notes": {
            "type": ["null", "string"]
          },
          "status": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          },
          "statusName": {
            "type": ["null", "string"]
          }
        }
      },
      "AlbumResponse": {
        "type": "object",
        "properties": {
          "albumId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int64"
          },
          "albumName": {
            "type": "string"
          },
          "albumYear": {
            "type": ["null", "string"]
          },
          "genreId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int64"
          },
          "catalogCode": {
            "type": ["null", "string"]
          },
          "companyId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int64"
          },
          "comments": {
            "type": ["null", "string"]
          },
          "imageFileId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int64"
          }
        }
      },
      "AssetTypeResponse": {
        "type": "object",
        "properties": {
          "assetTypeId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "assetTypeName": {
            "type": ["null", "string"]
          }
        }
      },
      "BatchDeleteRequest": {
        "type": "object",
        "properties": {
          "materialIds": {
            "type": "array",
            "items": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": ["integer", "string"],
              "format": "int64"
            }
          }
        }
      },
      "BreakClipResponse": {
        "required": [
          "position",
          "clipId",
          "materialId",
          "assetTypeName",
          "durationSeconds"
        ],
        "type": "object",
        "properties": {
          "position": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "clipId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "materialId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int64"
          },
          "materialCode": {
            "type": ["null", "string"]
          },
          "assetTypeId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "assetTypeName": {
            "type": "string"
          },
          "title": {
            "type": ["null", "string"]
          },
          "durationSeconds": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "playedDate": {
            "type": ["null", "string"],
            "format": "date-time"
          },
          "aired": {
            "type": "boolean"
          }
        },
        "description": "Clip fijo pre-asignado."
      },
      "BreakResponse": {
        "required": [
          "breakId",
          "templateId",
          "name",
          "startTime",
          "totalDuration",
          "breakType",
          "zones",
          "clips"
        ],
        "type": "object",
        "properties": {
          "breakId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "templateId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "startTime": {
            "type": "string",
            "format": "time"
          },
          "totalDuration": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "breakType": {
            "type": "string"
          },
          "zones": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ZoneResponse"
            }
          },
          "clips": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BreakClipResponse"
            }
          }
        },
        "description": "Información de un break (tanda) programado."
      },
      "BreakTemplateClipResponse": {
        "required": ["clipId", "durationSeconds", "position"],
        "type": "object",
        "properties": {
          "clipId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "materialId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int64"
          },
          "randomArtisticCategoryId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int64"
          },
          "assetTypeName": {
            "type": ["null", "string"]
          },
          "title": {
            "type": ["null", "string"]
          },
          "durationSeconds": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "position": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          }
        },
        "description": "DTO de respuesta para un clip de template."
      },
      "BreakTemplateResponse": {
        "required": [
          "breakTemplateId",
          "templateId",
          "stationId",
          "templateName",
          "name",
          "startTime",
          "dayOffset",
          "totalDuration",
          "breakType",
          "breakTypeName",
          "dayOfWeek",
          "isActive",
          "utcCreated",
          "utcModified"
        ],
        "type": "object",
        "properties": {
          "breakTemplateId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "templateId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "stationId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int64"
          },
          "templateName": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "startTime": {
            "type": "string",
            "format": "time"
          },
          "dayOffset": {
            "type": "boolean"
          },
          "totalDuration": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "breakType": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          },
          "breakTypeName": {
            "type": ["null", "string"]
          },
          "dayOfWeek": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          },
          "specificDate": {
            "type": ["null", "string"],
            "format": "date"
          },
          "isActive": {
            "type": "boolean"
          },
          "utcCreated": {
            "type": "string",
            "format": "date-time"
          },
          "utcModified": {
            "type": "string",
            "format": "date-time"
          },
          "zones": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BreakTemplateZoneResponse"
            }
          },
          "clips": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BreakTemplateClipResponse"
            }
          }
        },
        "description": "DTO de respuesta para un template de tanda."
      },
      "BreakTemplateZoneResponse": {
        "required": ["zoneId", "scope", "scopeName", "maxDuration", "position"],
        "type": "object",
        "properties": {
          "zoneId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "scope": {
            "$ref": "#/components/schemas/Scope"
          },
          "scopeName": {
            "type": ["null", "string"]
          },
          "maxDuration": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "position": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          }
        },
        "description": "DTO de respuesta para una zona de template."
      },
      "CampaignResponse": {
        "type": "object",
        "properties": {
          "campaignId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "clientId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "clientName": {
            "type": ["null", "string"]
          },
          "agencyId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "agencyName": {
            "type": ["null", "string"]
          },
          "name": {
            "type": "string"
          },
          "startDate": {
            "type": "string",
            "format": "date"
          },
          "endDate": {
            "type": "string",
            "format": "date"
          },
          "status": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          },
          "statusName": {
            "type": ["null", "string"]
          },
          "notes": {
            "type": ["null", "string"]
          }
        }
      },
      "CategoryResponse": {
        "type": "object",
        "properties": {
          "categoryId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int64"
          },
          "categoryName": {
            "type": "string"
          },
          "nodeLevel": {
            "type": ["null", "string"]
          },
          "description": {
            "type": ["null", "string"]
          },
          "counter": {
            "type": ["null", "string"]
          },
          "prefix": {
            "type": ["null", "string"]
          },
          "isStorage": {
            "type": ["null", "boolean"]
          },
          "assetTypeId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "storageName": {
            "type": ["null", "string"]
          },
          "utcCreatedDate": {
            "type": ["null", "string"]
          },
          "utcCreatedTime": {
            "type": ["null", "string"]
          },
          "utcModifiedDate": {
            "type": ["null", "string"]
          },
          "utcModifiedTime": {
            "type": ["null", "string"]
          }
        }
      },
      "ClientResponse": {
        "type": "object",
        "properties": {
          "clientId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "companyName": {
            "type": "string"
          },
          "industries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IndustryItem"
            }
          },
          "contact": {
            "type": ["null", "string"]
          },
          "phone": {
            "type": ["null", "string"]
          },
          "email": {
            "type": ["null", "string"]
          },
          "status": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          },
          "statusName": {
            "type": ["null", "string"]
          },
          "notes": {
            "type": ["null", "string"]
          }
        }
      },
      "ClipMetadataResponse": {
        "type": "object",
        "properties": {
          "clipMetadataId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int64"
          },
          "materialId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int64"
          },
          "orderId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          }
        }
      },
      "ClipRequest": {
        "type": "object",
        "properties": {
          "materialId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int64"
          }
        }
      },
      "ClipResponse": {
        "type": "object",
        "properties": {
          "materialId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int64"
          },
          "code": {
            "type": ["null", "string"]
          },
          "title": {
            "type": ["null", "string"]
          },
          "duration": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "categoryId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int64"
          },
          "categoryName": {
            "type": ["null", "string"]
          }
        }
      },
      "CompanyResponse": {
        "type": "object",
        "properties": {
          "companyId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int64"
          },
          "companyName": {
            "type": "string"
          },
          "utcCreatedDate": {
            "type": ["null", "string"]
          },
          "utcCreatedTime": {
            "type": ["null", "string"]
          },
          "utcModifiedDate": {
            "type": ["null", "string"]
          },
          "utcModifiedTime": {
            "type": ["null", "string"]
          }
        }
      },
      "CreateAgencyRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          },
          "contact": {
            "type": ["null", "string"]
          },
          "phone": {
            "type": ["null", "string"]
          },
          "email": {
            "type": ["null", "string"]
          },
          "commission": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": ["null", "number", "string"],
            "format": "double"
          },
          "notes": {
            "type": ["null", "string"]
          },
          "status": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          }
        }
      },
      "CreateAlbumRequest": {
        "required": ["albumName"],
        "type": "object",
        "properties": {
          "albumName": {
            "type": "string"
          },
          "albumYear": {
            "type": ["null", "string"]
          },
          "genreId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int64"
          },
          "catalogCode": {
            "type": ["null", "string"]
          },
          "companyId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int64"
          },
          "comments": {
            "type": ["null", "string"]
          },
          "imageFileId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int64"
          }
        }
      },
      "CreateBreakTemplateClipRequest": {
        "required": ["position"],
        "type": "object",
        "properties": {
          "materialId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int64"
          },
          "randomArtisticCategoryId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int64"
          },
          "position": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          }
        },
        "description": "DTO para crear un clip dentro de un template."
      },
      "CreateBreakTemplateRequest": {
        "required": [
          "templateId",
          "name",
          "startTime",
          "dayOffset",
          "totalDuration"
        ],
        "type": "object",
        "properties": {
          "templateId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "startTime": {
            "type": "string",
            "format": "time"
          },
          "dayOffset": {
            "type": "boolean"
          },
          "totalDuration": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "breakType": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          },
          "isActive": {
            "type": "boolean"
          },
          "zones": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateBreakTemplateZoneRequest"
            }
          },
          "clips": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateBreakTemplateClipRequest"
            }
          }
        },
        "description": "DTO para crear un nuevo template de tanda.\r\nIncluye zonas y clips asociados."
      },
      "CreateBreakTemplateZoneRequest": {
        "required": ["maxDuration", "position"],
        "type": "object",
        "properties": {
          "scope": {
            "$ref": "#/components/schemas/Scope"
          },
          "maxDuration": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "position": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          }
        },
        "description": "DTO para crear una zona dentro de un template."
      },
      "CreateBreakTypeRequest": {
        "required": ["name"],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          }
        }
      },
      "CreateCampaignRequest": {
        "type": "object",
        "properties": {
          "clientId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "agencyId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "startDate": {
            "type": "string",
            "format": "date"
          },
          "endDate": {
            "type": "string",
            "format": "date"
          },
          "status": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          },
          "notes": {
            "type": ["null", "string"]
          }
        }
      },
      "CreateCategoryRequest": {
        "type": "object",
        "properties": {
          "categoryName": {
            "type": "string"
          },
          "parentCategoryId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int64"
          },
          "description": {
            "type": ["null", "string"]
          },
          "assetTypeId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "prefix": {
            "type": ["null", "string"]
          }
        }
      },
      "CreateClientRequest": {
        "type": "object",
        "properties": {
          "companyName": {
            "type": "string"
          },
          "industryIds": {
            "type": "array",
            "items": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": ["integer", "string"],
              "format": "int32"
            }
          },
          "contact": {
            "type": ["null", "string"]
          },
          "phone": {
            "type": ["null", "string"]
          },
          "email": {
            "type": ["null", "string"]
          },
          "status": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          },
          "notes": {
            "type": ["null", "string"]
          }
        }
      },
      "CreateClipMetadataRequest": {
        "type": "object",
        "properties": {
          "materialId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int64"
          }
        }
      },
      "CreateCompanyRequest": {
        "required": ["companyName"],
        "type": "object",
        "properties": {
          "companyName": {
            "type": "string"
          }
        }
      },
      "CreateGenreRequest": {
        "required": ["genreName"],
        "type": "object",
        "properties": {
          "genreName": {
            "type": "string"
          }
        }
      },
      "CreateOrderDaypartRequest": {
        "type": "object",
        "properties": {
          "orderId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "stationId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int64"
          },
          "fixedTime": {
            "type": "boolean"
          },
          "startTime": {
            "type": "string",
            "format": "time"
          },
          "endTime": {
            "type": "string",
            "format": "time"
          },
          "startDayOffset": {
            "type": "boolean"
          },
          "endDayOffset": {
            "type": "boolean"
          },
          "weekdays": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          },
          "orderRuns": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          }
        }
      },
      "CreateOrderRequest": {
        "type": "object",
        "properties": {
          "campaignId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "clientId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "duration": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "startDate": {
            "type": "string",
            "format": "date"
          },
          "endDate": {
            "type": ["null", "string"],
            "format": "date"
          },
          "priority": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "breakTypeFilter": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          },
          "positionType": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          },
          "manualPosition": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "scope": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          },
          "protectionLevel": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          },
          "minSeparation": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "maxFrequency": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "interleaveArtistic": {
            "type": "boolean"
          },
          "title": {
            "type": ["null", "string"]
          },
          "status": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          },
          "dayparts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderDaypartDto"
            }
          },
          "clips": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ClipRequest"
            }
          },
          "industryIds": {
            "type": "array",
            "items": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": ["integer", "string"],
              "format": "int32"
            }
          }
        }
      },
      "CreatePersonRequest": {
        "required": ["personName"],
        "type": "object",
        "properties": {
          "personName": {
            "type": "string"
          }
        }
      },
      "CreatePgmRequest": {
        "required": ["stationId", "date", "programmingTypeId", "blocks"],
        "type": "object",
        "properties": {
          "stationId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int64"
          },
          "date": {
            "type": "string"
          },
          "programmingTypeId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "active": {
            "type": "boolean"
          },
          "blocks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PgmBlockRequest"
            }
          }
        }
      },
      "CreateTemplateRequest": {
        "required": [
          "stationId",
          "name",
          "startTime",
          "endTime",
          "endDayOffset"
        ],
        "type": "object",
        "properties": {
          "stationId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int64"
          },
          "name": {
            "type": "string"
          },
          "dayOfWeek": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          },
          "startTime": {
            "type": "string",
            "format": "time"
          },
          "endTime": {
            "type": "string",
            "format": "time"
          },
          "endDayOffset": {
            "type": "boolean"
          },
          "specificDate": {
            "type": ["null", "string"],
            "format": "date"
          },
          "isActive": {
            "type": "boolean"
          }
        }
      },
      "FileTypeResponse": {
        "type": "object",
        "properties": {
          "fileTypeId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "fileTypeName": {
            "type": ["null", "string"]
          }
        }
      },
      "GenreResponse": {
        "type": "object",
        "properties": {
          "genreId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int64"
          },
          "genreName": {
            "type": "string"
          }
        }
      },
      "HdxLoginRequest": {
        "type": "object",
        "properties": {
          "username": {
            "type": "string"
          },
          "password": {
            "type": "string"
          }
        }
      },
      "IFormFile": {
        "type": "string",
        "format": "binary"
      },
      "IndustryItem": {
        "type": "object",
        "properties": {
          "industryId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "IndustryResponse": {
        "type": "object",
        "properties": {
          "industryId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "LinkArtistRequest": {
        "type": "object",
        "properties": {
          "personId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int64"
          },
          "order": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "unique": {
            "type": "boolean"
          }
        }
      },
      "LinkAuthorRequest": {
        "type": "object",
        "properties": {
          "personId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int64"
          },
          "order": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "unique": {
            "type": "boolean"
          }
        }
      },
      "LoginResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "token": {
            "type": ["null", "string"]
          },
          "refreshToken": {
            "type": ["null", "string"]
          }
        }
      },
      "MaterialArtistResponse": {
        "type": "object",
        "properties": {
          "personId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int64"
          },
          "personName": {
            "type": "string"
          },
          "order": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "unique": {
            "type": "boolean"
          }
        }
      },
      "MaterialAuthorResponse": {
        "type": "object",
        "properties": {
          "personId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int64"
          },
          "personName": {
            "type": "string"
          },
          "order": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "unique": {
            "type": "boolean"
          }
        }
      },
      "MaterialFileResponse": {
        "type": "object",
        "properties": {
          "fileId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int64"
          },
          "fileName": {
            "type": "string"
          },
          "fileTypeId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "subFolder": {
            "type": "string"
          },
          "mimeType": {
            "type": ["null", "string"]
          },
          "fileSize": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "utcCreatedDate": {
            "type": "string"
          },
          "utcCreatedTime": {
            "type": "string"
          },
          "fullPath": {
            "type": "string"
          }
        }
      },
      "MaterialFillResponse": {
        "type": "object",
        "properties": {
          "materialId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int64"
          },
          "fileId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int64"
          }
        }
      },
      "MaterialPlaceholderRequest": {
        "required": ["rdsText", "code", "comments", "title", "categoryId"],
        "type": "object",
        "properties": {
          "rdsText": {
            "type": ["null", "string"]
          },
          "code": {
            "type": "string"
          },
          "comments": {
            "type": ["null", "string"]
          },
          "title": {
            "type": "string"
          },
          "categoryId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int64"
          },
          "assetTypeId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "mediaTypeId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "albumId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int64"
          },
          "companyId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int64"
          },
          "genreId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int64"
          },
          "rythmId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "artistIds": {
            "type": ["null", "array"],
            "items": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": ["integer", "string"],
              "format": "int64"
            }
          },
          "authorIds": {
            "type": ["null", "array"],
            "items": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": ["integer", "string"],
              "format": "int64"
            }
          }
        }
      },
      "MaterialResponse": {
        "type": "object",
        "properties": {
          "materialId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int64"
          },
          "title": {
            "type": ["null", "string"]
          },
          "code": {
            "type": ["null", "string"]
          },
          "rdsText": {
            "type": ["null", "string"]
          },
          "comments": {
            "type": ["null", "string"]
          },
          "priorityId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "assetTypeId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "mediaTypeId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "materialStateId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "startPos": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "endPos": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "intro": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "outro": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "punchIn": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "punchOut": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "punchInFadeLength": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "punchOutFadeLength": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "punchInFadeTypeId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "punchOutFadeTypeId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "insertOver": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "length": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "contractStartDate": {
            "type": ["null", "string"]
          },
          "contractEndDate": {
            "type": ["null", "string"]
          },
          "utcCreatedDate": {
            "type": ["null", "string"]
          },
          "utcCreatedTime": {
            "type": ["null", "string"]
          },
          "utcModifiedDate": {
            "type": ["null", "string"]
          },
          "utcModifiedTime": {
            "type": ["null", "string"]
          },
          "contentTypeId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "contentDate": {
            "type": ["null", "string"]
          },
          "contentTime": {
            "type": ["null", "string"]
          },
          "oldMaterialId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int64"
          },
          "vStandard": {
            "type": ["null", "string"]
          },
          "archiveStateId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "customField0": {
            "type": ["null", "string"]
          },
          "customField1": {
            "type": ["null", "string"]
          },
          "customField2": {
            "type": ["null", "string"]
          },
          "customField3": {
            "type": ["null", "string"]
          },
          "customField4": {
            "type": ["null", "string"]
          },
          "customField5": {
            "type": ["null", "string"]
          },
          "customField6": {
            "type": ["null", "string"]
          },
          "customField7": {
            "type": ["null", "string"]
          },
          "customField8": {
            "type": ["null", "string"]
          },
          "customField9": {
            "type": ["null", "string"]
          },
          "national": {
            "type": "boolean"
          },
          "independent": {
            "type": "boolean"
          },
          "skipSadaic": {
            "type": "boolean"
          },
          "useTypeId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "recordingTypeId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "personType": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "languageId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "bpm": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "tags": {
            "type": ["null", "string"]
          },
          "rythmId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "utcDcsCuratedDate": {
            "type": ["null", "string"]
          },
          "utcDcsCuratedTime": {
            "type": ["null", "string"]
          },
          "acousticId": {
            "type": ["null", "string"]
          },
          "companyId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int64"
          },
          "albumId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int64"
          },
          "genreId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int64"
          },
          "categoryId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int64"
          },
          "categoryName": {
            "type": ["null", "string"]
          },
          "isDeleted": {
            "type": ["null", "boolean"]
          },
          "master": {
            "type": ["null", "boolean"]
          }
        }
      },
      "MediaTypeResponse": {
        "type": "object",
        "properties": {
          "mediaTypeId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "mediaTypeName": {
            "type": ["null", "string"]
          }
        }
      },
      "NextCodeResponse": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          }
        }
      },
      "OrderDaypartDto": {
        "type": "object",
        "properties": {
          "daypartId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "orderId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "stationId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int64"
          },
          "fixedTime": {
            "type": "boolean"
          },
          "startTime": {
            "type": "string",
            "format": "time"
          },
          "endTime": {
            "type": "string",
            "format": "time"
          },
          "startDayOffset": {
            "type": "boolean"
          },
          "endDayOffset": {
            "type": "boolean"
          },
          "weekdays": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          },
          "orderRuns": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          }
        }
      },
      "OrderResponse": {
        "type": "object",
        "properties": {
          "orderId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "campaignId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "campaignName": {
            "type": ["null", "string"]
          },
          "clientId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "clientName": {
            "type": ["null", "string"]
          },
          "duration": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "startDate": {
            "type": "string",
            "format": "date"
          },
          "endDate": {
            "type": ["null", "string"],
            "format": "date"
          },
          "priority": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "breakTypeFilter": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          },
          "breakTypeFilterName": {
            "type": ["null", "string"]
          },
          "positionType": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          },
          "positionTypeName": {
            "type": ["null", "string"]
          },
          "manualPosition": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "scopeId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          },
          "scopeName": {
            "type": ["null", "string"]
          },
          "protectionLevel": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          },
          "protectionLevelName": {
            "type": ["null", "string"]
          },
          "interleaveArtistic": {
            "type": "boolean"
          },
          "title": {
            "type": ["null", "string"]
          },
          "status": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          },
          "statusName": {
            "type": ["null", "string"]
          },
          "dayparts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderDaypartDto"
            }
          },
          "clips": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ClipResponse"
            }
          },
          "industries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IndustryResponse"
            }
          }
        }
      },
      "PagedResponseOfMaterialResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MaterialResponse"
            }
          },
          "total": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          }
        }
      },
      "PersonResponse": {
        "type": "object",
        "properties": {
          "personId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int64"
          },
          "personName": {
            "type": "string"
          }
        }
      },
      "Pgm5ExistsResponse": {
        "type": "object",
        "properties": {
          "exists": {
            "type": "boolean"
          },
          "pgmId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "status": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "uint8"
          },
          "statusName": {
            "type": ["null", "string"]
          }
        }
      },
      "Pgm5SummaryResponse": {
        "type": "object",
        "properties": {
          "pgmId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "stationId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int64"
          },
          "pgmDate": {
            "type": "string",
            "format": "date"
          },
          "templateId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "status": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          },
          "statusName": {
            "type": ["null", "string"]
          },
          "reviewReasons": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "unplaced": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "forced": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "conflict": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          }
        }
      },
      "PgmBlockRequest": {
        "required": ["blockTime", "events"],
        "type": "object",
        "properties": {
          "description": {
            "type": ["null", "string"]
          },
          "blockTime": {
            "type": "string"
          },
          "events": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PgmEventRequest"
            }
          }
        }
      },
      "PgmBlockResponse": {
        "type": "object",
        "properties": {
          "description": {
            "type": ["null", "string"]
          },
          "blockTime": {
            "type": "string"
          },
          "events": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PgmEventResponse"
            }
          }
        }
      },
      "PgmConditionResponse": {
        "type": "object",
        "properties": {
          "condition": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          }
        }
      },
      "PgmEventRequest": {
        "required": ["materialId", "condition"],
        "type": "object",
        "properties": {
          "materialId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int64"
          },
          "condition": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "trafficCode": {
            "type": ["null", "string"]
          },
          "trafficIndex": {
            "type": ["null", "string"]
          }
        }
      },
      "PgmEventResponse": {
        "type": "object",
        "properties": {
          "materialId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int64"
          },
          "condition": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "trafficCode": {
            "type": ["null", "string"]
          },
          "trafficIndex": {
            "type": ["null", "string"]
          }
        }
      },
      "PgmResponse": {
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "stationId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int64"
          },
          "date": {
            "type": "string"
          },
          "programmingTypeId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "programmingTypeName": {
            "type": ["null", "string"]
          },
          "active": {
            "type": "boolean"
          },
          "utcModifiedDate": {
            "type": "string"
          },
          "utcModifiedTime": {
            "type": "string"
          },
          "blocks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PgmBlockResponse"
            }
          }
        }
      },
      "PriorityTypeResponse": {
        "type": "object",
        "properties": {
          "priorityTypeId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "priorityTypeName": {
            "type": ["null", "string"]
          }
        }
      },
      "ProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": ["null", "string"]
          },
          "title": {
            "type": ["null", "string"]
          },
          "status": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "detail": {
            "type": ["null", "string"]
          },
          "instance": {
            "type": ["null", "string"]
          }
        }
      },
      "ProgrammingTypeResponse": {
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "name": {
            "type": ["null", "string"]
          }
        }
      },
      "RefreshTokenRequest": {
        "type": "object",
        "properties": {
          "refreshToken": {
            "type": "string"
          }
        }
      },
      "ReportAuditLogItem": {
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int64"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "userId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "username": {
            "type": ["null", "string"]
          },
          "method": {
            "type": "string"
          },
          "path": {
            "type": "string"
          },
          "action": {
            "type": "string"
          },
          "detail": {
            "type": ["null", "string"]
          },
          "statusCode": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "elapsedMs": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "error": {
            "type": ["null", "string"]
          }
        },
        "description": "Fila de auditoría de acciones de usuarios."
      },
      "ReportBreakOccupancyItem": {
        "required": [
          "hour",
          "ocupacionPct",
          "zonaUsadaSeg",
          "zonaMaxSeg",
          "zonas"
        ],
        "type": "object",
        "properties": {
          "hour": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "ocupacionPct": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": ["number", "string"],
            "format": "double"
          },
          "zonaUsadaSeg": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "zonaMaxSeg": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "zonas": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          }
        },
        "description": "Ocupación promedio de tanda por hora en el rango."
      },
      "ReportIndustryShareItem": {
        "required": ["rubro", "segundos", "spots", "porcentaje"],
        "type": "object",
        "properties": {
          "rubro": {
            "type": "string"
          },
          "segundos": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "spots": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "porcentaje": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": ["number", "string"],
            "format": "double"
          }
        },
        "description": "Participación por rubro (industria) en el rango."
      },
      "ReportOrdenesItem": {
        "required": [
          "orderId",
          "clientId",
          "duration",
          "vecesQueSaldra",
          "programadosReal"
        ],
        "type": "object",
        "properties": {
          "orderId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "orderTitle": {
            "type": ["null", "string"]
          },
          "clientId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "clientName": {
            "type": ["null", "string"]
          },
          "campaignId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "campaignName": {
            "type": ["null", "string"]
          },
          "duration": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "vecesQueSaldra": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "programadosReal": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          }
        },
        "description": "Proyección de airings por orden en un rango de fechas."
      },
      "ReportScheduleItem": {
        "required": ["duration"],
        "type": "object",
        "properties": {
          "playedDate": {
            "type": ["null", "string"],
            "description": "Actual air date (null if not aired yet).",
            "format": "date"
          },
          "playedTime": {
            "type": ["null", "string"],
            "description": "Actual air time (null if not aired yet).",
            "format": "time"
          },
          "orderTitle": {
            "type": ["null", "string"],
            "description": "Advertising order title."
          },
          "clientName": {
            "type": ["null", "string"]
          },
          "campaignName": {
            "type": ["null", "string"]
          },
          "industry": {
            "type": ["null", "string"],
            "description": "Advertiser industry."
          },
          "hdxMaterialName": {
            "type": ["null", "string"],
            "description": "HDX material name."
          },
          "duration": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "aired": {
            "type": "boolean"
          }
        },
        "description": "As-run log: una fila por emisión de material (spot o clip) en el rango."
      },
      "RythmTypeResponse": {
        "type": "object",
        "properties": {
          "rythmTypeId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "rythmTypeName": {
            "type": ["null", "string"]
          }
        }
      },
      "SaveBreakClipRequest": {
        "required": ["position", "clipId", "materialId", "durationSeconds"],
        "type": "object",
        "properties": {
          "position": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "clipId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "materialId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int64"
          },
          "assetTypeId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "assetTypeName": {
            "type": ["null", "string"]
          },
          "title": {
            "type": ["null", "string"]
          },
          "durationSeconds": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          }
        }
      },
      "SaveBreakRequest": {
        "required": [
          "breakId",
          "templateId",
          "name",
          "startTime",
          "totalDuration",
          "breakType",
          "zones",
          "clips"
        ],
        "type": "object",
        "properties": {
          "breakId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "templateId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "startTime": {
            "type": "string",
            "format": "time"
          },
          "totalDuration": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "breakType": {
            "type": "string"
          },
          "zones": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SaveZoneRequest"
            }
          },
          "clips": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SaveBreakClipRequest"
            }
          }
        }
      },
      "SavePgm5Request": {
        "required": [
          "scheduleDate",
          "stationId",
          "breaks",
          "summary",
          "unplaced",
          "metrics",
          "statusId"
        ],
        "type": "object",
        "properties": {
          "pgmId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "scheduleDate": {
            "type": "string",
            "format": "date"
          },
          "stationId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "status": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "uint8"
          },
          "statusName": {
            "type": ["null", "string"]
          },
          "reviewReasons": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "breaks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SaveBreakRequest"
            }
          },
          "summary": {
            "$ref": "#/components/schemas/SchedulingSummary"
          },
          "unplaced": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SaveUnplacedRequest"
            }
          },
          "metrics": {
            "$ref": "#/components/schemas/SchedulingMetricsResponse"
          },
          "statusId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          },
          "reviewReason": {
            "type": ["null", "string"]
          }
        }
      },
      "SavePgm5Response": {
        "type": "object",
        "properties": {
          "pgmId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "stationId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int64"
          },
          "pgmDate": {
            "type": "string",
            "format": "date"
          },
          "templateId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "status": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          },
          "statusName": {
            "type": ["null", "string"]
          },
          "breakCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "zoneCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "clipCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "spotCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "unplacedCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "overwritten": {
            "type": "boolean"
          }
        }
      },
      "SaveSpotRequest": {
        "required": ["position", "materialId", "durationSeconds", "lockState"],
        "type": "object",
        "properties": {
          "position": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "orderId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "orderTitle": {
            "type": ["null", "string"]
          },
          "campaignId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "campaignName": {
            "type": ["null", "string"]
          },
          "clientId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "clientName": {
            "type": ["null", "string"]
          },
          "industry": {
            "type": ["null", "string"]
          },
          "materialId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int64"
          },
          "durationSeconds": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "assetTypeId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "assetTypeName": {
            "type": ["null", "string"]
          },
          "positionType": {
            "type": ["null", "string"]
          },
          "lockState": {
            "type": "string"
          },
          "conflictReason": {
            "type": ["null", "string"]
          }
        }
      },
      "SaveUnplacedRequest": {
        "required": ["materialId", "durationSeconds", "probableCause"],
        "type": "object",
        "properties": {
          "instanceId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "orderId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "orderTitle": {
            "type": ["null", "string"]
          },
          "campaignId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "campaignName": {
            "type": ["null", "string"]
          },
          "clientId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "clientName": {
            "type": ["null", "string"]
          },
          "industry": {
            "type": ["null", "string"]
          },
          "materialId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int64"
          },
          "durationSeconds": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "assetTypeId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "assetTypeName": {
            "type": ["null", "string"]
          },
          "positionType": {
            "type": ["null", "string"]
          },
          "probableCause": {
            "type": "string"
          }
        }
      },
      "SaveZoneRequest": {
        "required": [
          "zoneId",
          "scopeId",
          "scopeName",
          "position",
          "maxDuration",
          "usedDuration",
          "spots"
        ],
        "type": "object",
        "properties": {
          "zoneId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "scopeId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          },
          "scopeName": {
            "type": "string"
          },
          "position": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "maxDuration": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "usedDuration": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "spots": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SaveSpotRequest"
            }
          }
        }
      },
      "ScheduleRequest": {
        "required": ["stationId", "scheduleDate"],
        "type": "object",
        "properties": {
          "stationId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "description": "Station ID to schedule.",
            "format": "int32"
          },
          "scheduleDate": {
            "type": "string",
            "description": "Date to schedule (commercial day).",
            "format": "date"
          },
          "activeStage": {
            "description": "Active algorithm stage (Stage1, Stage2, or Stage3).\r\nDefault: Stage1.",
            "$ref": "#/components/schemas/ActiveStage"
          },
          "scoreWeights": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "description": "Custom scoring weights (optional).\r\nIf null, uses default weights.",
                "$ref": "#/components/schemas/ScoreWeights"
              }
            ]
          },
          "ignoreSoftConstraints": {
            "type": "boolean",
            "description": "If true, ignores soft constraints (separation, frequency, competitive protection).\r\nSpots that violate soft constraints will be assigned with state CONFLICT.\r\nDefault: false (respects all constraints)."
          },
          "ignoreHardConstraints": {
            "type": "boolean",
            "description": "If true, ignores all constraints except physical duration.\r\nSpots will be assigned with state FORCED even if they violate hard constraints.\r\nImplies IgnoreSoftConstraints = true.\r\nDefault: false (respects hard constraints)."
          },
          "savePgm": {
            "type": "boolean",
            "description": "If true, persists the generated PGM5 in HDX. If false, only returns the generated result."
          }
        },
        "description": "Request to execute the scheduling algorithm."
      },
      "SchedulingMetricsResponse": {
        "required": [
          "totalConflicts",
          "totalForced",
          "totalUnplaced",
          "overallFulfillmentPercentage"
        ],
        "type": "object",
        "properties": {
          "totalConflicts": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "totalForced": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "totalUnplaced": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "overallFulfillmentPercentage": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": ["number", "string"],
            "format": "double"
          }
        },
        "description": "Métricas del resultado."
      },
      "SchedulingResponse": {
        "required": [
          "scheduleDate",
          "stationId",
          "breaks",
          "summary",
          "unplaced",
          "metrics"
        ],
        "type": "object",
        "properties": {
          "pgmId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "scheduleDate": {
            "type": "string",
            "format": "date"
          },
          "stationId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "status": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "uint8"
          },
          "statusName": {
            "type": ["null", "string"]
          },
          "reviewReasons": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "breaks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BreakResponse"
            }
          },
          "summary": {
            "$ref": "#/components/schemas/SchedulingSummary"
          },
          "unplaced": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UnplacedResponse"
            }
          },
          "metrics": {
            "$ref": "#/components/schemas/SchedulingMetricsResponse"
          }
        },
        "description": "Respuesta jerárquica del algoritmo de scheduling.\r\nEstructura: Breaks → Zones → Spots"
      },
      "SchedulingStats": {
        "required": [
          "stationId",
          "scheduleDate",
          "breakCount",
          "totalBreakDurationSeconds",
          "campaignCount",
          "orderCount",
          "totalDesiredRuns"
        ],
        "type": "object",
        "properties": {
          "stationId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "scheduleDate": {
            "type": "string",
            "format": "date"
          },
          "breakCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "totalBreakDurationSeconds": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "campaignCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "orderCount": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "totalDesiredRuns": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          }
        },
        "description": "Statistics about scheduling availability for a date."
      },
      "SchedulingSummary": {
        "required": [
          "totalBreaks",
          "totalSpots",
          "totalCommands",
          "totalDuration",
          "usedDuration"
        ],
        "type": "object",
        "properties": {
          "totalBreaks": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "totalSpots": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "totalCommands": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "totalDuration": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "usedDuration": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          }
        },
        "description": "Resumen general del resultado."
      },
      "Scope": {
        "type": "integer",
        "description": "Scope of a spot or zone: National or Local."
      },
      "ScoreWeights": {
        "type": "object",
        "properties": {
          "w1_Priority": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": ["number", "string"],
            "format": "double"
          },
          "w2_Separation": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": ["number", "string"],
            "format": "double"
          },
          "w3_Distribution": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": ["number", "string"],
            "format": "double"
          },
          "w4_Variety": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": ["number", "string"],
            "format": "double"
          },
          "w5_Frequency": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": ["number", "string"],
            "format": "double"
          },
          "w6_Occupation": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
            "type": ["number", "string"],
            "format": "double"
          }
        },
        "description": "Pesos para el cálculo de puntaje de candidatos en el scoring del algoritmo."
      },
      "SettingsResponse": {
        "type": "object",
        "properties": {
          "settingId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          },
          "autoApprovePgm": {
            "type": "boolean"
          },
          "forceFullPlacement": {
            "type": "boolean"
          },
          "enableAdvancedLog": {
            "type": "boolean"
          },
          "materialCodeByCategory": {
            "type": "boolean"
          },
          "defaultArtisticCategoryId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int64"
          },
          "utcModified": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "SpotResponse": {
        "required": [
          "position",
          "orderId",
          "clientId",
          "materialId",
          "durationSeconds",
          "assetTypeName",
          "lockState"
        ],
        "type": "object",
        "properties": {
          "position": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "orderId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "orderTitle": {
            "type": ["null", "string"]
          },
          "campaignId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "campaignName": {
            "type": ["null", "string"]
          },
          "clientId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "clientName": {
            "type": ["null", "string"]
          },
          "industry": {
            "type": ["null", "string"]
          },
          "materialId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int64"
          },
          "materialCode": {
            "type": ["null", "string"]
          },
          "durationSeconds": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "assetTypeId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "assetTypeName": {
            "type": "string"
          },
          "positionType": {
            "type": ["null", "string"]
          },
          "lockState": {
            "type": "string"
          },
          "conflictReason": {
            "type": ["null", "string"]
          },
          "playedDate": {
            "type": ["null", "string"],
            "format": "date-time"
          },
          "aired": {
            "type": "boolean"
          }
        },
        "description": "Spot (comercial/artístico) asignado."
      },
      "TemplateBreakTemplateSummaryResponse": {
        "required": [
          "breakTemplateId",
          "name",
          "startTime",
          "dayOffset",
          "totalDuration",
          "breakType",
          "isActive"
        ],
        "type": "object",
        "properties": {
          "breakTemplateId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "startTime": {
            "type": "string",
            "format": "time"
          },
          "dayOffset": {
            "type": "boolean"
          },
          "totalDuration": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "breakType": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          },
          "breakTypeName": {
            "type": ["null", "string"]
          },
          "isActive": {
            "type": "boolean"
          }
        }
      },
      "TemplateResponse": {
        "required": [
          "templateId",
          "stationId",
          "name",
          "dayOfWeek",
          "startTime",
          "endTime",
          "endDayOffset",
          "isActive",
          "utcCreated",
          "utcModified"
        ],
        "type": "object",
        "properties": {
          "templateId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "stationId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int64"
          },
          "name": {
            "type": "string"
          },
          "dayOfWeek": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          },
          "startTime": {
            "type": "string",
            "format": "time"
          },
          "endTime": {
            "type": "string",
            "format": "time"
          },
          "endDayOffset": {
            "type": "boolean"
          },
          "specificDate": {
            "type": ["null", "string"],
            "format": "date"
          },
          "isActive": {
            "type": "boolean"
          },
          "utcCreated": {
            "type": "string",
            "format": "date-time"
          },
          "utcModified": {
            "type": "string",
            "format": "date-time"
          },
          "breakTemplates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TemplateBreakTemplateSummaryResponse"
            }
          }
        }
      },
      "UnplacedResponse": {
        "required": [
          "instanceId",
          "orderId",
          "clientId",
          "materialId",
          "durationSeconds",
          "assetTypeName",
          "probableCause"
        ],
        "type": "object",
        "properties": {
          "instanceId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "orderId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "orderTitle": {
            "type": ["null", "string"]
          },
          "campaignId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "campaignName": {
            "type": ["null", "string"]
          },
          "clientId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "clientName": {
            "type": ["null", "string"]
          },
          "industry": {
            "type": ["null", "string"]
          },
          "materialId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int64"
          },
          "materialCode": {
            "type": ["null", "string"]
          },
          "durationSeconds": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "assetTypeId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "assetTypeName": {
            "type": "string"
          },
          "positionType": {
            "type": ["null", "string"]
          },
          "probableCause": {
            "type": "string"
          }
        },
        "description": "Spot que no pudo ser asignado."
      },
      "UpdateAgencyRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          },
          "contact": {
            "type": ["null", "string"]
          },
          "phone": {
            "type": ["null", "string"]
          },
          "email": {
            "type": ["null", "string"]
          },
          "commission": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": ["null", "number", "string"],
            "format": "double"
          },
          "notes": {
            "type": ["null", "string"]
          },
          "status": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          }
        }
      },
      "UpdateAlbumRequest": {
        "required": ["albumName"],
        "type": "object",
        "properties": {
          "albumName": {
            "type": "string"
          },
          "albumYear": {
            "type": ["null", "string"]
          },
          "genreId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int64"
          },
          "catalogCode": {
            "type": ["null", "string"]
          },
          "companyId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int64"
          },
          "comments": {
            "type": ["null", "string"]
          },
          "imageFileId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int64"
          }
        }
      },
      "UpdateBreakTemplateRequest": {
        "required": [
          "templateId",
          "name",
          "startTime",
          "dayOffset",
          "totalDuration"
        ],
        "type": "object",
        "properties": {
          "templateId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "startTime": {
            "type": "string",
            "format": "time"
          },
          "dayOffset": {
            "type": "boolean"
          },
          "totalDuration": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "breakType": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          },
          "isActive": {
            "type": "boolean"
          },
          "zones": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateBreakTemplateZoneRequest"
            }
          },
          "clips": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateBreakTemplateClipRequest"
            }
          }
        },
        "description": "DTO para actualizar un template existente."
      },
      "UpdateBreakTypeRequest": {
        "required": ["name"],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          }
        }
      },
      "UpdateCampaignRequest": {
        "type": "object",
        "properties": {
          "clientId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "agencyId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "startDate": {
            "type": "string",
            "format": "date"
          },
          "endDate": {
            "type": "string",
            "format": "date"
          },
          "status": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          },
          "notes": {
            "type": ["null", "string"]
          }
        }
      },
      "UpdateCategoryRequest": {
        "type": "object",
        "properties": {
          "categoryName": {
            "type": "string"
          },
          "description": {
            "type": ["null", "string"]
          },
          "prefix": {
            "type": ["null", "string"]
          },
          "assetTypeId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          }
        }
      },
      "UpdateClientRequest": {
        "type": "object",
        "properties": {
          "companyName": {
            "type": "string"
          },
          "industryIds": {
            "type": "array",
            "items": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": ["integer", "string"],
              "format": "int32"
            }
          },
          "contact": {
            "type": ["null", "string"]
          },
          "phone": {
            "type": ["null", "string"]
          },
          "email": {
            "type": ["null", "string"]
          },
          "status": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          },
          "notes": {
            "type": ["null", "string"]
          }
        }
      },
      "UpdateCompanyRequest": {
        "required": ["companyName"],
        "type": "object",
        "properties": {
          "companyName": {
            "type": "string"
          }
        }
      },
      "UpdateGenreRequest": {
        "required": ["genreName"],
        "type": "object",
        "properties": {
          "genreName": {
            "type": "string"
          }
        }
      },
      "UpdateIndustryRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          }
        }
      },
      "UpdateMaterialRequest": {
        "type": "object",
        "properties": {
          "title": {
            "type": ["null", "string"]
          },
          "code": {
            "type": ["null", "string"]
          },
          "comments": {
            "type": ["null", "string"]
          },
          "rdsText": {
            "type": ["null", "string"]
          },
          "assetTypeId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "mediaTypeId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "albumId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int64"
          },
          "companyId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int64"
          },
          "genreId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int64"
          },
          "priorityId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "materialStateId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "startPos": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "endPos": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "intro": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "outro": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "punchIn": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "punchOut": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "punchInFadeLength": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "punchOutFadeLength": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "punchInFadeTypeId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "punchOutFadeTypeId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "insertOver": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "contractStartDate": {
            "type": ["null", "string"]
          },
          "contractEndDate": {
            "type": ["null", "string"]
          },
          "contentTypeId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "contentDate": {
            "type": ["null", "string"]
          },
          "contentTime": {
            "type": ["null", "string"]
          },
          "vStandard": {
            "type": ["null", "string"]
          },
          "archiveStateId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "customField0": {
            "type": ["null", "string"]
          },
          "customField1": {
            "type": ["null", "string"]
          },
          "customField2": {
            "type": ["null", "string"]
          },
          "customField3": {
            "type": ["null", "string"]
          },
          "customField4": {
            "type": ["null", "string"]
          },
          "customField5": {
            "type": ["null", "string"]
          },
          "customField6": {
            "type": ["null", "string"]
          },
          "customField7": {
            "type": ["null", "string"]
          },
          "customField8": {
            "type": ["null", "string"]
          },
          "customField9": {
            "type": ["null", "string"]
          },
          "national": {
            "type": ["null", "boolean"]
          },
          "independent": {
            "type": ["null", "boolean"]
          },
          "skipSadaic": {
            "type": ["null", "boolean"]
          },
          "useTypeId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "recordingTypeId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "personType": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "languageId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "bpm": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "tags": {
            "type": ["null", "string"]
          },
          "rythmId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          }
        }
      },
      "UpdateOrderDaypartRequest": {
        "type": "object",
        "properties": {
          "stationId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int64"
          },
          "fixedTime": {
            "type": "boolean"
          },
          "startTime": {
            "type": "string",
            "format": "time"
          },
          "endTime": {
            "type": "string",
            "format": "time"
          },
          "startDayOffset": {
            "type": "boolean"
          },
          "endDayOffset": {
            "type": "boolean"
          },
          "weekdays": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          },
          "orderRuns": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          }
        }
      },
      "UpdateOrderRequest": {
        "type": "object",
        "properties": {
          "campaignId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "clientId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "duration": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "startDate": {
            "type": "string",
            "format": "date"
          },
          "endDate": {
            "type": ["null", "string"],
            "format": "date"
          },
          "priority": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "breakTypeFilter": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          },
          "positionType": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          },
          "manualPosition": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int32"
          },
          "scope": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          },
          "protectionLevel": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          },
          "minSeparation": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "maxFrequency": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "interleaveArtistic": {
            "type": "boolean"
          },
          "title": {
            "type": ["null", "string"]
          },
          "status": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          },
          "dayparts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderDaypartDto"
            }
          },
          "clips": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ClipRequest"
            }
          },
          "industryIds": {
            "type": "array",
            "items": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": ["integer", "string"],
              "format": "int32"
            }
          }
        }
      },
      "UpdatePersonRequest": {
        "required": ["personName"],
        "type": "object",
        "properties": {
          "personName": {
            "type": "string"
          }
        }
      },
      "UpdatePgm5StatusRequest": {
        "required": ["statusId"],
        "type": "object",
        "properties": {
          "statusId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          },
          "reviewReason": {
            "type": ["null", "string"]
          }
        }
      },
      "UpdatePgmRequest": {
        "required": ["stationId", "date", "programmingTypeId", "blocks"],
        "type": "object",
        "properties": {
          "stationId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int64"
          },
          "date": {
            "type": "string"
          },
          "programmingTypeId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "active": {
            "type": "boolean"
          },
          "blocks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PgmBlockRequest"
            }
          }
        }
      },
      "UpdateSettingsRequest": {
        "type": "object",
        "properties": {
          "autoApprovePgm": {
            "type": ["null", "boolean"]
          },
          "forceFullPlacement": {
            "type": ["null", "boolean"]
          },
          "enableAdvancedLog": {
            "type": ["null", "boolean"]
          },
          "materialCodeByCategory": {
            "type": ["null", "boolean"]
          },
          "defaultArtisticCategoryId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["null", "integer", "string"],
            "format": "int64"
          }
        }
      },
      "UpdateTemplateRequest": {
        "required": [
          "stationId",
          "name",
          "startTime",
          "endTime",
          "endDayOffset"
        ],
        "type": "object",
        "properties": {
          "stationId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int64"
          },
          "name": {
            "type": "string"
          },
          "dayOfWeek": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          },
          "startTime": {
            "type": "string",
            "format": "time"
          },
          "endTime": {
            "type": "string",
            "format": "time"
          },
          "endDayOffset": {
            "type": "boolean"
          },
          "specificDate": {
            "type": ["null", "string"],
            "format": "date"
          },
          "isActive": {
            "type": "boolean"
          }
        }
      },
      "UpdateUserRoleDto": {
        "type": "object",
        "properties": {
          "roleid": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          }
        }
      },
      "ZoneResponse": {
        "required": [
          "zoneId",
          "scopeId",
          "scopeName",
          "position",
          "maxDuration",
          "usedDuration",
          "spots"
        ],
        "type": "object",
        "properties": {
          "zoneId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "scopeId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "uint8"
          },
          "scopeName": {
            "type": "string"
          },
          "position": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "maxDuration": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "usedDuration": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": ["integer", "string"],
            "format": "int32"
          },
          "spots": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SpotResponse"
            }
          }
        },
        "description": "Zona dentro de un break."
      }
    },
    "securitySchemes": {
      "Bearer": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    }
  },
  "tags": [
    {
      "name": "Agency"
    },
    {
      "name": "Album"
    },
    {
      "name": "Algorithm"
    },
    {
      "name": "AssetType"
    },
    {
      "name": "Auth"
    },
    {
      "name": "Break Templates"
    },
    {
      "name": "BreakType"
    },
    {
      "name": "Campaign"
    },
    {
      "name": "Category"
    },
    {
      "name": "Client"
    },
    {
      "name": "Clip Metadata"
    },
    {
      "name": "Common"
    },
    {
      "name": "Company"
    },
    {
      "name": "FileType"
    },
    {
      "name": "Genre"
    },
    {
      "name": "Industry"
    },
    {
      "name": "Material"
    },
    {
      "name": "MediaType"
    },
    {
      "name": "Order"
    },
    {
      "name": "Order Daypart"
    },
    {
      "name": "Person"
    },
    {
      "name": "PGM5"
    },
    {
      "name": "PGM"
    },
    {
      "name": "PriorityType"
    },
    {
      "name": "Report"
    },
    {
      "name": "RythmType"
    },
    {
      "name": "Settings"
    },
    {
      "name": "Station"
    },
    {
      "name": "Template"
    },
    {
      "name": "User"
    }
  ],
  "x-tagGroups": [
    {
      "name": "Hardata API",
      "tags": [
        "Album",
        "AssetType",
        "Auth",
        "Category",
        "Company",
        "FileType",
        "Genre",
        "Material",
        "MediaType",
        "Person",
        "PGM",
        "PriorityType",
        "RythmType",
        "Station"
      ]
    },
    {
      "name": "Traffic",
      "tags": [
        "Agency",
        "Algorithm",
        "Break Templates",
        "BreakType",
        "Campaign",
        "Client",
        "Clip Metadata",
        "Common",
        "Industry",
        "Order",
        "Order Daypart",
        "PGM5",
        "Report",
        "Settings",
        "Template",
        "User"
      ]
    }
  ]
}
