Proyecto

General

Perfil

Desarrollo #482

Actualizado por Luciano Vega hace 2 meses

Se debe tomar en cuenta la definicion de nuevo endpoint para registro de comercio, revisa metodo de autenticacion usado en el envio de datos de precios para aplicar en la peticion a realizar (toma los datos del correspondiente .env) 

 Se debe generar como un comando python ejecutado por un script bash especifico (tiene el objetivo de asegurarse que el venv este actualizado y usar el venv local comun) que permitira llamar al nuevo endpoint    y debera olicitar toda la informacion necesaria, que al confirmar envie los datos y muestre el resultado. 


 --- 
 Documentacion de nuevo endpoint 

 ## POST /admin/comercios — Crear Nuevo Comercio 

 **Autenticación**: Requiere clave `KEY_INT` enviada en el body (`key`). 

 ### Body JSON 
 ```json 
 { 
   "key": "KEY_INT_SECRET", 
   "enterprice": { 
     "name": "Supermercado X", 
     "type": "supermarket", 
     "website": "https://supermercadox.com", 
     "logo_url": "https://supermercadox.com/logo.png", 
     "active": true 
   }, 
   "branch": { 
     "branch_name": "Sucursal Centro", 
     "address": "Av. Siempre Viva 123", 
     "latitude": -34.603722, 
     "longitude": -58.381592, 
     "city": "Buenos Aires" 
   } 
 } 
 ``` 

 ### Campos 

 | Campo | Tipo | Requerido | Descripción | 
 |-------|------|-----------|-------------| 
 | `key` | string | ✅ | Clave de autenticación interna | 
 | `enterprice.name` | string | ✅ | Nombre de la empresa (único) | 
 | `enterprice.type` | string | ❌ | Tipo de comercio | 
 | `enterprice.website` | string | ❌ | Sitio web | 
 | `enterprice.logo_url` | string | ❌ | URL del logo | 
 | `enterprice.active` | boolean | ❌ | Si está activo (default: true) | 
 | `branch.branch_name` | string | ✅ | Nombre de la sucursal | 
 | `branch.address` | string | ❌ | Dirección | 
 | `branch.latitude` | number | ❌ | Latitud | 
 | `branch.longitude` | number | ❌ | Longitud | 
 | `branch.city` | string | ❌ | Ciudad | 

 ### Comportamiento 
 - Crea registro en tablas `enterprice` y `branch` en una **transacción atómica** 
 - Refresca automáticamente los diccionarios en memoria 
 - Si el nombre de empresa ya existe, retorna error por duplicado 

 ### Respuesta 200 (Éxito) 
 ```json 
 { 
   "stat": true, 
   "items": { 
     "enterprice": { 
       "id": 1, 
       "name": "Supermercado X", 
       "type": "supermarket", 
       "website": "https://supermercadox.com", 
       "logo_url": "https://supermercadox.com/logo.png", 
       "active": true 
     }, 
     "branch": { 
       "id": 1, 
       "branch_name": "Sucursal Centro", 
       "enterprise_id": 1, 
       "address": "Av. Siempre Viva 123", 
       "latitude": -34.603722, 
       "longitude": -58.381592, 
       "city": "Buenos Aires" 
     } 
   } 
 } 
 ``` 

 ### Respuesta 401 (Autenticación) 
 ```json 
 { 
   "stat": false, 
   "error": "Error de autenticación" 
 } 
 ``` 

 ### Respuesta 400 (Validación) 
 ```json 
 { 
   "stat": false, 
   "error": "Falta campo requerido: enterprice.name" 
 } 
 ``` 

 ### Respuesta 409 (Duplicado) 
 ```json 
 { 
   "stat": false, 
   "error": "Ya existe un comercio con ese nombre" 
 } 
 ``` resultado

Atrás