@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix schema: <https://schema.org/> .
@prefix dpp: <https://ns.verisav.fr/dpp#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix dcterms: <http://purl.org/dc/terms/> .

# ============================================================================
# Example: Complete DPP Scenario - All Vocabulary Features
# This comprehensive example demonstrates the full lifecycle of a product
# with warranty claims, multiple repairs, and end-of-life considerations
# Product: Demo Electric Bike (Fictitious but realistic)
# ============================================================================

<https://verisav.fr/data/dpp-examples/demo-product-complete#passport>
    a dpp:ProductPassport, schema:Product ;
    dcterms:title "Electric Bike Demo - Complete DPP Example"@en, "Vélo Électrique Démo - Exemple DPP Complet"@fr ;
    schema:name "CityEco E-Bike Model 2025" ;
    schema:description "Electric bicycle with comprehensive DPP tracking including full repair history"@en, "Vélo électrique avec suivi DPP complet incluant historique complet des réparations"@fr ;
    schema:brand [
        a schema:Brand ;
        schema:name "CityEco"
    ] ;
    schema:sku "CE-2025-M-001" ;
    schema:gtin "1234567890123" ;
    dpp:hasGtin "1234567890123" ;
    dpp:gs1DigitalLink "https://example.com/01/1234567890123/21/CE2025-M-12345" ;
    dpp:granularityLevel "serial" ;
    dpp:serialNumber "CE2025-M-12345" ;
    dpp:manufacturingDate "2025-01-10"^^xsd:date ;
    dpp:manufacturingLocation "Lyon, France" ;
    dpp:purchaseDate "2025-02-15"^^xsd:date ;
    dpp:purchasePrice "1299.00"^^xsd:decimal ;
    
    # Manufacturer
    dpp:hasManufacturer <https://verisav.fr/data/dpp-examples/demo-product-complete#manufacturer> ;
    
    # Retailer
    dpp:hasRetailer <https://verisav.fr/data/dpp-examples/demo-product-complete#retailer> ;
    
    # Warranty
    dpp:hasWarranty <https://verisav.fr/data/dpp-examples/demo-product-complete#warranty> ;
    
    # Warranty Claim
    dpp:hasWarrantyClaim <https://verisav.fr/data/dpp-examples/demo-product-complete#warranty-claim> ;
    
    # Multiple Service Requests
    dpp:hasServiceRequest <https://verisav.fr/data/dpp-examples/demo-product-complete#service-request-1> ;
    dpp:hasServiceRequest <https://verisav.fr/data/dpp-examples/demo-product-complete#service-request-2> ;
    
    # Work Orders
    dpp:hasWorkOrder <https://verisav.fr/data/dpp-examples/demo-product-complete#work-order-1> ;
    dpp:hasWorkOrder <https://verisav.fr/data/dpp-examples/demo-product-complete#work-order-2> ;
    
    # Documents
    dpp:hasDocument <https://verisav.fr/data/dpp-examples/demo-product-complete#invoice> ;
    dpp:hasDocument <https://verisav.fr/data/dpp-examples/demo-product-complete#manual> ;
    
    # Recycling Instructions
    dpp:hasRecyclingInstructions <https://verisav.fr/data/dpp-examples/demo-product-complete#recycling> ;
    
    # UNTP: Material Provenance (DPP-03)
    dpp:hasMaterialProvenance <https://verisav.fr/data/dpp-examples/demo-product-complete#material-aluminum> ;
    dpp:hasMaterialProvenance <https://verisav.fr/data/dpp-examples/demo-product-complete#material-steel> ;
    dpp:hasMaterialProvenance <https://verisav.fr/data/dpp-examples/demo-product-complete#material-lithium> ;
    
    # UNTP: Facility (DPP-04)
    dpp:hasFacility <https://verisav.fr/data/dpp-examples/demo-product-complete#facility> ;
    
    # Current Status
    dpp:hasCurrentStatus <https://verisav.fr/data/dpp-examples/demo-product-complete#status> ;
    
    # Lifecycle Stages (multiple stages)
    dpp:hasLifecycleStage <https://verisav.fr/data/dpp-examples/demo-product-complete#lifecycle-manufacturing> ;
    dpp:hasLifecycleStage <https://verisav.fr/data/dpp-examples/demo-product-complete#lifecycle-purchase> ;
    dpp:hasLifecycleStage <https://verisav.fr/data/dpp-examples/demo-product-complete#lifecycle-usage> ;
    
    # Consumer
    dpp:hasConsumer <https://verisav.fr/data/dpp-examples/demo-product-complete#consumer> .

