Permettre à chaque agence d'adapter la plateforme à son organisation, ses processus métier et ses règles de gestion sans intervention technique.
À l'issue du Sprint 11 :
Ce sprint transforme la plateforme en véritable solution SaaS configurable.
AdministrationModule AgencySettingsModule WorkflowModule CustomFieldsModule AuditModule FeatureFlagsModule TenantManagementModule
Tenant ↓ Configuration Agence ├── Paramètres ├── Workflows ├── Champs personnalisés ├── Permissions ├── Feature Flags └── Audit
En tant qu'administrateur d'agence
Je souhaite consulter la configuration de mon agence
Afin de piloter mon activité.
GET /admin/settings
Nom agence Adresse Téléphone Email Site web Logo Fuseau horaire Devise
PUT /admin/settings
Droits administrateur requis
GET /admin/settings/finance PUT /admin/settings/finance
Taux acompte Taux TVA Taxe séjour Devise Conditions paiement
Permettre à chaque agence de définir son cycle métier.
PENDING ↓ CONFIRMED ↓ SIGNED ↓ PAID ↓ COMPLETED
GET /admin/workflows PUT /admin/workflows
EN_ATTENTE_VALIDATION DOSSIER_INCOMPLET CHECKIN_EFFECTUE
POST /admin/custom-fields
TEXT TEXTAREA NUMBER BOOLEAN DATE SELECT MULTISELECT
Client Propriétaire Bien Réservation Contrat
Bien ↓ Champ : Classification interne
GET /admin/feature-flags PUT /admin/feature-flags
CRM SMS Paiement Stripe Paiement MangoPay IA Signature électronique
Agence A CRM activé Agence B CRM désactivé
GET /admin/audit
Utilisateur Action Date Adresse IP Entité Valeurs avant Valeurs après
Utilisateur Date Type Module Entité
GET /admin/system/logs
INFO WARNING ERROR CRITICAL
Date Service Exception Stack Trace Contexte
GET /admin/agencies POST /admin/agencies
Nom Code Statut Plan Quota
ACTIVE SUSPENDED TRIAL ARCHIVED
Nombre biens Nombre utilisateurs Stockage Emails mensuels
model Tenant {
id String @id @default(uuid())
code String @unique
name String
status String
createdAt DateTime @default(now())
}
model AgencySetting {
id String @id @default(uuid())
tenantId String
settingKey String
settingValue Json
}
model WorkflowDefinition {
id String @id @default(uuid())
tenantId String
entityType String
definition Json
}
model CustomField {
id String @id @default(uuid())
tenantId String
entityType String
fieldName String
fieldType String
}
model AuditLog {
id String @id @default(uuid())
tenantId String
userId String
entityType String
entityId String
action String
beforeData Json?
afterData Json?
createdAt DateTime @default(now())
}
model FeatureFlag {
id String @id @default(uuid())
tenantId String
code String
enabled Boolean
}
src/modules/administration ├── agencies │ ├── settings │ ├── workflows │ ├── custom-fields │ ├── audit │ ├── feature-flags │ └── system
AgencyService SettingsService WorkflowService CustomFieldService AuditService FeatureFlagService
AgencyCreated
FeatureFlagChanged
WorkflowUpdated
Administration Settings Workflows CustomFields Audit FeatureFlags Tenants
Environ :
40 endpoints
/admin /admin/settings /admin/workflows /admin/custom-fields /admin/feature-flags /admin/audit /admin/system /admin/agencies
SettingsForm WorkflowEditor CustomFieldManager AuditTable FeatureFlagSwitch TenantManagementTable
Agences actives Utilisateurs actifs Stockage utilisé Emails envoyés Erreurs système Fonctionnalités activées
SettingsService WorkflowService AuditService FeatureFlagService
Modification paramètre ↓ Audit ↓ Propagation configuration
Connexion Admin ↓ Modification paramètre agence ↓ Création champ personnalisé ↓ Activation fonctionnalité ↓ Consultation audit
Le Sprint 11 est terminé lorsque :
À l'issue du Sprint 11 :
La solution devient exploitable comme produit SaaS multi-agences.
Objectif :
Industrialiser l'exploitation de la plateforme en production.
Modules concernés :
MonitoringModule LoggingModule MetricsModule AlertingModule BackupModule HealthCheckModule
Fonctionnalités :
À l'issue du Sprint 12, la plateforme sera prête pour une exploitation SaaS à grande échelle.