303 lines
10 KiB
TypeScript
Executable File
303 lines
10 KiB
TypeScript
Executable File
/**
|
|
* Types et templates pour la gestion automatique des phases de chantier BTP
|
|
* Système de pré-configuration des phases selon le type de chantier
|
|
*/
|
|
|
|
// Types de chantiers BTP avec classification métier complète
|
|
export type TypeChantier =
|
|
// Bâtiment résidentiel
|
|
| 'MAISON_INDIVIDUELLE'
|
|
| 'IMMEUBLE_COLLECTIF'
|
|
| 'RENOVATION_RESIDENTIELLE'
|
|
| 'EXTENSION_RESIDENTIELLE'
|
|
|
|
// Bâtiment tertiaire
|
|
| 'BUREAU_COMMERCIAL'
|
|
| 'CENTRE_COMMERCIAL'
|
|
| 'ETABLISSEMENT_SCOLAIRE'
|
|
| 'ETABLISSEMENT_SANTE'
|
|
| 'ETABLISSEMENT_SPORTIF'
|
|
| 'ENTREPOT_LOGISTIQUE'
|
|
|
|
// Infrastructure
|
|
| 'VOIRIE_URBAINE'
|
|
| 'AUTOROUTE'
|
|
| 'PONT_VIADUC'
|
|
| 'TUNNEL'
|
|
| 'PARKING'
|
|
| 'AIRE_AMENAGEE'
|
|
|
|
// Industriel
|
|
| 'USINE_INDUSTRIELLE'
|
|
| 'CENTRALE_ENERGIE'
|
|
| 'STATION_EPURATION'
|
|
| 'INSTALLATION_CHIMIQUE'
|
|
|
|
// Spécialisé
|
|
| 'PISCINE'
|
|
| 'COURT_TENNIS'
|
|
| 'TERRAIN_SPORT'
|
|
| 'MONUMENT_HISTORIQUE'
|
|
| 'OUVRAGE_ART';
|
|
|
|
// Interface pour une phase template
|
|
export interface PhaseTemplate {
|
|
id: string;
|
|
nom: string;
|
|
description: string;
|
|
ordreExecution: number;
|
|
dureePrevueJours: number;
|
|
critique: boolean;
|
|
prerequis?: string[];
|
|
sousPhases?: SousPhaseTemplate[];
|
|
materielsTypes?: string[];
|
|
competencesRequises?: string[];
|
|
controleQualite?: string[];
|
|
}
|
|
|
|
// Interface pour une sous-phase template
|
|
export interface SousPhaseTemplate {
|
|
id: string;
|
|
nom: string;
|
|
description: string;
|
|
ordreExecution: number;
|
|
dureePrevueJours: number;
|
|
materielsTypes?: string[];
|
|
competencesRequises?: string[];
|
|
}
|
|
|
|
// Interface pour un template de chantier complet
|
|
export interface ChantierTemplate {
|
|
typeChantier: TypeChantier;
|
|
nom: string;
|
|
description: string;
|
|
dureeMoyenneJours: number;
|
|
phases: PhaseTemplate[];
|
|
specificites?: string[];
|
|
reglementations?: string[];
|
|
}
|
|
|
|
// Libellés pour les types de chantiers
|
|
export const TYPE_CHANTIER_LABELS: Record<TypeChantier, string> = {
|
|
// Résidentiel
|
|
MAISON_INDIVIDUELLE: 'Maison individuelle',
|
|
IMMEUBLE_COLLECTIF: 'Immeuble collectif',
|
|
RENOVATION_RESIDENTIELLE: 'Rénovation résidentielle',
|
|
EXTENSION_RESIDENTIELLE: 'Extension résidentielle',
|
|
|
|
// Tertiaire
|
|
BUREAU_COMMERCIAL: 'Bureau / Commerce',
|
|
CENTRE_COMMERCIAL: 'Centre commercial',
|
|
ETABLISSEMENT_SCOLAIRE: 'Établissement scolaire',
|
|
ETABLISSEMENT_SANTE: 'Établissement de santé',
|
|
ETABLISSEMENT_SPORTIF: 'Établissement sportif',
|
|
ENTREPOT_LOGISTIQUE: 'Entrepôt / Logistique',
|
|
|
|
// Infrastructure
|
|
VOIRIE_URBAINE: 'Voirie urbaine',
|
|
AUTOROUTE: 'Autoroute',
|
|
PONT_VIADUC: 'Pont / Viaduc',
|
|
TUNNEL: 'Tunnel',
|
|
PARKING: 'Parking',
|
|
AIRE_AMENAGEE: 'Aire aménagée',
|
|
|
|
// Industriel
|
|
USINE_INDUSTRIELLE: 'Usine industrielle',
|
|
CENTRALE_ENERGIE: 'Centrale énergétique',
|
|
STATION_EPURATION: 'Station d\'épuration',
|
|
INSTALLATION_CHIMIQUE: 'Installation chimique',
|
|
|
|
// Spécialisé
|
|
PISCINE: 'Piscine',
|
|
COURT_TENNIS: 'Court de tennis',
|
|
TERRAIN_SPORT: 'Terrain de sport',
|
|
MONUMENT_HISTORIQUE: 'Monument historique',
|
|
OUVRAGE_ART: 'Ouvrage d\'art'
|
|
};
|
|
|
|
// Catégories de chantiers pour l'organisation
|
|
export const CATEGORIES_CHANTIER = {
|
|
RESIDENTIEL: {
|
|
label: 'Résidentiel',
|
|
types: ['MAISON_INDIVIDUELLE', 'IMMEUBLE_COLLECTIF', 'RENOVATION_RESIDENTIELLE', 'EXTENSION_RESIDENTIELLE'] as TypeChantier[]
|
|
},
|
|
TERTIAIRE: {
|
|
label: 'Tertiaire',
|
|
types: ['BUREAU_COMMERCIAL', 'CENTRE_COMMERCIAL', 'ETABLISSEMENT_SCOLAIRE', 'ETABLISSEMENT_SANTE', 'ETABLISSEMENT_SPORTIF', 'ENTREPOT_LOGISTIQUE'] as TypeChantier[]
|
|
},
|
|
INFRASTRUCTURE: {
|
|
label: 'Infrastructure',
|
|
types: ['VOIRIE_URBAINE', 'AUTOROUTE', 'PONT_VIADUC', 'TUNNEL', 'PARKING', 'AIRE_AMENAGEE'] as TypeChantier[]
|
|
},
|
|
INDUSTRIEL: {
|
|
label: 'Industriel',
|
|
types: ['USINE_INDUSTRIELLE', 'CENTRALE_ENERGIE', 'STATION_EPURATION', 'INSTALLATION_CHIMIQUE'] as TypeChantier[]
|
|
},
|
|
SPECIALISE: {
|
|
label: 'Spécialisé',
|
|
types: ['PISCINE', 'COURT_TENNIS', 'TERRAIN_SPORT', 'MONUMENT_HISTORIQUE', 'OUVRAGE_ART'] as TypeChantier[]
|
|
}
|
|
} as const;
|
|
|
|
// Templates de phases communes à tous les types de chantiers
|
|
export const PHASES_COMMUNES: PhaseTemplate[] = [
|
|
{
|
|
id: 'etudes-preliminaires',
|
|
nom: 'Études préliminaires et définition du projet',
|
|
description: 'Analyse de faisabilité, études de sol, définition du programme',
|
|
ordreExecution: 1,
|
|
dureePrevueJours: 30,
|
|
critique: true,
|
|
sousPhases: [
|
|
{
|
|
id: 'analyse-faisabilite',
|
|
nom: 'Analyse de faisabilité',
|
|
description: 'Étude technique, économique et réglementaire',
|
|
ordreExecution: 1,
|
|
dureePrevueJours: 10,
|
|
competencesRequises: ['Bureau d\'études', 'Économiste']
|
|
},
|
|
{
|
|
id: 'releves-topographiques',
|
|
nom: 'Relevés topographiques',
|
|
description: 'Levés de terrain et cartographie',
|
|
ordreExecution: 2,
|
|
dureePrevueJours: 5,
|
|
materielsTypes: ['Matériel topographique'],
|
|
competencesRequises: ['Géomètre']
|
|
},
|
|
{
|
|
id: 'etudes-geotechniques',
|
|
nom: 'Études géotechniques',
|
|
description: 'Étude de sol et recommandations fondations',
|
|
ordreExecution: 3,
|
|
dureePrevueJours: 10,
|
|
materielsTypes: ['Foreuse', 'Équipement laboratoire'],
|
|
competencesRequises: ['Géotechnicien']
|
|
},
|
|
{
|
|
id: 'analyse-environnementale',
|
|
nom: 'Analyse environnementale',
|
|
description: 'Impact environnemental et contraintes réglementaires',
|
|
ordreExecution: 4,
|
|
dureePrevueJours: 5,
|
|
competencesRequises: ['Expert environnemental']
|
|
}
|
|
],
|
|
competencesRequises: ['Maître d\'œuvre', 'Bureau d\'études'],
|
|
controleQualite: ['Validation études géotechniques', 'Conformité réglementaire']
|
|
},
|
|
{
|
|
id: 'conception-projet',
|
|
nom: 'Conception du projet',
|
|
description: 'Avant-projets, plans détaillés, demandes d\'autorisation',
|
|
ordreExecution: 2,
|
|
dureePrevueJours: 45,
|
|
critique: true,
|
|
prerequis: ['etudes-preliminaires'],
|
|
sousPhases: [
|
|
{
|
|
id: 'avant-projet-sommaire',
|
|
nom: 'Avant-projet sommaire (APS)',
|
|
description: 'Définition générale du projet',
|
|
ordreExecution: 1,
|
|
dureePrevueJours: 15,
|
|
competencesRequises: ['Architecte', 'Bureau d\'études']
|
|
},
|
|
{
|
|
id: 'avant-projet-definitif',
|
|
nom: 'Avant-projet définitif (APD)',
|
|
description: 'Finalisation conception et dimensionnement',
|
|
ordreExecution: 2,
|
|
dureePrevueJours: 20,
|
|
competencesRequises: ['Architecte', 'Bureau d\'études', 'Économiste']
|
|
},
|
|
{
|
|
id: 'plans-detailles',
|
|
nom: 'Plans détaillés d\'exécution',
|
|
description: 'Plans techniques et spécifications',
|
|
ordreExecution: 3,
|
|
dureePrevueJours: 10,
|
|
competencesRequises: ['Dessinateur', 'Bureau d\'études']
|
|
}
|
|
],
|
|
competencesRequises: ['Architecte', 'Bureau d\'études'],
|
|
controleQualite: ['Validation architecturale', 'Conformité technique']
|
|
},
|
|
{
|
|
id: 'preparation-chantier',
|
|
nom: 'Préparation du chantier',
|
|
description: 'Organisation du site, approvisionnements, coordination',
|
|
ordreExecution: 3,
|
|
dureePrevueJours: 20,
|
|
critique: true,
|
|
prerequis: ['conception-projet'],
|
|
sousPhases: [
|
|
{
|
|
id: 'organisation-site',
|
|
nom: 'Organisation du site',
|
|
description: 'Plan d\'installation de chantier (PIC)',
|
|
ordreExecution: 1,
|
|
dureePrevueJours: 5,
|
|
competencesRequises: ['Conducteur de travaux']
|
|
},
|
|
{
|
|
id: 'implantation-terrain',
|
|
nom: 'Implantation sur le terrain',
|
|
description: 'Piquetage et marquage',
|
|
ordreExecution: 2,
|
|
dureePrevueJours: 3,
|
|
materielsTypes: ['Matériel topographique'],
|
|
competencesRequises: ['Géomètre', 'Chef d\'équipe']
|
|
},
|
|
{
|
|
id: 'installation-bases-vie',
|
|
nom: 'Installation des bases vie',
|
|
description: 'Espaces de travail, sanitaires, stockage',
|
|
ordreExecution: 3,
|
|
dureePrevueJours: 5,
|
|
materielsTypes: ['Bungalows', 'Clôtures', 'Raccordements'],
|
|
competencesRequises: ['Équipe installation']
|
|
},
|
|
{
|
|
id: 'approvisionnement-logistique',
|
|
nom: 'Approvisionnement et logistique',
|
|
description: 'Commandes matériaux et planification livraisons',
|
|
ordreExecution: 4,
|
|
dureePrevueJours: 7,
|
|
competencesRequises: ['Responsable logistique']
|
|
}
|
|
],
|
|
competencesRequises: ['Conducteur de travaux', 'Chef de chantier'],
|
|
controleQualite: ['Plan de sécurité validé', 'Autorisations administratives']
|
|
}
|
|
];
|
|
|
|
// Export des constantes utiles
|
|
export const DUREE_MOYENNE_PAR_TYPE: Record<TypeChantier, number> = {
|
|
MAISON_INDIVIDUELLE: 270,
|
|
IMMEUBLE_COLLECTIF: 540,
|
|
RENOVATION_RESIDENTIELLE: 180,
|
|
EXTENSION_RESIDENTIELLE: 120,
|
|
BUREAU_COMMERCIAL: 360,
|
|
CENTRE_COMMERCIAL: 720,
|
|
ETABLISSEMENT_SCOLAIRE: 600,
|
|
ETABLISSEMENT_SANTE: 900,
|
|
ETABLISSEMENT_SPORTIF: 480,
|
|
ENTREPOT_LOGISTIQUE: 240,
|
|
VOIRIE_URBAINE: 150,
|
|
AUTOROUTE: 1080,
|
|
PONT_VIADUC: 900,
|
|
TUNNEL: 1440,
|
|
PARKING: 120,
|
|
AIRE_AMENAGEE: 90,
|
|
USINE_INDUSTRIELLE: 720,
|
|
CENTRALE_ENERGIE: 1800,
|
|
STATION_EPURATION: 540,
|
|
INSTALLATION_CHIMIQUE: 960,
|
|
PISCINE: 90,
|
|
COURT_TENNIS: 45,
|
|
TERRAIN_SPORT: 60,
|
|
MONUMENT_HISTORIQUE: 720,
|
|
OUVRAGE_ART: 540
|
|
}; |