# ============================================================================
# Organizations
# ============================================================================

<https://verisav.fr/data/dpp-examples/demo-product-complete#manufacturer>
    a dpp:Manufacturer, dpp:EconomicOperator, schema:Organization ;
    schema:name "CityEco Bikes" ;
    schema:url "https://www.cityeco.example" ;
    dpp:hasGln "1234567890128" ;
    schema:address [
        a schema:PostalAddress ;
        schema:addressLocality "Lyon" ;
        schema:postalCode "69001" ;
        schema:addressCountry "FR"
    ] .

<https://verisav.fr/data/dpp-examples/demo-product-complete#retailer>
    a dpp:Retailer, dpp:EconomicOperator, schema:Organization ;
    schema:name "Cycles & Co" ;
    schema:url "https://www.cyclesco.example" ;
    dpp:hasGln "1234567890129" .

# ============================================================================
# Warranty
# ============================================================================

<https://verisav.fr/data/dpp-examples/demo-product-complete#warranty>
    a dpp:Warranty ;
    dpp:warrantyType "manufacturer" ;
    dpp:warrantyStatus "active" ;
    dpp:warrantyStartDate "2025-02-15"^^xsd:date ;
    dpp:warrantyEndDate "2028-02-15"^^xsd:date ;
    dpp:warrantyDurationMonths 36 .

<https://verisav.fr/data/dpp-examples/demo-product-complete#warranty-claim>
    a dpp:WarrantyClaim ;
    schema:description "Frame alignment issue discovered after 3 months"@en, "Problème d'alignement du cadre découvert après 3 mois"@fr ;
    schema:dateCreated "2025-05-20"^^xsd:date ;
    schema:dateModified "2025-05-25"^^xsd:date ;
    schema:status "Resolved" .

# ============================================================================
# Service Requests
# ============================================================================

<https://verisav.fr/data/dpp-examples/demo-product-complete#service-request-1>
    a dpp:ServiceRequest ;
    dpp:claimDescription "Frame alignment issue - bike veers to the right"@en, "Problème d'alignement du cadre - vélo tire à droite"@fr ;
    dpp:claimStatus "resolue" ;
    dpp:claimPriority "normal" .

<https://verisav.fr/data/dpp-examples/demo-product-complete#service-request-2>
    a dpp:ServiceRequest ;
    dpp:claimDescription "Brake pad replacement needed - worn after 2000km"@en, "Remplacement des plaquettes de frein nécessaire - usées après 2000km"@fr ;
    dpp:claimStatus "resolue" ;
    dpp:claimPriority "normal" .

# ============================================================================
# Work Orders and Interventions
# ============================================================================

<https://verisav.fr/data/dpp-examples/demo-product-complete#work-order-1>
    a dpp:WorkOrder ;
    dpp:workOrderNumber "WO-2025-0567" ;
    dpp:workOrderStatus "complete" ;
    dpp:workOrderPriority "normal" ;
    dpp:workOrderForPassport <https://verisav.fr/data/dpp-examples/demo-product-complete#passport> ;
    dpp:hasIntervention <https://verisav.fr/data/dpp-examples/demo-product-complete#intervention-1> .

<https://verisav.fr/data/dpp-examples/demo-product-complete#intervention-1>
    a dpp:Intervention ;
    dpp:interventionType "reparation" ;
    dpp:interventionStartDate "2025-05-22T10:00:00+02:00"^^xsd:dateTime ;
    dpp:interventionEndDate "2025-05-22T14:30:00+02:00"^^xsd:dateTime ;
    dpp:interventionDuration 270 ;
    dpp:laborCost "120.00"^^xsd:decimal ;
    dpp:partsCost "0.00"^^xsd:decimal ;
    dpp:totalCost "120.00"^^xsd:decimal ;
    dpp:resolutionDescription "Frame realigned and tested - issue resolved under warranty"@en, "Cadre réaligné et testé - problème résolu sous garantie"@fr ;
    dpp:interventionForWorkOrder <https://verisav.fr/data/dpp-examples/demo-product-complete#work-order-1> ;
    dpp:hasRepairer <https://verisav.fr/data/dpp-examples/demo-product-complete#repairer-1> ;
    dpp:hasDiagnostic <https://verisav.fr/data/dpp-examples/demo-product-complete#diagnostic-1> .

