@prefix sh:   <http://www.w3.org/ns/shacl#> .
@prefix rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .

@prefix gx:   <https://w3id.org/gaia-x/development#> .
@prefix sdcj:  <https://circularsolution.services/gxdch/sdcj/rdf/ontology#> .
@prefix schema: <https://schema.org/> .

#################################################################

sdcj:ParticipantShape
    a sh:NodeShape ;
    sh:targetClass sdcj:Participant ;

    sh:property [
        sh:path schema:name ;
        sh:datatype xsd:string ;
        sh:minCount 1 ;
        sh:maxCount 1 ;
    ] ;

    sh:property [
        sh:path gx:registrationNumber ;
        sh:class gx:CompanyRegistration ;
        sh:minCount 1 ;
        sh:maxCount 1 ;
    ] .

#################################################################

gx:CompanyRegistrationShape
    a sh:NodeShape ;
    sh:targetClass gx:CompanyRegistration ;

    sh:property [
        sh:path gx:countryCompanyNumber ;
        sh:datatype xsd:string ;
        sh:minCount 1 ;
        sh:maxCount 1 ;
    ] ;

    sh:property [
        sh:path gx:companyNumberQualifier ;
        sh:datatype xsd:string ;
        sh:minCount 1 ;
        sh:maxCount 1 ;
    ] ;

    sh:property [
        sh:path gx:countryCode ;
        sh:datatype xsd:string ;
        sh:minCount 1 ;
        sh:maxCount 1 ;
        sh:pattern "^[A-Z]{2}$" ;
    ] .
