Unable to model promise engine in neo4j

Hi,

I am building promise engine which will predict the delivery date/time for customer and am trying to model and query below requirement in neo4j database but can't able to do it.

Any help will be highly appreciated

Thanks in Advance.

Node.json
{
"data": {
"node": {
"nodeId": "uuid",
"nodeName": "string",
"shortName": "string",
"operatorId": "uuid", // Not to be used for nodeType = ZONE, MACRONODE
"nodeType": "enum", // WAREHOUSE, STORE, CROSSDOCK_HUB, LOCKER, SELLER_HUB, PROVIDER_HUB, 3PL_HUB, ZONE, MACRONODE
"subType": "enum",
"tags": ["string"],
"references": [
{
"key": "string",
"value": "string"
}
],
"address": { // Not to be used for nodeType = ZONE, MACRONODE
"politicalAreaId": "uuid",
"addressLine1": "string",
"addressLine2": "string",
"addressLine3": "string",
"county": "string",
"city": "string",
"district": "string",
"state": "string",
"country": "string",
"postCode": "string",
"latitude": "string",
"longitude": "string",
"contact": [
{
"contactType": "string",
"value": "string"
}
]
},
"enabled": true,
"ranking": "numeric",
"services": [
{
"serviceType": "enum", // COLLECT, HOME_DELIVERY etc
"serviceCategory": [
"enum" // STANDARD, SAME_DAY, EXPRESS
],
"enabled": "boolean",
"offeredDaysAhead": "numeric",
"restrictions": {
"productTypes": ["string"],
"maxWeight": "numeric",
"weightUOM": "string",
"maxVolume": "numeric",
"volumeUOM": "string"
},
"operation": [
{
"dayOfWeek": ["string"],
"enabled": "boolean",
"deadLine": "string", // HH:MM format
"resources": [
{
"resourceId": "uuid"
}
]
}
]
}
],
"processes": [
{
"serviceType": "enum", // COLLECT, HOME_DELIVERY
"serviceCategory": [
"enum" // STANDARD, SAME_DAY, EXPRESS
],
"processType": "enum", // PICKING, RECEPTION
"enabled": "boolean",
//"offeredDaysAhead": "numeric",
"processTimeInMins": "numeric",
"restrictions": {
"productTypes": ["string"],
"maxStagingTimeInMins": "numeric",
"maxUnitWeight": "numeric",
"weightUOM": "string",
"maxUnitVolume": "numeric",
"volumeUOM": "string"
},
"operation": [
{
"dayOfWeek": ["string"],
"enabled": "boolean",
"startTime": "string", // HH:MM format
"endTime": "string", // HH:MM format
"resources": [
{
"resourceId": "uuid"
}
]
}
]
}
],
"macroNodeMembers": [ // Only for nodeType = MACRONODE
"uuid" // list of nodeId
],
"customInfo": [
{
"name": "string", //mandatory
"values": [
"string"
],
"group": "string"
}
],
"audit": {
"apiVersion": "string",
"createdAt": "utc_timestamp",
"createdBy": "uuid",
"lastModifiedAt": "utc_timestamp",
"lastModifiedBy": "uuid"
}
}
}
}

Resource.json
{
"data": {
"resource": {
"resourceId": "uuid",
"name": "string", // unique
"type": "enum", // DAILY, HOURLY
"parentResourceId": "uuid",
"capacity": [
// DAILY resources need capacities defining the 7 weekdays
// HOURLY resources need capacities defining 169 hours
{
"dayOfWeek": ["string"],
"hourOfDay": ["string"],
"maxVolume": "numeric",
"volumeUOM": "string",
"maxWeight": "numeric",
"weightUOM": "string",
"maxOrders": "numeric",
"maxUnits": "numeric"
}
]
},
"consumption": {
"resourceId": "uuid",
"type": "enum", // USE, RETURN
"source": "string", // Consumer reference system
"reference": "string", // id in the consumer reference system
"date": "date", // date
"hour": "numeric", // Optional - 0 to 23
"volume": "numeric",
"volumeUOM": "string",
"weight": "numeric",
"weightUOM": "string",
"orders": "numeric",
"units": "numeric"
},
"availability": {
"resourceId": "uuid",
"date": "date",
"hour": "numeric", // Optional depending on resource.type
"modified": "boolean",
"available": "boolean",
"maxVolume": "numeric",
"consumedVolume": "numeric",
"availableVolume": "numeric", //derived: maxVolumne - consumedVolume
"volumeUOM": "string",
"maxWeight": "numeric",
"consumedWeight": "numeric",
"availableWeight": "numeric", //derived: maxWeight - consumedWeight
"weightUOM": "string",
"maxOrders": "numeric",
"consumedOrders": "numeric",
"availableOrders": "numeric", //derived: maxOrders - consumedOrders
"maxUnits": "numeric",
"consumedUnits": "numeric",
"availableUnits": "numeric" //derived: maxUnits - consumedUnits
}
}
}

Dear Sir
Please visit the tool known as Bloom and get it installed on your Neo4j desktop. Use ETL tooling library to import the base model data into Neo4j Desktop environment and revisit data modelling exercise in bloom. Some queries can be automatically generated in bloom UI but for advanced data modelling queries you will have to write custom queries on your own based on the design constraints shown in bloom UI.
Sameer