Outils pour utilisateurs

Outils du site


ujusum:1-implantation:6-contrats-esignatures

Sprint 5 — Contrats & Signature Électronique

Objectif du Sprint

Transformer une réservation en contrat juridiquement opposable.

À l'issue du Sprint 5 :

  • Un contrat est généré automatiquement à partir d'une réservation
  • Les modèles de contrat sont administrables
  • Un PDF est produit automatiquement
  • Le contrat est envoyé en signature électronique
  • Le client peut signer à distance
  • Le contrat signé est archivé
  • Le contrat est téléchargeable à tout moment

Ce sprint clôture le cycle :

Recherche

↓

Réservation

↓

Contractualisation

Périmètre

Modules concernés

ContractsModule

ContractTemplateModule

ContractGenerationModule

SignatureModule

DocumentModule

PdfModule

Workflow métier

Réservation

↓

Génération contrat

↓

Production PDF

↓

Envoi signature

↓

Signature client

↓

Archivage

↓

Contrat actif

User Stories

US-501 : Générer un contrat

En tant que gestionnaire

Je souhaite générer un contrat

Afin de formaliser la réservation.


Endpoint

POST /contracts/generate

Données utilisées

Client

Bien

Propriétaire

Réservation

Tarifs

Conditions

Résultat

Contrat PDF généré

Version 1

Statut GENERATED

US-502 : Consulter un contrat

Endpoint

GET /contracts/{id}

Données

Numéro

Version

Date génération

Date signature

Statut

Documents

US-503 : Télécharger un contrat

Endpoint

GET /contracts/{id}/download

Formats

PDF

Gestion des modèles

US-504 : Créer un modèle

Endpoint

POST /contract-templates

Données

Nom

Version

Contenu

Variables

US-505 : Modifier un modèle

Endpoint

PUT /contract-templates/{id}

US-506 : Versionner un modèle

Objectif

Conserver les versions historiques.


Exemple

V1

↓

V2

↓

V3

Génération PDF

US-507 : Produire un PDF

Étapes

Template

↓

Fusion données

↓

HTML

↓

PDF

↓

Archivage

Bibliothèque

Puppeteer

ou

PDFKit

Nommage

CONTRACT-2027-000001.pdf

Signature électronique

US-508 : Envoyer en signature

Endpoint

POST /contracts/{id}/send-signature

Fournisseurs compatibles

Yousign

DocuSign

Universign

État

GENERATED

↓

SENT

US-509 : Suivre une signature

Endpoint

GET /contracts/{id}/signature-status

Statuts

PENDING

OPENED

SIGNED

REFUSED

EXPIRED

US-510 : Réception contrat signé

Workflow

Signature validée

↓

Webhook fournisseur

↓

Téléchargement PDF signé

↓

Archivage

↓

Mise à jour contrat

État final

SIGNED

Archivage documentaire

US-511 : Archiver un document

Types

CONTRACT

SIGNED_CONTRACT

ANNEX

INVOICE

IDENTITY_DOCUMENT

Stockage

S3

MinIO

US-512 : Historique documentaire

Endpoint

GET /documents

Filtres

Type

Client

Réservation

Date

Cycle de vie du contrat

DRAFT

↓

GENERATED

↓

SENT

↓

SIGNED

↓

ARCHIVED

└── REFUSED

└── EXPIRED

Modèle Prisma

Contract

model Contract {
 
  id                String @id @default(uuid())
 
  reservationId     String @unique
 
  contractNumber    String @unique
 
  version           Int
 
  status            String
 
  generatedAt       DateTime?
 
  signedAt          DateTime?
 
  createdAt         DateTime @default(now())
}

ContractTemplate

model ContractTemplate {
 
  id                String @id @default(uuid())
 
  name              String
 
  version           Int
 
  content           String
 
  active            Boolean
 
}

ContractSignature

model ContractSignature {
 
  id                String @id @default(uuid())
 
  contractId        String
 
  provider          String
 
  externalId        String
 
  status            String
 
  signedAt          DateTime?
}

Document

model Document {
 
  id                String @id @default(uuid())
 
  entityType        String
 
  entityId          String
 
  documentType      String
 
  fileName          String
 
  storagePath       String
 
  uploadedAt        DateTime
}

Architecture Backend

src/modules/contracts

├── contracts
│
├── templates
│
├── generation
│
├── signatures
│
├── documents
│
└── pdf

Domain Services

ContractGenerationService

PdfGenerationService

TemplateRenderingService

SignatureService

DocumentStorageService

Événements métier

ContractGenerated

ContractGenerated

ContractSent

ContractSent

ContractSigned

ContractSigned

ContractRefused

ContractRefused

Swagger

Tags

Contracts

ContractTemplates

ContractGeneration

Signatures

Documents

Volume API

Environ :

20 endpoints

Frontend

Espace Client

Pages :

/contracts

/contracts/[id]

/documents

Back Office

Pages :

/contracts

/contracts/[id]

/contract-templates

/documents

Composants

ContractViewer

ContractTimeline

DocumentLibrary

TemplateEditor

SignatureStatusCard

Tests

Unitaires

ContractGenerationService

PdfGenerationService

SignatureService

DocumentStorageService

Intégration

Reservation

↓

Generate Contract

↓

Generate PDF

↓

Archive

E2E

Réservation

↓

Génération contrat

↓

Envoi signature

↓

Signature

↓

Téléchargement contrat signé

Définition de terminé

Le Sprint 5 est terminé lorsque :

  • Contrat généré automatiquement
  • PDF généré automatiquement
  • Signature électronique fonctionnelle
  • Archivage fonctionnel
  • Téléchargement fonctionnel
  • Historique fonctionnel
  • Swagger à jour
  • Tests verts
  • CI verte

Livrables

  • ContractsModule
  • ContractTemplateModule
  • ContractGenerationModule
  • SignatureModule
  • DocumentModule
  • PdfModule
  • DTO
  • Swagger
  • Tests
  • Migrations Prisma

Démonstration Sprint

Scénario métier :

1. Réservation créée

2. Génération du contrat

3. Génération PDF

4. Envoi signature

5. Signature client

6. Réception document signé

7. Archivage

8. Téléchargement contrat

Sprint suivant

Sprint 6 — Paiements & Facturation

Objectif :

Permettre l'encaissement et la facturation.

Modules concernés :

PaymentsModule

InvoicesModule

RefundsModule

PaymentGatewayModule

AccountingModule

Fonctionnalités :

  • Paiement CB
  • Paiement acompte
  • Paiement solde
  • Factures automatiques
  • Avoirs
  • Remboursements
  • Historique financier
  • Export comptable

À l'issue du Sprint 6, une réservation pourra être intégralement payée et facturée.

ujusum/1-implantation/6-contrats-esignatures.txt · Dernière modification : 2026/06/06 03:15 de 91.170.108.99

DokuWiki Appliance - Powered by TurnKey Linux