Skip to content

Entity Generator ​

Le Entity Generator est un outil visuel pour designer des entites et generer automatiquement le code C# et TypeScript associe.

Fichiers sources :

  • frontend/src/pages/generator/EntityDesigner.tsx -- composant principal
  • frontend/src/pages/generator/codeGenerator.ts -- generateurs de code
  • frontend/src/pages/generator/types.ts -- types TypeScript

Route : /admin/generator

Layout en 3 panneaux ​

PanneauLargeurContenu
Gauche224pxListe des entites, bouton ajouter
CentreflexibleFormulaire d'edition de l'entite selectionnee
Droit420pxPreview du code genere avec onglets
Bas (optionnel)100%Diagramme ER en SVG

8 types de champs ​

Les types disponibles pour les champs d'entite :

typescript
type FieldType = 'string' | 'int' | 'decimal' | 'bool'
  | 'DateTime' | 'Guid' | 'enum' | 'relation';

Champs speciaux ​

  • enum : un champ supplementaire apparait pour saisir les valeurs (comma-separated)
  • relation : deux selects apparaissent pour choisir l'entite cible et le type de relation (one-to-one, one-to-many, many-to-many)

Formulaire d'edition ​

Chaque entite expose les proprietes suivantes :

ProprieteDescription
nameNom de l'entite (auto-genere : pluriel, prefix API)
pluralNameNom pluriel (auto-calcule)
descriptionDescription optionnelle
apiPrefixPrefix de route API (auto-calcule)
hasAuditAjoute CreatedAt, UpdatedAt
hasSoftDeleteAjoute IsDeleted
hasTenantIdAjoute TenantId

La table de champs inclut des colonnes : Name, Type, Required, Searchable, Filterable, Show in List, Show in Form.

Generateurs de code ​

Le fichier codeGenerator.ts genere 8 fichiers de code pour chaque entite :

  1. Domain Entity (Entity.cs) -- classe C# avec proprietes
  2. DTO (EntityDto.cs) -- Data Transfer Object
  3. Application Service (EntityService.cs)
  4. EF Configuration (EntityConfiguration.cs)
  5. API Controller (EntityController.cs)
  6. TypeScript Interface (entity.ts)
  7. React Form Component (EntityForm.tsx)
  8. React List Component (EntityList.tsx)

Les onglets dans le panneau droit affichent chaque fichier genere avec coloration syntaxique et bouton "Copy".

Diagramme ER (SVG) ​

Le bouton "Show ER Diagram" affiche un diagramme entite-relation en SVG :

  • Chaque entite est representee par un rectangle avec en-tete bleu et liste de champs
  • Les relations sont tracees en courbes de Bezier avec fleches
  • Les labels de relation (1:N, etc.) sont affiches au milieu des courbes

Telechargement ​

Le bouton "Generate All" telecharge chaque fichier individuellement via Blob + URL.createObjectURL.

Preview UML ​

Un composant EntityCard affiche une preview style UML de l'entite selectionnee avec les champs, les types, et les annotations (Audit, SoftDelete, Tenant).

Released under the MIT License.