<https://verisav.fr/data/dpp-examples/demo-product-complete#work-order-2>
    a dpp:WorkOrder ;
    dpp:workOrderNumber "WO-2025-0891" ;
    dpp:workOrderStatus "complete" ;
    dpp:workOrderPriority "normal" ;
    dpp:workOrderForPassport <https://verisav.fr/data/dpp-examples/demo-product-complete#passport> ;
    dpp:hasIntervention <https://verisav.fr/data/dpp-examples/demo-product-complete#intervention-2> .

<https://verisav.fr/data/dpp-examples/demo-product-complete#intervention-2>
    a dpp:Intervention ;
    dpp:interventionType "maintenance" ;
    dpp:interventionStartDate "2025-10-15T09:00:00+02:00"^^xsd:dateTime ;
    dpp:interventionEndDate "2025-10-15T10:15:00+02:00"^^xsd:dateTime ;
    dpp:interventionDuration 75 ;
    dpp:laborCost "45.00"^^xsd:decimal ;
    dpp:partsCost "35.00"^^xsd:decimal ;
    dpp:totalCost "80.00"^^xsd:decimal ;
    dpp:resolutionDescription "Brake pads replaced with OEM parts"@en, "Plaquettes de frein remplacées par des pièces d'origine"@fr ;
    dpp:interventionForWorkOrder <https://verisav.fr/data/dpp-examples/demo-product-complete#work-order-2> ;
    dpp:hasRepairer <https://verisav.fr/data/dpp-examples/demo-product-complete#repairer-2> ;
    dpp:hasReplacementPart <https://verisav.fr/data/dpp-examples/demo-product-complete#brake-pads> ;
    dpp:follows <https://verisav.fr/data/dpp-examples/demo-product-complete#intervention-1> .

<https://verisav.fr/data/dpp-examples/demo-product-complete#repairer-1>
    a dpp:Repairer, dpp:EconomicOperator, schema:Organization ;
    schema:name "Bike Repair Shop Lyon" ;
    dpp:hasGln "3012345678904" ;
    schema:address [
        a schema:PostalAddress ;
        schema:addressLocality "Lyon" ;
        schema:postalCode "69003" ;
        schema:addressCountry "FR"
    ] .

<https://verisav.fr/data/dpp-examples/demo-product-complete#repairer-2>
    a dpp:Repairer, dpp:EconomicOperator, schema:Organization ;
    schema:name "Eco Cycles Bordeaux" ;
    dpp:hasGln "3012345678905" ;
    schema:address [
        a schema:PostalAddress ;
        schema:addressLocality "Bordeaux" ;
        schema:postalCode "33000" ;
        schema:addressCountry "FR"
    ] .

<https://verisav.fr/data/dpp-examples/demo-product-complete#diagnostic-1>
    a dpp:Diagnostic ;
    dpp:diagnosticDescription "Visual inspection and test ride performed. Frame shows 3mm misalignment on front fork."@en, "Inspection visuelle et essai routier effectués. Cadre présente un désalignement de 3mm sur la fourche avant."@fr ;
    dpp:diagnosticResult "Frame alignment correction required"@en, "Correction de l'alignement du cadre requise"@fr .

<https://verisav.fr/data/dpp-examples/demo-product-complete#brake-pads>
    a dpp:ReplacementPart, schema:Product ;
    schema:name "CityEco Brake Pad Set (OEM)" ;
    dpp:partReference "CE-BP-2025-ORIG" ;
    dpp:partName "Brake Pad Set Original" .

# ============================================================================
# Documents
# ============================================================================

<https://verisav.fr/data/dpp-examples/demo-product-complete#invoice>
    a dpp:Document, schema:Invoice ;
    schema:name "Purchase Invoice"@en, "Facture d'achat"@fr ;
    schema:invoiceNumber "INV-2025-00234" ;
    schema:dateCreated "2025-02-15"^^xsd:date ;
    schema:totalPaymentDue [
        a schema:MonetaryAmount ;
        schema:value "1299.00" ;
        schema:currency "EUR"
    ] .

