# Instrucciones — Base de datos de atributos de móvil Esto es una base de datos fiable con las especificaciones técnicas de los móviles del catálogo. Sirve para que asignes atributos a los productos (pantalla OLED, 5G, NFC, RAM…) **con un dato detrás, sin tener que mirar cada ficha a mano**. Tú haces preguntas, ella te responde. --- ## 1. Cómo conectarte Es una API: le mandas una consulta y te devuelve datos. Necesitas dos cosas: - **Dirección:** `https://datos.ppotools.net` - **Tu llave de acceso:** te la pasa Joaquín aparte (empieza por `mk-...`). Va en cada petición. No hace falta instalar nada. Funciona con `curl`, con Python, o pegándoselo a tu IA. Ejemplo simple (cuenta cuántos móviles tienen pantalla OLED): ```bash curl -s https://datos.ppotools.net/query \ -H "Authorization: Bearer TU_LLAVE" \ -H "Content-Type: application/json" \ -d '{"sql": "SELECT count(*) FROM mobile_models WHERE pantalla_tipo = ''OLED''"}' ``` Las consultas son **SQL de solo lectura**: puedes mirar todo lo que quieras, pero no se puede borrar ni modificar nada. Estás a salvo de romper algo. --- ## 2. Lo primero que debes hacer: pedir el "mapa" Antes de nada, pide el diccionario de datos. Te dice qué tablas y columnas hay, qué significan, y **qué porcentaje de móviles tiene cada dato** (importante, ver punto 4): ``` GET https://datos.ppotools.net/schema (con tu llave en la cabecera) ``` Tenlo siempre a mano. Si usas una IA para ayudarte, **pégale la respuesta de `/schema`** y ya sabrá exactamente qué puede consultar. --- ## 3. Qué vas a encontrar: 3 tablas | Tabla | Qué es | Para qué la usas | |---|---|---| | **`mobile_models`** | Un móvil por fila (~495), con todos sus atributos ya limpios. | Es la principal. Aquí filtras: "dame los que tienen X". | | **`mobile_skus`** | La lista de productos del catálogo (por SKU y EAN) y a qué móvil corresponde cada uno. | Para partir de un producto concreto del catálogo y llegar a sus specs. | | **`mobile_raw`** | El texto original de specs de cada móvil. | Solo para **comprobar** un dato si dudas de él. | `mobile_models` y `mobile_skus` se unen por la columna `api_id`. --- ## 4. Las 3 reglas de oro **1) Si un dato está vacío (NULL), no te lo inventes.** Significa que la fuente no lo tiene. Deja ese atributo sin asignar. Es preferible no etiquetar a etiquetar mal. **2) No están todos los móviles.** La base cubre **~72% de los productos**. Faltan sobre todo los **rugged chinos** (Ulefone, Oukitel, Doogee, Nubia…) y los **modelos muy nuevos de 2025/26**, porque la fuente no los tiene. Si buscas uno y no aparece, es por eso — no es un fallo tuyo. **3) Algunos atributos solo están en parte de los móviles.** Mira la cobertura en `/schema`: - Casi todos (≈100%): pantalla, RAM, almacenamiento, sistema operativo, procesador, batería. - Solo ~65%: cámara, NFC, sensores (huella), jack, sonido. En el resto saldrá vacío. **Aparte:** la batería (`bateria_mah`) está como dato informativo, pero **no la uses para decidir "cuál es mejor"**. Ese ranking va por otra vía (EPREL, que mide ciclos y durabilidad), no por tener más mAh. --- ## 5. Atributos que puedes consultar (la lista completa con descripciones está en `/schema`) - **Pantalla:** `pantalla_tipo` (OLED / AMOLED / IPS LCD / LCD), `pulgadas`, `resolucion`, `refresco_hz`, `brillo_nits`, `hdr`, `proteccion`. - **Potencia:** `ram_gb`, `almacenamiento_gb`, `microsd`, `chipset`, `gpu`. - **Software:** `so`, `so_version`. - **Cámara:** `cam_principal_mp`, `n_camaras_traseras`, `cam_frontal_mp`, `ois`. - **Conectividad:** `red_5g`, `red_4g`, `nfc`, `usb_tipo`, `jack_35`, `gps`, `bluetooth_ver`. - **Cuerpo:** `peso_g`, `alto_mm`, `ancho_mm`, `grosor_mm`, `ip_rating`, `dual_sim`, `esim`. - **Seguridad:** `huella` (pantalla / lateral / trasera / no), `facial`. Los que son sí/no (como `nfc`, `red_5g`, `microsd`) valen `1` (sí) o `0` (no). --- ## 6. Recetas típicas (copia y adapta) **"Quiero etiquetar todos los que tienen pantalla OLED"** ```sql SELECT api_id, modelo FROM mobile_models WHERE pantalla_tipo IN ('OLED','AMOLED'); ``` **"Los que son 5G, con NFC y mínimo 8 GB de RAM"** ```sql SELECT modelo, ram_gb FROM mobile_models WHERE red_5g = 1 AND nfc = 1 AND ram_gb >= 8 ORDER BY ram_gb DESC; ``` **"Tengo este producto del catálogo (su EAN), dame sus atributos"** ```sql SELECT m.* FROM mobile_skus s JOIN mobile_models m ON s.api_id = m.api_id WHERE s.ean = '0194253402070'; ``` **"Los resistentes al agua (tienen certificación IP)"** — recuerda: solo ~66% tiene este dato ```sql SELECT modelo, ip_rating FROM mobile_models WHERE ip_rating IS NOT NULL; ``` **"Quiero comprobar un dato que me chirría"** — mira el texto original ```sql SELECT specifications_json FROM mobile_raw WHERE api_id = 12345; ``` --- ## 7. Límites que hay que saber - Solo `SELECT` (consultas de lectura). Cualquier intento de modificar se rechaza. - Cada consulta devuelve como máximo 1.000 filas. Si necesitas más, filtra mejor o pagina. - Una sola consulta por petición (sin `;` en medio). --- ## En resumen Pides `/schema` para ver el mapa → filtras en `mobile_models` lo que busques → si partes de un producto, lo cruzas con `mobile_skus` por `api_id` → asignas el atributo **solo si el dato existe**. Lo que esté vacío o no aparezca, se queda sin etiquetar.