820 lines
27 KiB
JSON
820 lines
27 KiB
JSON
{
|
|
"database": {
|
|
"puncs": [],
|
|
"enums": [
|
|
{
|
|
"id": "11111111-1111-1111-1111-111111111111",
|
|
"type": "relation_type",
|
|
"enum": "relation_type",
|
|
"values": [
|
|
"foreign_key",
|
|
"polymorphic",
|
|
"graph"
|
|
]
|
|
}
|
|
],
|
|
"relations": [
|
|
{
|
|
"id": "22222222-2222-2222-2222-222222222222",
|
|
"type": "relation",
|
|
"constraint": "fk_order_customer",
|
|
"source_type": "order",
|
|
"source_columns": [
|
|
"customer_id"
|
|
],
|
|
"destination_type": "person",
|
|
"destination_columns": [
|
|
"id"
|
|
],
|
|
"prefix": "customer"
|
|
},
|
|
{
|
|
"id": "33333333-3333-3333-3333-333333333333",
|
|
"type": "relation",
|
|
"constraint": "fk_order_line_order",
|
|
"source_type": "order_line",
|
|
"source_columns": [
|
|
"order_id"
|
|
],
|
|
"destination_type": "order",
|
|
"destination_columns": [
|
|
"id"
|
|
],
|
|
"prefix": "lines"
|
|
},
|
|
{
|
|
"id": "44444444-4444-4444-4444-444444444444",
|
|
"type": "relation",
|
|
"constraint": "fk_relationship_source_entity",
|
|
"source_type": "relationship",
|
|
"source_columns": [
|
|
"source_id",
|
|
"source_type"
|
|
],
|
|
"destination_type": "entity",
|
|
"destination_columns": [
|
|
"id",
|
|
"type"
|
|
],
|
|
"prefix": "source"
|
|
},
|
|
{
|
|
"id": "55555555-5555-5555-5555-555555555555",
|
|
"type": "relation",
|
|
"constraint": "fk_relationship_target_entity",
|
|
"source_type": "relationship",
|
|
"source_columns": [
|
|
"target_id",
|
|
"target_type"
|
|
],
|
|
"destination_type": "entity",
|
|
"destination_columns": [
|
|
"id",
|
|
"type"
|
|
],
|
|
"prefix": "target"
|
|
}
|
|
],
|
|
"types": [
|
|
{
|
|
"name": "entity",
|
|
"schemas": [
|
|
{
|
|
"$id": "entity",
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"type": "string"
|
|
},
|
|
"archived": {
|
|
"type": "boolean"
|
|
},
|
|
"created_by": {
|
|
"type": "string"
|
|
},
|
|
"modified_by": {
|
|
"type": "string"
|
|
},
|
|
"created_at": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"modified_at": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"type",
|
|
"created_by",
|
|
"created_at",
|
|
"modified_by",
|
|
"modified_at"
|
|
]
|
|
}
|
|
],
|
|
"hierarchy": [
|
|
"entity"
|
|
],
|
|
"fields": [
|
|
"id",
|
|
"type",
|
|
"created_at",
|
|
"created_by",
|
|
"modified_at",
|
|
"modified_by",
|
|
"archived"
|
|
],
|
|
"grouped_fields": {
|
|
"entity": [
|
|
"id",
|
|
"type",
|
|
"created_at",
|
|
"created_by",
|
|
"modified_at",
|
|
"modified_by",
|
|
"archived"
|
|
]
|
|
},
|
|
"lookup_fields": [],
|
|
"historical": true,
|
|
"notify": true,
|
|
"relationship": false
|
|
},
|
|
{
|
|
"name": "organization",
|
|
"schemas": [
|
|
{
|
|
"$id": "organization",
|
|
"$ref": "entity",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"hierarchy": [
|
|
"organization",
|
|
"entity"
|
|
],
|
|
"fields": [
|
|
"id",
|
|
"type",
|
|
"name",
|
|
"created_at",
|
|
"created_by",
|
|
"modified_at",
|
|
"modified_by",
|
|
"archived"
|
|
],
|
|
"grouped_fields": {
|
|
"organization": [
|
|
"id",
|
|
"type",
|
|
"name"
|
|
],
|
|
"entity": [
|
|
"id",
|
|
"type",
|
|
"created_at",
|
|
"created_by",
|
|
"modified_at",
|
|
"modified_by",
|
|
"archived"
|
|
]
|
|
},
|
|
"lookup_fields": [],
|
|
"historical": true,
|
|
"notify": true,
|
|
"relationship": false
|
|
},
|
|
{
|
|
"name": "user",
|
|
"schemas": [
|
|
{
|
|
"$id": "user",
|
|
"$ref": "organization",
|
|
"properties": {}
|
|
}
|
|
],
|
|
"hierarchy": [
|
|
"user",
|
|
"organization",
|
|
"entity"
|
|
],
|
|
"fields": [
|
|
"id",
|
|
"type",
|
|
"name",
|
|
"created_at",
|
|
"created_by",
|
|
"modified_at",
|
|
"modified_by",
|
|
"archived"
|
|
],
|
|
"grouped_fields": {
|
|
"user": [
|
|
"id",
|
|
"type"
|
|
],
|
|
"organization": [
|
|
"id",
|
|
"type",
|
|
"name"
|
|
],
|
|
"entity": [
|
|
"id",
|
|
"type",
|
|
"created_at",
|
|
"created_by",
|
|
"modified_at",
|
|
"modified_by",
|
|
"archived"
|
|
]
|
|
},
|
|
"lookup_fields": [],
|
|
"historical": true,
|
|
"notify": true,
|
|
"relationship": false
|
|
},
|
|
{
|
|
"name": "person",
|
|
"schemas": [
|
|
{
|
|
"$id": "person",
|
|
"$ref": "user",
|
|
"properties": {
|
|
"first_name": {
|
|
"type": "string"
|
|
},
|
|
"last_name": {
|
|
"type": "string"
|
|
},
|
|
"date_of_birth": {
|
|
"type": "string"
|
|
},
|
|
"pronouns": {
|
|
"type": "string"
|
|
},
|
|
"contact_id": {
|
|
"type": "string"
|
|
},
|
|
"contacts": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "contact",
|
|
"properties": {
|
|
"target": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "phone_number"
|
|
},
|
|
{
|
|
"$ref": "email_address"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"hierarchy": [
|
|
"person",
|
|
"user",
|
|
"organization",
|
|
"entity"
|
|
],
|
|
"fields": [
|
|
"id",
|
|
"type",
|
|
"first_name",
|
|
"last_name",
|
|
"date_of_birth",
|
|
"pronouns",
|
|
"contact_id",
|
|
"name",
|
|
"created_at",
|
|
"created_by",
|
|
"modified_at",
|
|
"modified_by",
|
|
"archived"
|
|
],
|
|
"grouped_fields": {
|
|
"person": [
|
|
"id",
|
|
"type",
|
|
"first_name",
|
|
"last_name",
|
|
"date_of_birth",
|
|
"pronouns",
|
|
"contact_id"
|
|
],
|
|
"user": [
|
|
"id",
|
|
"type"
|
|
],
|
|
"organization": [
|
|
"id",
|
|
"type",
|
|
"name"
|
|
],
|
|
"entity": [
|
|
"id",
|
|
"type",
|
|
"created_at",
|
|
"created_by",
|
|
"modified_at",
|
|
"modified_by",
|
|
"archived"
|
|
]
|
|
},
|
|
"lookup_fields": [
|
|
"first_name",
|
|
"last_name",
|
|
"date_of_birth",
|
|
"pronouns"
|
|
],
|
|
"historical": true,
|
|
"notify": true,
|
|
"relationship": false
|
|
},
|
|
{
|
|
"name": "order",
|
|
"schemas": [
|
|
{
|
|
"$id": "order",
|
|
"$ref": "entity",
|
|
"properties": {
|
|
"total": {
|
|
"type": "number"
|
|
},
|
|
"customer_id": {
|
|
"type": "string"
|
|
},
|
|
"customer": {
|
|
"$ref": "person"
|
|
},
|
|
"lines": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "order_line"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"hierarchy": [
|
|
"order",
|
|
"entity"
|
|
],
|
|
"fields": [
|
|
"id",
|
|
"type",
|
|
"total",
|
|
"customer_id",
|
|
"created_at",
|
|
"created_by",
|
|
"modified_at",
|
|
"modified_by",
|
|
"archived"
|
|
],
|
|
"grouped_fields": {
|
|
"order": [
|
|
"id",
|
|
"type",
|
|
"total",
|
|
"customer_id"
|
|
],
|
|
"entity": [
|
|
"id",
|
|
"type",
|
|
"created_at",
|
|
"created_by",
|
|
"modified_at",
|
|
"modified_by",
|
|
"archived"
|
|
]
|
|
},
|
|
"lookup_fields": [
|
|
"id"
|
|
],
|
|
"historical": true,
|
|
"notify": true,
|
|
"relationship": false
|
|
},
|
|
{
|
|
"name": "order_line",
|
|
"schemas": [
|
|
{
|
|
"$id": "order_line",
|
|
"$ref": "entity",
|
|
"properties": {
|
|
"order_id": {
|
|
"type": "string"
|
|
},
|
|
"product": {
|
|
"type": "string"
|
|
},
|
|
"price": {
|
|
"type": "number"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"hierarchy": [
|
|
"order_line",
|
|
"entity"
|
|
],
|
|
"fields": [
|
|
"id",
|
|
"type",
|
|
"order_id",
|
|
"product",
|
|
"price",
|
|
"created_at",
|
|
"created_by",
|
|
"modified_at",
|
|
"modified_by",
|
|
"archived"
|
|
],
|
|
"grouped_fields": {
|
|
"order_line": [
|
|
"id",
|
|
"type",
|
|
"order_id",
|
|
"product",
|
|
"price"
|
|
],
|
|
"entity": [
|
|
"id",
|
|
"type",
|
|
"created_at",
|
|
"created_by",
|
|
"modified_at",
|
|
"modified_by",
|
|
"archived"
|
|
]
|
|
},
|
|
"lookup_fields": [],
|
|
"historical": true,
|
|
"notify": true,
|
|
"relationship": false
|
|
},
|
|
{
|
|
"name": "relationship",
|
|
"relationship": true,
|
|
"hierarchy": [
|
|
"relationship",
|
|
"entity"
|
|
],
|
|
"fields": [
|
|
"source_id",
|
|
"source_type",
|
|
"target_id",
|
|
"target_type",
|
|
"id",
|
|
"type",
|
|
"name",
|
|
"archived",
|
|
"created_at",
|
|
"created_by",
|
|
"modified_at",
|
|
"modified_by"
|
|
],
|
|
"grouped_fields": {
|
|
"entity": [
|
|
"id",
|
|
"type",
|
|
"name",
|
|
"archived",
|
|
"created_at",
|
|
"created_by",
|
|
"modified_at",
|
|
"modified_by"
|
|
],
|
|
"relationship": [
|
|
"source_id",
|
|
"source_type",
|
|
"target_id",
|
|
"target_type"
|
|
]
|
|
},
|
|
"field_types": {
|
|
"id": "uuid",
|
|
"type": "text",
|
|
"archived": "boolean",
|
|
"source_id": "uuid",
|
|
"source_type": "text",
|
|
"target_id": "uuid",
|
|
"target_type": "text",
|
|
"name": "text",
|
|
"created_at": "timestamptz",
|
|
"created_by": "uuid",
|
|
"modified_at": "timestamptz",
|
|
"modified_by": "uuid"
|
|
},
|
|
"schemas": [
|
|
{
|
|
"$id": "relationship",
|
|
"$ref": "entity",
|
|
"properties": {}
|
|
}
|
|
],
|
|
"lookup_fields": [],
|
|
"historical": true,
|
|
"notify": true
|
|
},
|
|
{
|
|
"name": "contact",
|
|
"relationship": true,
|
|
"hierarchy": [
|
|
"contact",
|
|
"relationship",
|
|
"entity"
|
|
],
|
|
"fields": [
|
|
"is_primary",
|
|
"source_id",
|
|
"source_type",
|
|
"target_id",
|
|
"target_type",
|
|
"id",
|
|
"type",
|
|
"name",
|
|
"archived",
|
|
"created_at",
|
|
"created_by",
|
|
"modified_at",
|
|
"modified_by"
|
|
],
|
|
"grouped_fields": {
|
|
"entity": [
|
|
"id",
|
|
"type",
|
|
"name",
|
|
"archived",
|
|
"created_at",
|
|
"created_by",
|
|
"modified_at",
|
|
"modified_by"
|
|
],
|
|
"relationship": [
|
|
"source_id",
|
|
"source_type",
|
|
"target_id",
|
|
"target_type"
|
|
],
|
|
"contact": [
|
|
"is_primary"
|
|
]
|
|
},
|
|
"field_types": {
|
|
"id": "uuid",
|
|
"type": "text",
|
|
"archived": "boolean",
|
|
"source_id": "uuid",
|
|
"source_type": "text",
|
|
"target_id": "uuid",
|
|
"target_type": "text",
|
|
"is_primary": "boolean",
|
|
"name": "text",
|
|
"created_at": "timestamptz",
|
|
"created_by": "uuid",
|
|
"modified_at": "timestamptz",
|
|
"modified_by": "uuid"
|
|
},
|
|
"schemas": [
|
|
{
|
|
"$id": "contact",
|
|
"$ref": "relationship",
|
|
"properties": {
|
|
"is_primary": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"lookup_fields": [],
|
|
"historical": true,
|
|
"notify": true
|
|
},
|
|
{
|
|
"name": "phone_number",
|
|
"hierarchy": [
|
|
"phone_number",
|
|
"entity"
|
|
],
|
|
"fields": [
|
|
"number",
|
|
"id",
|
|
"type",
|
|
"name",
|
|
"archived",
|
|
"created_at",
|
|
"created_by",
|
|
"modified_at",
|
|
"modified_by"
|
|
],
|
|
"grouped_fields": {
|
|
"entity": [
|
|
"id",
|
|
"type",
|
|
"name",
|
|
"archived",
|
|
"created_at",
|
|
"created_by",
|
|
"modified_at",
|
|
"modified_by"
|
|
],
|
|
"phone_number": [
|
|
"number"
|
|
]
|
|
},
|
|
"field_types": {
|
|
"id": "uuid",
|
|
"type": "text",
|
|
"archived": "boolean",
|
|
"number": "text",
|
|
"name": "text",
|
|
"created_at": "timestamptz",
|
|
"created_by": "uuid",
|
|
"modified_at": "timestamptz",
|
|
"modified_by": "uuid"
|
|
},
|
|
"schemas": [
|
|
{
|
|
"$id": "phone_number",
|
|
"$ref": "entity",
|
|
"properties": {
|
|
"number": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"lookup_fields": [],
|
|
"historical": true,
|
|
"notify": true,
|
|
"relationship": false
|
|
},
|
|
{
|
|
"name": "email_address",
|
|
"hierarchy": [
|
|
"email_address",
|
|
"entity"
|
|
],
|
|
"fields": [
|
|
"address",
|
|
"id",
|
|
"type",
|
|
"name",
|
|
"archived",
|
|
"created_at",
|
|
"created_by",
|
|
"modified_at",
|
|
"modified_by"
|
|
],
|
|
"grouped_fields": {
|
|
"entity": [
|
|
"id",
|
|
"type",
|
|
"name",
|
|
"archived",
|
|
"created_at",
|
|
"created_by",
|
|
"modified_at",
|
|
"modified_by"
|
|
],
|
|
"email_address": [
|
|
"address"
|
|
]
|
|
},
|
|
"field_types": {
|
|
"id": "uuid",
|
|
"type": "text",
|
|
"archived": "boolean",
|
|
"address": "text",
|
|
"name": "text",
|
|
"created_at": "timestamptz",
|
|
"created_by": "uuid",
|
|
"modified_at": "timestamptz",
|
|
"modified_by": "uuid"
|
|
},
|
|
"schemas": [
|
|
{
|
|
"$id": "email_address",
|
|
"$ref": "entity",
|
|
"properties": {
|
|
"address": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"lookup_fields": [],
|
|
"historical": true,
|
|
"notify": true,
|
|
"relationship": false
|
|
},
|
|
{
|
|
"name": "attachment",
|
|
"schemas": [
|
|
{
|
|
"$id": "type_metadata",
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"$id": "other_metadata",
|
|
"type": "object",
|
|
"properties": {
|
|
"other": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"$id": "attachment",
|
|
"$ref": "entity",
|
|
"properties": {
|
|
"flags": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type_metadata": {
|
|
"$ref": "type_metadata"
|
|
},
|
|
"other_metadata": {
|
|
"$ref": "other_metadata"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"hierarchy": [
|
|
"attachment",
|
|
"entity"
|
|
],
|
|
"fields": [
|
|
"id",
|
|
"type",
|
|
"flags",
|
|
"type_metadata",
|
|
"other_metadata",
|
|
"created_at",
|
|
"created_by",
|
|
"modified_at",
|
|
"modified_by",
|
|
"archived"
|
|
],
|
|
"grouped_fields": {
|
|
"attachment": [
|
|
"id",
|
|
"type",
|
|
"flags",
|
|
"type_metadata",
|
|
"other_metadata"
|
|
],
|
|
"entity": [
|
|
"id",
|
|
"type",
|
|
"created_at",
|
|
"created_by",
|
|
"modified_at",
|
|
"modified_by",
|
|
"archived"
|
|
]
|
|
},
|
|
"field_types": {
|
|
"id": "uuid",
|
|
"type": "text",
|
|
"flags": "_text",
|
|
"type_metadata": "jsonb",
|
|
"other_metadata": "jsonb",
|
|
"created_at": "timestamptz",
|
|
"created_by": "uuid",
|
|
"modified_at": "timestamptz",
|
|
"modified_by": "uuid",
|
|
"archived": "boolean"
|
|
},
|
|
"lookup_fields": [],
|
|
"historical": true,
|
|
"notify": true,
|
|
"relationship": false
|
|
}
|
|
]
|
|
}
|
|
}
|