# ARCA ONE - Documentación Técnica de API Gastronomía El módulo **ARCA ONE Gastronomía** expone una API REST modular y multi-tenant diseñada para alimentar tanto aplicaciones de cliente final (Menú Digital QR, Delivery Web, KDS de Cocina, POS de Mozo) como la administración centralizada desde el panel ARCA. --- ## 1. Arquitectura y Convenciones - **Base URL:** `https://arca360.sytes.net/api/gastro.php` (o dominio de producción) - **Formato de Comunicación:** JSON (`Content-Type: application/json; charset=utf-8`) - **Autenticación:** - **Endpoints Públicos/Demo:** No requieren sesión. Segmentados por parámetro `tenant` (código del restaurante, por defecto `demo_restaurant`). - **Endpoints de Administración:** Requieren sesión activa de administrador ARCA (`$_SESSION['admin_logged_in'] === true`). --- ## 2. Endpoints Públicos & Demo ### 2.1 Obtener Identidad y Branding de Gastronomía Retorna la identidad visual configurada para el producto Gastronomía, garantizando la prioridad del logo claro (para fondos claros) seguido del logo oscuro (para fondos oscuros). - **Método:** `GET` o `POST` - **Parámetros:** - `action`: `get_branding` - **Ejemplo de Respuesta:** ```json { "success": true, "branding": { "product_name": "ARCA ONE Gastronomía", "product_tagline": "El Sistema Operativo Definitivo para Restaurantes y Bares", "logo_light": "/assets/uploads/321_1787851850.svg", "logo_dark": "/assets/uploads/231_1787851846.svg", "isotype_light": "/assets/uploads/56_1787851862.svg", "isotype_dark": "/assets/uploads/456_1787851857.svg", "contact_whatsapp": "+54 9 11 4000-3600", "contact_email": "gastronomia@arca360.com", "primary_color": "#E11D48", "accent_color": "#F59E0B" } } ``` --- ### 2.2 Obtener Menú Digital y Carta Permite cargar las categorías, productos, precios, alérgenos y fotos de un restaurante específico. - **Método:** `GET` - **Parámetros:** - `action`: `get_public_menu` - `tenant`: (Opcional) Código identificador del restaurante. Por defecto: `demo_restaurant`. - **Ejemplo de Respuesta:** ```json { "success": true, "tenant": { "id": 1, "name": "ARCA Bistro & Trattoria", "currency": "ARS", "logo_light": "/assets/uploads/321_1787851850.svg", "logo_dark": "/assets/uploads/231_1787851846.svg" }, "menu": [ { "id": 1, "name": "Pizzas Artesanales", "slug": "pizzas", "description": "Masa madre de 48hs...", "products": [ { "id": 1, "name": "Pizza Margherita Di Bufala", "price": "8500.00", "image_url": "https://...", "allergens": ["Lácteos", "Gluten"] } ] } ] } ``` --- ### 2.3 Datos Interactivos de la Demo (POS & Salón) Entrega el estado de mesas en vivo, pedidos en cocina y estadísticas para alimentar la experiencia interactiva en `/gastronomia`. - **Método:** `GET` - **Parámetros:** - `action`: `get_public_demo_data` - **Ejemplo de Respuesta:** ```json { "success": true, "stats": { "active_tables": 3, "free_tables": 4, "total_tables": 7, "active_orders_count": 1, "today_sales": 384500.00, "average_ticket": 24800.00, "avg_prep_time_min": 14 }, "tables": [...], "orders": [...] } ``` --- ### 2.4 Enviar Solicitud de Demostración (Lead Capture) Registra un nuevo cliente interesado en contratar ARCA ONE Gastronomía. - **Método:** `POST` - **Headers:** `Content-Type: application/json` - **Payload:** ```json { "action": "submit_demo_request", "full_name": "Martín Rodríguez", "email": "martin@restaurante.com", "phone": "+54 9 11 5555-1234", "restaurant_name": "Fuegos & Brasas", "business_type": "Restaurante", "branches_count": "2", "city": "Buenos Aires", "notes": "Necesitamos migrar de un sistema antiguo que no tiene KDS." } ``` - **Respuesta:** ```json { "success": true, "request_id": 12, "message": "¡Excelente! Hemos recibido tu solicitud..." } ``` --- ## 3. Endpoints de Administración ARCA Todos los siguientes endpoints requieren cookie de sesión con `$_SESSION['admin_logged_in'] = true`. ### 3.1 Listado de Clientes Gastronómicos (Tenants) - **Acción:** `get_tenants` - **Retorno:** Lista de restaurantes registrados, plan, estado y cantidad de módulos activos. ### 3.2 Crear Nuevo Restaurante - **Acción:** `create_tenant` - **Payload:** ```json { "name": "Parrilla Don Julio", "code": "don_julio", "email": "admin@donjulio.com", "phone": "+54 11 4775-1441", "plan": "enterprise", "currency": "ARS" } ``` ### 3.3 Módulos de un Cliente - **Acción:** `get_tenant_modules` - **Parámetro:** `tenant_id` - **Retorno:** Los 16 módulos con flag booleano `is_enabled` indicando si está activo para ese cliente. ### 3.4 Activar / Desactivar Módulo - **Acción:** `toggle_tenant_module` - **Payload:** ```json { "tenant_id": 1, "module_code": "kds", "is_enabled": 1 } ``` ### 3.5 Gestión de Solicitudes de Demo - **Acción:** `get_demo_requests` (opcional `status` filter) - **Acción:** `update_demo_request_status` (actualiza estado a `contacted`, `converted`, etc.) ### 3.6 Configuración de Marca y Logos - **Acción:** `get_gastro_settings` / `save_gastro_settings` - Permite actualizar los logos (light/dark), WhatsApp de ventas y correo de soporte desde el panel ARCA. --- ## 4. Códigos de Respuesta HTTP - `200 OK`: Operación exitosa. - `400 Bad Request`: Faltan campos requeridos o datos mal formateados. - `403 Forbidden`: Intento de acceder a funciones administrativas sin sesión válida. - `500 Internal Server Error`: Fallo no controlado, registrado en `api/error.txt`.