Initial commit
This commit is contained in:
303
types/chantier-templates.ts
Normal file
303
types/chantier-templates.ts
Normal file
@@ -0,0 +1,303 @@
|
||||
/**
|
||||
* 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
|
||||
};
|
||||
Reference in New Issue
Block a user