<https://verisav.fr/data/dpp-examples/demo-product-complete#manual>
    a dpp:Document, schema:DigitalDocument ;
    schema:name "User Manual CityEco 2025"@en, "Notice d'utilisation CityEco 2025"@fr ;
    schema:description "Complete user manual with maintenance instructions"@en, "Notice d'utilisation complète avec instructions d'entretien"@fr ;
    schema:url "https://www.cityeco.example/manuals/2025" .

# ============================================================================
# UNTP: Material Provenance (DPP-03)
# ============================================================================

<https://verisav.fr/data/dpp-examples/demo-product-complete#material-aluminum>
    a dpp:MaterialProvenance ;
    dpp:materialName "Aluminum" ;
    dpp:massFraction 0.45 ;
    dpp:originCountry "FR" ;
    dpp:originRegion "Auvergne-Rhône-Alpes" .

<https://verisav.fr/data/dpp-examples/demo-product-complete#material-steel>
    a dpp:MaterialProvenance ;
    dpp:materialName "Steel" ;
    dpp:massFraction 0.30 ;
    dpp:originCountry "FR" .

<https://verisav.fr/data/dpp-examples/demo-product-complete#material-lithium>
    a dpp:MaterialProvenance ;
    dpp:materialName "Lithium (Battery)" ;
    dpp:massFraction 0.25 ;
    dpp:originCountry "CL" ;
    dpp:originRegion "Atacama" .

# ============================================================================
# UNTP: Facility (DPP-04)
# ============================================================================

<https://verisav.fr/data/dpp-examples/demo-product-complete#facility>
    a dpp:Facility, schema:Place ;
    schema:name "CityEco Manufacturing Facility" ;
    dpp:hasGln "1234567890130" ;
    schema:address [
        a schema:PostalAddress ;
        schema:addressLocality "Lyon" ;
        schema:postalCode "69001" ;
        schema:addressCountry "FR"
    ] .

# ============================================================================
# Recycling
# ============================================================================

<https://verisav.fr/data/dpp-examples/demo-product-complete#recycling>
    a dpp:RecyclingInstructions ;
    schema:description "Electric bike contains lithium battery (removable), aluminum frame, and electronic components. Battery must be recycled at certified facilities. Frame and components can be recycled through standard bike recycling programs."@en, "Vélo électrique contient batterie lithium (amovible), cadre aluminium et composants électroniques. La batterie doit être recyclée dans des installations certifiées. Le cadre et les composants peuvent être recyclés via les programmes standard de recyclage de vélos."@fr ;
    schema:url "https://www.cityeco.example/recycling" .

# ============================================================================
# Status and Lifecycle
# ============================================================================

<https://verisav.fr/data/dpp-examples/demo-product-complete#status>
    a dpp:ProductStatus ;
    dpp:productStatus "sous_garantie" ;
    dpp:productStatusDate "2025-10-15"^^xsd:date .

<https://verisav.fr/data/dpp-examples/demo-product-complete#lifecycle-manufacturing>
    a dpp:ProductLifecycleStage ;
    dpp:lifecycleStageName "manufacturing" ;
    dpp:lifecycleStageDate "2025-01-10"^^xsd:date .

<https://verisav.fr/data/dpp-examples/demo-product-complete#lifecycle-purchase>
    a dpp:ProductLifecycleStage ;
    dpp:lifecycleStageName "purchase" ;
    dpp:lifecycleStageDate "2025-02-15"^^xsd:date .

<https://verisav.fr/data/dpp-examples/demo-product-complete#lifecycle-usage>
    a dpp:ProductLifecycleStage ;
    dpp:lifecycleStageName "usage" ;
    dpp:lifecycleStageDate "2025-02-16"^^xsd:date .

# ============================================================================
# Consumer
# ============================================================================

<https://verisav.fr/data/dpp-examples/demo-product-complete#consumer>
    a dpp:Consumer, schema:Person ;
    schema:name "Alexandre Rousseau" ;
    schema:email "alexandre.rousseau@example.com" .

