@prefix dsc: <https://settings.dscustody.sirt-xfsc.click/v1/ontology#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

dsc:ForensicLogShape
    a sh:NodeShape ;
    sh:targetClass dsc:ForensicLog ;
    sh:property [
        sh:path dsc:traceId ;
        sh:minCount 1 ;
        sh:datatype xsd:string ;
    ] ;
    sh:property [
        sh:path dsc:messageIssuer ;
        sh:maxCount 1 ;
    ] ;
    sh:property [
        sh:path dsc:data ;
        sh:minCount 1 ;
    ] ;
    sh:property [
        sh:path dsc:issuerSignatureData ;
        sh:maxCount 1 ;
        sh:class dsc:Signature ;
    ] ;
    sh:property [
        sh:path dsc:operatorSignature ;
        sh:maxCount 1 ;
        sh:class dsc:Signature ;
    ] .

dsc:ForensicManifestShape
    a sh:NodeShape ;
    sh:targetClass dsc:ForensicManifest ;
    sh:property [
        sh:path dsc:clearContentHash ;
        sh:minCount 1 ;
        sh:datatype xsd:string ;
    ] ;
    sh:property [
        sh:path dsc:instrument ;
        sh:minCount 1 ;
    ] ;
    sh:property [
        sh:path dsc:operator ;
        sh:minCount 1 ;
    ] .

dsc:ForensicOperationShape
    a sh:NodeShape ;
    sh:targetClass dsc:ForensicOperation ;
    sh:property [
        sh:path dsc:operationId ;
        sh:minCount 1 ;
        sh:datatype xsd:string ;
    ] ;
    sh:property [
        sh:path dsc:preexecutionData ;
        sh:minCount 1 ;
        sh:datatype xsd:string ;
    ] ;
    sh:property [
        sh:path dsc:postexecutionData ;
        sh:minCount 1 ;
        sh:datatype xsd:string ;
    ] .

dsc:ForensicOperationInstanceShape
    a sh:NodeShape ;
    sh:targetClass dsc:ForensicOperationInstance ;
    sh:property [
        sh:path dsc:operationInstanceId ;
        sh:minCount 1 ;
    ] ;
    sh:property [
        sh:path dsc:preconditions ;
        sh:minCount 1 ;
        sh:datatype xsd:string ;
    ] ;
    sh:property [
        sh:path dsc:postconditions ;
        sh:minCount 1 ;
        sh:datatype xsd:string ;
    ] .

dsc:ForensicEventShape
    a sh:NodeShape ;
    sh:targetClass dsc:ForensicEvent ;
    sh:property [
        sh:path <https://schema.org/issuer> ;
        sh:minCount 1 ;
    ] ;
    sh:property [
        sh:path <https://schema.org/description> ;
        sh:minCount 1 ;
        sh:datatype xsd:string ;
    ] .

dsc:VerificationReceiptShape
    a sh:NodeShape ;
    sh:targetClass dsc:VerificationReceipt ;
    sh:property [
        sh:path dsc:verifier ;
        sh:minCount 1 ;
    ] ;
    sh:property [
        sh:path dsc:verificationResult ;
        sh:minCount 1 ;
        sh:class dsc:VerificationResult ;
    ] .

dsc:DIDDocumentShape
    a sh:NodeShape ;
    sh:targetClass dsc:DIDDocument ;
    sh:property [
        sh:path <https://www.w3.org/ns/did#controller> ;
        sh:maxCount 1 ;
    ] .
