@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix ex: <https://example.org/dc-hcv/vocabulary/> .
@prefix shape: <https://example.org/dc-hcv/shapes/> .

# A local application-profile rule expressed entirely in standard SHACL Core.
# The adapter supplies earliestIssueDate = agency request date - policy maximum age.
shape:DocumentAgeShape a sh:NodeShape ;
    sh:targetClass ex:DocumentAgeCheck ;
    sh:property [
        sh:path ex:issuedOn ; sh:minCount 1 ; sh:maxCount 1 ; sh:datatype xsd:date ;
        sh:lessThanOrEquals ex:requestDate ;
        sh:message "The document issue date must be on or before the agency request date." ;
    ] ;
    sh:property [
        sh:path ex:requestDate ; sh:minCount 1 ; sh:maxCount 1 ; sh:datatype xsd:date ;
    ] ;
    sh:property [
        sh:path ex:earliestIssueDate ; sh:minCount 1 ; sh:maxCount 1 ; sh:datatype xsd:date ;
        sh:lessThanOrEquals ex:issuedOn ;
        sh:message "The document must fall within the policy's age window before the agency request." ;
    ] .
