{
    "uuid": "8b914c14897fa4d667786a1ec0f07a28",
    "elementtype": "fichinter",
    "schema_kind": "intervention",
    "title": "Fiche d'intervention - Révision et entretien complet d'un vélo de location",
    "description": "Révision périodique et entretien complet d'un vélo de flotte de location : nettoyage et réglage de la transmission, contrôle et réglage des freins, roulements de direction, de moyeux et de pédalier, dévoilage des roues, contrôle des pneumatiques, serrages au couple et contrôle de l'assistance électrique pour les VAE.",
    "export_date": "2026-05-31 10:00:00",
    "dolibarr_version": "18.0.0",
    "extrafields": [
        {
            "name": "rev_etablissement",
            "label": "Établissement",
            "type": "varchar",
            "size": "200",
            "required": 1,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Atelier ou agence de location",
            "pos": 100,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "rev_site",
            "label": "Site / agence",
            "type": "varchar",
            "size": "150",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "",
            "pos": 105,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "rev_identifiant_engin",
            "label": "Identifiant engin",
            "type": "varchar",
            "size": "50",
            "required": 1,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Numéro inventaire interne",
            "pos": 110,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "rev_marquage_bicycode",
            "label": "Marquage BicyCode / FNUCI",
            "type": "varchar",
            "size": "30",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Vélos uniquement",
            "pos": 115,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "rev_marque_modele",
            "label": "Marque et modèle",
            "type": "varchar",
            "size": "150",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "",
            "pos": 120,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "rev_type_engin",
            "label": "Type d'engin",
            "type": "select",
            "size": "",
            "required": 1,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": {
                "options": {
                    "velo_classique": "Vélo classique",
                    "vae": "VAE (vélo à assistance électrique)",
                    "velo_cargo": "Vélo cargo",
                    "velo_enfant": "Vélo enfant",
                    "vtt": "VTT / tout-terrain"
                }
            },
            "help": "Catégorie",
            "pos": 125,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "velo_classique",
            "alwayseditable": 0
        },
        {
            "name": "rev_kilometrage",
            "label": "Kilométrage compteur (km)",
            "type": "int",
            "size": "6",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Si compteur présent",
            "pos": 130,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "rev_date_derniere_revision",
            "label": "Date dernière révision",
            "type": "date",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Référence pour la périodicité",
            "pos": 135,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "rev_etat_general_avant",
            "label": "État général avant révision",
            "type": "select",
            "size": "",
            "required": 1,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": {
                "options": {
                    "bon": "Bon état",
                    "moyen": "État moyen, usure normale",
                    "degrade": "État dégradé, usure avancée",
                    "mauvais": "Mauvais état, immobilisation"
                }
            },
            "help": "Apprécié à réception en atelier",
            "pos": 140,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "moyen",
            "alwayseditable": 0
        },
        {
            "name": "rev_proprete_avant",
            "label": "Niveau de salissure à réception",
            "type": "select",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": {
                "options": {
                    "propre": "Propre",
                    "salissure_legere": "Salissure légère",
                    "tres_sale": "Très sale, boue et graisse"
                }
            },
            "help": "",
            "pos": 145,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "salissure_legere",
            "alwayseditable": 0
        },
        {
            "name": "op_nettoyage_transmission",
            "label": "Nettoyage et dégraissage transmission",
            "type": "boolean",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Chaîne, cassette, plateaux, dérailleurs",
            "pos": 150,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "1",
            "alwayseditable": 0
        },
        {
            "name": "op_mesure_usure_chaine",
            "label": "Mesure usure chaîne (%)",
            "type": "varchar",
            "size": "10",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Remplacement conseillé à 0,5%, impératif à 0,75%",
            "pos": 155,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "op_remplacement_chaine",
            "label": "Chaîne remplacée",
            "type": "boolean",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Si usure supérieure au seuil",
            "pos": 160,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "0",
            "alwayseditable": 0
        },
        {
            "name": "op_reglage_derailleurs",
            "label": "Réglage des dérailleurs",
            "type": "boolean",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Indexation et butées",
            "pos": 165,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "1",
            "alwayseditable": 0
        },
        {
            "name": "op_lubrification_chaine",
            "label": "Lubrification chaîne",
            "type": "boolean",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Lubrifiant adapté aux conditions",
            "pos": 170,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "1",
            "alwayseditable": 0
        },
        {
            "name": "op_controle_freins",
            "label": "Contrôle et réglage des freins",
            "type": "boolean",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Course de levier, garde, puissance d'arrêt",
            "pos": 175,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "1",
            "alwayseditable": 0
        },
        {
            "name": "op_epaisseur_plaquettes",
            "label": "Épaisseur plaquettes / patins (mm)",
            "type": "varchar",
            "size": "10",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Remplacement sous 1,5 mm pour les plaquettes",
            "pos": 180,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "op_remplacement_plaquettes",
            "label": "Plaquettes / patins remplacés",
            "type": "boolean",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "",
            "pos": 185,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "0",
            "alwayseditable": 0
        },
        {
            "name": "op_controle_jeu_direction",
            "label": "Contrôle du jeu de direction",
            "type": "boolean",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Réglage du jeu de roulements de direction",
            "pos": 190,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "1",
            "alwayseditable": 0
        },
        {
            "name": "op_controle_roulements_moyeux",
            "label": "Contrôle roulements de moyeux",
            "type": "boolean",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Avant et arrière, jeu et rotation",
            "pos": 195,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "1",
            "alwayseditable": 0
        },
        {
            "name": "op_controle_jeu_pedalier",
            "label": "Contrôle jeu de pédalier",
            "type": "boolean",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Boîtier de pédalier et manivelles",
            "pos": 200,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "1",
            "alwayseditable": 0
        },
        {
            "name": "op_dvoilage_roues",
            "label": "Dévoilage des roues",
            "type": "boolean",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Tension des rayons, voile latéral",
            "pos": 205,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "1",
            "alwayseditable": 0
        },
        {
            "name": "op_controle_pneumatiques",
            "label": "Contrôle des pneumatiques",
            "type": "boolean",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Usure de la bande de roulement, coupures sur le flanc",
            "pos": 210,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "1",
            "alwayseditable": 0
        },
        {
            "name": "op_gonflage_pneus",
            "label": "Gonflage à la pression préconisée",
            "type": "varchar",
            "size": "20",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Pression en bar inscrite sur le flanc",
            "pos": 215,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "op_remplacement_pneu",
            "label": "Pneu(s) remplacé(s)",
            "type": "boolean",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "",
            "pos": 220,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "0",
            "alwayseditable": 0
        },
        {
            "name": "op_serrage_couple",
            "label": "Serrages au couple vérifiés",
            "type": "boolean",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Potence, tige de selle, axes de roues",
            "pos": 225,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "1",
            "alwayseditable": 0
        },
        {
            "name": "op_controle_assistance",
            "label": "Contrôle assistance électrique",
            "type": "boolean",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "VAE : moteur, batterie, capteurs, bridage 25 km/h",
            "pos": 230,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "0",
            "alwayseditable": 0
        },
        {
            "name": "op_pieces_remplacees",
            "label": "Pièces remplacées",
            "type": "text",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 0,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Détail des pièces et références",
            "pos": 235,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "op_temps_passe",
            "label": "Temps passé (minutes)",
            "type": "int",
            "size": "4",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Durée de l'intervention",
            "pos": 240,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "rev_anomalies_residuelles",
            "label": "Anomalies résiduelles",
            "type": "text",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 0,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Points non résolus ou à surveiller",
            "pos": 245,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "rev_verdict",
            "label": "Verdict de la révision",
            "type": "select",
            "size": "",
            "required": 1,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": {
                "options": {
                    "conforme": "CONFORME - Remise en location",
                    "conforme_reserve": "CONFORME avec réserves",
                    "immobilise": "IMMOBILISÉ - Pièces à commander"
                }
            },
            "help": "Résultat de l'entretien",
            "pos": 250,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "conforme",
            "alwayseditable": 0
        },
        {
            "name": "rev_date_prochaine_revision",
            "label": "Date prochaine révision",
            "type": "date",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Selon kilométrage ou périodicité",
            "pos": 255,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "rev_technicien_nom",
            "label": "Nom du technicien",
            "type": "varchar",
            "size": "100",
            "required": 1,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "",
            "pos": 260,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "rev_qualification",
            "label": "Qualification atelier",
            "type": "varchar",
            "size": "100",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Mécanicien cycle, CQP",
            "pos": 265,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        }
    ],
    "pdf_layout": {
        "version": "1.0",
        "page": {
            "format": "A4",
            "orientation": "portrait",
            "margins": {
                "top": 20,
                "right": 15,
                "bottom": 20,
                "left": 15
            },
            "font_family": "helvetica",
            "font_size": 10
        },
        "header": {
            "title": "Fiche de révision et d'entretien vélo",
            "subtitle": "Entretien complet avant remise en location",
            "logo_placeholder": "top-right",
            "show_page_number": true,
            "show_generated_date": true
        },
        "footer": {
            "text": "Document généré via schemas.cap-rel.fr",
            "legal_mentions": "Document à conserver pour la traçabilité de l'entretien de la flotte"
        },
        "sections": [
            {
                "id": "identification",
                "title": "Identification de l'engin",
                "layout": "two_columns",
                "fields": [
                    "rev_etablissement",
                    "rev_site",
                    "rev_identifiant_engin",
                    "rev_marquage_bicycode",
                    "rev_marque_modele",
                    "rev_type_engin",
                    "rev_kilometrage",
                    "rev_date_derniere_revision"
                ]
            },
            {
                "id": "etat_avant",
                "title": "État à réception en atelier",
                "layout": "two_columns",
                "fields": [
                    "rev_etat_general_avant",
                    "rev_proprete_avant"
                ]
            },
            {
                "id": "transmission",
                "title": "Transmission",
                "layout": "checklist",
                "fields": [
                    "op_nettoyage_transmission",
                    "op_mesure_usure_chaine",
                    "op_remplacement_chaine",
                    "op_reglage_derailleurs",
                    "op_lubrification_chaine"
                ]
            },
            {
                "id": "freinage",
                "title": "Freinage",
                "layout": "checklist",
                "fields": [
                    "op_controle_freins",
                    "op_epaisseur_plaquettes",
                    "op_remplacement_plaquettes"
                ]
            },
            {
                "id": "roulements",
                "title": "Roulements et roues",
                "layout": "checklist",
                "fields": [
                    "op_controle_jeu_direction",
                    "op_controle_roulements_moyeux",
                    "op_controle_jeu_pedalier",
                    "op_dvoilage_roues"
                ]
            },
            {
                "id": "pneumatiques",
                "title": "Pneumatiques et serrages",
                "layout": "checklist",
                "fields": [
                    "op_controle_pneumatiques",
                    "op_gonflage_pneus",
                    "op_remplacement_pneu",
                    "op_serrage_couple",
                    "op_controle_assistance"
                ]
            },
            {
                "id": "pieces_temps",
                "title": "Pièces remplacées et temps passé",
                "layout": "full_width",
                "fields": [
                    "op_pieces_remplacees",
                    "op_temps_passe"
                ]
            },
            {
                "id": "observations",
                "title": "Anomalies résiduelles",
                "layout": "full_width",
                "fields": [
                    "rev_anomalies_residuelles"
                ]
            },
            {
                "id": "conclusion",
                "title": "Conclusion",
                "layout": "highlight_box",
                "fields": [
                    "rev_verdict",
                    "rev_date_prochaine_revision"
                ]
            },
            {
                "id": "signatures",
                "title": "Technicien",
                "layout": "signature_block",
                "fields": [
                    "rev_technicien_nom",
                    "rev_qualification"
                ],
                "signature_boxes": [
                    {
                        "label": "Signature technicien",
                        "for_field": "rev_technicien_nom"
                    },
                    {
                        "label": "Cachet atelier",
                        "for_field": null
                    }
                ]
            }
        ],
        "field_render": {
            "rev_etablissement": {
                "style": "bold"
            },
            "rev_identifiant_engin": {
                "style": "bold",
                "frame": true
            },
            "rev_verdict": {
                "style": "highlight",
                "color_by_value": {
                    "conforme": "#1f8a1f",
                    "conforme_reserve": "#e69500",
                    "immobilise": "#c00000"
                }
            },
            "rev_anomalies_residuelles": {
                "min_height": 30,
                "show_if_empty": false
            },
            "op_pieces_remplacees": {
                "min_height": 30,
                "show_if_empty": false
            },
            "rev_kilometrage": {
                "suffix": " km"
            },
            "op_temps_passe": {
                "suffix": " min"
            }
        }
    }
}
