get_offer_slots
Las franjas libres de una oferta reservable, con las retenciones vigentes respetadas
GET https://emporium.ultravioletadao.xyz/n/{slug}/offers/{offer_id}/slots
Por dónde se llega
| API REST | Solo lectura | GET https://emporium.ultravioletadao.xyz/n/{slug}/offers/{offer_id}/slots |
|---|---|---|
| MCP | Muy pronto | |
| CLI | Muy pronto | |
| SDK de Python | Muy pronto | |
| SDK de TypeScript | Muy pronto | |
| SDK de Rust | Muy pronto |
Vivo: se usa hoy, para leer y para escribir. Solo lectura: hoy se lee y no se escribe. Muy pronto: todavía no está.
Parámetros
| Nombre | Dónde | Requerido | Esquema | Qué es |
|---|---|---|---|---|
slug | camino | sí | string | |
offer_id | camino | sí | string | |
desde | consulta | no | string | |
dias | consulta | no | {"format":"uint32","minimum":0,"type":"integer"} |
El cuerpo de la petición
No lleva cuerpo.
Respuestas
200
Correcto
application/json
{
"$ref": "#/components/schemas/DisponibilidadDeFranjas"
}
Cualquier otro status
Un error: en JSON, el sobre único, cuyo error.codigo es uno de una lista cerrada
application/json
{
"$ref": "#/components/schemas/SobreDeError"
}
Esquemas
Los que nombra esta operación, tal cual están en components.schemas del contrato.
CodigoDeError
{
"enum": [
"dominio_invalido",
"slug_ocupado",
"tenant_no_encontrado",
"tenant_no_publicado",
"tenant_suspendido",
"clave_invalida",
"estado_no_permite",
"ventana_no_cumplida",
"metodo_invalido",
"manifiesto_invalido",
"categoria_prohibida",
"terminos_no_aceptados",
"canal_no_confirmado",
"version_de_terminos_desconocida",
"pedido_invalido",
"faltan_datos",
"respuesta_invalida",
"firma_invalida",
"enlace_vencido",
"enlace_ya_usado",
"demasiadas_peticiones",
"parametro_invalido",
"metodo_no_permitido",
"firma_no_configurada",
"correo_no_configurado",
"terminos_no_configurados",
"casa_no_configurada",
"almacen_no_disponible",
"error_interno",
"paybox_no_configurado",
"boveda_no_disponible",
"sesion_requerida",
"estado_oauth_invalido",
"consentimiento_rechazado",
"concesion_insegura",
"paybox_no_responde",
"paybox_rechazo",
"sin_vinculo",
"vinculo_revocado",
"vinculo_vencido",
"reconexion_requerida",
"vinculo_ajeno",
"renovacion_en_curso"
],
"type": "string"
}
CuerpoDelError
{
"additionalProperties": false,
"properties": {
"codigo": {
"$ref": "#/components/schemas/CodigoDeError"
},
"detalles": {
"items": {
"$ref": "#/components/schemas/Detalle"
},
"type": "array"
},
"mensaje": {
"type": "string"
},
"peticion_id": {
"type": "string"
}
},
"required": [
"codigo",
"detalles",
"mensaje",
"peticion_id"
],
"type": "object"
}
Detalle
{
"additionalProperties": false,
"properties": {
"campo": {
"type": "string"
},
"problema": {
"type": "string"
}
},
"required": [
"campo",
"problema"
],
"type": "object"
}
DisponibilidadDeFranjas
{
"properties": {
"desde": {
"type": "string"
},
"desfase_utc": {
"type": "string"
},
"dias": {
"format": "uint32",
"minimum": 0,
"type": "integer"
},
"duracion_min": {
"format": "uint32",
"minimum": 0,
"type": "integer"
},
"franjas": {
"items": {
"$ref": "#/components/schemas/FranjaLibre"
},
"type": "array"
},
"oferta_id": {
"type": "string"
},
"recursos": {
"items": {
"$ref": "#/components/schemas/RecursoDeReserva"
},
"type": "array"
},
"slug": {
"type": "string"
}
},
"required": [
"desde",
"desfase_utc",
"dias",
"duracion_min",
"franjas",
"oferta_id",
"recursos",
"slug"
],
"type": "object"
}
FranjaLibre
{
"properties": {
"fin": {
"type": "string"
},
"inicio": {
"type": "string"
},
"recursos": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"fin",
"inicio",
"recursos"
],
"type": "object"
}
RecursoDeReserva
{
"properties": {
"id": {
"type": "string"
},
"nombre": {
"type": "string"
}
},
"required": [
"id",
"nombre"
],
"type": "object"
}
SobreDeError
{
"additionalProperties": false,
"properties": {
"error": {
"$ref": "#/components/schemas/CuerpoDelError"
}
},
"required": [
"error"
],
"type": "object"
}