82 lines
3.0 KiB
JavaScript
82 lines
3.0 KiB
JavaScript
/**
|
|
* Prompt: guia-campos-tablas
|
|
* Referencia de tipos de campos para crear/editar tablas y sus campos en la base de datos (MySQL/PHP)
|
|
*/
|
|
|
|
export const guiaCamposTablasPrompt = {
|
|
name: "guia-campos-tablas",
|
|
description: "Referencia de tipos de campos para crear/editar tablas y sus campos en la base de datos (MySQL/PHP)",
|
|
args: {},
|
|
handler: () => {
|
|
return {
|
|
messages: [
|
|
{
|
|
role: "user",
|
|
content: {
|
|
type: "text",
|
|
text: `Al modificar el esquema de la base de datos (crear/editar tablas), utiliza estos tipos de campos.
|
|
Presta especial atención a la configuración del campo 'list'.
|
|
|
|
### Campo LIST (Selector/Relación)
|
|
El tipo **'list'** es el más versátil. Define el origen de datos con \`optionsType\`:
|
|
|
|
1. **Lista Estática (optionsType: 'text')**
|
|
- Para opciones fijas simples.
|
|
- Formato: \`Valor|Etiqueta\` (una por línea).
|
|
- Ejemplo: \`optionsText: "1|Activo\\n0|Inactivo"\`
|
|
|
|
2. **Relación con Tabla (optionsType: 'table')**
|
|
- Para relacionar con otra tabla existente (Foreign Key lógica).
|
|
- \`optionsTablename\`: Nombre de la tabla origen (ej: 'cms_categorias').
|
|
- \`optionsValueField\`: Campo que se guardará como valor (ej: 'id').
|
|
- \`optionsLabelField\`: Campo que se mostrará al usuario (ej: 'nombre').
|
|
|
|
3. **Consulta SQL (optionsType: 'query')**
|
|
- Para relaciones complejas o filtradas.
|
|
- \`optionsQuery\`: Tu consulta SQL.
|
|
- Usa \`<?php echo $TABLE_PREFIX ?>\` para el prefijo.
|
|
- Usa \`<?php echo $ESCAPED_FILTER_VALUE ?>\` para filtros dinámicos.
|
|
|
|
**Visualización del 'list' (\`listType\`):**
|
|
- \`pulldown\`: Select estándar.
|
|
- \`radios\`: Botones de radio.
|
|
- \`checkboxes\`: Múltiples opciones (array).
|
|
- \`pulldownMulti\`: Select múltiple.
|
|
|
|
---
|
|
|
|
### Otros Campos Comunes
|
|
- **textfield**: Texto corto (VARCHAR). Opciones: \`defaultValue\`, \`fieldWidth\`.
|
|
- **textbox**: Texto largo (TEXT). Opciones: \`fieldHeight\`.
|
|
- **wysiwyg**: Editor HTML rico. Opciones: \`allowUploads\`.
|
|
- **date**: Fecha/Hora. Opciones: \`showTime\` (bool), \`use24HourFormat\` (bool).
|
|
- **checkbox**: Booleano. Configura \`checkedValue\` (ej: 1) y \`uncheckedValue\` (ej: 0).
|
|
- **upload**: Subida de archivos. Guarda la ruta relativa.
|
|
- **multitext**: Estructura JSON para guardar múltiples sub-valores en un solo campo.
|
|
- **codigo**: Editor de código fuente.
|
|
- **separator**: Solo visual, para organizar el formulario de edición.
|
|
|
|
**Atributos Globales:**
|
|
- \`isRequired\`: Obligatorio.
|
|
- \`isUnique\`: Valor único en la tabla.
|
|
- \`label\`: Nombre visible para el humano.
|
|
- \`name\`: Nombre de la columna en DB (slug).
|
|
`
|
|
}
|
|
}
|
|
]
|
|
};
|
|
}
|
|
};
|
|
|
|
export function registerGuiaCamposTablasPrompt(server) {
|
|
server.prompt(
|
|
guiaCamposTablasPrompt.name,
|
|
guiaCamposTablasPrompt.description,
|
|
guiaCamposTablasPrompt.args,
|
|
guiaCamposTablasPrompt.handler
|
|
);
|
|
}
|
|
|
|
|