backend api, swagger, tooling, frontend skeleton
This commit is contained in:
12
doc_dev/08_etape3_migrations.md
Normal file
12
doc_dev/08_etape3_migrations.md
Normal file
@@ -0,0 +1,12 @@
|
||||
# Etape 3 - Migrations initiales
|
||||
|
||||
## Objectif
|
||||
Ajouter une migration SQL initiale pour SQLite selon les schemas Ent.
|
||||
|
||||
## Fichiers ajoutes
|
||||
- `migrations/0001_init.sql`
|
||||
|
||||
## Notes
|
||||
- Ent generate non execute (commande `go` indisponible dans l'environnement).
|
||||
- A relancer une fois Go installe :
|
||||
`go run -mod=mod entgo.io/ent/cmd/ent generate ./internal/data/ent/schema --target ./internal/data/ent`
|
||||
17
doc_dev/09_etape4_handlers.md
Normal file
17
doc_dev/09_etape4_handlers.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# Etape 4 - Handlers CRUD (base)
|
||||
|
||||
## Objectif
|
||||
Ajouter les handlers CRUD pour Objets, Categories, Emplacements.
|
||||
|
||||
## Fichiers ajoutes
|
||||
- `backend/internal/handlers/handler.go`
|
||||
- `backend/internal/handlers/router.go`
|
||||
- `backend/internal/handlers/helpers.go`
|
||||
- `backend/internal/handlers/objets.go`
|
||||
- `backend/internal/handlers/categories.go`
|
||||
- `backend/internal/handlers/emplacements.go`
|
||||
|
||||
## Notes
|
||||
- Routes REST sous `/v1`.
|
||||
- Validation minimale (nom obligatoire, UUID).
|
||||
- Parsing des dates au format RFC3339.
|
||||
18
doc_dev/10_etape5_upload.md
Normal file
18
doc_dev/10_etape5_upload.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# Etape 5 - Upload pieces jointes
|
||||
|
||||
## Objectif
|
||||
Ajouter l'endpoint d'upload multiple pour les pieces jointes des objets.
|
||||
|
||||
## Endpoint
|
||||
- `POST /v1/objets/:id/pieces_jointes`
|
||||
- Champ multipart : `fichiers`
|
||||
|
||||
## Comportement
|
||||
- Verifie l'existence de l'objet.
|
||||
- Enregistre les fichiers dans `ATTACHMENTS_DIR` (defaut `./data/pieces_jointes`).
|
||||
- Cree les entrees `PieceJointe` associees.
|
||||
- Retourne la liste des pieces jointes creees.
|
||||
|
||||
## Notes
|
||||
- Categorie deduite par extension/MIME.
|
||||
- Premiere piece jointe marquee comme principale.
|
||||
14
doc_dev/11_etape3_ent_gen.md
Normal file
14
doc_dev/11_etape3_ent_gen.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# Etape 3 - Generation Ent
|
||||
|
||||
## Objectif
|
||||
Generer le code Ent a partir des schemas.
|
||||
|
||||
## Commande utilisee
|
||||
```
|
||||
env GOPATH=/tmp/go GOMODCACHE=/tmp/go/pkg/mod GOCACHE=/tmp/go/cache go run -mod=mod entgo.io/ent/cmd/ent generate ./internal/data/ent/schema --target ./internal/data/ent
|
||||
```
|
||||
|
||||
## Notes
|
||||
- Mise a jour de Ent vers v0.14.5 pour compatibilite.
|
||||
- Ajout d'un `doc.go` pour initialiser le package cible.
|
||||
- Generation reussie apres correction des edges obligatoires.
|
||||
12
doc_dev/12_etape5_pieces_jointes_crud.md
Normal file
12
doc_dev/12_etape5_pieces_jointes_crud.md
Normal file
@@ -0,0 +1,12 @@
|
||||
# Etape 5 (suite) - Pieces jointes CRUD
|
||||
|
||||
## Objectif
|
||||
Ajouter des endpoints de lecture et suppression des pieces jointes.
|
||||
|
||||
## Endpoints
|
||||
- `GET /v1/objets/:id/pieces_jointes` : liste des pieces jointes d'un objet.
|
||||
- `DELETE /v1/pieces_jointes/:id` : suppression d'une piece jointe + fichier.
|
||||
|
||||
## Comportement
|
||||
- Retourne 404 si la piece jointe n'existe pas.
|
||||
- Le fichier est supprime du disque si present.
|
||||
14
doc_dev/13_etape6_upload_validations.md
Normal file
14
doc_dev/13_etape6_upload_validations.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# Etape 6 - Validations upload
|
||||
|
||||
## Objectif
|
||||
Renforcer la validation des pieces jointes.
|
||||
|
||||
## Ajouts
|
||||
- Taille max par fichier via `MAX_UPLOAD_MB` (defaut 50).
|
||||
- Types acceptes : images, PDF, Markdown.
|
||||
- Refus avec code 413 si taille depassee.
|
||||
- Refus avec code 400 si type non supporte.
|
||||
|
||||
## Comportement principale
|
||||
- Une seule piece jointe principale par objet.
|
||||
- La premiere piece upload est principale uniquement si aucune n'existe deja.
|
||||
15
doc_dev/14_etape7_champs_liens.md
Normal file
15
doc_dev/14_etape7_champs_liens.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# Etape 7 - Champs personnalises et liens emplacements
|
||||
|
||||
## Objectif
|
||||
Ajouter les endpoints CRUD pour les champs personnalises et les liens objet/emplacement.
|
||||
|
||||
## Champs personnalises
|
||||
- `GET /v1/objets/:id/champs_personnalises`
|
||||
- `POST /v1/objets/:id/champs_personnalises`
|
||||
- `PUT /v1/champs_personnalises/:id`
|
||||
- `DELETE /v1/champs_personnalises/:id`
|
||||
|
||||
## Liens objet/emplacement
|
||||
- `GET /v1/objets/:id/liens_emplacements`
|
||||
- `POST /v1/objets/:id/liens_emplacements`
|
||||
- `DELETE /v1/liens_emplacements/:id`
|
||||
15
doc_dev/15_etape8_principale_dedup_tests.md
Normal file
15
doc_dev/15_etape8_principale_dedup_tests.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# Etape 8 - Principale, dedup, tests
|
||||
|
||||
## Piece jointe principale
|
||||
- `PUT /v1/pieces_jointes/:id/principale`
|
||||
- Assure qu'une seule piece jointe est principale par objet (transaction).
|
||||
|
||||
## Dedup liens objet/emplacement
|
||||
- Refus si lien identique (objet, emplacement, type) existe deja.
|
||||
- Retour 409 avec message explicite.
|
||||
|
||||
## Tests
|
||||
- Ajout de tests unitaires simples pour :
|
||||
- types d'upload autorises
|
||||
- taille max par fichier
|
||||
- parsing type_champ et type lien
|
||||
11
doc_dev/16_etape9_pagination_liens.md
Normal file
11
doc_dev/16_etape9_pagination_liens.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# Etape 9 - Pagination et liens
|
||||
|
||||
## Pagination
|
||||
- Ajout de `page` et `limit` sur les listes : objets, categories, emplacements,
|
||||
pieces jointes, champs personnalises, liens.
|
||||
- Defaut : 50 elements, max 200.
|
||||
|
||||
## Liens objet/emplacement
|
||||
- Verification d'existence de l'emplacement avant creation.
|
||||
- Endpoint `PUT /v1/liens_emplacements/:id` pour modifier le type.
|
||||
- Deduplication maintenue sur (objet, emplacement, type).
|
||||
11
doc_dev/17_etape10_liens_pagination_meta.md
Normal file
11
doc_dev/17_etape10_liens_pagination_meta.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# Etape 10 - Liens + pagination avec meta
|
||||
|
||||
## Liens objet/emplacement
|
||||
- `PUT /v1/liens_emplacements/:id` accepte `emplacement_id` et `type`.
|
||||
- Verification de l'existence de l'emplacement avant mise a jour.
|
||||
- Deduplication maintenue (objet, emplacement, type).
|
||||
|
||||
## Pagination avec meta
|
||||
- Les listes renvoient maintenant :
|
||||
- `items`
|
||||
- `meta.total`, `meta.page`, `meta.limit`
|
||||
14
doc_dev/18_etape11_swagger.md
Normal file
14
doc_dev/18_etape11_swagger.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# Etape 11 - Swagger
|
||||
|
||||
## Objectif
|
||||
Ajouter la documentation Swagger via Swaggo.
|
||||
|
||||
## Ajouts
|
||||
- Route Swagger : `GET /swagger/*any`.
|
||||
- Commentaires Swaggo dans `cmd/app/main.go`.
|
||||
- Generation des fichiers : `backend/docs/swagger.json` et `backend/docs/swagger.yaml`.
|
||||
|
||||
## Commande de generation
|
||||
```
|
||||
/tmp/go/bin/swag init -g cmd/app/main.go -o docs
|
||||
```
|
||||
14
doc_dev/19_etape12_swagger_auto.md
Normal file
14
doc_dev/19_etape12_swagger_auto.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# Etape 12 - Swagger auto
|
||||
|
||||
## Objectif
|
||||
Documenter les endpoints avec Swaggo et fournir une commande d'auto-generation.
|
||||
|
||||
## Annotations
|
||||
- Ajout des annotations Swagger sur les handlers principaux.
|
||||
|
||||
## Script
|
||||
- `backend/scripts/gen_swagger.sh`
|
||||
- Usage :
|
||||
```
|
||||
bash backend/scripts/gen_swagger.sh
|
||||
```
|
||||
6
doc_dev/20_etape13_tooling_env.md
Normal file
6
doc_dev/20_etape13_tooling_env.md
Normal file
@@ -0,0 +1,6 @@
|
||||
# Etape 13 - Tooling et env
|
||||
|
||||
## Ajouts
|
||||
- `Taskfile.yml` + `backend/Taskfile.yml` pour run/test/ent/swagger.
|
||||
- `.env.example` pour variables backend.
|
||||
- `docker-compose.yml` (backend + postgres optionnel).
|
||||
15
doc_dev/21_etape14_frontend.md
Normal file
15
doc_dev/21_etape14_frontend.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# Etape 14 - Frontend (squelette)
|
||||
|
||||
## Structure
|
||||
- Nuxt 3 minimal avec pages :
|
||||
- `/` (accueil)
|
||||
- `/objets`
|
||||
- `/objets/[id]`
|
||||
- `/emplacements`
|
||||
|
||||
## Fichiers
|
||||
- `frontend/package.json`
|
||||
- `frontend/nuxt.config.ts`
|
||||
- `frontend/app.vue`
|
||||
- `frontend/pages/*`
|
||||
- `frontend/assets/css/main.css`
|
||||
Reference in New Issue
Block a user