[ { "description": "Queryer Execution", "database": { "puncs": [ { "name": "get_organization", "schemas": { "get_organization.response": { "type": "organization" } } }, { "name": "get_organizations", "schemas": { "get_organizations.response": { "type": "array", "items": { "family": "organization" } } } }, { "name": "get_light_organization", "schemas": { "get_light_organization.response": { "family": "light.organization" } } }, { "name": "get_full_organization", "schemas": { "get_full_organization.response": { "family": "full.organization" } } }, { "name": "get_orders", "schemas": { "get_orders.response": { "type": "array", "items": { "type": "light.order" } } } }, { "name": "get_widgets", "schemas": { "get_widgets.response": { "type": "array", "items": { "family": "widget" } } } }, { "name": "get_counterparty_orders", "schemas": { "get_counterparty_orders.response": { "type": "array", "items": { "type": "counterparty.order" } } } } ], "enums": [], "relations": [ { "type": "relation", "id": "00000000-0000-0000-0000-000000000001", "constraint": "fk_relationship_source_entity", "source_type": "relationship", "source_columns": [ "source_id", "source_type" ], "destination_type": "entity", "destination_columns": [ "id", "type" ], "prefix": "source" }, { "type": "relation", "id": "00000000-0000-0000-0000-000000000002", "constraint": "fk_relationship_target_entity", "source_type": "relationship", "source_columns": [ "target_id", "target_type" ], "destination_type": "entity", "destination_columns": [ "id", "type" ], "prefix": "target" }, { "id": "22222222-2222-2222-2222-222222222222", "type": "relation", "constraint": "fk_order_customer_person", "source_type": "order", "source_columns": [ "customer_id" ], "destination_type": "person", "destination_columns": [ "id" ], "prefix": "customer" }, { "id": "22222222-2222-2222-2222-222222222227", "type": "relation", "constraint": "fk_order_counterparty_entity", "source_type": "order", "source_columns": [ "counterparty_id", "counterparty_type" ], "destination_type": "entity", "destination_columns": [ "id", "type" ], "prefix": "counterparty" }, { "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" ] }, { "id": "33333333-3333-3333-3333-333333333334", "type": "relation", "constraint": "fk_invoice_line_invoice", "source_type": "invoice_line", "source_columns": [ "invoice_id" ], "destination_type": "invoice", "destination_columns": [ "id" ] } ], "types": [ { "name": "entity", "hierarchy": [ "entity" ], "grouped_fields": { "entity": [ "id", "type", "archived", "created_at" ] }, "field_types": { "id": "uuid", "archived": "boolean", "created_at": "timestamptz", "type": "text" }, "schemas": { "entity": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "type": { "type": "string" }, "archived": { "type": "boolean" }, "created_at": { "type": "string", "format": "date-time" }, "created": { "type": "boolean" } } } }, "fields": [ "id", "type", "archived", "created_at" ], "variations": [ "address", "bot", "contact", "email_address", "entity", "order", "order_line", "organization", "person", "phone_number", "relationship" ] }, { "name": "organization", "hierarchy": [ "entity", "organization" ], "fields": [ "id", "type", "name", "archived", "created_at" ], "grouped_fields": { "entity": [ "id", "type", "archived", "created_at" ], "organization": [ "name" ] }, "field_types": { "id": "uuid", "type": "text", "archived": "boolean", "name": "text", "created_at": "timestamptz" }, "lookup_fields": [ "id" ], "null_fields": [], "default_fields": [ "id", "type", "created_at", "archived" ], "variations": [ "bot", "organization", "person" ], "schemas": { "organization": { "type": "entity", "properties": { "name": { "type": "string" } } } } }, { "name": "bot", "hierarchy": [ "entity", "organization", "bot" ], "fields": [ "token", "id", "type", "name", "archived", "created_at", "token", "role" ], "grouped_fields": { "entity": [ "id", "type", "archived", "created_at" ], "organization": [ "name" ], "bot": [ "token", "role" ] }, "field_types": { "id": "uuid", "type": "text", "archived": "boolean", "name": "text", "token": "text", "role": "text", "created_at": "timestamptz" }, "schemas": { "bot": { "type": "organization", "properties": { "token": { "type": "string" }, "role": { "type": "string" } } }, "light.bot": { "type": "organization", "properties": { "token": { "type": "string" } } } }, "variations": [ "bot" ] }, { "name": "person", "hierarchy": [ "entity", "organization", "person" ], "fields": [ "first_name", "last_name", "id", "type", "name", "age", "archived", "created_at" ], "grouped_fields": { "entity": [ "id", "type", "archived", "created_at" ], "organization": [ "name" ], "person": [ "first_name", "last_name", "age" ] }, "field_types": { "id": "uuid", "type": "text", "archived": "boolean", "first_name": "text", "last_name": "text", "name": "text", "age": "numeric", "created_at": "timestamptz" }, "schemas": { "person": { "type": "organization", "properties": { "first_name": { "type": "string" }, "last_name": { "type": "string" }, "age": { "type": "number" } } }, "light.person": { "type": "organization", "properties": { "first_name": { "type": "string" }, "last_name": { "type": "string" } } }, "full.person": { "type": "person", "properties": { "phone_numbers": { "type": "array", "items": { "type": "contact", "properties": { "target": { "type": "phone_number" } } } }, "email_addresses": { "type": "array", "items": { "type": "contact", "properties": { "target": { "type": "email_address" } } } }, "addresses": { "type": "array", "items": { "type": "contact", "properties": { "target": { "type": "address" } } } }, "contacts": { "type": "array", "items": { "type": "contact", "properties": { "target": { "oneOf": [ { "type": "phone_number" }, { "type": "email_address" }, { "type": "address" } ] } } } } } } }, "variations": [ "person" ] }, { "name": "relationship", "relationship": true, "hierarchy": [ "entity", "relationship" ], "fields": [ "source_id", "source_type", "target_id", "target_type", "id", "type", "archived", "created_at" ], "grouped_fields": { "entity": [ "id", "type", "archived", "created_at" ], "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", "created_at": "timestamptz" }, "schemas": { "relationship": { "type": "entity", "properties": {} } }, "variations": [ "contact", "relationship" ] }, { "name": "contact", "relationship": true, "hierarchy": [ "entity", "relationship", "contact" ], "fields": [ "is_primary", "source_id", "source_type", "target_id", "target_type", "id", "type", "archived", "created_at" ], "grouped_fields": { "entity": [ "id", "type", "archived", "created_at" ], "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", "created_at": "timestamptz" }, "schemas": { "contact": { "type": "relationship", "properties": { "is_primary": { "type": "boolean" } } } }, "variations": [ "contact" ] }, { "name": "phone_number", "hierarchy": [ "entity", "phone_number" ], "fields": [ "number", "id", "type", "archived", "created_at" ], "grouped_fields": { "entity": [ "id", "type", "archived", "created_at" ], "phone_number": [ "number" ] }, "field_types": { "id": "uuid", "type": "text", "archived": "boolean", "number": "text", "created_at": "timestamptz" }, "schemas": { "phone_number": { "type": "entity", "properties": { "number": { "type": "string" } } } }, "variations": [ "phone_number" ] }, { "name": "email_address", "hierarchy": [ "entity", "email_address" ], "fields": [ "address", "id", "type", "archived", "created_at" ], "grouped_fields": { "entity": [ "id", "type", "archived", "created_at" ], "email_address": [ "address" ] }, "field_types": { "id": "uuid", "type": "text", "archived": "boolean", "address": "text", "created_at": "timestamptz" }, "schemas": { "email_address": { "type": "entity", "properties": { "address": { "type": "string" } } } }, "variations": [ "email_address" ] }, { "name": "address", "hierarchy": [ "entity", "address" ], "fields": [ "city", "id", "type", "archived", "created_at" ], "grouped_fields": { "entity": [ "id", "type", "archived", "created_at" ], "address": [ "city" ] }, "field_types": { "id": "uuid", "type": "text", "archived": "boolean", "city": "text", "created_at": "timestamptz" }, "schemas": { "address": { "type": "entity", "properties": { "city": { "type": "string" } } } }, "variations": [ "address" ] }, { "name": "order", "schemas": { "order": { "type": "entity", "properties": { "total": { "type": "number" }, "customer_id": { "type": "string" } } }, "counterparty.order": { "type": "order", "properties": { "counterparty": { "family": "organization" } } }, "light.order": { "type": "order", "properties": { "customer": { "type": "person" } } }, "full.order": { "type": "order", "properties": { "customer": { "type": "person" }, "lines": { "type": "array", "items": { "type": "order_line" } } } } }, "hierarchy": [ "entity", "order" ], "fields": [ "id", "type", "total", "customer_id", "created_at", "archived", "counterparty_id", "counterparty_type" ], "grouped_fields": { "order": [ "id", "type", "total", "customer_id", "counterparty_id", "counterparty_type" ], "entity": [ "id", "type", "created_at", "archived" ] }, "lookup_fields": [ "id" ], "historical": true, "relationship": false, "field_types": { "id": "uuid", "type": "text", "archived": "boolean", "total": "numeric", "customer_id": "uuid", "created_at": "timestamptz", "created_by": "uuid", "modified_at": "timestamptz", "modified_by": "uuid", "counterparty_id": "uuid", "counterparty_type": "text" }, "variations": [ "order" ] }, { "name": "order_line", "schemas": { "order_line": { "type": "entity", "properties": { "order_id": { "type": "string" }, "product": { "type": "string" }, "price": { "type": "number" } } } }, "hierarchy": [ "entity", "order_line" ], "fields": [ "id", "type", "order_id", "product", "price", "created_at", "archived" ], "grouped_fields": { "order_line": [ "id", "type", "order_id", "product", "price" ], "entity": [ "id", "type", "created_at", "archived" ] }, "lookup_fields": [], "historical": true, "relationship": false, "field_types": { "id": "uuid", "type": "text", "archived": "boolean", "order_id": "uuid", "product": "text", "price": "numeric", "created_at": "timestamptz" }, "variations": [ "order_line" ] }, { "name": "widget", "hierarchy": [ "entity", "widget" ], "fields": [ "id", "type", "kind", "archived", "created_at" ], "grouped_fields": { "entity": [ "id", "type", "archived", "created_at" ], "widget": [ "kind" ] }, "field_types": { "id": "uuid", "type": "text", "kind": "text", "archived": "boolean", "created_at": "timestamptz" }, "variations": [ "widget" ], "schemas": { "widget": { "type": "entity", "properties": { "kind": { "type": "string" } } }, "stock.widget": { "type": "widget", "properties": {} }, "tasks.widget": { "type": "widget", "properties": {} } } }, { "name": "account", "hierarchy": [ "entity", "account" ], "fields": [ "id", "type", "kind", "archived", "created_at", "routing_number", "card_number" ], "grouped_fields": { "entity": [ "id", "type", "archived", "created_at" ], "account": [ "kind", "routing_number", "card_number" ] }, "field_types": { "id": "uuid", "type": "text", "kind": "text", "archived": "boolean", "created_at": "timestamptz", "routing_number": "text", "card_number": "text" }, "variations": [ "account" ], "schemas": { "account": { "type": "entity", "properties": { "kind": { "type": "string" } }, "cases": [ { "when": { "properties": { "kind": { "const": "checking" } } }, "then": { "properties": { "routing_number": { "type": "string" } } } }, { "when": { "properties": { "kind": { "const": "credit" } } }, "then": { "properties": { "card_number": { "type": "string" } } } } ] } } }, { "name": "invoice", "schemas": { "invoice": { "type": "entity", "properties": { "total": { "type": "number" }, "lines": { "type": "array", "items": { "type": "invoice_line" } }, "metadata_line": { "type": "invoice_line" }, "metadata_lines": { "type": "array", "items": { "type": "invoice_line" } }, "metadata_nested_line": { "type": "object", "properties": { "line": { "type": "invoice_line" } } }, "metadata_nested_lines": { "type": "object", "properties": { "lines": { "type": "array", "items": { "type": "invoice_line" } } } } } } }, "hierarchy": [ "entity", "invoice" ], "fields": [ "id", "type", "total", "metadata_line", "metadata_lines", "metadata_nested_line", "metadata_nested_lines", "created_at", "archived" ], "grouped_fields": { "invoice": [ "id", "type", "total", "metadata_line", "metadata_lines", "metadata_nested_line", "metadata_nested_lines" ], "entity": [ "id", "type", "created_at", "archived" ] }, "lookup_fields": [ "id" ], "historical": true, "relationship": false, "field_types": { "id": "uuid", "type": "text", "archived": "boolean", "total": "numeric", "metadata_line": "jsonb", "metadata_lines": "jsonb", "metadata_nested_line": "jsonb", "metadata_nested_lines": "jsonb", "created_at": "timestamptz", "created_by": "uuid", "modified_at": "timestamptz", "modified_by": "uuid" }, "variations": [ "invoice" ] }, { "name": "invoice_line", "schemas": { "invoice_line": { "type": "entity", "properties": { "invoice_id": { "type": "string" }, "price": { "type": "number" } } } }, "hierarchy": [ "entity", "invoice_line" ], "fields": [ "id", "type", "invoice_id", "price", "created_at", "archived" ], "grouped_fields": { "invoice_line": [ "id", "type", "invoice_id", "price" ], "entity": [ "id", "type", "created_at", "created_by", "modified_at", "modified_by", "archived" ] }, "lookup_fields": [], "historical": true, "relationship": false, "field_types": { "id": "uuid", "type": "text", "archived": "boolean", "invoice_id": "uuid", "price": "numeric", "created_at": "timestamptz" }, "variations": [ "invoice_line" ] } ] }, "tests": [ { "description": "Simple entity select", "action": "query", "schema_id": "entity", "expect": { "success": true, "sql": [ [ "((SELECT jsonb_strip_nulls((", " SELECT jsonb_build_object(", " 'id', entity_1.id,", " 'type', entity_1.type,", " 'archived', entity_1.archived,", " 'created_at', entity_1.created_at", " )", " FROM agreego.entity entity_1", " WHERE", " NOT entity_1.archived", "))))" ] ] } }, { "description": "Simple entity select with multiple filters", "action": "query", "schema_id": "entity", "filter": { "id": { "$eq": "123e4567-e89b-12d3-a456-426614174000", "$ne": "123e4567-e89b-12d3-a456-426614174001", "$of": [ "123e4567-e89b-12d3-a456-426614174000" ], "$nof": [ "123e4567-e89b-12d3-a456-426614174001" ] }, "created_at": { "$eq": "2023-01-01T00:00:00Z", "$ne": "2023-01-02T00:00:00Z", "$gt": "2022-01-01T00:00:00Z", "$gte": "2022-01-02T00:00:00Z", "$lt": "2024-01-01T00:00:00Z", "$lte": "2024-01-02T00:00:00Z" }, "archived": { "$eq": false, "$ne": true } }, "expect": { "success": true, "sql": [ [ "((SELECT jsonb_strip_nulls((", " SELECT jsonb_build_object(", " 'id', entity_1.id,", " 'type', entity_1.type,", " 'archived', entity_1.archived,", " 'created_at', entity_1.created_at", " )", " FROM agreego.entity entity_1", " WHERE", " NOT entity_1.archived", " AND entity_1.archived = ($1 #>> '{}')::BOOLEAN", " AND entity_1.archived <> ($2 #>> '{}')::BOOLEAN", " AND entity_1.created_at = ($3 #>> '{}')::TIMESTAMPTZ", " AND entity_1.created_at > ($4 #>> '{}')::TIMESTAMPTZ", " AND entity_1.created_at >= ($5 #>> '{}')::TIMESTAMPTZ", " AND entity_1.created_at < ($6 #>> '{}')::TIMESTAMPTZ", " AND entity_1.created_at <= ($7 #>> '{}')::TIMESTAMPTZ", " AND entity_1.created_at <> ($8 #>> '{}')::TIMESTAMPTZ", " AND entity_1.id = ($9 #>> '{}')::UUID", " AND entity_1.id <> ($10 #>> '{}')::UUID", " AND entity_1.id NOT IN (SELECT value::UUID FROM jsonb_array_elements_text(($11 #>> '{}')::jsonb))", " AND entity_1.id IN (SELECT value::UUID FROM jsonb_array_elements_text(($12 #>> '{}')::jsonb))", "))))" ] ] } }, { "description": "Person select on base schema", "action": "query", "schema_id": "person", "expect": { "success": true, "sql": [ [ "((SELECT jsonb_strip_nulls((", " SELECT jsonb_build_object(", " 'id', entity_1.id,", " 'type', entity_1.type,", " 'archived', entity_1.archived,", " 'created_at', entity_1.created_at,", " 'name', organization_2.name,", " 'first_name', person_3.first_name,", " 'last_name', person_3.last_name,", " 'age', person_3.age", " )", " FROM agreego.entity entity_1", " JOIN agreego.organization organization_2 ON organization_2.id = entity_1.id", " JOIN agreego.person person_3 ON person_3.id = organization_2.id", " WHERE", " NOT entity_1.archived", "))))" ] ] } }, { "description": "Person select on full schema", "action": "query", "schema_id": "full.person", "expect": { "success": true, "sql": [ [ "((SELECT jsonb_strip_nulls((", " SELECT jsonb_build_object(", " 'id', entity_1.id,", " 'type', entity_1.type,", " 'archived', entity_1.archived,", " 'created_at', entity_1.created_at,", " 'name', organization_2.name,", " 'first_name', person_3.first_name,", " 'last_name', person_3.last_name,", " 'age', person_3.age,", " 'phone_numbers', (", " SELECT COALESCE(jsonb_agg(jsonb_build_object(", " 'id', entity_4.id,", " 'type', entity_4.type,", " 'archived', entity_4.archived,", " 'created_at', entity_4.created_at,", " 'is_primary', contact_6.is_primary,", " 'target', (", " SELECT jsonb_build_object(", " 'id', entity_7.id,", " 'type', entity_7.type,", " 'archived', entity_7.archived,", " 'created_at', entity_7.created_at,", " 'number', phone_number_8.number", " )", " FROM agreego.entity entity_7", " JOIN agreego.phone_number phone_number_8 ON phone_number_8.id = entity_7.id", " WHERE", " NOT entity_7.archived", " AND relationship_5.target_id = entity_7.id", " )", " )), '[]'::jsonb)", " FROM agreego.entity entity_4", " JOIN agreego.relationship relationship_5 ON relationship_5.id = entity_4.id", " JOIN agreego.contact contact_6 ON contact_6.id = relationship_5.id", " WHERE", " NOT entity_4.archived", " AND relationship_5.target_type = 'phone_number'", " AND relationship_5.source_id = entity_1.id", " ),", " 'email_addresses', (", " SELECT COALESCE(jsonb_agg(jsonb_build_object(", " 'id', entity_9.id,", " 'type', entity_9.type,", " 'archived', entity_9.archived,", " 'created_at', entity_9.created_at,", " 'is_primary', contact_11.is_primary,", " 'target', (", " SELECT jsonb_build_object(", " 'id', entity_12.id,", " 'type', entity_12.type,", " 'archived', entity_12.archived,", " 'created_at', entity_12.created_at,", " 'address', email_address_13.address", " )", " FROM agreego.entity entity_12", " JOIN agreego.email_address email_address_13 ON email_address_13.id = entity_12.id", " WHERE", " NOT entity_12.archived", " AND relationship_10.target_id = entity_12.id", " )", " )), '[]'::jsonb)", " FROM agreego.entity entity_9", " JOIN agreego.relationship relationship_10 ON relationship_10.id = entity_9.id", " JOIN agreego.contact contact_11 ON contact_11.id = relationship_10.id", " WHERE", " NOT entity_9.archived", " AND relationship_10.target_type = 'email_address'", " AND relationship_10.source_id = entity_1.id", " ),", " 'addresses', (", " SELECT COALESCE(jsonb_agg(jsonb_build_object(", " 'id', entity_14.id,", " 'type', entity_14.type,", " 'archived', entity_14.archived,", " 'created_at', entity_14.created_at,", " 'is_primary', contact_16.is_primary,", " 'target', (", " SELECT jsonb_build_object(", " 'id', entity_17.id,", " 'type', entity_17.type,", " 'archived', entity_17.archived,", " 'created_at', entity_17.created_at,", " 'city', address_18.city", " )", " FROM agreego.entity entity_17", " JOIN agreego.address address_18 ON address_18.id = entity_17.id", " WHERE", " NOT entity_17.archived", " AND relationship_15.target_id = entity_17.id", " )", " )), '[]'::jsonb)", " FROM agreego.entity entity_14", " JOIN agreego.relationship relationship_15 ON relationship_15.id = entity_14.id", " JOIN agreego.contact contact_16 ON contact_16.id = relationship_15.id", " WHERE", " NOT entity_14.archived", " AND relationship_15.target_type = 'address'", " AND relationship_15.source_id = entity_1.id", " ),", " 'contacts', (", " SELECT COALESCE(jsonb_agg(jsonb_build_object(", " 'id', entity_19.id,", " 'type', entity_19.type,", " 'archived', entity_19.archived,", " 'created_at', entity_19.created_at,", " 'is_primary', contact_21.is_primary,", " 'target', CASE", " WHEN relationship_20.target_type = 'phone_number' THEN ((", " SELECT jsonb_build_object(", " 'id', entity_22.id,", " 'type', entity_22.type,", " 'archived', entity_22.archived,", " 'created_at', entity_22.created_at,", " 'number', phone_number_23.number", " )", " FROM agreego.entity entity_22", " JOIN agreego.phone_number phone_number_23 ON phone_number_23.id = entity_22.id", " WHERE", " NOT entity_22.archived", " AND relationship_20.target_id = entity_22.id", " ))", " WHEN relationship_20.target_type = 'email_address' THEN ((", " SELECT jsonb_build_object(", " 'id', entity_24.id,", " 'type', entity_24.type,", " 'archived', entity_24.archived,", " 'created_at', entity_24.created_at,", " 'address', email_address_25.address", " )", " FROM agreego.entity entity_24", " JOIN agreego.email_address email_address_25 ON email_address_25.id = entity_24.id", " WHERE", " NOT entity_24.archived", " AND relationship_20.target_id = entity_24.id", " ))", " WHEN relationship_20.target_type = 'address' THEN ((", " SELECT jsonb_build_object(", " 'id', entity_26.id,", " 'type', entity_26.type,", " 'archived', entity_26.archived,", " 'created_at', entity_26.created_at,", " 'city', address_27.city", " )", " FROM agreego.entity entity_26", " JOIN agreego.address address_27 ON address_27.id = entity_26.id", " WHERE", " NOT entity_26.archived", " AND relationship_20.target_id = entity_26.id", " ))", " ELSE NULL", " END", " )), '[]'::jsonb)", " FROM agreego.entity entity_19", " JOIN agreego.relationship relationship_20 ON relationship_20.id = entity_19.id", " JOIN agreego.contact contact_21 ON contact_21.id = relationship_20.id", " WHERE", " NOT entity_19.archived", " AND relationship_20.source_id = entity_1.id", " )", " )", " FROM agreego.entity entity_1", " JOIN agreego.organization organization_2 ON organization_2.id = entity_1.id", " JOIN agreego.person person_3 ON person_3.id = organization_2.id", " WHERE", " NOT entity_1.archived", "))))" ] ] } }, { "description": "Person select on full schema with filters", "action": "query", "schema_id": "full.person", "filter": { "age": { "$eq": 30, "$gt": 20, "$gte": 20, "$of": [ 30, 40 ], "$lt": 50, "$lte": 50, "$ne": 25, "$nof": [ 1, 2 ] }, "archived": { "$eq": true, "$ne": false }, "contacts": { "is_primary": { "$eq": true } }, "created_at": { "$eq": "2020-01-01T00:00:00Z", "$gt": "2019-01-01T00:00:00Z", "$gte": "2019-01-01T00:00:00Z", "$lt": "2021-01-01T00:00:00Z", "$lte": "2021-01-01T00:00:00Z", "$ne": "2022-01-01T00:00:00Z" }, "first_name": { "$eq": "Jane%", "$gt": "A", "$gte": "A", "$of": [ "Jane", "John" ], "$lt": "Z", "$lte": "Z", "$ne": "Doe", "$nof": [ "Bob" ] }, "id": { "$eq": "00000000-0000-0000-0000-000000000001", "$of": [ "00000000-0000-0000-0000-000000000001" ], "$ne": "00000000-0000-0000-0000-000000000002", "$nof": [ "00000000-0000-0000-0000-000000000002" ] }, "last_name": { "$eq": "%Doe%", "$ne": "%Smith%" }, "phone_numbers": { "target": { "number": { "$eq": "555-1234" } } } }, "expect": { "success": true, "sql": [ [ "((SELECT jsonb_strip_nulls((", " SELECT jsonb_build_object(", " 'id', entity_1.id,", " 'type', entity_1.type,", " 'archived', entity_1.archived,", " 'created_at', entity_1.created_at,", " 'name', organization_2.name,", " 'first_name', person_3.first_name,", " 'last_name', person_3.last_name,", " 'age', person_3.age,", " 'phone_numbers', (", " SELECT COALESCE(jsonb_agg(jsonb_build_object(", " 'id', entity_4.id,", " 'type', entity_4.type,", " 'archived', entity_4.archived,", " 'created_at', entity_4.created_at,", " 'is_primary', contact_6.is_primary,", " 'target', (", " SELECT jsonb_build_object(", " 'id', entity_7.id,", " 'type', entity_7.type,", " 'archived', entity_7.archived,", " 'created_at', entity_7.created_at,", " 'number', phone_number_8.number", " )", " FROM agreego.entity entity_7", " JOIN agreego.phone_number phone_number_8 ON phone_number_8.id = entity_7.id", " WHERE", " NOT entity_7.archived", " AND phone_number_8.number ILIKE $32 #>> '{}'", " AND relationship_5.target_id = entity_7.id", " )", " )), '[]'::jsonb)", " FROM agreego.entity entity_4", " JOIN agreego.relationship relationship_5 ON relationship_5.id = entity_4.id", " JOIN agreego.contact contact_6 ON contact_6.id = relationship_5.id", " WHERE", " NOT entity_4.archived", " AND relationship_5.target_type = 'phone_number'", " AND relationship_5.source_id = entity_1.id", " ),", " 'email_addresses', (", " SELECT COALESCE(jsonb_agg(jsonb_build_object(", " 'id', entity_9.id,", " 'type', entity_9.type,", " 'archived', entity_9.archived,", " 'created_at', entity_9.created_at,", " 'is_primary', contact_11.is_primary,", " 'target', (", " SELECT jsonb_build_object(", " 'id', entity_12.id,", " 'type', entity_12.type,", " 'archived', entity_12.archived,", " 'created_at', entity_12.created_at,", " 'address', email_address_13.address", " )", " FROM agreego.entity entity_12", " JOIN agreego.email_address email_address_13 ON email_address_13.id = entity_12.id", " WHERE", " NOT entity_12.archived", " AND relationship_10.target_id = entity_12.id", " )", " )), '[]'::jsonb)", " FROM agreego.entity entity_9", " JOIN agreego.relationship relationship_10 ON relationship_10.id = entity_9.id", " JOIN agreego.contact contact_11 ON contact_11.id = relationship_10.id", " WHERE", " NOT entity_9.archived", " AND relationship_10.target_type = 'email_address'", " AND relationship_10.source_id = entity_1.id", " ),", " 'addresses', (", " SELECT COALESCE(jsonb_agg(jsonb_build_object(", " 'id', entity_14.id,", " 'type', entity_14.type,", " 'archived', entity_14.archived,", " 'created_at', entity_14.created_at,", " 'is_primary', contact_16.is_primary,", " 'target', (", " SELECT jsonb_build_object(", " 'id', entity_17.id,", " 'type', entity_17.type,", " 'archived', entity_17.archived,", " 'created_at', entity_17.created_at,", " 'city', address_18.city", " )", " FROM agreego.entity entity_17", " JOIN agreego.address address_18 ON address_18.id = entity_17.id", " WHERE", " NOT entity_17.archived", " AND relationship_15.target_id = entity_17.id", " )", " )), '[]'::jsonb)", " FROM agreego.entity entity_14", " JOIN agreego.relationship relationship_15 ON relationship_15.id = entity_14.id", " JOIN agreego.contact contact_16 ON contact_16.id = relationship_15.id", " WHERE", " NOT entity_14.archived", " AND relationship_15.target_type = 'address'", " AND relationship_15.source_id = entity_1.id", " ),", " 'contacts', (", " SELECT COALESCE(jsonb_agg(jsonb_build_object(", " 'id', entity_19.id,", " 'type', entity_19.type,", " 'archived', entity_19.archived,", " 'created_at', entity_19.created_at,", " 'is_primary', contact_21.is_primary,", " 'target', CASE", " WHEN relationship_20.target_type = 'phone_number' THEN ((", " SELECT jsonb_build_object(", " 'id', entity_22.id,", " 'type', entity_22.type,", " 'archived', entity_22.archived,", " 'created_at', entity_22.created_at,", " 'number', phone_number_23.number", " )", " FROM agreego.entity entity_22", " JOIN agreego.phone_number phone_number_23 ON phone_number_23.id = entity_22.id", " WHERE", " NOT entity_22.archived", " AND relationship_20.target_id = entity_22.id", " ))", " WHEN relationship_20.target_type = 'email_address' THEN ((", " SELECT jsonb_build_object(", " 'id', entity_24.id,", " 'type', entity_24.type,", " 'archived', entity_24.archived,", " 'created_at', entity_24.created_at,", " 'address', email_address_25.address", " )", " FROM agreego.entity entity_24", " JOIN agreego.email_address email_address_25 ON email_address_25.id = entity_24.id", " WHERE", " NOT entity_24.archived", " AND relationship_20.target_id = entity_24.id", " ))", " WHEN relationship_20.target_type = 'address' THEN ((", " SELECT jsonb_build_object(", " 'id', entity_26.id,", " 'type', entity_26.type,", " 'archived', entity_26.archived,", " 'created_at', entity_26.created_at,", " 'city', address_27.city", " )", " FROM agreego.entity entity_26", " JOIN agreego.address address_27 ON address_27.id = entity_26.id", " WHERE", " NOT entity_26.archived", " AND relationship_20.target_id = entity_26.id", " ))", " ELSE NULL", " END", " )), '[]'::jsonb)", " FROM agreego.entity entity_19", " JOIN agreego.relationship relationship_20 ON relationship_20.id = entity_19.id", " JOIN agreego.contact contact_21 ON contact_21.id = relationship_20.id", " WHERE", " NOT entity_19.archived", " AND contact_21.is_primary = ($11 #>> '{}')::BOOLEAN", " AND relationship_20.source_id = entity_1.id", " )", " )", " FROM agreego.entity entity_1", " JOIN agreego.organization organization_2 ON organization_2.id = entity_1.id", " JOIN agreego.person person_3 ON person_3.id = organization_2.id", " WHERE", " NOT entity_1.archived", " AND person_3.age = ($1 #>> '{}')::NUMERIC", " AND person_3.age > ($2 #>> '{}')::NUMERIC", " AND person_3.age >= ($3 #>> '{}')::NUMERIC", " AND person_3.age < ($4 #>> '{}')::NUMERIC", " AND person_3.age <= ($5 #>> '{}')::NUMERIC", " AND person_3.age <> ($6 #>> '{}')::NUMERIC", " AND person_3.age NOT IN (SELECT value::NUMERIC FROM jsonb_array_elements_text(($7 #>> '{}')::jsonb))", " AND person_3.age IN (SELECT value::NUMERIC FROM jsonb_array_elements_text(($8 #>> '{}')::jsonb))", " AND entity_1.archived = ($9 #>> '{}')::BOOLEAN", " AND entity_1.archived <> ($10 #>> '{}')::BOOLEAN", " AND entity_1.created_at = ($12 #>> '{}')::TIMESTAMPTZ", " AND entity_1.created_at > ($13 #>> '{}')::TIMESTAMPTZ", " AND entity_1.created_at >= ($14 #>> '{}')::TIMESTAMPTZ", " AND entity_1.created_at < ($15 #>> '{}')::TIMESTAMPTZ", " AND entity_1.created_at <= ($16 #>> '{}')::TIMESTAMPTZ", " AND entity_1.created_at <> ($17 #>> '{}')::TIMESTAMPTZ", " AND person_3.first_name ILIKE $18 #>> '{}'", " AND person_3.first_name > ($19 #>> '{)", " AND person_3.first_name >= ($20 #>> '{)", " AND person_3.first_name < ($21 #>> '{)", " AND person_3.first_name <= ($22 #>> '{)", " AND person_3.first_name NOT ILIKE $23 #>> '{}'", " AND person_3.first_name NOT IN (SELECT value FROM jsonb_array_elements_text(($24 #>> '{}')::jsonb))", " AND person_3.first_name IN (SELECT value FROM jsonb_array_elements_text(($25 #>> '{}')::jsonb))", " AND entity_1.id = ($26 #>> '{}')::UUID", " AND entity_1.id <> ($27 #>> '{}')::UUID", " AND entity_1.id NOT IN (SELECT value::UUID FROM jsonb_array_elements_text(($28 #>> '{}')::jsonb))", " AND entity_1.id IN (SELECT value::UUID FROM jsonb_array_elements_text(($29 #>> '{}')::jsonb))", " AND person_3.last_name ILIKE $30 #>> '{}'", " AND person_3.last_name NOT ILIKE $31 #>> '{}'", " ))))" ] ] } }, { "description": "Person ad-hoc email addresses select", "action": "query", "schema_id": "full.person/email_addresses", "expect": { "success": true, "sql": [ [ "((SELECT jsonb_strip_nulls((", " SELECT COALESCE(jsonb_agg(jsonb_build_object(", " 'id', entity_1.id,", " 'type', entity_1.type,", " 'archived', entity_1.archived,", " 'created_at', entity_1.created_at,", " 'is_primary', contact_3.is_primary,", " 'target', (", " SELECT jsonb_build_object(", " 'id', entity_4.id,", " 'type', entity_4.type,", " 'archived', entity_4.archived,", " 'created_at', entity_4.created_at,", " 'address', email_address_5.address", " )", " FROM agreego.entity entity_4", " JOIN agreego.email_address email_address_5 ON email_address_5.id = entity_4.id", " WHERE", " NOT entity_4.archived", " AND relationship_2.target_id = entity_4.id", " )", " )), '[]'::jsonb)", " FROM agreego.entity entity_1", " JOIN agreego.relationship relationship_2 ON relationship_2.id = entity_1.id", " JOIN agreego.contact contact_3 ON contact_3.id = relationship_2.id", " WHERE", " NOT entity_1.archived", " AND relationship_2.target_type = 'email_address'", "))))" ] ] } }, { "description": "Order select with customer and lines", "action": "query", "schema_id": "full.order", "expect": { "success": true, "sql": [ [ "((SELECT jsonb_strip_nulls((", " SELECT jsonb_build_object(", " 'id', order_2.id,", " 'type', order_2.type,", " 'archived', entity_1.archived,", " 'created_at', entity_1.created_at,", " 'total', order_2.total,", " 'customer_id', order_2.customer_id,", " 'customer', (", " SELECT jsonb_build_object(", " 'id', entity_3.id,", " 'type', entity_3.type,", " 'archived', entity_3.archived,", " 'created_at', entity_3.created_at,", " 'name', organization_4.name,", " 'first_name', person_5.first_name,", " 'last_name', person_5.last_name,", " 'age', person_5.age", " )", " FROM agreego.entity entity_3", " JOIN agreego.organization organization_4 ON organization_4.id = entity_3.id", " JOIN agreego.person person_5 ON person_5.id = organization_4.id", " WHERE", " NOT entity_3.archived", " AND order_2.customer_id = person_5.id", " ),", " 'lines', (", " SELECT COALESCE(jsonb_agg(jsonb_build_object(", " 'id', order_line_7.id,", " 'type', order_line_7.type,", " 'archived', entity_6.archived,", " 'created_at', entity_6.created_at,", " 'order_id', order_line_7.order_id,", " 'product', order_line_7.product,", " 'price', order_line_7.price", " )), '[]'::jsonb)", " FROM agreego.entity entity_6", " JOIN agreego.order_line order_line_7 ON order_line_7.id = entity_6.id", " WHERE", " NOT entity_6.archived", " AND order_line_7.order_id = order_2.id", " )", " )", " FROM agreego.entity entity_1", " JOIN agreego.order order_2 ON order_2.id = entity_1.id", " WHERE", " NOT entity_1.archived", "))))" ] ] } }, { "description": "Organization select via a punc response with ref", "action": "query", "schema_id": "get_organization.response", "expect": { "success": true, "sql": [ [ "((SELECT jsonb_strip_nulls((", " SELECT jsonb_build_object(", " 'id', entity_1.id,", " 'type', entity_1.type,", " 'archived', entity_1.archived,", " 'created_at', entity_1.created_at,", " 'name', organization_2.name", " )", " FROM agreego.entity entity_1", " JOIN agreego.organization organization_2 ON organization_2.id = entity_1.id", " WHERE", " NOT entity_1.archived", "))))" ] ] } }, { "description": "Organizations select via a punc response with family", "action": "query", "schema_id": "get_organizations.response", "expect": { "success": true, "sql": [ [ "((SELECT jsonb_strip_nulls((", " SELECT COALESCE(jsonb_agg(CASE", " WHEN organization_2.type = 'bot' THEN ((", " SELECT jsonb_build_object(", " 'id', entity_3.id,", " 'type', entity_3.type,", " 'archived', entity_3.archived,", " 'created_at', entity_3.created_at,", " 'name', organization_4.name,", " 'token', bot_5.token,", " 'role', bot_5.role", " )", " FROM agreego.entity entity_3", " JOIN agreego.organization organization_4 ON organization_4.id = entity_3.id", " JOIN agreego.bot bot_5 ON bot_5.id = organization_4.id", " WHERE", " NOT entity_3.archived", " AND entity_3.id = entity_1.id", " ))", " WHEN organization_2.type = 'organization' THEN ((", " SELECT jsonb_build_object(", " 'id', entity_6.id,", " 'type', entity_6.type,", " 'archived', entity_6.archived,", " 'created_at', entity_6.created_at,", " 'name', organization_7.name", " )", " FROM agreego.entity entity_6", " JOIN agreego.organization organization_7 ON organization_7.id = entity_6.id", " WHERE", " NOT entity_6.archived", " AND entity_6.id = entity_1.id", " ))", " WHEN organization_2.type = 'person' THEN ((", " SELECT jsonb_build_object(", " 'id', entity_8.id,", " 'type', entity_8.type,", " 'archived', entity_8.archived,", " 'created_at', entity_8.created_at,", " 'name', organization_9.name,", " 'first_name', person_10.first_name,", " 'last_name', person_10.last_name,", " 'age', person_10.age", " )", " FROM agreego.entity entity_8", " JOIN agreego.organization organization_9 ON organization_9.id = entity_8.id", " JOIN agreego.person person_10 ON person_10.id = organization_9.id", " WHERE", " NOT entity_8.archived", " AND entity_8.id = entity_1.id", " ))", " ELSE NULL", " END), '[]'::jsonb)", " FROM agreego.entity entity_1", " JOIN agreego.organization organization_2 ON organization_2.id = entity_1.id", " WHERE", " NOT entity_1.archived", "))))" ] ] } }, { "description": "Light organizations select via a punc response with family", "action": "query", "schema_id": "get_light_organization.response", "expect": { "success": true, "sql": [ [ "((SELECT jsonb_strip_nulls((", " SELECT CASE", " WHEN organization_2.type = 'bot' THEN ((", " SELECT jsonb_build_object(", " 'id', entity_3.id,", " 'type', entity_3.type,", " 'archived', entity_3.archived,", " 'created_at', entity_3.created_at,", " 'name', organization_4.name,", " 'token', bot_5.token", " )", " FROM agreego.entity entity_3", " JOIN agreego.organization organization_4 ON organization_4.id = entity_3.id", " JOIN agreego.bot bot_5 ON bot_5.id = organization_4.id", " WHERE", " NOT entity_3.archived", " AND entity_3.id = entity_1.id", " ))", " WHEN organization_2.type = 'person' THEN ((", " SELECT jsonb_build_object(", " 'id', entity_6.id,", " 'type', entity_6.type,", " 'archived', entity_6.archived,", " 'created_at', entity_6.created_at,", " 'name', organization_7.name,", " 'first_name', person_8.first_name,", " 'last_name', person_8.last_name", " )", " FROM agreego.entity entity_6", " JOIN agreego.organization organization_7 ON organization_7.id = entity_6.id", " JOIN agreego.person person_8 ON person_8.id = organization_7.id", " WHERE", " NOT entity_6.archived", " AND entity_6.id = entity_1.id", " ))", " ELSE NULL", " END", " FROM agreego.entity entity_1", " JOIN agreego.organization organization_2 ON organization_2.id = entity_1.id", " WHERE", " NOT entity_1.archived", "))))" ] ] } }, { "description": "Full organizations select via a punc response with family", "action": "query", "schema_id": "get_full_organization.response", "expect": { "success": true, "sql": [ [ "((SELECT jsonb_strip_nulls((", " SELECT CASE", " WHEN organization_2.type = 'person' THEN ((", " SELECT jsonb_build_object(", " 'id', entity_3.id,", " 'type', entity_3.type,", " 'archived', entity_3.archived,", " 'created_at', entity_3.created_at,", " 'name', organization_4.name,", " 'first_name', person_5.first_name,", " 'last_name', person_5.last_name,", " 'age', person_5.age,", " 'phone_numbers', (", " SELECT COALESCE(jsonb_agg(jsonb_build_object(", " 'id', entity_6.id,", " 'type', entity_6.type,", " 'archived', entity_6.archived,", " 'created_at', entity_6.created_at,", " 'is_primary', contact_8.is_primary,", " 'target', (", " SELECT jsonb_build_object(", " 'id', entity_9.id,", " 'type', entity_9.type,", " 'archived', entity_9.archived,", " 'created_at', entity_9.created_at,", " 'number', phone_number_10.number", " )", " FROM agreego.entity entity_9", " JOIN agreego.phone_number phone_number_10 ON phone_number_10.id = entity_9.id", " WHERE", " NOT entity_9.archived", " AND relationship_7.target_id = entity_9.id", " )", " )), '[]'::jsonb)", " FROM agreego.entity entity_6", " JOIN agreego.relationship relationship_7 ON relationship_7.id = entity_6.id", " JOIN agreego.contact contact_8 ON contact_8.id = relationship_7.id", " WHERE", " NOT entity_6.archived", " AND relationship_7.target_type = 'phone_number'", " AND relationship_7.source_id = entity_3.id", " ),", " 'email_addresses', (", " SELECT COALESCE(jsonb_agg(jsonb_build_object(", " 'id', entity_11.id,", " 'type', entity_11.type,", " 'archived', entity_11.archived,", " 'created_at', entity_11.created_at,", " 'is_primary', contact_13.is_primary,", " 'target', (", " SELECT jsonb_build_object(", " 'id', entity_14.id,", " 'type', entity_14.type,", " 'archived', entity_14.archived,", " 'created_at', entity_14.created_at,", " 'address', email_address_15.address", " )", " FROM agreego.entity entity_14", " JOIN agreego.email_address email_address_15 ON email_address_15.id = entity_14.id", " WHERE", " NOT entity_14.archived", " AND relationship_12.target_id = entity_14.id", " )", " )), '[]'::jsonb)", " FROM agreego.entity entity_11", " JOIN agreego.relationship relationship_12 ON relationship_12.id = entity_11.id", " JOIN agreego.contact contact_13 ON contact_13.id = relationship_12.id", " WHERE", " NOT entity_11.archived", " AND relationship_12.target_type = 'email_address'", " AND relationship_12.source_id = entity_3.id", " ),", " 'addresses', (", " SELECT COALESCE(jsonb_agg(jsonb_build_object(", " 'id', entity_16.id,", " 'type', entity_16.type,", " 'archived', entity_16.archived,", " 'created_at', entity_16.created_at,", " 'is_primary', contact_18.is_primary,", " 'target', (", " SELECT jsonb_build_object(", " 'id', entity_19.id,", " 'type', entity_19.type,", " 'archived', entity_19.archived,", " 'created_at', entity_19.created_at,", " 'city', address_20.city", " )", " FROM agreego.entity entity_19", " JOIN agreego.address address_20 ON address_20.id = entity_19.id", " WHERE", " NOT entity_19.archived", " AND relationship_17.target_id = entity_19.id", " )", " )), '[]'::jsonb)", " FROM agreego.entity entity_16", " JOIN agreego.relationship relationship_17 ON relationship_17.id = entity_16.id", " JOIN agreego.contact contact_18 ON contact_18.id = relationship_17.id", " WHERE", " NOT entity_16.archived", " AND relationship_17.target_type = 'address'", " AND relationship_17.source_id = entity_3.id", " ),", " 'contacts', (", " SELECT COALESCE(jsonb_agg(jsonb_build_object(", " 'id', entity_21.id,", " 'type', entity_21.type,", " 'archived', entity_21.archived,", " 'created_at', entity_21.created_at,", " 'is_primary', contact_23.is_primary,", " 'target', CASE", " WHEN relationship_22.target_type = 'phone_number' THEN ((", " SELECT jsonb_build_object(", " 'id', entity_24.id,", " 'type', entity_24.type,", " 'archived', entity_24.archived,", " 'created_at', entity_24.created_at,", " 'number', phone_number_25.number", " )", " FROM agreego.entity entity_24", " JOIN agreego.phone_number phone_number_25 ON phone_number_25.id = entity_24.id", " WHERE", " NOT entity_24.archived", " AND relationship_22.target_id = entity_24.id", " ))", " WHEN relationship_22.target_type = 'email_address' THEN ((", " SELECT jsonb_build_object(", " 'id', entity_26.id,", " 'type', entity_26.type,", " 'archived', entity_26.archived,", " 'created_at', entity_26.created_at,", " 'address', email_address_27.address", " )", " FROM agreego.entity entity_26", " JOIN agreego.email_address email_address_27 ON email_address_27.id = entity_26.id", " WHERE", " NOT entity_26.archived", " AND relationship_22.target_id = entity_26.id", " ))", " WHEN relationship_22.target_type = 'address' THEN ((", " SELECT jsonb_build_object(", " 'id', entity_28.id,", " 'type', entity_28.type,", " 'archived', entity_28.archived,", " 'created_at', entity_28.created_at,", " 'city', address_29.city", " )", " FROM agreego.entity entity_28", " JOIN agreego.address address_29 ON address_29.id = entity_28.id", " WHERE", " NOT entity_28.archived", " AND relationship_22.target_id = entity_28.id", " ))", " ELSE NULL", " END", " )), '[]'::jsonb)", " FROM agreego.entity entity_21", " JOIN agreego.relationship relationship_22 ON relationship_22.id = entity_21.id", " JOIN agreego.contact contact_23 ON contact_23.id = relationship_22.id", " WHERE", " NOT entity_21.archived", " AND relationship_22.source_id = entity_3.id", " )", " )", " FROM agreego.entity entity_3", " JOIN agreego.organization organization_4 ON organization_4.id = entity_3.id", " JOIN agreego.person person_5 ON person_5.id = organization_4.id", " WHERE", " NOT entity_3.archived", " AND entity_3.id = entity_1.id", " ))", " ELSE NULL", " END", " FROM agreego.entity entity_1", " JOIN agreego.organization organization_2 ON organization_2.id = entity_1.id", " WHERE", " NOT entity_1.archived", "))))" ] ] } }, { "description": "Orders select via a punc with items", "action": "query", "schema_id": "get_orders.response", "expect": { "success": true, "sql": [ [ "((SELECT jsonb_strip_nulls((", " SELECT COALESCE(jsonb_agg(jsonb_build_object(", " 'id', order_2.id,", " 'type', order_2.type,", " 'archived', entity_1.archived,", " 'created_at', entity_1.created_at,", " 'total', order_2.total,", " 'customer_id', order_2.customer_id,", " 'customer', (", " SELECT jsonb_build_object(", " 'id', entity_3.id,", " 'type', entity_3.type,", " 'archived', entity_3.archived,", " 'created_at', entity_3.created_at,", " 'name', organization_4.name,", " 'first_name', person_5.first_name,", " 'last_name', person_5.last_name,", " 'age', person_5.age", " )", " FROM agreego.entity entity_3", " JOIN agreego.organization organization_4 ON organization_4.id = entity_3.id", " JOIN agreego.person person_5 ON person_5.id = organization_4.id", " WHERE", " NOT entity_3.archived", " AND order_2.customer_id = person_5.id", " )", " )), '[]'::jsonb)", " FROM agreego.entity entity_1", " JOIN agreego.order order_2 ON order_2.id = entity_1.id", " WHERE", " NOT entity_1.archived", "))))" ] ] } }, { "description": "Widgets select via a punc response with family (STI)", "action": "query", "schema_id": "get_widgets.response", "expect": { "success": true, "sql": [ [ "((SELECT jsonb_strip_nulls((", " SELECT COALESCE(jsonb_agg(CASE", " WHEN widget_2.kind = 'stock' THEN (jsonb_build_object(", " 'id', entity_1.id,", " 'type', entity_1.type,", " 'archived', entity_1.archived,", " 'created_at', entity_1.created_at,", " 'kind', widget_2.kind", " ))", " WHEN widget_2.kind = 'tasks' THEN (jsonb_build_object(", " 'id', entity_1.id,", " 'type', entity_1.type,", " 'archived', entity_1.archived,", " 'created_at', entity_1.created_at,", " 'kind', widget_2.kind", " ))", " ELSE NULL", " END), '[]'::jsonb)", " FROM agreego.entity entity_1", " JOIN agreego.widget widget_2 ON widget_2.id = entity_1.id", " WHERE", " NOT entity_1.archived", "))))" ] ] } }, { "description": "Query invoice with JSONB metadata fields", "action": "query", "schema_id": "invoice", "expect": { "success": true, "sql": [ [ "((SELECT jsonb_strip_nulls((", " SELECT jsonb_build_object(", " 'id', invoice_2.id,", " 'type', invoice_2.type,", " 'archived', entity_1.archived,", " 'created_at', entity_1.created_at,", " 'total', invoice_2.total,", " 'lines', (", " SELECT COALESCE(jsonb_agg(jsonb_build_object(", " 'id', invoice_line_4.id,", " 'type', invoice_line_4.type,", " 'archived', entity_3.archived,", " 'created_at', entity_3.created_at,", " 'invoice_id', invoice_line_4.invoice_id,", " 'price', invoice_line_4.price", " )), '[]'::jsonb)", " FROM agreego.entity entity_3", " JOIN agreego.invoice_line invoice_line_4 ON invoice_line_4.id = entity_3.id", " WHERE", " NOT entity_3.archived", " AND invoice_line_4.invoice_id = invoice_2.id", " ),", " 'metadata_line', invoice_2.metadata_line,", " 'metadata_lines', invoice_2.metadata_lines,", " 'metadata_nested_line', invoice_2.metadata_nested_line,", " 'metadata_nested_lines', invoice_2.metadata_nested_lines", " )", " FROM agreego.entity entity_1", " JOIN agreego.invoice invoice_2 ON invoice_2.id = entity_1.id", " WHERE", " NOT entity_1.archived", "))))" ] ] } }, { "description": "Account select on full schema with cases fields", "action": "query", "schema_id": "account", "expect": { "success": true, "sql": [ [ "((SELECT jsonb_strip_nulls((", " SELECT jsonb_build_object(", " 'id', entity_1.id,", " 'type', entity_1.type,", " 'archived', entity_1.archived,", " 'created_at', entity_1.created_at,", " 'kind', account_2.kind,", " 'routing_number', account_2.routing_number,", " 'card_number', account_2.card_number", " )", " FROM agreego.entity entity_1", " JOIN agreego.account account_2 ON account_2.id = entity_1.id", " WHERE", " NOT entity_1.archived", "))))" ] ] } }, { "description": "Order select with nested polymorphic counterparty family relation", "action": "query", "schema_id": "get_counterparty_orders.response", "expect": { "success": true, "sql": [ [ "((SELECT jsonb_strip_nulls((", " SELECT COALESCE(jsonb_agg(jsonb_build_object(", " 'id', order_2.id,", " 'type', order_2.type,", " 'archived', entity_1.archived,", " 'created_at', entity_1.created_at,", " 'total', order_2.total,", " 'customer_id', order_2.customer_id,", " 'counterparty', (", " SELECT CASE", " WHEN organization_4.type = 'bot' THEN ((", " SELECT jsonb_build_object(", " 'id', entity_5.id,", " 'type', entity_5.type,", " 'archived', entity_5.archived,", " 'created_at', entity_5.created_at,", " 'name', organization_6.name,", " 'token', bot_7.token,", " 'role', bot_7.role", " )", " FROM agreego.entity entity_5", " JOIN agreego.organization organization_6 ON organization_6.id = entity_5.id", " JOIN agreego.bot bot_7 ON bot_7.id = organization_6.id", " WHERE", " NOT entity_5.archived", " AND entity_5.id = entity_3.id", " ))", " WHEN organization_4.type = 'organization' THEN ((", " SELECT jsonb_build_object(", " 'id', entity_8.id,", " 'type', entity_8.type,", " 'archived', entity_8.archived,", " 'created_at', entity_8.created_at,", " 'name', organization_9.name", " )", " FROM agreego.entity entity_8", " JOIN agreego.organization organization_9 ON organization_9.id = entity_8.id", " WHERE", " NOT entity_8.archived", " AND entity_8.id = entity_3.id", " ))", " WHEN organization_4.type = 'person' THEN ((", " SELECT jsonb_build_object(", " 'id', entity_10.id,", " 'type', entity_10.type,", " 'archived', entity_10.archived,", " 'created_at', entity_10.created_at,", " 'name', organization_11.name,", " 'first_name', person_12.first_name,", " 'last_name', person_12.last_name,", " 'age', person_12.age", " )", " FROM agreego.entity entity_10", " JOIN agreego.organization organization_11 ON organization_11.id = entity_10.id", " JOIN agreego.person person_12 ON person_12.id = organization_11.id", " WHERE", " NOT entity_10.archived", " AND entity_10.id = entity_3.id", " ))", " ELSE NULL", " END", " FROM agreego.entity entity_3", " JOIN agreego.organization organization_4 ON organization_4.id = entity_3.id", " WHERE", " NOT entity_3.archived", " AND order_2.counterparty_id = entity_3.id", " )", " )), '[]'::jsonb)", " FROM agreego.entity entity_1", " JOIN agreego.order order_2 ON order_2.id = entity_1.id", " WHERE", " NOT entity_1.archived", " AND order_2.counterparty_type IN ('bot', 'organization', 'person')", "))))" ] ] } } ] } ]