Prompt file imported from Manuelusero/GreenRouse. (
.github/prompts/nuevo-modelo.prompt.md). Fill in{{nombre_modelo}},{{descripcion_campos}},{{cantidad_seeds}}before use. Copyright stays with the author.
Crea un nuevo modelo Mongoose llamado {{nombre_modelo}} en src/models/{{nombre_modelo}}.ts.
Campos del modelo
{{descripcion_campos}}
Requisitos obligatorios
{ timestamps: true }— SIEMPRE como segunda opción del Schema- Guard de HMR al final:
const {{nombre_modelo}} = mongoose.models.{{nombre_modelo}} || mongoose.model('{{nombre_modelo}}', {{nombre_modelo}}Schema) export default {{nombre_modelo}} - Índices compuestos para todos los campos que se filtrarán juntos
- Validaciones en el Schema (required, minLength, maxLength, enum, match)
- El identificador de usuario es
usuarioEmail: String— NO usarusuario_id: ObjectIden modelos nuevos slugdebe serunique: truesi el modelo tiene un campo slug- Usar
trim: trueen todos los campos de tipo String
Índices típicos para este modelo
Basándome en el nombre y descripción, generar los índices que tendrían sentido para:
- Queries por usuario (
usuarioEmail) - Ordenamiento por fecha (
createdAt: -1,publishedAt: -1) - Búsqueda por campos únicos (
slug) - Filtros por campos de categoría/estado
Crear seed script
¿También querés que cree un seed script en scripts/seed{{nombre_modelo}}.ts con datos de ejemplo? (sí/no)
Si sí, indicá cuántos registros de ejemplo: {{cantidad_seeds}}