{
    "uuid": "f09bc44f1d0fb678057db083244e1079",
    "schema_kind": "equipment",
    "lang": "en",
    "title": "Equipment - Via ferrata personal kit (EN 958)",
    "description": "Inventory record for a personal via ferrata kit (Y-style lanyard with energy absorber) used by climbers per EN 958.",
    "export_date": "2026-05-30 10:00:00",
    "dolibarr_version": "18.0.0",
    "extrafields": [
        {
            "name": "kvf_inventory_number",
            "label": "Inventory number",
            "type": "varchar",
            "size": "50",
            "required": 1,
            "unique": 1,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Internal inventory tag (club or guide bureau)",
            "pos": 100,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "kvf_brand",
            "label": "Brand",
            "type": "varchar",
            "size": "100",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Manufacturer / brand name",
            "pos": 110,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "kvf_model",
            "label": "Model",
            "type": "varchar",
            "size": "100",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Model reference",
            "pos": 120,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "kvf_serial_number",
            "label": "Serial number",
            "type": "varchar",
            "size": "100",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Manufacturer serial number",
            "pos": 130,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "kvf_manufacture_year",
            "label": "Year of manufacture",
            "type": "int",
            "size": "4",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Year of manufacture (often stamped on the absorber)",
            "pos": 140,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "kvf_purchase_year",
            "label": "Year of purchase",
            "type": "int",
            "size": "4",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Year of purchase",
            "pos": 150,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "kvf_kit_type",
            "label": "Kit type",
            "type": "select",
            "size": "",
            "required": 1,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": {
                "options": {
                    "Y_style_lanyard_with_energy_absorber": "Y-style lanyard with energy absorber (current EN 958)",
                    "brake_plate_legacy_banned": "Brake plate legacy kit (BANNED since 2017)"
                }
            },
            "help": "Kit architecture. Legacy brake plate kits must not be used.",
            "pos": 200,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "Y_style_lanyard_with_energy_absorber",
            "alwayseditable": 0
        },
        {
            "name": "kvf_lanyard_type",
            "label": "Lanyard type",
            "type": "select",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": {
                "options": {
                    "tearing_webbing_energy_absorber": "Tearing webbing energy absorber"
                }
            },
            "help": "Energy absorber technology",
            "pos": 210,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "tearing_webbing_energy_absorber",
            "alwayseditable": 0
        },
        {
            "name": "kvf_max_user_weight_kg",
            "label": "Max user weight (kg)",
            "type": "double",
            "size": "5,1",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Maximum user weight (typically 40 to 120 kg, wide-range 30 to 150)",
            "pos": 220,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "kvf_min_user_weight_kg",
            "label": "Min user weight (kg)",
            "type": "double",
            "size": "5,1",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Minimum user weight (often 40 kg, wide-range 30 kg)",
            "pos": 230,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "kvf_absorber_type",
            "label": "Absorber type",
            "type": "select",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": {
                "options": {
                    "rip_tearing": "Rip / tearing webbing",
                    "fall_arrest_webbing": "Fall arrest webbing"
                }
            },
            "help": "Energy absorber type",
            "pos": 240,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "rip_tearing",
            "alwayseditable": 0
        },
        {
            "name": "kvf_conform_en_958",
            "label": "Conform to EN 958",
            "type": "select",
            "size": "",
            "required": 1,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": {
                "options": {
                    "yes": "Yes",
                    "no": "No"
                }
            },
            "help": "Conformity to EN 958 (mandatory for current use)",
            "pos": 250,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "yes",
            "alwayseditable": 0
        },
        {
            "name": "kvf_recall_status",
            "label": "Recall status",
            "type": "select",
            "size": "",
            "required": 1,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": {
                "options": {
                    "subject_to_recall": "Subject to manufacturer recall (DO NOT USE)",
                    "no_recall_history": "No recall history known"
                }
            },
            "help": "Several manufacturer recalls since 2012 (Petzl, Edelrid, Camp). Check the brand's safety alerts page before each season.",
            "pos": 260,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "no_recall_history",
            "alwayseditable": 0
        },
        {
            "name": "kvf_last_inspection_date",
            "label": "Last inspection date",
            "type": "date",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Date of the most recent visual / functional inspection",
            "pos": 300,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "kvf_next_inspection_date",
            "label": "Next inspection date",
            "type": "date",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Planned date of the next inspection",
            "pos": 310,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "kvf_retirement_date",
            "label": "Retirement date",
            "type": "date",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Date when the kit must be retired (10 years max from manufacture or after any fall)",
            "pos": 320,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "kvf_status",
            "label": "Status",
            "type": "select",
            "size": "",
            "required": 1,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": {
                "options": {
                    "in_service": "In service",
                    "in_stock": "In stock",
                    "in_quarantine": "In quarantine (to inspect)",
                    "retired": "Retired (do not use)",
                    "destroyed": "Destroyed"
                }
            },
            "help": "Operational status",
            "pos": 400,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "in_service",
            "alwayseditable": 0
        },
        {
            "name": "kvf_location",
            "label": "Location",
            "type": "varchar",
            "size": "200",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Storage location (club, guide bureau, rental shop)",
            "pos": 410,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "kvf_owner",
            "label": "Owner / responsible",
            "type": "varchar",
            "size": "150",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Owning entity or named user",
            "pos": 420,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "kvf_recall_reference",
            "label": "Recall reference",
            "type": "varchar",
            "size": "200",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Manufacturer recall reference if applicable (e.g. Petzl Scorpio 2012)",
            "pos": 430,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "kvf_notes",
            "label": "Notes",
            "type": "text",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Free-form notes (history of falls, repairs, etc.)",
            "pos": 500,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        }
    ],
    "pdf_layout": {
        "version": "1.1",
        "page": {
            "format": "A4",
            "orientation": "portrait",
            "margins": {
                "top": 20,
                "right": 15,
                "bottom": 20,
                "left": 15
            },
            "font_family": "helvetica",
            "font_size": 10
        },
        "header": {
            "title": "Equipment - Via ferrata personal kit (EN 958)",
            "subtitle": "Asset inventory record",
            "logo_placeholder": "top-right",
            "show_page_number": true,
            "show_generated_date": true
        },
        "footer": {
            "text": "Generated via schemas.cap-rel.fr"
        },
        "sections": [
            {
                "id": "identification",
                "title": "Identification",
                "layout": "two_columns",
                "fields": [
                    "kvf_inventory_number",
                    "kvf_brand",
                    "kvf_model",
                    "kvf_serial_number",
                    "kvf_manufacture_year",
                    "kvf_purchase_year"
                ]
            },
            {
                "id": "specifications",
                "title": "Technical specifications",
                "layout": "two_columns",
                "fields": [
                    "kvf_kit_type",
                    "kvf_lanyard_type",
                    "kvf_min_user_weight_kg",
                    "kvf_max_user_weight_kg",
                    "kvf_absorber_type"
                ]
            },
            {
                "id": "compliance",
                "title": "Compliance and recalls",
                "layout": "highlight_box",
                "fields": [
                    "kvf_conform_en_958",
                    "kvf_recall_status",
                    "kvf_recall_reference"
                ]
            },
            {
                "id": "inspections",
                "title": "Inspections and lifespan",
                "layout": "two_columns",
                "fields": [
                    "kvf_last_inspection_date",
                    "kvf_next_inspection_date",
                    "kvf_retirement_date"
                ]
            },
            {
                "id": "status",
                "title": "Status and location",
                "layout": "two_columns",
                "fields": [
                    "kvf_status",
                    "kvf_location",
                    "kvf_owner"
                ]
            },
            {
                "id": "notes",
                "title": "Notes",
                "layout": "full_width",
                "fields": [
                    "kvf_notes"
                ]
            }
        ],
        "field_render": {
            "kvf_inventory_number": {
                "style": "bold",
                "frame": true
            },
            "kvf_status": {
                "style": "highlight",
                "color_by_value": {
                    "in_service": "#1f8a1f",
                    "in_stock": "#888888",
                    "in_quarantine": "#e69500",
                    "retired": "#c00000",
                    "destroyed": "#555555"
                }
            },
            "kvf_kit_type": {
                "style": "highlight",
                "color_by_value": {
                    "Y_style_lanyard_with_energy_absorber": "#1f8a1f",
                    "brake_plate_legacy_banned": "#c00000"
                }
            },
            "kvf_recall_status": {
                "style": "highlight",
                "color_by_value": {
                    "subject_to_recall": "#c00000",
                    "no_recall_history": "#1f8a1f"
                }
            },
            "kvf_max_user_weight_kg": {
                "suffix": " kg"
            },
            "kvf_min_user_weight_kg": {
                "suffix": " kg"
            },
            "kvf_notes": {
                "min_height": 30,
                "show_if_empty": false
            }
        }
    }
}