Files
zentral/.agent/rules/customizations-folders.md

27 lines
1.9 KiB
Markdown

---
trigger: model_decision
description: Quando è richiesta una feature specifica per un cliente, non inerente allo standard
---
usa ./docs/development/devlog/customizations per tenere traccia di tutti i piani di lavoro custom e il loro attuale stato singolarmente, crea qui dentro i log delle lavorazioni ed il lavoro fatto, da fare e suggerito per ogni piano di sviluppo, usa il formato "yyyy-mm-dd-hh24miss_descrizione_brevissima".
usa ./docs/development per tenere un file ZENTRAL_CUSTOM.md riassuntivo con link ai file specifici dentro ./docs/development/devlog/customizations e una breve sintesi specificando che tipo di sviluppo si è concluso o si sta lavorando.
## Struttura Modulare del Progetto Custom
Per ogni modulo custom specificatamente sviluppato per una richiesta cliente è necessario prima trovare il miglior modo per integrare questo modulo custom il più possibile con i moduli esistenti, evitando di duplicare il codice e permettendo di scrivere meno codice possibile.
### Backend (.NET)
- **API Controllers**: `src/backend/Zentral.API/Modules/Custom/[NomeModulo]/Controllers/`
- I controller devono avere il namespace `Zentral.API.Modules.[NomeModulo].Controllers`.
- Le rotte devono seguire il pattern `api/custom/[nome-modulo]/[controller]`.
- **Entities**: `src/backend/Zentral.Domain/Entities/Custom/[NomeModulo]/`
- Le entità devono avere il namespace `Zentral.Domain.Entities.Custom.[NomeModulo]`.
### Frontend (React)
- **Moduli**: `src/frontend/src/modules/custom/[nome-modulo]/`
- **Pagine**: `src/frontend/src/modules/custom/[nome-modulo]/pages/`
- **Componenti**: `src/frontend/src/modules/custom/[nome-modulo]/components/`
- **Rotte**: `src/frontend/src/modules/custom/[nome-modulo]/routes.tsx`
- Il file `routes.tsx` deve esportare un componente che definisce le rotte figlie del modulo.
- Le rotte devono essere importate e registrate nel router principale (es. `App.tsx`).