@ -1,7 +1,7 @@
# Modelo de datos
# Modelo de datos
Diseño de la migración del contenido a PostgreSQL. **Fase 1 —este documento—
Diseño de la migración del contenido a PostgreSQL. **Fase 1 cerrada** : el
está entregada y pendiente de verificación**; n o hay código escrito todavía.
modelo está completo y las decisiones tomadas. N o hay código escrito todavía.
Versión presentable, con diagramas entidad-relación:
Versión presentable, con diagramas entidad-relación:
< https: / / claude . ai / code / artifact / d87ceb4d-6038-402f-852e-13ff5d86f02f >
< https: / / claude . ai / code / artifact / d87ceb4d-6038-402f-852e-13ff5d86f02f >
@ -440,30 +440,42 @@ ya cargado.
taller.
taller.
6. **La administración.**
6. **La administración.**
## Pendiente de respuesta
## Decisiones tomadas por defecto
Casi todo está decidido. Quedan dos, y las dos son de la ficha de canción:
Las dos últimas se decidieron sin respuesta explícita, eligiendo en cada caso la
opción reversible. **Cambiarlas es añadir, no rehacer.**
1. ** ¿Las versiones de un tema se pueden valorar y marcar como favoritas por
- **Valoración y favoritos van en la canción principal** , no en cada versión. Si
separado?** Yo lo pondría en la principal —se valora la canción, no el
cada versión se valorase aparte, la media de la tarjeta dejaría de significar
máster—, pero marcar como favorita una maqueta concreta también tiene
nada —¿la del máster, la de la maqueta, la mezcla?— y en favoritos saldrían dos
sentido.
entradas del mismo tema. La unidad con la que se interactúa es la canción.
2. ** ¿La biblioteca de prompts es herramienta interna o contenido del sitio?**
- **Los prompts nacen privados** (`visibilidad: privado`). No porque publicarlos
Publicar cómo se fabrica un bolero con IA en una web que vende canciones
esté mal, sino porque es una decisión de posicionamiento sin tomar y esta es la
escritas por una persona dice algo distinto de lo que dice el resto del
reversible: publicarlos es cambiar una columna; despublicarlos cuando ya están
sitio. De la respuesta depende si necesita página, si entra en el mapa y si
indexados, no.
la ve el buscador.
### Ya decididas
## Todo lo decidido
- **Versiones** : una versión es una fila de `cancion` con `version_de_id` .
- **Catálogo de géneros completo** , que se llena poco a poco.
- **Catálogo de géneros completo** , que se llena poco a poco.
- **Las fichas se generan fuera en JSON** , con un modelo más potente, y se
- **Las fichas se generan fuera en JSON** y se importan con esquema y
importan con esquema y procedencia.
procedencia.
- **Género** : `genero_origen` en lugar de `padre_id` ; metro, compás y temática
como vocabularios; alias por país; completitud deducida, no marcada.
- **El glosario lleva acepciones numeradas** , y el marcado apunta a una acepción:
- **El glosario lleva acepciones numeradas** , y el marcado apunta a una acepción:
lo automático propone, una persona confirma el sentido.
lo automático propone, una persona confirma el sentido.
- **Los prompts van en `jsonb`** validado contra el esquema de su modelo.
- **Facturas de verdad** , con correlativo por contador, rectificativas e IVA por
- **Facturas de verdad** , con correlativo por contador, rectificativas e IVA por
país del comprador.
país del comprador.
- **Se conservan las escuchas por persona** — obliga a reescribir la política de
- **Se conservan las escuchas por persona.**
privacidad antes de publicarlo.
- **Los archivos, en `m.senzapaura.es/archives`** , con URLs firmadas para el
- **Los archivos, en `m.senzapaura.es/archives`** — y con ello, URLs firmadas
audio completo.
para el audio completo.
## Lo que no es una tabla y hay que hacer igual
1. **Reescribir la política de privacidad** antes de que las escuchas se
publiquen: hoy afirma que no hay seguimiento y dejaría de ser cierto. Es un documento legal, no una nota.
2. **El régimen de ventanilla única** del IVA para ventas digitales a otros
países de la UE. Trámite, no código. Stripe Tax calcula los tipos si se
activa.
3. **DNS, proxy y certificado** para `m.senzapaura.es` .