- Copy enso/docs tree to services/docv/enso-docs (refresh via cp -a from enso repo) - Document mirror and refresh command in services/docv/README.md - Ignore services/docv/target for local Rust workspace - Track docv-service-integration, API docv.md, and related doc index updates
4.9 KiB
4.9 KiB
Implémentation technique : Dossiers
Zone : 2 — Dossiers
Spec fonctionnelle : SPEC_02_dossiers.md
Référentiel : REFERENTIEL_ECRANS_ACTIONS.md — Zone 2.
1. Vue d’ensemble
- Périmètre : front (folders liste, sélection, détail, archivés, supprimés, création/édition), back (handlers folders), BDD (folders, folder_parties), paramétrage (folders.*). Ancrage optionnel (back).
- Espace client enso (docv) : champs réels
folder_purpose,operation_type; UI liste opérations vs blocs « structures type (démo) » — voir MODELE_SOCIETES_ET_DOSSIERS_DOPERATION.md et DOCV_API_ENSO_FRONT_MAP.md. - Dépendances : zone 4 (types de dossiers), zone 7 (parties), zone 3 (documents) ; anchoring_client si activé.
2. Écrans (détail technique)
folders.list — Liste des dossiers
- Route(s) :
app/(dashboard)/folders/page.tsx. - Front : Liste paginée, filtres (statut, type, recherche), tri ;
GET /folders(query: page, status, folder_type_uid, q) ; liens archivés, supprimés, bouton Créer. State : liste, filters, pagination. Paramétrage :folders.list. - Back :
GET /folders→ folder_service::list (office_uid depuis context) → folder_repository (pagination, filtres). - BDD :
folders(uid, office_uid, name, folder_type_uid, status, description, created_at, archived_at, deleted_at).
folders.select — Sélection de dossier
- Route(s) :
app/(dashboard)/folders/select/page.tsxou modalFolderSelectModal. - Front : Liste/recherche dossiers ;
GET /folders(limit, q) ; bouton Valider (retour avec folderUid), Annuler. Paramétrage :folders.select. - Back : même GET /folders.
- BDD :
folders.
folders.detail — Détail d’un dossier
- Route(s) :
app/(dashboard)/folders/[folderUid]/page.tsx. - Front : En-tête (nom, type, statut, dates), onglets ou sections (parties, documents, notes, partages) ;
GET /folders/:id; actions Modifier, Archiver, Supprimer, Ancrage selon action_config ; téléversement document, ajout note, gestion partage (zones 3, 7, 8). Paramétrage :folders.detail. - Back :
GET /folders/:id,PATCH /folders/:id,POST /folders/:id/archive,POST /folders/:id/restore,DELETE /folders/:id(soft),DELETE /folders/:id/permanent; folder_service, folder_repository. - BDD :
folders,folder_parties,documents,notes,folder_shares.
folders.archived — Dossiers archivés
- Route(s) :
app/(dashboard)/folders/archived/page.tsx. - Front :
GET /folders/archived; liste ; Restaurer, Consulter détail. Paramétrage :folders.archived. - Back :
GET /folders/archived→ folder_repository où archived_at IS NOT NULL. - BDD :
folders.
folders.deleted — Dossiers supprimés
- Route(s) :
app/(dashboard)/folders/deleted/page.tsx. - Front :
GET /folders/deleted; Restaurer, Supprimer définitivement. Paramétrage :folders.deleted. - Back :
GET /folders/deleted,POST /folders/:id/restore,DELETE /folders/:id/permanent. - BDD :
folders(deleted_at).
folders.create, folders.edit — Création / édition de dossier
- Route(s) :
app/(dashboard)/folders/new/page.tsx,folders/[folderUid]/edit/page.tsxou modal. - Front : Formulaire (nom, type de dossier, description, parties liées) ;
GET /folder-types,GET /customerspour listes ;POST /folders,PATCH /folders/:id. Validation nom et type requis. Paramétrage :folders.create,folders.edit. - Back : folder_service::create, update ; folder_repository, folder_party_repository.
- BDD :
folders,folder_parties.
3. Actions (mapping technique)
| Action | Déclencheur (UI) | Appel / action | Back (handler, service) | Validation / erreur |
|---|---|---|---|---|
| 18.4 | Page liste, filtres, tri, liens | GET /folders, GET /folders/archived, /deleted | folder_service | 403 |
| 18.5 | Modal sélection, Valider | GET /folders, retour context | folder_service | 404 |
| 18.6 | Détail dossier, onglets, boutons | GET/PATCH /folders/:id, POST archive/restore, DELETE | folder_service, anchoring si activé | 403, 404 |
| 18.7 | Page archivés | GET /folders/archived, POST restore | folder_service | 403 |
| 18.8 | Page supprimés | GET /folders/deleted, POST restore, DELETE permanent | folder_service | 403 |
| 18.9 | Formulaire création/édition | POST /folders, PATCH /folders/:id | folder_service | Nom et type requis |
4. Points d’attention
- Transitions statut : ouvert → archivé (archived_at), → supprimé (deleted_at) ; restauration remet deleted_at/archived_at à NULL.
- Ancrage : appel back depuis folder_service ou document_service selon périmètre.
- i18n :
folders.*,folders.archived,folders.deleted.