"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getMetadata = void 0;
var mdm_sdk_1 = require("@reltio/mdm-sdk");
var getMetadata = function () { return ({
    entityTypes: [
        {
            uri: 'configuration/entityTypes/HCA',
            label: 'HCA label',
            attributes: [
                {
                    label: 'Activation Date',
                    name: 'ActivationDate',
                    type: 'String',
                    uri: 'configuration/entityTypes/HCA/attributes/ActivationDate'
                },
                {
                    dependentLookupCode: 'COUNTRY_CD',
                    label: 'Country Code',
                    name: 'CountryCode',
                    type: 'String',
                    uri: 'configuration/entityTypes/HCA/attributes/CountryCode'
                },
                {
                    dependentLookupCode: 'HCA_TYP_CD',
                    label: 'Customer Type',
                    name: 'TypeCode',
                    type: 'String',
                    uri: 'configuration/entityTypes/HCA/attributes/TypeCode'
                },
                {
                    label: 'Customer Identity',
                    name: 'Identifiers',
                    type: 'Nested',
                    uri: 'configuration/entityTypes/HCA/attributes/Identifiers',
                    attributes: [
                        {
                            dependentLookupCode: 'IDNTY_TYP_CD',
                            label: 'Identity Type',
                            name: 'Type',
                            type: 'String',
                            uri: 'configuration/entityTypes/HCA/attributes/Identifiers/attributes/Type'
                        }
                    ]
                },
                {
                    label: 'Address',
                    name: 'Address',
                    referencedAttributeURIs: ['configuration/relationTypes/HasAddress/attributes/AdditionalAttributes'],
                    referencedEntityTypeURI: 'configuration/entityTypes/Location',
                    relationshipTypeURI: 'configuration/relationTypes/HasAddress',
                    system: false,
                    type: 'Reference',
                    uri: 'configuration/entityTypes/HCA/attributes/Address'
                }
            ]
        },
        {
            uri: 'configuration/entityTypes/HCP',
            label: 'HCP',
            attributes: [
                {
                    uri: 'configuration/entityTypes/HCP/attributes/FirstName',
                    label: 'First Name',
                    name: 'FirstName',
                    type: 'String',
                    required: true
                },
                {
                    uri: 'configuration/entityTypes/HCP/attributes/Boolean',
                    label: 'Boolean',
                    name: 'Boolean',
                    type: 'Boolean',
                    required: true
                },
                {
                    uri: 'configuration/entityTypes/HCP/attributes/Specialities',
                    label: 'Specialities',
                    name: 'Specialities',
                    type: 'Nested',
                    required: true,
                    attributes: [
                        {
                            uri: 'configuration/entityTypes/HCP/attributes/Specialities/attributes/SpecialityStatus',
                            label: 'Speciality Status',
                            name: 'SpecialityStatus',
                            type: 'String'
                        },
                        {
                            uri: 'configuration/entityTypes/HCP/attributes/Specialities/attributes/PrimarySpecialityInd',
                            label: 'Primary Speciality Ind',
                            name: 'PrimarySpecialityInd',
                            type: 'Boolean',
                            required: true
                        }
                    ]
                },
                {
                    uri: 'configuration/entityTypes/HCP/attributes/NestedAttr',
                    label: 'Nested Attr',
                    name: 'NestedAttr',
                    type: 'Nested',
                    attributes: [
                        {
                            uri: 'configuration/entityTypes/HCP/attributes/NestedAttr/attributes/Int',
                            label: 'Int',
                            name: 'Int',
                            type: 'String',
                            required: true
                        }
                    ]
                },
                {
                    uri: 'configuration/entityTypes/HCP/attributes/Address',
                    label: 'Address',
                    name: 'Address',
                    type: 'Reference',
                    referencedAttributeURIs: ['configuration/relationTypes/HasAddress/attributes/InternalPostCode'],
                    referencedEntityTypeURI: 'configuration/entityTypes/Location',
                    relationshipTypeURI: 'configuration/relationTypes/HasAddress'
                }
            ]
        },
        {
            uri: 'configuration/entityTypes/Location',
            label: 'Location',
            attributes: [
                {
                    uri: 'configuration/entityTypes/Location/attributes/AddressLine1',
                    label: 'AddressLine1',
                    name: 'AddressLine1',
                    type: 'String'
                },
                {
                    uri: 'configuration/entityTypes/Location/attributes/City',
                    label: 'City',
                    name: 'City',
                    type: 'String'
                }
            ]
        },
        {
            label: 'HCO',
            uri: 'configuration/entityTypes/HCO',
            attributes: [
                {
                    uri: 'configuration/entityTypes/HCO/attributes/Name',
                    name: 'Name',
                    type: 'String',
                    required: true
                },
                {
                    uri: 'configuration/entityTypes/HCO/attributes/WebsiteURL',
                    name: 'WebsiteURL',
                    type: 'String'
                },
                {
                    uri: 'configuration/entityTypes/HCO/attributes/ContactInfo',
                    label: 'Contact Info',
                    name: 'ContactInfo',
                    type: 'Nested',
                    attributes: [
                        {
                            uri: 'configuration/entityTypes/HCO/attributes/ContactInfo/attributes/Email',
                            label: 'Email',
                            name: 'Email',
                            type: 'String',
                            required: true
                        },
                        {
                            uri: 'configuration/entityTypes/HCO/attributes/ContactInfo/attributes/Phone',
                            label: 'Phone',
                            name: 'Phone',
                            type: 'String'
                        }
                    ]
                }
            ]
        }
    ],
    relationTypes: [
        {
            endObject: {
                uri: 'configuration/relationTypes/HasAddress/endObject',
                objectTypeURI: 'configuration/entityTypes/Location'
            },
            label: 'has address',
            startObject: {
                uri: 'configuration/relationTypes/HasAddress/startObject',
                objectTypeURI: 'configuration/entityTypes/Party'
            },
            uri: 'configuration/relationTypes/HasAddress',
            direction: mdm_sdk_1.RelationTypeDirection.directed,
            attributes: [
                {
                    label: 'Additional Attributes',
                    name: 'AdditionalAttributes',
                    type: 'Nested',
                    uri: 'configuration/relationTypes/HasAddress/attributes/AdditionalAttributes',
                    attributes: [
                        {
                            label: 'Attribute Type',
                            name: 'AttributeType',
                            type: 'String',
                            uri: 'configuration/relationTypes/HasAddress/attributes/AdditionalAttributes/attributes/AttributeType'
                        },
                        {
                            label: 'Attribute Value',
                            name: 'AttributeValue',
                            type: 'String',
                            uri: 'configuration/relationTypes/HasAddress/attributes/AdditionalAttributes/attributes/AttributeValue'
                        }
                    ]
                },
                {
                    uri: 'configuration/relationTypes/HasAddress/attributes/InternalPostCode',
                    label: 'Internal Post Code',
                    name: 'InternalPostCode',
                    type: 'String',
                    required: true
                }
            ]
        },
        {
            uri: 'configuration/relationTypes/Assistant',
            endObject: {
                objectTypeURI: 'configuration/entityTypes/HCO',
                uri: 'configuration/relationTypes/Assistant/endObject'
            },
            label: 'Assistant',
            attributes: [
                {
                    label: 'TestAttribute',
                    name: 'TestAttribute',
                    type: 'String',
                    uri: 'configuration/relationTypes/Assistant/attributes/TestAttribute'
                }
            ]
        },
        {
            uri: 'configuration/relationTypes/HCPtoHCA',
            label: 'HCP to HCA',
            attributes: [
                {
                    uri: 'configuration/relationTypes/HCPtoHCA/attributes/Status',
                    label: 'Status',
                    name: 'Status',
                    type: 'String'
                },
                {
                    uri: 'configuration/relationTypes/HCPtoHCA/attributes/NestedAttr',
                    label: 'Nested Attr',
                    name: 'NestedAttr',
                    type: 'Nested',
                    required: true,
                    attributes: [
                        {
                            uri: 'configuration/relationTypes/HCPtoHCA/attributes/NestedAttr/attributes/SubAttr',
                            label: 'Sub Attr',
                            name: 'SubAttr',
                            type: 'String'
                        }
                    ]
                }
            ]
        }
    ],
    roles: [
        {
            uri: 'configuration/roles/DirectorofNursing',
            label: 'Director of Nursing',
            description: 'Director of Nursing'
        },
        { uri: 'configuration/roles/MedicalAssistant', label: 'Medical Assistant', description: 'Medical Assistant' },
        { uri: 'configuration/roles/LabDirectors', label: 'Lab Directors', description: 'Lab Directors' }
    ]
}); };
exports.getMetadata = getMetadata;
