From 54558c719cf3d491c396af019a50b68159c5209f Mon Sep 17 00:00:00 2001 From: Natoandro Date: Tue, 22 Oct 2024 23:43:06 +0300 Subject: [PATCH] refactor: move injection data to `t.func` (#871) - [MET-682](https://linear.app/metatypedev/issue/MET-682/move-all-injection-data-to-tfunc) - [x] Move all injection data in `ObjectTypeData` (i.e. `t.func`) - [MET-656](https://linear.app/metatypedev/issue/MET-656/sdk-improve-generated-titles-from-applyreduce) - [x] Translate reduce to injection specification on `t.func` - [MET-94](https://linear.app/metatypedev/issue/MET-94/remove-runtime-field-from-typenode) - [x] Remove runtime field from `TypeNode` (#858) - [MET-683](https://linear.app/metatypedev/issue/MET-683/move-runtime-related-type-configs-out-of-typenode) - [x] Move runtime-related configs to `MaterializerData` or `RuntimeData` - Misc. - Enable random ports for the typegate (when `TG_PORT=0`); this will work with `meta dev` with embedded typegate if you set the `--gate` option with port `0`. #### Migration notes ... - [x] The change comes with new or modified tests - [x] Hard-to-understand functions have explanatory comments - [ ] End-user documentation is updated to reflect the change --- .gitignore | 2 + .pre-commit-config.yaml | 6 +- Cargo.lock | 18 +- Cargo.toml | 2 +- deno.lock | 230 +- examples/templates/deno/api/example.ts | 6 +- examples/templates/deno/compose.yml | 2 +- examples/templates/node/compose.yml | 2 +- examples/templates/node/package.json | 2 +- examples/templates/python/compose.yml | 2 +- examples/templates/python/pyproject.toml | 4 +- examples/typegraphs/metagen/rs/fdk.rs | 2 +- ghjk.ts | 1 - pyproject.toml | 2 +- src/common/src/node.rs | 12 + src/common/src/typegraph/mod.rs | 25 +- src/common/src/typegraph/types.rs | 45 +- .../src/typegraph/validator/injection.rs | 266 + src/common/src/typegraph/validator/input.rs | 115 +- src/common/src/typegraph/validator/mod.rs | 61 +- src/common/src/typegraph/visitor.rs | 35 +- src/meta-cli/src/cli/deploy.rs | 40 +- src/meta-cli/src/cli/dev.rs | 1 + src/meta-cli/src/deploy/actors/typegate.rs | 18 +- src/meta-lsp/package.json | 2 +- src/meta-lsp/ts-language-server/package.json | 2 +- .../vscode-metatype-support/package.json | 2 +- src/metagen/src/fdk_rust/stubs.rs | 2 + src/metagen/src/tests/fixtures.rs | 6 +- src/pyrt_wit_wire/pyproject.toml | 2 +- src/typegate/src/config/types.ts | 9 +- src/typegate/src/engine/computation_engine.ts | 11 +- src/typegate/src/engine/planner/args.ts | 209 +- .../src/engine/planner/injection_utils.ts | 15 +- src/typegate/src/engine/planner/mod.ts | 12 +- src/typegate/src/engine/planner/policies.ts | 6 +- src/typegate/src/engine/typecheck/result.ts | 1 - src/typegate/src/main.ts | 2 +- src/typegate/src/runtimes/Runtime.ts | 24 +- src/typegate/src/runtimes/deno/deno.ts | 4 +- src/typegate/src/runtimes/graphql.ts | 7 +- src/typegate/src/runtimes/grpc.ts | 1 - .../runtimes/prisma/hooks/generate_schema.ts | 67 +- src/typegate/src/runtimes/python.ts | 6 +- src/typegate/src/runtimes/random.ts | 93 +- src/typegate/src/runtimes/substantial.ts | 14 +- src/typegate/src/runtimes/typegate.ts | 5 - src/typegate/src/runtimes/typegraph.ts | 155 +- src/typegate/src/runtimes/wasm_reflected.ts | 14 +- src/typegate/src/runtimes/wasm_wire.ts | 6 +- src/typegate/src/runtimes/wit_wire/mod.ts | 2 +- .../src/transports/graphql/typegraph.ts | 21 +- src/typegate/src/typegraph/mod.ts | 52 +- src/typegate/src/typegraph/type_node.ts | 4 +- src/typegate/src/typegraph/types.ts | 89 +- src/typegate/src/typegraph/utils.ts | 50 +- .../src/typegraphs/introspection.json | 144 +- .../src/typegraphs/prisma_migration.json | 76 +- src/typegate/src/typegraphs/typegate.json | 307 +- src/typegate/src/typegraphs/typegate.py | 2 - src/typegraph/core/Cargo.toml | 2 +- src/typegraph/core/src/conversion/hash.rs | 7 +- .../src/conversion/parameter_transform.rs | 43 +- src/typegraph/core/src/conversion/policies.rs | 3 +- src/typegraph/core/src/conversion/runtimes.rs | 15 +- src/typegraph/core/src/conversion/types.rs | 51 +- src/typegraph/core/src/errors.rs | 50 +- src/typegraph/core/src/global_store.rs | 266 +- src/typegraph/core/src/lib.rs | 196 +- src/typegraph/core/src/params/apply.rs | 2 +- .../core/src/runtimes/prisma/context.rs | 132 +- .../core/src/runtimes/prisma/model.rs | 207 +- .../runtimes/prisma/relationship/discovery.rs | 57 +- .../src/runtimes/prisma/relationship/mod.rs | 139 +- .../type_generation/additional_filters.rs | 17 +- .../prisma/type_generation/aggregate.rs | 6 +- .../runtimes/prisma/type_generation/count.rs | 4 +- .../prisma/type_generation/filters.rs | 31 +- .../prisma/type_generation/group_by.rs | 14 +- .../prisma/type_generation/input_type.rs | 16 +- .../runtimes/prisma/type_generation/mod.rs | 11 +- .../prisma/type_generation/order_by.rs | 30 +- .../prisma/type_generation/out_type.rs | 13 +- .../type_generation/query_input_type.rs | 4 +- .../type_generation/query_where_expr.rs | 5 +- ...ere_expr__tests__Post__QueryWhereExpr.snap | 722 ++- ...ere_expr__tests__User__QueryWhereExpr.snap | 1141 ++-- ..._generation__test__aggregate Post out.snap | 44 +- ...eneration__test__aggregate Record out.snap | 48 +- ..._generation__test__aggregate User out.snap | 44 +- ...eneration__test__create_many Post inp.snap | 1642 +++--- ...eneration__test__create_many Post out.snap | 4 +- ...eration__test__create_many Record inp.snap | 16 +- ...eration__test__create_many Record out.snap | 4 +- ...eneration__test__create_many User inp.snap | 1746 +++--- ...eneration__test__create_many User out.snap | 4 +- ...generation__test__create_one Post inp.snap | 1640 +++--- ...neration__test__create_one Record inp.snap | 14 +- ...generation__test__create_one User inp.snap | 1744 +++--- ...generation__test__find_first Post out.snap | 14 +- ...neration__test__find_first Record out.snap | 12 +- ...generation__test__find_first User out.snap | 16 +- ..._generation__test__find_many Post inp.snap | 804 ++- ..._generation__test__find_many Post out.snap | 14 +- ...eneration__test__find_many Record inp.snap | 496 +- ...eneration__test__find_many Record out.snap | 10 +- ..._generation__test__find_many User inp.snap | 1251 +++-- ..._generation__test__find_many User out.snap | 22 +- ...eneration__test__find_unique Post inp.snap | 726 ++- ...eneration__test__find_unique Post out.snap | 14 +- ...eration__test__find_unique Record inp.snap | 414 +- ...eration__test__find_unique Record out.snap | 10 +- ...eneration__test__find_unique User inp.snap | 1145 ++-- ...eneration__test__find_unique User out.snap | 22 +- ...e_generation__test__group_by Post inp.snap | 3172 +++++++---- ...e_generation__test__group_by Post out.snap | 52 +- ...generation__test__group_by Record inp.snap | 1462 ++--- ...generation__test__group_by Record out.snap | 58 +- ...e_generation__test__group_by User inp.snap | 4926 +++++++++++------ ...e_generation__test__group_by User out.snap | 54 +- ...eneration__test__update_many Post inp.snap | 2776 ++++++---- ...eration__test__update_many Record inp.snap | 468 +- ...eneration__test__update_many User inp.snap | 4653 ++++++++-------- ...generation__test__update_one Post inp.snap | 2774 ++++++---- ...neration__test__update_one Record inp.snap | 466 +- ...generation__test__update_one User inp.snap | 4651 ++++++++-------- ..._generation__where___test__where Post.snap | 706 ++- ...eneration__where___test__where Record.snap | 394 +- ..._generation__where___test__where User.snap | 1125 ++-- .../runtimes/prisma/type_generation/where_.rs | 8 +- .../type_generation/with_nested_count.rs | 21 +- .../core/src/runtimes/prisma/type_utils.rs | 32 +- src/typegraph/core/src/runtimes/random.rs | 111 +- .../core/src/runtimes/substantial.rs | 14 +- ...core__tests__successful_serialization.snap | 22 +- src/typegraph/core/src/t.rs | 95 +- src/typegraph/core/src/test_utils.rs | 60 +- src/typegraph/core/src/typedef/boolean.rs | 17 +- src/typegraph/core/src/typedef/either.rs | 23 +- src/typegraph/core/src/typedef/file.rs | 16 +- src/typegraph/core/src/typedef/float.rs | 17 +- src/typegraph/core/src/typedef/func.rs | 173 +- src/typegraph/core/src/typedef/integer.rs | 17 +- src/typegraph/core/src/typedef/list.rs | 21 +- src/typegraph/core/src/typedef/optional.rs | 21 +- src/typegraph/core/src/typedef/string.rs | 17 +- src/typegraph/core/src/typedef/struct_.rs | 96 +- src/typegraph/core/src/typedef/union.rs | 23 +- src/typegraph/core/src/typegraph.rs | 78 +- src/typegraph/core/src/types/mod.rs | 20 +- src/typegraph/core/src/types/type_def.rs | 141 +- src/typegraph/core/src/types/type_id.rs | 30 +- src/typegraph/core/src/types/type_ref.rs | 419 +- .../core/src/types/type_ref/as_id.rs | 39 +- .../core/src/types/type_ref/injection.rs | 141 +- .../core/src/types/type_ref/policy.rs | 8 +- .../core/src/types/type_ref/resolve_ref.rs | 68 - .../core/src/types/type_ref/runtime_config.rs | 16 + src/typegraph/core/src/types/type_ref/xdef.rs | 145 + src/typegraph/core/src/utils/mod.rs | 127 +- .../core/src/utils/postprocess/naming.rs | 23 +- src/typegraph/core/src/utils/reduce.rs | 198 - .../core/src/validation/materializers.rs | 6 +- src/typegraph/core/src/validation/types.rs | 31 +- src/typegraph/core/wit/typegraph.wit | 53 +- src/typegraph/deno/deno.json | 2 +- src/typegraph/deno/src/providers/prisma.ts | 2 +- src/typegraph/deno/src/typegraph.ts | 2 +- src/typegraph/deno/src/types.ts | 217 +- src/typegraph/deno/src/utils/func_utils.ts | 89 +- .../deno/src/utils/injection_utils.ts | 3 +- src/typegraph/python/pyproject.toml | 2 +- src/typegraph/python/typegraph/__init__.py | 2 +- src/typegraph/python/typegraph/injection.py | 6 +- src/typegraph/python/typegraph/t.py | 145 +- src/typegraph/python/typegraph/utils.py | 50 +- src/xtask/Cargo.toml | 2 +- tests/dedup/dedup_test.ts | 4 +- tests/e2e/cli/dev_test.ts | 3 +- .../__snapshots__/typegraph_test.ts.snap | 248 +- tests/injection/injection_test.ts | 1 + .../injection/random_injection.py | 0 .../injection/random_injection.ts | 2 +- tests/injection/random_injection_test.ts | 167 + .../__snapshots__/metagen_test.ts.snap | 4 +- tests/multi_typegraph/multi_typegraph_test.ts | 13 +- tests/params/apply_test.ts | 2 +- .../__snapshots__/planner_test.ts.snap | 16 +- .../injection/prisma/migration_lock.toml | 2 +- .../__snapshots__/query_parsers_test.ts.snap | 58 +- .../random/injection/random_injection_test.ts | 205 - tests/random/random_test.ts | 198 - .../__snapshots__/graphql_test.ts.snap | 506 +- .../grpc/__snapshots__/grpc_test.ts.snap | 36 +- .../runtimes/kv/__snapshots__/kv_test.ts.snap | 92 +- tests/runtimes/prisma/mixed_runtime_test.ts | 2 +- tests/{ => runtimes}/random/random.ts | 0 tests/{ => runtimes}/random/random_.py | 0 tests/runtimes/random/random_test.ts | 193 + .../runtimes/s3/__snapshots__/s3_test.ts.snap | 68 +- tests/runtimes/substantial/redis_test.ts | 13 +- .../__snapshots__/temporal_test.ts.snap | 158 +- .../typegate_prisma_test.ts.snap | 365 +- .../typegate_runtime_test.ts.snap | 638 +-- .../runtimes/typegate/typegate_prisma_test.ts | 1 - .../typegate/typegate_runtime_test.ts | 1 - tests/runtimes/wasm_reflected/rust/Cargo.toml | 2 +- tests/runtimes/wasm_wire/rust/fdk.rs | 3 - .../type_comparison_test.ts.snap | 5 + .../type_nodes/union_node_quantifier_test.ts | 1 + tests/typecheck/reduce_syntax_test.ts | 8 +- tests/typecheck/type_alias_test.ts | 43 +- tests/typecheck/typecheck_test.ts | 12 +- tests/utils/bindings_test.ts | 6 +- tools/consts.ts | 2 +- 215 files changed, 28228 insertions(+), 22883 deletions(-) create mode 100644 src/common/src/typegraph/validator/injection.rs delete mode 100644 src/typegraph/core/src/types/type_ref/resolve_ref.rs create mode 100644 src/typegraph/core/src/types/type_ref/runtime_config.rs create mode 100644 src/typegraph/core/src/types/type_ref/xdef.rs delete mode 100644 src/typegraph/core/src/utils/reduce.rs rename tests/{random => }/injection/random_injection.py (100%) rename tests/{random => }/injection/random_injection.ts (95%) create mode 100644 tests/injection/random_injection_test.ts delete mode 100644 tests/random/injection/random_injection_test.ts delete mode 100644 tests/random/random_test.ts rename tests/{ => runtimes}/random/random.ts (100%) rename tests/{ => runtimes}/random/random_.py (100%) create mode 100644 tests/runtimes/random/random_test.ts diff --git a/.gitignore b/.gitignore index 3219643b3a..c2e4beabe7 100644 --- a/.gitignore +++ b/.gitignore @@ -54,3 +54,5 @@ src/typegraph/python/typegraph/gen examples/typegraphs/migrations examples/typegraphs/**/*.wasm src/pyrt_wit_wire/wit_wire + +/.metatype/ diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 3faed9f03f..78514a30e9 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -28,7 +28,7 @@ repos: - id: deno-fmt name: Deno format language: system - entry: bash -c 'cd typegate && deno fmt --ignore=native,src/typegraphs,tmp,tests/e2e/nextjs && cd ../dev && deno fmt && cd ../typegraph/deno && deno fmt --ignore=node_modules,dist && cd ../../libs/metagen/src && deno fmt' + entry: bash -c 'cd typegate && deno fmt --ignore=native,src/typegraphs,tmp,tests/e2e/nextjs,tests/metagen/typegraphs/sample/ts/client.ts && cd ../dev && deno fmt && cd ../typegraph/deno && deno fmt --ignore=node_modules,dist && cd ../../libs/metagen/src && deno fmt' pass_filenames: false types: - ts @@ -82,7 +82,7 @@ repos: - id: check-merge-conflict - id: end-of-file-fixer # exclude all generated files - exclude: (?x)( .ghjk/.* |.*deno.lock |.*\.snap$|typegate/src/typegraphs/.*\.json |website/docs/reference/ |libs/pyrt_wit_wire/pyrt | migration_lock.toml) + exclude: (?x)( .ghjk/.* |.*deno.lock |.*\.snap$|typegate/src/typegraphs/.*\.json |website/docs/reference/ |libs/pyrt_wit_wire/pyrt | migration_lock.toml | tests/metagen/typegraphs/sample/[rs|ts|py]/client\.[rs|ts|py]) - repo: https://github.com/Lucas-C/pre-commit-hooks rev: v1.5.5 hooks: @@ -160,6 +160,7 @@ repos: hooks: - id: ruff - id: ruff-format + exclude: "tests/metagen/typegraphs/sample/py/client.py" - repo: https://github.com/commitizen-tools/commitizen rev: v3.27.0 hooks: @@ -170,6 +171,7 @@ repos: rev: v1.0 hooks: - id: fmt + exclude: tests/metagen/typegraphs/sample/rs/client.rs - id: clippy args: - "--locked" diff --git a/Cargo.lock b/Cargo.lock index 9fb70f0ed9..34a029f899 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1600,7 +1600,7 @@ dependencies = [ [[package]] name = "common" -version = "0.4.11-rc.0" +version = "0.5.0-rc.1" dependencies = [ "anyhow", "async-trait", @@ -6891,7 +6891,7 @@ dependencies = [ [[package]] name = "meta-cli" -version = "0.4.11-rc.0" +version = "0.5.0-rc.1" dependencies = [ "actix", "assert_cmd", @@ -6957,7 +6957,7 @@ dependencies = [ [[package]] name = "metagen" -version = "0.4.11-rc.0" +version = "0.5.0-rc.1" dependencies = [ "color-eyre", "common", @@ -7306,7 +7306,7 @@ dependencies = [ [[package]] name = "mt_deno" -version = "0.4.11-rc.0" +version = "0.5.0-rc.1" dependencies = [ "anyhow", "deno", @@ -11267,7 +11267,7 @@ dependencies = [ [[package]] name = "substantial" -version = "0.4.11-rc.0" +version = "0.5.0-rc.1" dependencies = [ "anyhow", "chrono", @@ -12755,7 +12755,7 @@ dependencies = [ [[package]] name = "typegate" -version = "0.4.11-rc.0" +version = "0.5.0-rc.1" dependencies = [ "colored", "env_logger 0.11.0", @@ -12768,7 +12768,7 @@ dependencies = [ [[package]] name = "typegate_engine" -version = "0.4.11-rc.0" +version = "0.5.0-rc.1" dependencies = [ "anyhow", "base64 0.22.1", @@ -12813,7 +12813,7 @@ dependencies = [ [[package]] name = "typegraph_core" -version = "0.4.11-rc.0" +version = "0.5.0-rc.1" dependencies = [ "anyhow", "color-eyre", @@ -14566,7 +14566,7 @@ checksum = "791978798f0597cfc70478424c2b4fdc2b7a8024aaff78497ef00f24ef674193" [[package]] name = "xtask" -version = "0.4.11-rc.0" +version = "0.5.0-rc.1" dependencies = [ "anyhow", "clap", diff --git a/Cargo.toml b/Cargo.toml index 0444bf3937..96ebb4c3e3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -22,7 +22,7 @@ exclude = [ ] [workspace.package] -version = "0.4.11-rc.0" +version = "0.5.0-rc.1" edition = "2021" [workspace.dependencies] diff --git a/deno.lock b/deno.lock index 69f4accb2d..8bb148a79c 100644 --- a/deno.lock +++ b/deno.lock @@ -2301,6 +2301,118 @@ "https://raw.githubusercontent.com/metatypedev/metatype/67c1d0fa3f16ec6459ef28aa750db508a1758271/src/typegate/src/typegraphs/typegate.json": "99da5fb4052c82a35a65ac18f94cbce47d7e49afdf7678b8127e2f4677805cdb", "https://raw.githubusercontent.com/metatypedev/metatype/67c1d0fa3f16ec6459ef28aa750db508a1758271/src/typegate/src/utils.ts": "51b8167e4f1d992d68e99b70cb326cc1793593b196c1e17c01775f210652871b", "https://raw.githubusercontent.com/metatypedev/metatype/67c1d0fa3f16ec6459ef28aa750db508a1758271/src/typegate/src/utils/hash.ts": "df6cf462c7a6a805b91dce9d3e7bbbd00ea3bfd8dcc973fb3e6c94e48e33d9b9", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/engine/bindings.ts": "4529b86703a1512302164bca346c29df2a246d0ebbf20248cc39ee9745490dc1", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/engine/runtime.js": "1ae55e76d3de8e79c37054d9127c92af496ce10aa905ea64021893048bb33794", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/config.ts": "63ea402f9a993888a9e3ec88d35112186f8f13bcd3a5fe358e69e0bb603311a5", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/config/loader.ts": "91cc2b67cc9bee413b0b44f9aa2ea7814f50e2465e6bc114eece248554d7477d", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/config/shared.ts": "252b42038eb68059b2cac85c792e36f5849b8e7392b98452341ccc3ee680a774", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/config/types.ts": "15dbd4331e819fcf551522460413af718d9b9f379dea0d9a87ab4871b9c8d9e7", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/crypto.ts": "f550775b9e5bf9e7ec286a1596246a631b117fd91e093169bcad4898fb729634", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/engine/computation_engine.ts": "07a3826fcf0bb13eb3912b8e5cbf69932848cd28c1c4ebda7042f977510d00a5", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/engine/planner/args.ts": "de16ba5c087afae319f65d02ab39779146da37ea925f610da8887cffe7828060", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/engine/planner/dependency_resolver.ts": "b851f4a6e2d500f9427dd1a59920d6c71f10904b31863bb1fac4d26e01d02b67", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/engine/planner/injection_utils.ts": "6f9ad0f8f9cde9a985b6ad36bf58418637a85f50749abe6870c792ade7dc45a2", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/engine/planner/mod.ts": "9a4429e7a579903f4f67ab53bd602b2d05a58138bdbd91c7cc5b1b44cf714b68", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/engine/planner/parameter_transformer.ts": "3ba3b9603c6d28c0d54648f8177bce30b8b667e0e1be903d468af3f2645649ff", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/engine/planner/policies.ts": "caf3cfd8a46e21a5d09fdb46882d6ea4ffb376c56070bdb1ccff92fa70989d63", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/engine/query_engine.ts": "dbbbe1f233f67fae4e0574ab8ceafe3f4a03f3c62fa0a9f7cc8d02c44fe79bc5", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/engine/stage_id.ts": "b3b3c62215ff421103788079b77943af8f0026a56eafaa929415cb39ccde3cca", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/engine/typecheck/code_generator.ts": "edb77e2b98da2f040d3f7567d204dba2a3d8c66ae1a7c2709c049e464763f0cd", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/engine/typecheck/common.ts": "b585975e1a978dfa966df1a549261049ab159077bc90203a33bfe8ae055b3c6f", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/engine/typecheck/inline_validators/common.ts": "112f56c8e590215b0af0c1b46dc84b85cb5b9b43621a52646876c35a43103499", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/engine/typecheck/inline_validators/constraints.ts": "3237d0acce31aca8b2f2bbc0cae8a82d86f3671fcc7fabc3158037c4f79008f5", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/engine/typecheck/inline_validators/list.ts": "bd70fef3bc3840cfb6255a518de5fdb3db79a68a4481594475aebcbdd6a10102", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/engine/typecheck/inline_validators/number.ts": "9890c8af998dca2e573fc2ad02e63d9abc9b506b4a0c451d31f5916a8888e401", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/engine/typecheck/inline_validators/object.ts": "bd4f8891ee823bf82481df2ee181256514fd7299b5fe4fd7cd7194defa228f57", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/engine/typecheck/inline_validators/string.ts": "914a2b809a344075279578cb35ac3d03cb6025eb9f62c1f9f86958191b9857da", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/engine/typecheck/input.ts": "e34fec32501c9e4d9b427b097fd6565f54065562e101732e62b4c2799e60288c", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/engine/typecheck/matching_variant.ts": "aca8db649194921a01aca42b02113d0735262bb63d41ec44174e61c4cfa85369", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/engine/typecheck/result.ts": "6544f206b67c32015950ec96134415c261a60f54c469c1cd73f8accadf87fff6", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/errors.ts": "29dfbfdc8b7a85ee9551831d6db882e50a4e0104102b5885b2bd9a42878365f6", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/libs/jsonpath.ts": "f6851288fb8600dec0e62d5f804f41332b6197b255b6497360ba7e4b7f375cba", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/log.ts": "1330c01d489956c7530e2f2e2e60967f30c6b3a0c5c1d6c18d161ea2cf44fa0e", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/main.ts": "af5c054d8188afa43b3f5cf3f779a3b0fe2c2bccf2cb7dbde942f469a0ebaad7", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/runtimes/Runtime.ts": "30ec531890bc626953fe16e0a6882c61b05c9cdab8858727662fbf29998df274", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/runtimes/deno.ts": "c893dcf170b38547239d550080a856aca46a788de9922f282bbacf9b5841b5fe", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/runtimes/deno/deno.ts": "9964279b30ab39827cb1691484adb84a04d764ba2746122af0dfcba13caa39e3", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/runtimes/deno/deno_messenger.ts": "81160c8a9c9817b46b52c4eee15cde880fb3f6b013c3b5110ee07a4c9c7f7a5e", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/runtimes/deno/shared_types.ts": "34d56aa89c5a34e943a34b623b20d13ca54ab5466ea5313e0543da68b7aebcb1", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/runtimes/graphql.ts": "5f0f4125367fd5fc43ccb2b8c9e8ba1f9c84348595e70e5ed9870e776d2efed3", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/runtimes/grpc.ts": "92b2f5214ebe0f7b61e582faa67d6759641feaf788166a939ec6db8d819708da", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/runtimes/http.ts": "f598a33aa3cafcf37a1f33d84c06bfd0ef5fd768f72837042c83ac6ae1d90762", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/runtimes/kv.ts": "ea5365bf5cb3a2c1a7a82482d4b5c1f9fb5e84ed331edce4187464a4ca4e5801", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/runtimes/mod.ts": "26c06f1bff03255c20df97e1a109944b6fd2872acbb27aa97ab38b081fb19d7e", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/runtimes/patterns/messenger/async_messenger.ts": "40644e011e3a258138ff1fb7a5323754a547016da9c1deb2114cfc471ee28bf0", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/runtimes/patterns/messenger/lazy_async_messenger.ts": "b93d5e7252231d27d6b76ec4172d67cc23880b78411fb371d0cba2db712e2161", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/runtimes/prisma.ts": "e4b679c3b5e28a323d72bde5ebbcc113abe0efc8da82d70b3b2e390149c57d84", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/runtimes/prisma/hooks/generate_schema.ts": "f55ffcb6fdfdfcb29eb5543ac23f89e224fc7e233f4ec598f7c5f44f05eefed2", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/runtimes/prisma/hooks/mod.ts": "3e33752e3676b538c7016f3ddd4f1f49d75e217c410bcaa6319d33ed987d3c60", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/runtimes/prisma/hooks/run_migrations.ts": "aa21425f2383068d08accf99e40ca31046a3f8cec30bf5302a345fbf7fda019f", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/runtimes/prisma/migration.ts": "f501540557b13a32f7b57e5a87f4ae1794cdd95214a49b34a429d7a33a96d5d8", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/runtimes/prisma/mod.ts": "a0e44e86a45aad8b2bb0357ddbe8ba02802e6979451553940ec3688be571127f", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/runtimes/prisma/prisma.ts": "9ec0f38674728229d053aff19b4f411852390c08c2886c0944d49c8d13ebfa2f", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/runtimes/prisma/types.ts": "b4912f164aa8cdb1db3a98238a0271882864ff2778c10920dd7f0f3d59165dd6", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/runtimes/python.ts": "4a067d196fbcce2978207de7dc61c734dcdc77f0100739080ae341af3c352adf", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/runtimes/random.ts": "e7651e262ef5857e777ad46877c66f9098a2dfe774c13720a4cd38be327b53ff", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/runtimes/s3.ts": "d7a0372faf555180bd4326550c1c6a07b156d3c5f0bbbcf9c0f6eb4b0f2bfff1", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/runtimes/substantial.ts": "175644d75911d09919c06577bfa86239b3a44b1217664035551ff0989e22882a", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/runtimes/substantial/agent.ts": "223288cb3d7baa02fa2d4e37207da7fa69cf4f16eb04ed7810d3e91ac725615b", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/runtimes/substantial/types.ts": "8255ea84c5129ffc049d6fa88ad57eadf298d420ff11782c43eae9d2031efed1", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/runtimes/substantial/workflow_worker_manager.ts": "589611456b82df0637db5f63af0881a459747d7c8963684bdcde291af13515cd", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/runtimes/temporal.ts": "ff8a21af119e67e30c4cb31f7ac677555ac3945fa6f94431c4535009bf9a4c9c", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/runtimes/typegate.ts": "52d49471d2682c1be323b53e4cca9866f2babb93708a855daa8c471ba4174b64", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/runtimes/typegraph.ts": "e5808e5a20080fc260e54113e5941e5dffaeead5e3b7448dc17a48031d4799cf", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/runtimes/utils/graphql_forward_vars.ts": "f0bb091aadd191eb1491dd86b7abd311ab60e09f532d226c8328b2cfa6025d9e", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/runtimes/utils/graphql_inline_vars.ts": "9c3c339ee596c93cf65cda696d756c9ef08d34b78e4136472e27a92f2254ec8a", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/runtimes/utils/http.ts": "842af99040fd0e3456690f7674311da3a0b9ea64c608d7bc588df1ab28f163a3", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/runtimes/wasm_reflected.ts": "99d59cdd0c4b228c42ac90099036ecf5d2e14d6758916b27e4017d53b69cf481", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/runtimes/wasm_wire.ts": "d10c891f12c9521bcd1a7e1cb459f642a5f4e0936f25f4e04174141691ba06d1", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/runtimes/wit_wire/mod.ts": "ab031dcd7ad66861fe30c3bf6da8b545a7ef4a26a9610da849f73cd8a1e58fae", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/services/artifact_service.ts": "282a9a6c3d89afc8955aabab6b3b242edccba664f5f41558e9c9b07d43dd8d13", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/services/auth/cookies.ts": "ee17535cb19eab884732cefcdc46e63a2905041d5b5942e9ad6783c50a1f8624", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/services/auth/mod.ts": "5b15823ec19cec1c985a77d525ee2e9e5c5aa367f5e24c96e305e485b6c633a9", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/services/auth/protocols/basic.ts": "3c233ae1ccd0d3a8ff47a32c74682921abaf84e0de7c096f220f63b05756fc58", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/services/auth/protocols/internal.ts": "7a9173406fbc1b885e08dd74a8dd34f168de2f1e9bedef4cdd88dad613e59166", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/services/auth/protocols/jwt.ts": "e39249df7c2d088da07af1ccf5e97815addb46a994469efd4a335f6ae8618bc5", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/services/auth/protocols/oauth2.ts": "7172cc6da5ecba71775bbc2d467d52d1f78505204e55452170f35004923b847b", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/services/auth/protocols/protocol.ts": "158c55618be6165a9ee393ccd1a9da267b084ff04df7e627af1e4fc8fe636644", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/services/auth/routes/mod.ts": "8fe85c16feb3da7086d3d6fd19a4579585b632893f3534c533c60aed84b9413a", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/services/auth/routes/take.ts": "bc343c5d34870aeeaf9b0cc9473ba18fe7b324a23a630a57c9fd41eea4418a46", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/services/auth/routes/validate.ts": "56e52bb6d1660735683bdd398a86936f24ad8a00e402b7d88790867ad559e476", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/services/graphql_service.ts": "458e3cedcd22a44e166e531bcac4c65972916d81f3776c8161b2440ad212626f", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/services/info_service.ts": "a9a1f6ebdcbe64d55806597b879dd5714c32b8b861bed695a944f5e2f1213beb", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/services/middlewares.ts": "8af6277ce67c940564538f4def8e6567b5783b51f7c5f38c902736d620ffe405", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/services/playground_service.ts": "2cc8689899be7c31ad6c2e9c2c5adde0c6cc1f1442b27a55e8ead830e867dbe5", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/services/responses.ts": "5c45923c1374aab1ac8dd5b1a09ae69062ab34a448f8e92630678a236e38b2ba", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/services/rest_service.ts": "ae6ffdbddaccdbc7ed11dfb86511f2917332dcf5ae22ed814e1059e640ff7b08", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/sync/replicated_map.ts": "6b94fb884ce81d7e17572ae0abbeb91ceadb31f9356c4e9255982a00edcfe729", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/sync/typegraph.ts": "78120bc4d35e728ed86a98781c5d60996050fa8b35fa91f563c3c8b2a964b5dd", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/system_typegraphs.ts": "51299d60c1bb75b3e74998eb77bdf1680ee9d4a2f29a267d3ca90b2867c577fb", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/transports/graphql/gq.ts": "78435e53ec1c5b7aec29364c051eb8f10802714050d24ee68a65e1e263495d7d", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/transports/graphql/graphql.ts": "9f4aa79276e05acc6020da2a18472a1cc54c0ecf42efcbf017d67a88b0b90af2", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/transports/graphql/request_parser.ts": "afbc95debcb1bbfa6fc2b88937d7abedbed1f4335bb2d17bf98c7293761cfdb0", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/transports/graphql/typegraph.ts": "fc0ba3f62e1dd687a0545adb1dbaf7185176e0f1e938bfdd29cfef7f85951635", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/transports/graphql/utils.ts": "d09147add80f5e53a643ed3126ee8675a1655480728311de2def04ffe6262a4b", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/transports/rest/rest_schema_generator.ts": "c776e83c6a55e9bee3ec72c36c1d771b3ca711e4086b3728e4983ab866472624", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/typegate/artifacts/local.ts": "d36ece0f53a56922744dd4d3e170101466b3816ba136f9574e799880e27d1a4b", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/typegate/artifacts/mod.ts": "13583fb57bb5280e26c50ae89834ab73b123b712eb14a1995af00267304fef97", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/typegate/artifacts/shared.ts": "5061a07eb880e33c1543e7397e945d50b476ed51d81fc01d109c53295f089131", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/typegate/hooks.ts": "ea97c08285388300802676d03dbc06caadf060093736abce07ef8f99a60e9a04", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/typegate/memory_register.ts": "6eab24914a941f85c233037013dc13749d8b689c5f9ffb38600df4c7b00a94f0", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/typegate/mod.ts": "ce468fd7d0a32676f2867bf183c73e59da063f0a5ad3f0cde05d5f40e2bbf280", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/typegate/no_limiter.ts": "1e98610a737bd74668f80b7014c64669a59a801355340eaa14411e07f4a8a94e", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/typegate/rate_limiter.ts": "b5718ab9e718314f11f5d88d84795bd0e61575856470793f1fe83d499f4a9d40", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/typegate/register.ts": "d7a8732386ad019d4dcee0372b6cab93bfc55e0146729842db2aaecf1411b15d", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/typegraph/mod.ts": "3401f26beae423b008480460495cf7a22791a53cce65fd0a941c34e4b65ee5b0", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/typegraph/type_node.ts": "7f721cd5f6da2cbc7e66b804e0f81e0429aa2893e0a93244f9e66b39cb96b1a0", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/typegraph/types.ts": "fc813b5f18e71b58e5f7904cd7fe3d6cae38b3c7055a8875042588c1561df160", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/typegraph/utils.ts": "66fe8e1b5072f52ea2efebc5cf42001c3b858068b2d970ee3c8558032ff53103", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/typegraph/versions.ts": "cdab4b07960f78c1f18511a8cc464a7e97c4c1fd15c6e8678c109483d3c26508", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/typegraph/visitor.ts": "0fb0f89d92cb1654c1b010494a14c1aad88c7923102ea3e89866b232d3bcdf04", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/typegraphs/introspection.json": "bbcf2c4233371c7f36052e5fe9e1cb1d18a46d3f31391cfcba2a3063c9141adb", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/types.ts": "a36918c2bfab397edec906c23d2cd7558246337bb16fdf1ea4e353cffea5f2b4", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/utils.ts": "de1a17260e76607e1a8fd6d7384cbc21bb26e08f64bffc41d6508bf5a8359311", + "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/utils/hash.ts": "df6cf462c7a6a805b91dce9d3e7bbbd00ea3bfd8dcc973fb3e6c94e48e33d9b9", "https://raw.githubusercontent.com/metatypedev/metatype/db616a6ae26eb6fe04e356a777c11185613d97ad/typegate/engine/bindings.ts": "e9391491bf5c4f682267a5cb4ae384ef33ed7c15273fcada13bea7b064cf1270", "https://raw.githubusercontent.com/metatypedev/metatype/db616a6ae26eb6fe04e356a777c11185613d97ad/typegate/engine/runtime.js": "1ae55e76d3de8e79c37054d9127c92af496ce10aa905ea64021893048bb33794", "https://raw.githubusercontent.com/metatypedev/metatype/db616a6ae26eb6fe04e356a777c11185613d97ad/typegate/src/config.ts": "289820b743711beb9139bca83556f60774521f3c58addd5c441ae3205ef49e61", @@ -2410,7 +2522,123 @@ "https://raw.githubusercontent.com/metatypedev/metatype/db616a6ae26eb6fe04e356a777c11185613d97ad/typegate/src/utils.ts": "17f24991ba464352c3855cd8cda6b4d330f4283f33b167e745571a780e02c8fb", "https://raw.githubusercontent.com/metatypedev/metatype/db616a6ae26eb6fe04e356a777c11185613d97ad/typegate/src/utils/hash.ts": "2f4ce3f1736df720def3b0fc89ac9e6e29afa0a33d7a988e15cb1d1bebcf026c", "https://raw.githubusercontent.com/metatypedev/metatype/db616a6ae26eb6fe04e356a777c11185613d97ad/typegate/tests/utils/memory_register.ts": "de21f1494e4e378fc43280e04ea5b59aa791d417c655d47824769cde4fc63b19", - "https://raw.githubusercontent.com/metatypedev/metatype/db616a6ae26eb6fe04e356a777c11185613d97ad/typegate/tests/utils/no_limiter.ts": "730246db1c73b5ca77e01e1838194f3870f4024cbf29a850674564b20425a7f0" + "https://raw.githubusercontent.com/metatypedev/metatype/db616a6ae26eb6fe04e356a777c11185613d97ad/typegate/tests/utils/no_limiter.ts": "730246db1c73b5ca77e01e1838194f3870f4024cbf29a850674564b20425a7f0", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/engine/bindings.ts": "4529b86703a1512302164bca346c29df2a246d0ebbf20248cc39ee9745490dc1", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/engine/runtime.js": "1ae55e76d3de8e79c37054d9127c92af496ce10aa905ea64021893048bb33794", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/config.ts": "63ea402f9a993888a9e3ec88d35112186f8f13bcd3a5fe358e69e0bb603311a5", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/config/loader.ts": "91cc2b67cc9bee413b0b44f9aa2ea7814f50e2465e6bc114eece248554d7477d", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/config/shared.ts": "252b42038eb68059b2cac85c792e36f5849b8e7392b98452341ccc3ee680a774", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/config/types.ts": "15dbd4331e819fcf551522460413af718d9b9f379dea0d9a87ab4871b9c8d9e7", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/crypto.ts": "f550775b9e5bf9e7ec286a1596246a631b117fd91e093169bcad4898fb729634", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/engine/computation_engine.ts": "07a3826fcf0bb13eb3912b8e5cbf69932848cd28c1c4ebda7042f977510d00a5", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/engine/planner/args.ts": "360969f3d6f82ba94891a59db1a445161a41c764e314c8bdfcbc924beb1d2492", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/engine/planner/dependency_resolver.ts": "b851f4a6e2d500f9427dd1a59920d6c71f10904b31863bb1fac4d26e01d02b67", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/engine/planner/injection_utils.ts": "6f9ad0f8f9cde9a985b6ad36bf58418637a85f50749abe6870c792ade7dc45a2", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/engine/planner/mod.ts": "9a4429e7a579903f4f67ab53bd602b2d05a58138bdbd91c7cc5b1b44cf714b68", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/engine/planner/parameter_transformer.ts": "3ba3b9603c6d28c0d54648f8177bce30b8b667e0e1be903d468af3f2645649ff", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/engine/planner/policies.ts": "caf3cfd8a46e21a5d09fdb46882d6ea4ffb376c56070bdb1ccff92fa70989d63", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/engine/query_engine.ts": "dbbbe1f233f67fae4e0574ab8ceafe3f4a03f3c62fa0a9f7cc8d02c44fe79bc5", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/engine/stage_id.ts": "b3b3c62215ff421103788079b77943af8f0026a56eafaa929415cb39ccde3cca", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/engine/typecheck/code_generator.ts": "edb77e2b98da2f040d3f7567d204dba2a3d8c66ae1a7c2709c049e464763f0cd", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/engine/typecheck/common.ts": "b585975e1a978dfa966df1a549261049ab159077bc90203a33bfe8ae055b3c6f", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/engine/typecheck/inline_validators/common.ts": "112f56c8e590215b0af0c1b46dc84b85cb5b9b43621a52646876c35a43103499", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/engine/typecheck/inline_validators/constraints.ts": "3237d0acce31aca8b2f2bbc0cae8a82d86f3671fcc7fabc3158037c4f79008f5", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/engine/typecheck/inline_validators/list.ts": "bd70fef3bc3840cfb6255a518de5fdb3db79a68a4481594475aebcbdd6a10102", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/engine/typecheck/inline_validators/number.ts": "9890c8af998dca2e573fc2ad02e63d9abc9b506b4a0c451d31f5916a8888e401", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/engine/typecheck/inline_validators/object.ts": "bd4f8891ee823bf82481df2ee181256514fd7299b5fe4fd7cd7194defa228f57", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/engine/typecheck/inline_validators/string.ts": "914a2b809a344075279578cb35ac3d03cb6025eb9f62c1f9f86958191b9857da", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/engine/typecheck/input.ts": "e34fec32501c9e4d9b427b097fd6565f54065562e101732e62b4c2799e60288c", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/engine/typecheck/matching_variant.ts": "aca8db649194921a01aca42b02113d0735262bb63d41ec44174e61c4cfa85369", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/engine/typecheck/result.ts": "6544f206b67c32015950ec96134415c261a60f54c469c1cd73f8accadf87fff6", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/errors.ts": "29dfbfdc8b7a85ee9551831d6db882e50a4e0104102b5885b2bd9a42878365f6", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/libs/jsonpath.ts": "f6851288fb8600dec0e62d5f804f41332b6197b255b6497360ba7e4b7f375cba", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/log.ts": "1330c01d489956c7530e2f2e2e60967f30c6b3a0c5c1d6c18d161ea2cf44fa0e", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/main.ts": "af5c054d8188afa43b3f5cf3f779a3b0fe2c2bccf2cb7dbde942f469a0ebaad7", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/runtimes/Runtime.ts": "30ec531890bc626953fe16e0a6882c61b05c9cdab8858727662fbf29998df274", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/runtimes/deno.ts": "c893dcf170b38547239d550080a856aca46a788de9922f282bbacf9b5841b5fe", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/runtimes/deno/deno.ts": "9964279b30ab39827cb1691484adb84a04d764ba2746122af0dfcba13caa39e3", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/runtimes/deno/deno_messenger.ts": "81160c8a9c9817b46b52c4eee15cde880fb3f6b013c3b5110ee07a4c9c7f7a5e", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/runtimes/deno/shared_types.ts": "34d56aa89c5a34e943a34b623b20d13ca54ab5466ea5313e0543da68b7aebcb1", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/runtimes/deno/worker.ts": "2397af9b517b332ef5df2ffea7d537170084b0c6e3155f62a045ad5c0d557a3b", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/runtimes/graphql.ts": "5f0f4125367fd5fc43ccb2b8c9e8ba1f9c84348595e70e5ed9870e776d2efed3", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/runtimes/grpc.ts": "92b2f5214ebe0f7b61e582faa67d6759641feaf788166a939ec6db8d819708da", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/runtimes/http.ts": "f598a33aa3cafcf37a1f33d84c06bfd0ef5fd768f72837042c83ac6ae1d90762", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/runtimes/kv.ts": "ea5365bf5cb3a2c1a7a82482d4b5c1f9fb5e84ed331edce4187464a4ca4e5801", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/runtimes/mod.ts": "26c06f1bff03255c20df97e1a109944b6fd2872acbb27aa97ab38b081fb19d7e", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/runtimes/patterns/messenger/async_messenger.ts": "40644e011e3a258138ff1fb7a5323754a547016da9c1deb2114cfc471ee28bf0", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/runtimes/patterns/messenger/lazy_async_messenger.ts": "b93d5e7252231d27d6b76ec4172d67cc23880b78411fb371d0cba2db712e2161", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/runtimes/prisma.ts": "e4b679c3b5e28a323d72bde5ebbcc113abe0efc8da82d70b3b2e390149c57d84", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/runtimes/prisma/hooks/generate_schema.ts": "f55ffcb6fdfdfcb29eb5543ac23f89e224fc7e233f4ec598f7c5f44f05eefed2", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/runtimes/prisma/hooks/mod.ts": "3e33752e3676b538c7016f3ddd4f1f49d75e217c410bcaa6319d33ed987d3c60", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/runtimes/prisma/hooks/run_migrations.ts": "aa21425f2383068d08accf99e40ca31046a3f8cec30bf5302a345fbf7fda019f", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/runtimes/prisma/migration.ts": "f501540557b13a32f7b57e5a87f4ae1794cdd95214a49b34a429d7a33a96d5d8", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/runtimes/prisma/mod.ts": "a0e44e86a45aad8b2bb0357ddbe8ba02802e6979451553940ec3688be571127f", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/runtimes/prisma/prisma.ts": "9ec0f38674728229d053aff19b4f411852390c08c2886c0944d49c8d13ebfa2f", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/runtimes/prisma/types.ts": "b4912f164aa8cdb1db3a98238a0271882864ff2778c10920dd7f0f3d59165dd6", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/runtimes/python.ts": "4a067d196fbcce2978207de7dc61c734dcdc77f0100739080ae341af3c352adf", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/runtimes/random.ts": "e7651e262ef5857e777ad46877c66f9098a2dfe774c13720a4cd38be327b53ff", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/runtimes/s3.ts": "d7a0372faf555180bd4326550c1c6a07b156d3c5f0bbbcf9c0f6eb4b0f2bfff1", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/runtimes/substantial.ts": "175644d75911d09919c06577bfa86239b3a44b1217664035551ff0989e22882a", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/runtimes/substantial/agent.ts": "223288cb3d7baa02fa2d4e37207da7fa69cf4f16eb04ed7810d3e91ac725615b", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/runtimes/substantial/types.ts": "8255ea84c5129ffc049d6fa88ad57eadf298d420ff11782c43eae9d2031efed1", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/runtimes/substantial/workflow_worker_manager.ts": "589611456b82df0637db5f63af0881a459747d7c8963684bdcde291af13515cd", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/runtimes/temporal.ts": "ff8a21af119e67e30c4cb31f7ac677555ac3945fa6f94431c4535009bf9a4c9c", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/runtimes/typegate.ts": "52d49471d2682c1be323b53e4cca9866f2babb93708a855daa8c471ba4174b64", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/runtimes/typegraph.ts": "e5808e5a20080fc260e54113e5941e5dffaeead5e3b7448dc17a48031d4799cf", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/runtimes/utils/graphql_forward_vars.ts": "f0bb091aadd191eb1491dd86b7abd311ab60e09f532d226c8328b2cfa6025d9e", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/runtimes/utils/graphql_inline_vars.ts": "9c3c339ee596c93cf65cda696d756c9ef08d34b78e4136472e27a92f2254ec8a", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/runtimes/utils/http.ts": "842af99040fd0e3456690f7674311da3a0b9ea64c608d7bc588df1ab28f163a3", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/runtimes/wasm_reflected.ts": "99d59cdd0c4b228c42ac90099036ecf5d2e14d6758916b27e4017d53b69cf481", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/runtimes/wasm_wire.ts": "d10c891f12c9521bcd1a7e1cb459f642a5f4e0936f25f4e04174141691ba06d1", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/runtimes/wit_wire/mod.ts": "a1b6a3e894c1ad4fefb80d3ab8302e2b1e7b8c568012976ce5c46816d0d8b966", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/services/artifact_service.ts": "282a9a6c3d89afc8955aabab6b3b242edccba664f5f41558e9c9b07d43dd8d13", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/services/auth/cookies.ts": "ee17535cb19eab884732cefcdc46e63a2905041d5b5942e9ad6783c50a1f8624", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/services/auth/mod.ts": "5b15823ec19cec1c985a77d525ee2e9e5c5aa367f5e24c96e305e485b6c633a9", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/services/auth/protocols/basic.ts": "3c233ae1ccd0d3a8ff47a32c74682921abaf84e0de7c096f220f63b05756fc58", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/services/auth/protocols/internal.ts": "7a9173406fbc1b885e08dd74a8dd34f168de2f1e9bedef4cdd88dad613e59166", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/services/auth/protocols/jwt.ts": "e39249df7c2d088da07af1ccf5e97815addb46a994469efd4a335f6ae8618bc5", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/services/auth/protocols/oauth2.ts": "7172cc6da5ecba71775bbc2d467d52d1f78505204e55452170f35004923b847b", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/services/auth/protocols/protocol.ts": "158c55618be6165a9ee393ccd1a9da267b084ff04df7e627af1e4fc8fe636644", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/services/auth/routes/mod.ts": "8fe85c16feb3da7086d3d6fd19a4579585b632893f3534c533c60aed84b9413a", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/services/auth/routes/take.ts": "bc343c5d34870aeeaf9b0cc9473ba18fe7b324a23a630a57c9fd41eea4418a46", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/services/auth/routes/validate.ts": "56e52bb6d1660735683bdd398a86936f24ad8a00e402b7d88790867ad559e476", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/services/graphql_service.ts": "458e3cedcd22a44e166e531bcac4c65972916d81f3776c8161b2440ad212626f", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/services/info_service.ts": "a9a1f6ebdcbe64d55806597b879dd5714c32b8b861bed695a944f5e2f1213beb", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/services/middlewares.ts": "8af6277ce67c940564538f4def8e6567b5783b51f7c5f38c902736d620ffe405", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/services/playground_service.ts": "2cc8689899be7c31ad6c2e9c2c5adde0c6cc1f1442b27a55e8ead830e867dbe5", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/services/responses.ts": "5c45923c1374aab1ac8dd5b1a09ae69062ab34a448f8e92630678a236e38b2ba", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/services/rest_service.ts": "ae6ffdbddaccdbc7ed11dfb86511f2917332dcf5ae22ed814e1059e640ff7b08", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/sync/replicated_map.ts": "6b94fb884ce81d7e17572ae0abbeb91ceadb31f9356c4e9255982a00edcfe729", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/sync/typegraph.ts": "78120bc4d35e728ed86a98781c5d60996050fa8b35fa91f563c3c8b2a964b5dd", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/system_typegraphs.ts": "51299d60c1bb75b3e74998eb77bdf1680ee9d4a2f29a267d3ca90b2867c577fb", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/transports/graphql/gq.ts": "78435e53ec1c5b7aec29364c051eb8f10802714050d24ee68a65e1e263495d7d", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/transports/graphql/graphql.ts": "9f4aa79276e05acc6020da2a18472a1cc54c0ecf42efcbf017d67a88b0b90af2", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/transports/graphql/request_parser.ts": "afbc95debcb1bbfa6fc2b88937d7abedbed1f4335bb2d17bf98c7293761cfdb0", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/transports/graphql/typegraph.ts": "fc0ba3f62e1dd687a0545adb1dbaf7185176e0f1e938bfdd29cfef7f85951635", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/transports/graphql/utils.ts": "d09147add80f5e53a643ed3126ee8675a1655480728311de2def04ffe6262a4b", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/transports/rest/rest_schema_generator.ts": "c776e83c6a55e9bee3ec72c36c1d771b3ca711e4086b3728e4983ab866472624", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/typegate/artifacts/local.ts": "d36ece0f53a56922744dd4d3e170101466b3816ba136f9574e799880e27d1a4b", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/typegate/artifacts/mod.ts": "13583fb57bb5280e26c50ae89834ab73b123b712eb14a1995af00267304fef97", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/typegate/artifacts/shared.ts": "5061a07eb880e33c1543e7397e945d50b476ed51d81fc01d109c53295f089131", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/typegate/hooks.ts": "ea97c08285388300802676d03dbc06caadf060093736abce07ef8f99a60e9a04", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/typegate/memory_register.ts": "6eab24914a941f85c233037013dc13749d8b689c5f9ffb38600df4c7b00a94f0", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/typegate/mod.ts": "ce468fd7d0a32676f2867bf183c73e59da063f0a5ad3f0cde05d5f40e2bbf280", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/typegate/no_limiter.ts": "1e98610a737bd74668f80b7014c64669a59a801355340eaa14411e07f4a8a94e", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/typegate/rate_limiter.ts": "b5718ab9e718314f11f5d88d84795bd0e61575856470793f1fe83d499f4a9d40", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/typegate/register.ts": "d7a8732386ad019d4dcee0372b6cab93bfc55e0146729842db2aaecf1411b15d", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/typegraph/mod.ts": "3401f26beae423b008480460495cf7a22791a53cce65fd0a941c34e4b65ee5b0", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/typegraph/type_node.ts": "b9fe641ac3f721d36b158a2d52ffaaadd44b4a48d204242e6d57e684ebcc5fec", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/typegraph/types.ts": "fc813b5f18e71b58e5f7904cd7fe3d6cae38b3c7055a8875042588c1561df160", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/typegraph/utils.ts": "66fe8e1b5072f52ea2efebc5cf42001c3b858068b2d970ee3c8558032ff53103", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/typegraph/versions.ts": "cdab4b07960f78c1f18511a8cc464a7e97c4c1fd15c6e8678c109483d3c26508", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/typegraph/visitor.ts": "0fb0f89d92cb1654c1b010494a14c1aad88c7923102ea3e89866b232d3bcdf04", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/typegraphs/introspection.json": "bbcf2c4233371c7f36052e5fe9e1cb1d18a46d3f31391cfcba2a3063c9141adb", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/typegraphs/prisma_migration.json": "dfc346ff8fc2cef611c8f172b90e9d13eae6fed8b3dd65dea8631f9533159173", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/typegraphs/typegate.json": "bc0cbf4cd2c5de34410779994240993db4f1dd3d1eeda10b6045efdc37eb48a4", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/types.ts": "a36918c2bfab397edec906c23d2cd7558246337bb16fdf1ea4e353cffea5f2b4", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/utils.ts": "de1a17260e76607e1a8fd6d7384cbc21bb26e08f64bffc41d6508bf5a8359311", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/utils/hash.ts": "df6cf462c7a6a805b91dce9d3e7bbbd00ea3bfd8dcc973fb3e6c94e48e33d9b9", + "https://raw.githubusercontent.com/metatypedev/metatype/dcd3e2581c87ce9cbdb680443e02587f4c3b7a05/src/typegate/src/worker_utils.ts": "19f686d729b947ab3eb2f29e99ccd07578037a3bccced65fc0dce42d5338cd31" }, "workspace": { "members": { diff --git a/examples/templates/deno/api/example.ts b/examples/templates/deno/api/example.ts index bbd8e3dd7a..6e3994b931 100644 --- a/examples/templates/deno/api/example.ts +++ b/examples/templates/deno/api/example.ts @@ -1,6 +1,6 @@ -import { Policy, t, typegraph } from "jsr:@typegraph/sdk@0.4.11-rc.0/index.ts"; -import { PythonRuntime } from "jsr:@typegraph/sdk@0.4.11-rc.0/runtimes/python.ts"; -import { DenoRuntime } from "jsr:@typegraph/sdk@0.4.11-rc.0/runtimes/deno.ts"; +import { Policy, t, typegraph } from "jsr:@typegraph/sdk@0.5.0-rc.1/index.ts"; +import { PythonRuntime } from "jsr:@typegraph/sdk@0.5.0-rc.1/runtimes/python.ts"; +import { DenoRuntime } from "jsr:@typegraph/sdk@0.5.0-rc.1/runtimes/deno.ts"; await typegraph("example", (g) => { const pub = Policy.public(); diff --git a/examples/templates/deno/compose.yml b/examples/templates/deno/compose.yml index 05381192e6..b4a9cb6802 100644 --- a/examples/templates/deno/compose.yml +++ b/examples/templates/deno/compose.yml @@ -1,6 +1,6 @@ services: typegate: - image: ghcr.io/metatypedev/typegate:v0.4.11-rc.0 + image: ghcr.io/metatypedev/typegate:v0.5.0-rc.1 restart: always ports: - "7890:7890" diff --git a/examples/templates/node/compose.yml b/examples/templates/node/compose.yml index 18a0f3917d..eb6155362f 100644 --- a/examples/templates/node/compose.yml +++ b/examples/templates/node/compose.yml @@ -1,6 +1,6 @@ services: typegate: - image: ghcr.io/metatypedev/typegate:v0.4.11-rc.0 + image: ghcr.io/metatypedev/typegate:v0.5.0-rc.1 restart: always ports: - "7890:7890" diff --git a/examples/templates/node/package.json b/examples/templates/node/package.json index 2432ed06f2..d887ec563c 100644 --- a/examples/templates/node/package.json +++ b/examples/templates/node/package.json @@ -6,7 +6,7 @@ "dev": "MCLI_LOADER_CMD='npm x tsx' meta dev" }, "dependencies": { - "@typegraph/sdk": "^0.4.11-rc.0" + "@typegraph/sdk": "^0.5.0-rc.1" }, "devDependencies": { "tsx": "^3.13.0", diff --git a/examples/templates/python/compose.yml b/examples/templates/python/compose.yml index 18a0f3917d..eb6155362f 100644 --- a/examples/templates/python/compose.yml +++ b/examples/templates/python/compose.yml @@ -1,6 +1,6 @@ services: typegate: - image: ghcr.io/metatypedev/typegate:v0.4.11-rc.0 + image: ghcr.io/metatypedev/typegate:v0.5.0-rc.1 restart: always ports: - "7890:7890" diff --git a/examples/templates/python/pyproject.toml b/examples/templates/python/pyproject.toml index 801148bb01..c8e06ff686 100644 --- a/examples/templates/python/pyproject.toml +++ b/examples/templates/python/pyproject.toml @@ -1,12 +1,12 @@ [tool.poetry] name = "example" -version = "0.4.11-rc.0" +version = "0.5.0-rc.1" description = "" authors = [] [tool.poetry.dependencies] python = ">=3.8,<4.0" -typegraph = "0.4.11-rc.0" +typegraph = "0.5.0-rc.1" [build-system] requires = ["poetry-core"] diff --git a/examples/typegraphs/metagen/rs/fdk.rs b/examples/typegraphs/metagen/rs/fdk.rs index 1b3fe48436..ea3c02629f 100644 --- a/examples/typegraphs/metagen/rs/fdk.rs +++ b/examples/typegraphs/metagen/rs/fdk.rs @@ -109,7 +109,7 @@ impl Router { } pub fn init(&self, args: InitArgs) -> Result { - static MT_VERSION: &str = "0.4.11-rc.0"; + static MT_VERSION: &str = "0.5.0-rc.1"; if args.metatype_version != MT_VERSION { return Err(InitError::VersionMismatch(MT_VERSION.into())); } diff --git a/ghjk.ts b/ghjk.ts index e6b8cb27d6..c97557ccc2 100644 --- a/ghjk.ts +++ b/ghjk.ts @@ -1,6 +1,5 @@ // @ts-nocheck: Deno file -// -- import { METATYPE_VERSION, PUBLISHED_VERSION } from "./tools/consts.ts"; import { file, ports, sedLock, semver, stdDeps } from "./tools/deps.ts"; import installs from "./tools/installs.ts"; diff --git a/pyproject.toml b/pyproject.toml index c422709df9..c7553721e0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,7 +6,7 @@ [tool.poetry] name = "metatype" -version = "0.4.11-rc.0" +version = "0.5.0-rc.1" description = "" authors = [] diff --git a/src/common/src/node.rs b/src/common/src/node.rs index 359b68d10a..894dc95c84 100644 --- a/src/common/src/node.rs +++ b/src/common/src/node.rs @@ -26,6 +26,18 @@ pub struct Node { pub auth: Option, } +impl Node { + pub fn override_port(self, port: u16) -> Self { + let mut base_url = self.base_url; + base_url.set_port(Some(port)).unwrap(); + Self { + base_url, + prefix: self.prefix, + auth: self.auth, + } + } +} + #[derive(Debug, thiserror::Error)] pub enum Error { #[error(transparent)] diff --git a/src/common/src/typegraph/mod.rs b/src/common/src/typegraph/mod.rs index a85846d4c8..989e56440a 100644 --- a/src/common/src/typegraph/mod.rs +++ b/src/common/src/typegraph/mod.rs @@ -189,15 +189,20 @@ impl Typegraph { _ => bail!("typegraph is invalid: root node is not object"), } } - /* - pub fn idx_of(&self, id: &str) -> Option { - self.name_map.get(id).map(|&idx| idx) - } - pub fn get(&self, id: &str) -> Option<&TypeNode> { - let Some(&idx) = self.name_map.get(id) else { - return None; - }; - Some(&self.types[idx as usize]) - } */ + pub fn resolve_quant(&self, type_idx: TypeId) -> TypeId { + let mut type_idx = type_idx; + loop { + match &self.types[type_idx as usize] { + TypeNode::Optional { data, .. } => { + type_idx = data.item; + } + TypeNode::List { data, .. } => { + type_idx = data.items; + } + _ => break, + } + } + type_idx + } } diff --git a/src/common/src/typegraph/types.rs b/src/common/src/typegraph/types.rs index b15ae55f5f..58f3f7faa1 100644 --- a/src/common/src/typegraph/types.rs +++ b/src/common/src/typegraph/types.rs @@ -3,6 +3,7 @@ use std::collections::BTreeMap; +use anyhow::Result; use indexmap::IndexMap; use serde::{Deserialize, Serialize}; use serde_with::skip_serializing_none; @@ -14,27 +15,32 @@ use super::{parameter_transform::FunctionParameterTransform, EffectType, PolicyI pub type TypeName = String; pub type TypeId = u32; +type JsonValue = serde_json::Value; + #[derive(Serialize, Deserialize, Clone, Debug, Hash)] -pub struct SingleValue { - pub value: T, +pub struct SingleValue { + pub value: JsonValue, } #[derive(Serialize, Deserialize, Clone, Debug, Hash)] #[serde(untagged)] -pub enum InjectionData { - SingleValue(SingleValue), - ValueByEffect(BTreeMap), +pub enum InjectionData { + SingleValue(SingleValue), + ValueByEffect(BTreeMap), } -impl InjectionData { - pub fn values(&self) -> Vec<&T> { +impl InjectionData { + pub fn values(&self) -> Result> { match self { - InjectionData::SingleValue(v) => vec![&v.value], - InjectionData::ValueByEffect(m) => m.values().collect(), + InjectionData::SingleValue(v) => Ok(vec![serde_json::from_value(v.value.clone())?]), + InjectionData::ValueByEffect(m) => m + .values() + .map(|v| serde_json::from_value(v.clone()).map_err(Into::into)) + .collect(), } } - pub fn values_mut(&mut self) -> Vec<&mut T> { + pub fn values_mut(&mut self) -> Vec<&mut JsonValue> { match self { InjectionData::SingleValue(v) => vec![&mut v.value], InjectionData::ValueByEffect(m) => m.values_mut().collect(), @@ -57,16 +63,11 @@ pub enum Injection { #[derive(Serialize, Deserialize, Clone, Debug)] pub struct TypeNodeBase { pub title: String, - pub runtime: u32, pub policies: Vec, #[serde(default)] pub description: Option, - #[serde(default)] - pub injection: Option, #[serde(default, rename = "enum")] pub enumeration: Option>, // JSON-serialized values - #[serde(default)] - pub config: IndexMap, } #[skip_serializing_none] @@ -169,6 +170,17 @@ pub struct ListTypeData { pub unique_items: Option, } +#[derive(Serialize, Deserialize, Clone, Debug)] +#[serde(untagged)] +pub enum InjectionNode { + Parent { + children: IndexMap, + }, + Leaf { + injection: Injection, + }, +} + #[skip_serializing_none] #[derive(Serialize, Deserialize, Clone, Debug)] pub struct FunctionTypeData { @@ -176,6 +188,9 @@ pub struct FunctionTypeData { #[serde(rename = "parameterTransform")] pub parameter_transform: Option, pub output: Id, + pub injections: IndexMap, + #[serde(rename = "runtimeConfig")] + pub runtime_config: serde_json::Value, pub materializer: u32, #[serialize_always] pub rate_weight: Option, diff --git a/src/common/src/typegraph/validator/injection.rs b/src/common/src/typegraph/validator/injection.rs new file mode 100644 index 0000000000..cfdee4c4c2 --- /dev/null +++ b/src/common/src/typegraph/validator/injection.rs @@ -0,0 +1,266 @@ +use indexmap::IndexMap; +use serde_json::Value; + +use super::types::{EnsureSubtypeOf as _, ErrorCollector, ExtendedTypeNode}; +use super::{Validator, ValidatorContext}; +use crate::typegraph::visitor::{Edge, PathSegment, TypeVisitorContext as _}; +use crate::typegraph::{Injection, InjectionNode, ObjectTypeData, TypeId, TypeNode}; + +pub struct InjectionValidationContext<'a> { + pub fn_path: Vec, + pub fn_idx: TypeId, + pub input_idx: TypeId, + pub parent_object: &'a ObjectTypeData, + pub validator: &'a ValidatorContext<'a>, +} + +impl<'a> InjectionValidationContext<'a> { + fn get_path(&self, path: &[String]) -> Vec { + let mut res = self.fn_path.clone(); + res.push(PathSegment { + from: self.fn_idx, + edge: Edge::FunctionInput, + }); + res.push(PathSegment { + from: self.input_idx, + edge: Edge::ObjectProp(path.join(".")), + }); + res + } +} + +enum UnionKind { + Union, + Either, +} + +impl Validator { + pub fn validate_injection( + &mut self, + path: &mut Vec, + type_idx: TypeId, + injection_node: &InjectionNode, + cx: &InjectionValidationContext<'_>, + ) { + let tg = cx.validator.get_typegraph(); + match injection_node { + InjectionNode::Leaf { injection } => match injection { + Injection::Static(data) => { + for value in data.values::().unwrap().iter() { + match serde_json::from_str::(value) { + Ok(val) => match tg.validate_value(type_idx, &val) { + Ok(_) => {} + Err(err) => self.push_error(&cx.get_path(path), err.to_string()), + }, + Err(e) => { + self.push_error( + &cx.get_path(path), + format!( + "Error while parsing static injection value {value:?}: {e:?}", + value = value + ), + ); + } + } + } + } + Injection::Parent(data) => { + let sources = data.values::().unwrap(); + for source_key in sources.iter() { + self.validate_parent_injection(source_key, type_idx, path, cx); + } + } + _ => (), + }, + InjectionNode::Parent { children } => { + let type_idx = tg.resolve_quant(type_idx); + let type_node = &cx.validator.get_typegraph().types[type_idx as usize]; + match type_node { + TypeNode::Object { data, .. } => { + for (key, node) in children.iter() { + path.push(key.clone()); + match data.properties.get(key) { + Some(type_idx) => { + self.validate_injection(path, *type_idx, node, cx); + } + None => { + self.push_error( + &cx.get_path(path), + format!( + "unexpected injection path prefix: {:?}, available properties are: {:?}", + path.join("."), data.properties.keys().collect::>() + ), + ); + } + } + path.pop(); + } + } + TypeNode::Union { data, .. } => { + self.validate_union( + type_node, + &data.any_of, + children, + path, + cx, + UnionKind::Union, + ); + } + TypeNode::Either { data, .. } => { + self.validate_union( + type_node, + &data.one_of, + children, + path, + cx, + UnionKind::Either, + ); + } + _ => { + self.push_error( + &cx.get_path(path), + format!("expected object type, found: {:?}", type_node), + ); + self.push_error( + &cx.get_path(path), + format!("unexpected injection path prefix: {:?}", path.join(".")), + ); + } + } + } + } + } + + fn validate_parent_injection( + &mut self, + source_key: &str, + in_type_idx: TypeId, + in_path: &[String], + cx: &InjectionValidationContext<'_>, + ) { + let tg = cx.validator.get_typegraph(); + let source_idx = { + let source_idx = cx.parent_object.properties.get(source_key); + match source_idx { + Some(idx) => *idx, + None => { + let keys = cx.parent_object.properties.keys().collect::>(); + self.push_error( + &cx.get_path(in_path), + format!( + "from_parent injection: source key {source_key} not found in parent; available keys: {keys:?}", + source_key = source_key + ), + ); + return; + } + } + }; + + let source = ExtendedTypeNode::new(tg, source_idx); + let target = ExtendedTypeNode::new(tg, in_type_idx); + let mut errors = ErrorCollector::default(); + source.ensure_subtype_of(&target, tg, &mut errors); + for error in errors.errors.into_iter() { + self.push_error( + &cx.get_path(in_path), + format!("from_parent injection: {error}", error = error), + ); + } + } + + fn validate_union( + &mut self, + type_node: &TypeNode, + variants: &[TypeId], + children: &IndexMap, + path: &mut Vec, + cx: &InjectionValidationContext<'_>, + union_kind: UnionKind, + ) { + let eligible_variants = variants + .iter() + .cloned() + .filter_map(|type_idx| { + let type_node = &cx.validator.get_typegraph().types[type_idx as usize]; + match type_node { + TypeNode::Object { data, .. } => children + .keys() + .all(|key| data.properties.contains_key(key)) + .then_some(data), + _ => None, + } + }) + .collect::>(); + if eligible_variants.is_empty() { + self.push_error( + &cx.get_path(path), + format!("expected object type, found: {:?}", type_node), + ); + self.push_error( + &cx.get_path(path), + format!("unexpected injection path prefix: {:?}", path.join(".")), + ); + } + + let mut match_count = 0; + + for type_data in eligible_variants { + let mut validator = Validator::default(); + for (key, node) in children.iter() { + path.push(key.clone()); + match type_data.properties.get(key) { + Some(type_idx) => { + validator.validate_injection(path, *type_idx, node, cx); + } + None => { + unreachable!(); + } + } + path.pop(); + } + if validator.errors.is_empty() { + match union_kind { + UnionKind::Union => { + return; + } + UnionKind::Either => { + match_count += 1; + } + } + } + } + match union_kind { + UnionKind::Union => { + self.push_error( + &cx.get_path(path), + format!( + "no variant of the union type matches the injection path prefix: {:?}", + path.join(".") + ), + ); + } + UnionKind::Either => match match_count { + 0 => { + self.push_error( + &cx.get_path(path), + format!( + "no variant of the union type matches the injection path prefix: {:?}", + path.join(".") + ), + ); + } + 1 => {} + _ => { + self.push_error( + &cx.get_path(path), + format!( + "multiple variants of the union type match the injection path prefix: {:?}", + path.join(".") + ), + ); + } + }, + } + } +} diff --git a/src/common/src/typegraph/validator/input.rs b/src/common/src/typegraph/validator/input.rs index d6fce8054b..fe4c23c0ed 100644 --- a/src/common/src/typegraph/validator/input.rs +++ b/src/common/src/typegraph/validator/input.rs @@ -1,17 +1,12 @@ // Copyright Metatype OÜ, licensed under the Elastic License 2.0. // SPDX-License-Identifier: Elastic-2.0 -use serde_json::Value; - use crate::typegraph::{ - visitor::{CurrentNode, Edge, TypeVisitor, VisitResult}, - Injection, TypeNode, + visitor::{CurrentNode, TypeVisitor, VisitResult}, + TypeNode, }; -use super::{ - types::{EnsureSubtypeOf, ErrorCollector, ExtendedTypeNode}, - TypeVisitorContext, Validator, ValidatorContext, -}; +use super::{TypeVisitorContext, Validator}; impl Validator { pub fn visit_input_type_impl( @@ -27,10 +22,6 @@ impl Validator { return VisitResult::Continue(false); } - if let Some(injection) = &type_node.base().injection { - self.validate_injection(injection, current_node, context); - } - if let Some(enumeration) = &type_node.base().enumeration { match context .get_typegraph() @@ -48,103 +39,3 @@ impl Validator { VisitResult::Continue(true) } } - -impl Validator { - fn validate_injection( - &mut self, - injection: &Injection, - current_node: CurrentNode<'_>, - context: &ValidatorContext<'_>, - ) { - let typegraph = context.get_typegraph(); - - match injection { - Injection::Static(data) => { - for value in data.values().iter() { - match serde_json::from_str::(value) { - Ok(val) => match typegraph.validate_value(current_node.type_idx, &val) { - Ok(_) => {} - Err(err) => self.push_error(current_node.path, err.to_string()), - }, - Err(e) => { - self.push_error( - current_node.path, - format!( - "Error while parsing static injection value {value:?}: {e:?}", - value = value - ), - ); - } - } - } - } - Injection::Parent(data) => { - let sources = data.values(); - for source_idx in sources.iter() { - self.validate_parent_injection(source_idx, ¤t_node, context); - } - } - _ => (), - } - } - - fn validate_parent_injection( - &mut self, - source_key: &str, - current_node: &CurrentNode<'_>, - context: &ValidatorContext<'_>, - ) { - let typegraph = context.get_typegraph(); - let parent_idx = current_node.find_function_parent().unwrap(); - let parent_type_node = typegraph.types.get(parent_idx as usize).unwrap(); - let source_idx = match parent_type_node { - TypeNode::Object { data, .. } => { - let source_idx = data.properties.get(source_key); - match source_idx { - Some(idx) => *idx, - None => { - let keys = data.properties.keys().collect::>(); - self.push_error( - current_node.path, - format!( - "from_parent injection: source key {source_key} not found in parent; available keys: {keys:?}", - source_key = source_key - ), - ); - return; - } - } - } - _ => { - self.push_error( - current_node.path, - "from_parent injection: parent is not an object".to_string(), - ); - return; - } - }; - - let source = ExtendedTypeNode::new(typegraph, source_idx); - let target = ExtendedTypeNode::new(typegraph, current_node.type_idx); - let mut errors = ErrorCollector::default(); - source.ensure_subtype_of(&target, typegraph, &mut errors); - for error in errors.errors.into_iter() { - self.push_error( - current_node.path, - format!("from_parent injection: {error}", error = error), - ); - } - } -} - -impl<'a> CurrentNode<'a> { - fn find_function_parent(&self) -> Option { - let mut path = self.path.iter().rev(); - for seg in path.by_ref() { - if let Edge::FunctionInput = seg.edge { - break; - } - } - path.next().map(|s| s.from) - } -} diff --git a/src/common/src/typegraph/validator/mod.rs b/src/common/src/typegraph/validator/mod.rs index c73ee11c88..5d40ab583c 100644 --- a/src/common/src/typegraph/validator/mod.rs +++ b/src/common/src/typegraph/validator/mod.rs @@ -2,18 +2,19 @@ // SPDX-License-Identifier: Elastic-2.0 mod common; +mod injection; mod input; mod types; mod value; -use std::collections::{hash_map, HashMap}; - -use crate::typegraph::{TypeNode, Typegraph}; +use self::injection::InjectionValidationContext; use super::visitor::{ visit_child, ChildNode, CurrentNode, ParentFn, Path, PathSegment, TypeVisitor, TypeVisitorContext, VisitLayer, VisitResult, VisitorResult, }; +use crate::typegraph::{TypeNode, Typegraph}; +use std::collections::{hash_map, HashMap}; use self::types::{EnsureSubtypeOf, ErrorCollector, ExtendedTypeNode}; @@ -76,7 +77,7 @@ impl<'a> VisitLayer<'a, Validator> for Layer { fn visit( &self, traversal: &mut super::visitor::TypegraphTraversal<'a, Validator, Self>, - source: impl Iterator>, + source: impl Iterator, context: &'a ValidatorContext<'a>, ) -> Option<::Return> { let mut errors = vec![]; @@ -129,9 +130,46 @@ impl<'a> TypeVisitor<'a> for Validator { let get_type_name = |idx: u32| tg.types.get(idx as usize).unwrap().type_name(); - if let TypeNode::Function { .. } = type_node { - // validate materializer?? - // TODO deno static + if let TypeNode::Function { data, .. } = type_node { + let parent_idx = current_node.path.last().unwrap().from; + let parent_object = match &context.get_typegraph().types[parent_idx as usize] { + TypeNode::Object { data, .. } => data, + _ => { + self.push_error( + current_node.path, + "function parent is not an object".to_owned(), + ); + return VisitResult::Continue(false); + } + }; + let mut path = vec![]; + let inj_cx = InjectionValidationContext { + fn_path: current_node.path.to_vec(), + fn_idx: current_node.type_idx, + input_idx: data.input, + parent_object, + validator: context, + }; + let input_object = match &context.get_typegraph().types[data.input as usize] { + TypeNode::Object { data, .. } => data, + _ => { + self.push_error( + current_node.path, + "function input is not an object".to_owned(), + ); + return VisitResult::Continue(false); + } + }; + for (k, inj) in data.injections.iter() { + path.push(k.clone()); + self.validate_injection( + &mut path, + *input_object.properties.get(k).unwrap(), + inj, + &inj_cx, + ); + path.pop(); + } } else if let TypeNode::Either { data, .. } = type_node { let variants = data.one_of.clone(); for i in 0..variants.len() { @@ -201,15 +239,6 @@ impl<'a> TypeVisitor<'a> for Validator { } } - // FIXME: does not work for deno.identity() - // if type_node.base().injection.is_some() { - // self.push_error( - // current_node.path, - // "Injection is not allowed in output types".to_owned(), - // ); - // return VisitResult::Continue(false); - // } - VisitResult::Continue(true) } diff --git a/src/common/src/typegraph/visitor.rs b/src/common/src/typegraph/visitor.rs index 7cdd4bcbcf..996ffa055c 100644 --- a/src/common/src/typegraph/visitor.rs +++ b/src/common/src/typegraph/visitor.rs @@ -12,13 +12,13 @@ use super::{TypeNode, Typegraph}; #[derive(Clone)] pub struct DefaultLayer; -pub struct ChildNode<'a>(pub PathSegment<'a>, pub u32); +pub struct ChildNode(pub PathSegment, pub u32); pub trait VisitLayer<'a, V: TypeVisitor<'a>>: Clone + Sized + 'a { fn visit( &self, traversal: &mut TypegraphTraversal<'a, V, Self>, - source: impl Iterator>, + source: impl Iterator, context: &'a V::Context, ) -> Option; } @@ -27,7 +27,7 @@ impl<'a, V: TypeVisitor<'a>> VisitLayer<'a, V> for DefaultLayer { fn visit( &self, traversal: &mut TypegraphTraversal<'a, V, Self>, - source: impl Iterator>, + source: impl Iterator, context: &'a V::Context, ) -> Option { for ChildNode(path_seg, idx) in source { @@ -41,7 +41,7 @@ impl<'a, V: TypeVisitor<'a>> VisitLayer<'a, V> for DefaultLayer { pub fn visit_child<'a, V: TypeVisitor<'a>, L: VisitLayer<'a, V>>( traversal: &mut TypegraphTraversal<'a, V, L>, - path_seg: PathSegment<'a>, + path_seg: PathSegment, idx: u32, context: &'a V::Context, ) -> Option { @@ -95,7 +95,7 @@ where L: VisitLayer<'a, V>, { tg: &'a Typegraph, - path: Vec>, + path: Vec, parent_fn: Option, as_input: bool, visited_types: HashMap>, // non input types; per parent function @@ -221,7 +221,7 @@ where ( PathSegment { from: type_idx, - edge: Edge::ObjectProp(name), + edge: Edge::ObjectProp(name.clone()), }, *idx, ) @@ -294,7 +294,7 @@ where } let last_seg = self.path.last().unwrap(); - let fn_key = match last_seg.edge { + let fn_key = match &last_seg.edge { Edge::ObjectProp(k) => k.to_string(), _ => unreachable!(), // or error? }; @@ -332,7 +332,7 @@ where fn visit_children( &mut self, - children: impl Iterator, u32)>, + children: impl Iterator, context: &'a V::Context, ) -> Option { self.layer.clone().visit( @@ -344,7 +344,7 @@ where fn visit_child( &mut self, - segment: PathSegment<'a>, + segment: PathSegment, type_idx: u32, context: &'a V::Context, ) -> Option { @@ -356,15 +356,14 @@ where } #[derive(Debug, Clone)] -pub struct PathSegment<'a> { - #[allow(dead_code)] +pub struct PathSegment { pub from: u32, // typeIdx - pub edge: Edge<'a>, + pub edge: Edge, } -impl<'a> Display for PathSegment<'a> { +impl Display for PathSegment { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - match self.edge { + match &self.edge { Edge::ObjectProp(name) => write!(f, "{}", name)?, Edge::ArrayItem => write!(f, "[]")?, Edge::OptionalItem => write!(f, "*")?, @@ -376,7 +375,7 @@ impl<'a> Display for PathSegment<'a> { } } -pub struct Path<'a>(pub &'a [PathSegment<'a>]); +pub struct Path<'a>(pub &'a [PathSegment]); impl<'a> Display for Path<'a> { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { @@ -388,8 +387,8 @@ impl<'a> Display for Path<'a> { } #[derive(Debug, Clone)] -pub enum Edge<'a> { - ObjectProp(&'a str), +pub enum Edge { + ObjectProp(String), ArrayItem, OptionalItem, FunctionInput, @@ -407,7 +406,7 @@ pub enum VisitResult { pub struct CurrentNode<'a> { pub type_idx: u32, pub type_node: &'a TypeNode, - pub path: &'a [PathSegment<'a>], + pub path: &'a [PathSegment], } pub trait TypeVisitorContext { diff --git a/src/meta-cli/src/cli/deploy.rs b/src/meta-cli/src/cli/deploy.rs index 67f44214d4..fffa187e3c 100644 --- a/src/meta-cli/src/cli/deploy.rs +++ b/src/meta-cli/src/cli/deploy.rs @@ -290,21 +290,8 @@ mod watch_mode { let mut secrets = deploy.secrets.clone(); secrets.apply_overrides(&deploy.options.secrets)?; - let action_generator = DeployActionGenerator::new( - deploy.node.into(), - secrets.into(), - deploy.config.dir().unwrap_or_log().into(), - deploy.base_dir.clone(), - deploy - .config - .prisma_migrations_base_dir(PathOption::Absolute) - .into(), - deploy.options.create_migration, - deploy.options.allow_destructive, - ); - #[cfg(feature = "typegate")] - let _typegate_addr = if let Some(tg_opts) = deploy.options.typegate_options { + let typegate_addr = if let Some(tg_opts) = deploy.options.typegate_options { use crate::deploy::actors::typegate::TypegateInit; info!("starting typegate"); Some( @@ -322,6 +309,31 @@ mod watch_mode { None }; + #[cfg(feature = "typegate")] + let port_override = typegate_addr.map(|(_, port)| port); + #[cfg(not(feature = "typegate"))] + let port_override = None; + + let deploy_node = deploy.node.clone(); + let deploy_node = if let Some(port) = port_override { + deploy_node.override_port(port) + } else { + deploy_node + }; + + let action_generator = DeployActionGenerator::new( + deploy_node.into(), + secrets.into(), + deploy.config.dir().unwrap_or_log().into(), + deploy.base_dir.clone(), + deploy + .config + .prisma_migrations_base_dir(PathOption::Absolute) + .into(), + deploy.options.create_migration, + deploy.options.allow_destructive, + ); + let mut init = TaskManagerInit::::new( deploy.config.clone(), action_generator.clone(), diff --git a/src/meta-cli/src/cli/dev.rs b/src/meta-cli/src/cli/dev.rs index 4b29248ffa..ecaf786b67 100644 --- a/src/meta-cli/src/cli/dev.rs +++ b/src/meta-cli/src/cli/dev.rs @@ -56,6 +56,7 @@ impl Action for Dev { allow_destructive: self.run_destructive_migrations, watch: true, no_migration: false, + create_migration: true, secrets: self.secrets.clone(), #[cfg(feature = "typegate")] diff --git a/src/meta-cli/src/deploy/actors/typegate.rs b/src/meta-cli/src/deploy/actors/typegate.rs index faf600f784..2d1c6757f0 100644 --- a/src/meta-cli/src/deploy/actors/typegate.rs +++ b/src/meta-cli/src/deploy/actors/typegate.rs @@ -18,7 +18,7 @@ mod message { #[derive(Message)] #[rtype(result = "()")] - pub struct StartProcess(pub Command, pub oneshot::Sender<()>); + pub struct StartProcess(pub Command, pub oneshot::Sender); #[derive(Message)] #[rtype(result = "()")] @@ -72,7 +72,7 @@ impl TypegateInit { } #[tracing::instrument] - pub async fn start(self, console: Addr) -> Result> { + pub async fn start(self, console: Addr) -> Result<(Addr, u16)> { let (ready_tx, ready_rx) = oneshot::channel(); let (temp_dir, temp_dir_handle) = if let Ok(temp_dir) = std::env::var("TMP_DIR") { @@ -95,9 +95,9 @@ impl TypegateInit { } }); - ready_rx.await.context("typegate did not start")?; + let port = ready_rx.await.context("typegate did not start")?; - Ok(addr) + Ok((addr, port)) } fn create_command(&self, temp_dir: &Path) -> Result { @@ -298,7 +298,7 @@ impl TypegateActor { addr: Addr, stdout: ChildStdout, console: Addr, - ready_tx: oneshot::Sender<()>, + ready_tx: oneshot::Sender, ) { let mut reader = BufReader::new(stdout).lines(); let prefix = "typegate>".dimmed(); @@ -308,6 +308,8 @@ impl TypegateActor { console: console.clone(), }; + let ready_message_prefix = "typegate ready on :"; + while let Some(line) = error_handler.handle(reader.next_line().await) { let naked_line = strip_ansi_escapes::strip_str(&line); if let Some(log_record) = LogRecord::from_line(&naked_line) { @@ -315,8 +317,10 @@ impl TypegateActor { } else { console.info(format!("{prefix} {line}")); } - if line.contains("typegate ready on ") { - ready_tx.send(()).unwrap(); + if naked_line.contains(ready_message_prefix) { + let (_, port) = naked_line.split_once(ready_message_prefix).unwrap(); + let port = port.trim().parse::().unwrap(); + ready_tx.send(port).unwrap(); break; } } diff --git a/src/meta-lsp/package.json b/src/meta-lsp/package.json index af56ec15c7..f71cc380a5 100644 --- a/src/meta-lsp/package.json +++ b/src/meta-lsp/package.json @@ -4,7 +4,7 @@ "description": "VSCode extension for Metatype support", "icon": "logo.png", "author": "Metatype Team", - "version": "0.4.11-rc.0", + "version": "0.5.0-rc.1", "repository": { "type": "git", "url": "https://github.com/metatypedev/metatype" diff --git a/src/meta-lsp/ts-language-server/package.json b/src/meta-lsp/ts-language-server/package.json index 4cf00a38f3..2005b196a0 100644 --- a/src/meta-lsp/ts-language-server/package.json +++ b/src/meta-lsp/ts-language-server/package.json @@ -2,7 +2,7 @@ "name": "typegraph-ts-server", "description": "TypeScript language server for TypeGraph", "author": "Metatype Team", - "version": "0.4.11-rc.0", + "version": "0.5.0-rc.1", "repository": { "type": "git", "url": "https://github.com/metatypedev/metatype" diff --git a/src/meta-lsp/vscode-metatype-support/package.json b/src/meta-lsp/vscode-metatype-support/package.json index 0e49044a90..9571b404d9 100644 --- a/src/meta-lsp/vscode-metatype-support/package.json +++ b/src/meta-lsp/vscode-metatype-support/package.json @@ -2,7 +2,7 @@ "name": "vscode-metatype-support", "description": "VSCode extension for Metatype support", "author": "Metatype Team", - "version": "0.4.11-rc.0", + "version": "0.5.0-rc.1", "repository": { "type": "git", "url": "https://github.com/metatypedev/metatype" diff --git a/src/metagen/src/fdk_rust/stubs.rs b/src/metagen/src/fdk_rust/stubs.rs index 873165cc86..54cfa8ecd0 100644 --- a/src/metagen/src/fdk_rust/stubs.rs +++ b/src/metagen/src/fdk_rust/stubs.rs @@ -137,6 +137,8 @@ mod test { data: FunctionTypeData { input: 1, output: 1, + injections: Default::default(), + runtime_config: Default::default(), rate_calls: false, rate_weight: None, materializer: 0, diff --git a/src/metagen/src/tests/fixtures.rs b/src/metagen/src/tests/fixtures.rs index 7116eff530..dd86021e33 100644 --- a/src/metagen/src/tests/fixtures.rs +++ b/src/metagen/src/tests/fixtures.rs @@ -8,7 +8,6 @@ pub async fn test_typegraph_1() -> anyhow::Result> { let out = tokio::process::Command::new("cargo") .args( "run -p meta-cli -- serialize -f fixtures/tg.ts -vvv" - // "run -p meta-cli -- serialize -f ../../examples/typegraphs/reduce.py" .split(' ') .collect::>(), ) @@ -80,6 +79,8 @@ pub fn test_typegraph_2() -> Typegraph { data: FunctionTypeData { input: 1, output: 1, + injections: Default::default(), + runtime_config: Default::default(), rate_calls: false, rate_weight: None, materializer: 0, @@ -97,10 +98,7 @@ pub fn test_typegraph_2() -> Typegraph { pub fn default_type_node_base() -> TypeNodeBase { TypeNodeBase { title: String::new(), - config: Default::default(), - runtime: 0, policies: vec![], - injection: None, description: None, enumeration: None, } diff --git a/src/pyrt_wit_wire/pyproject.toml b/src/pyrt_wit_wire/pyproject.toml index 19b2d3e16e..ee20d6ceee 100644 --- a/src/pyrt_wit_wire/pyproject.toml +++ b/src/pyrt_wit_wire/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "pyrt_wit_wire" -version = "0.4.11-rc.0" +version = "0.5.0-rc.1" description = "Wasm component implementing the PythonRuntime host using wit_wire protocol." license = "Elastic-2.0" readme = "README.md" diff --git a/src/typegate/src/config/types.ts b/src/typegate/src/config/types.ts index 9e3c2ef7cd..a9a5ec634a 100644 --- a/src/typegate/src/config/types.ts +++ b/src/typegate/src/config/types.ts @@ -1,14 +1,14 @@ // Copyright Metatype OÜ, licensed under the Elastic License 2.0. // SPDX-License-Identifier: Elastic-2.0 -import { z, RefinementCtx } from "zod"; +import { RefinementCtx, z } from "zod"; import { decodeBase64 } from "@std/encoding/base64"; import type { RedisConnectOptions } from "redis"; import type { S3ClientConfig } from "aws-sdk/client-s3"; const zBooleanString = z.preprocess( (a: unknown) => z.coerce.string().parse(a) === "true", - z.boolean() + z.boolean(), ); const addMissingEnvVarIssue = (envVar: string, ctx: RefinementCtx) => { @@ -51,7 +51,7 @@ export const globalConfigSchema = z.object({ packaged: zBooleanString, version: z.string(), hostname: z.string(), - tg_port: z.coerce.number().positive().max(65535), + tg_port: z.coerce.number().nonnegative().max(65535), trust_proxy: zBooleanString, trust_header_ip: z.string(), request_log: z.string().optional(), @@ -77,7 +77,8 @@ export const typegateConfigBaseSchema = z.object({ if (bytes.length != 64) { ctx.addIssue({ code: z.ZodIssueCode.custom, - message: `Base64 contains ${bytes.length} instead of 64 bytes (use openssl rand -base64 64 | tr -d '\n')`, + message: + `Base64 contains ${bytes.length} instead of 64 bytes (use openssl rand -base64 64 | tr -d '\n')`, }); } return bytes; diff --git a/src/typegate/src/engine/computation_engine.ts b/src/typegate/src/engine/computation_engine.ts index 46177cbb4b..a2cfb62db7 100644 --- a/src/typegate/src/engine/computation_engine.ts +++ b/src/typegate/src/engine/computation_engine.ts @@ -134,9 +134,10 @@ export class ComputationEngine { } const res = await Promise.all( - previousValues.map((parent) => - resolver!({ - ...this.computeArgs(stage, parent as Parents), + previousValues.map((parent) => { + const args = this.computeArgs(stage, parent as Parents); + return resolver!({ + ...args, _: { // parent: parent ?? {}, parent: parent as Parents, @@ -146,8 +147,8 @@ export class ComputationEngine { effect, ...deps, }, - }) - ), + }); + }), ); if (!rateCalls) { diff --git a/src/typegate/src/engine/planner/args.ts b/src/typegate/src/engine/planner/args.ts index a048521ff9..b034f4ebbe 100644 --- a/src/typegate/src/engine/planner/args.ts +++ b/src/typegate/src/engine/planner/args.ts @@ -13,21 +13,22 @@ import type { Variables, } from "../../types.ts"; import type { JSONValue } from "../../utils.ts"; -import { - getVariantTypesIndexes, - type ListNode, - type ObjectNode, - Type, - type TypeNode, - type UnionNode, +import type { + ListNode, + ObjectNode, + TypeNode, + UnionNode, } from "../../typegraph/type_node.ts"; +import { getVariantTypeIndices, Type } from "../../typegraph/type_node.ts"; import { mapValues } from "@std/collections/map-values"; import { filterValues } from "@std/collections/filter-values"; import type { EffectType, EitherNode, - FunctionParameterTransform, + FunctionNode, + Injection, + InjectionNode, } from "../../typegraph/types.ts"; import { getChildTypes, visitTypes } from "../../typegraph/visitor.ts"; @@ -40,6 +41,8 @@ import { defaultParameterTransformer, } from "./parameter_transformer.ts"; import { QueryFunction as JsonPathQuery } from "../../libs/jsonpath.ts"; +import { getInjection } from "../../typegraph/utils.ts"; +import { GeneratorNode } from "../../runtimes/random.ts"; class MandatoryArgumentError extends Error { constructor(argDetails: string) { @@ -91,15 +94,17 @@ export function collectArgs( stageId: StageId, effect: EffectType, parentProps: Record, - typeIdx: TypeIdx, + fnTypeNode: FunctionNode, astNodes: Record, - parameterTransform: FunctionParameterTransform | null, ): CollectedArgs { + const { input: typeIdx, parameterTransform, injections: injectionTree } = + fnTypeNode; const collector = new ArgumentCollector( typegraph, stageId, effect, parentProps, + injectionTree, ); const argTypeNode = typegraph.type(typeIdx, Type.OBJECT); for (const argName of Object.keys(astNodes)) { @@ -130,14 +135,14 @@ export function collectArgs( if (!collector.hasDeps()) { // no deps // pre-compute - const value = mapValues( + const value = cleanObjectValue(mapValues( compute, (c) => c({ ...DEFAULT_COMPUTE_PARAMS, effect: effect !== "read" ? effect : null, }), - ); + )); // typecheck validate(value); return { @@ -175,6 +180,49 @@ interface Dependencies { variables: Set; } +// TODO only filter out non-required optional fields +function cleanObject( + c: ComputeArg>, + optional?: false, +): ComputeArg>; +function cleanObject( + c: ComputeArg>, + optional: true, +): ComputeArg | null>; +function cleanObject( + c: ComputeArg>, + optional = false, +): ComputeArg | null> { + if (optional) { + return (...params) => { + const res = filterValues(c(...params), (v) => v != null); + return Object.keys(res).length === 0 ? null : res; + }; + } else { + return (...params) => filterValues(c(...params), (v) => v != null); + } +} + +function cleanObjectValue( + obj: Record, + optional?: false, +): Record; +function cleanObjectValue( + obj: Record, + optional: true, +): Record | null; +function cleanObjectValue( + obj: Record, + optional = false, +): Record | null { + if (optional) { + const res = filterValues(obj, (v) => v != null); + return Object.keys(res).length === 0 ? null : res; + } else { + return filterValues(obj, (v) => v != null); + } +} + /** * Utility class to collect the arguments for fields. * @@ -206,12 +254,18 @@ class ArgumentCollector { private stageId: StageId, private effect: EffectType, private parentProps: Record, + private injectionTree: Record, ) { this.deps = { context: new Set(), parent: new Set(), variables: new Set(), }; + this.stageId; + } + + #getInjection(path: string[]): Injection | null { + return getInjection(this.injectionTree, path); } /** Collect the arguments for the node `astNode` corresponding to type at `typeIdx` */ @@ -250,13 +304,14 @@ class ArgumentCollector { this.addPoliciesFrom(typeIdx); - if ("injection" in typ) { + const injection = this.#getInjection(node.path); + if (injection != null) { if (astNode != null) { throw new Error( `Unexpected value for injected parameter ${this.currentNodeDetails}`, ); } - const compute = this.collectInjection(typ); + const compute = this.collectInjection(typ, injection); if (compute != null) { return compute; } @@ -269,14 +324,77 @@ class ArgumentCollector { if (astNode == null) { if (typ.type === Type.OPTIONAL) { this.addPoliciesFrom(typ.item); + const itemType = this.tg.type(typ.item); const { default_value: defaultValue } = typ; - const value = defaultValue ?? null; - return () => value; + if (defaultValue != null) { + return () => defaultValue; + } + switch (itemType.type) { + case Type.OBJECT: + try { + return cleanObject( + this.collectDefaults( + itemType.properties, + node.path, + ), + true, + ); + } catch (_e) { + // fallthrough + } + break; + + case Type.UNION: + try { + for (const idx of itemType.anyOf) { + const variantType = this.tg.type(idx); + if (variantType.type === Type.OBJECT) { + return cleanObject( + this.collectDefaults( + variantType.properties, + node.path, + ), + true, + ); + } + } + } catch (_e) { + // fallthrough + } + break; + + case Type.EITHER: { + let compute: ComputeArg | null = null; + for (const idx of itemType.oneOf) { + const variantType = this.tg.type(idx); + if (variantType.type === Type.OBJECT) { + try { + if (compute != null) { + // multiple matches + break; + } + compute = this.collectDefaults( + variantType.properties, + node.path, + ); + break; + } catch (_e) { + // fallthrough + } + } + } + if (compute != null) { + return compute; + } + break; + } + } + return () => null; } if (typ.type === Type.OBJECT) { const props = typ.properties; - return this.collectDefaults(props); + return this.collectDefaults(props, node.path); } throw new MandatoryArgumentError(this.currentNodeDetails); @@ -294,7 +412,10 @@ class ArgumentCollector { } = valueNode; this.deps.variables.add(varName); if (typ.type === Type.OBJECT) { - const injectedFields = this.collectInjectedFields(typ.properties); + const injectedFields = this.collectInjectedFields( + typ.properties, + node.path, + ); return (params: ComputeArgParams) => { const fromVars = params.variables[varName] as Record; const injected = injectedFields(params); @@ -442,7 +563,7 @@ class ArgumentCollector { typeNode: UnionNode | EitherNode, ): ComputeArg { const { value: valueNode } = astNode; - const variantTypesIndexes: number[] = getVariantTypesIndexes(typeNode); + const variantTypesIndexes: number[] = getVariantTypeIndices(typeNode); const errors: Error[] = []; // throw type mismatch error only if the argument node of the query @@ -561,35 +682,39 @@ class ArgumentCollector { ); } - return (...params: Parameters) => - filterValues( - mapValues(computes, (c) => c(...params)), - (v) => v != undefined, - ); + return cleanObject((...params: Parameters) => + mapValues(computes, (c) => c(...params)) + ); } /** Collect the default value for a parameter of type 'object'; * this requires that all the props have a default value. */ - private collectDefaults(props: Record): ComputeArg { + private collectDefaults( + props: Record, + path: string[], + ): ComputeArg> { const computes: Record = {}; for (const [name, idx] of Object.entries(props)) { - computes[name] = this.collectDefault(idx); + path.push(name); + computes[name] = this.collectDefault(idx, path); + path.pop(); } - return (...params: Parameters) => - mapValues(computes, (c) => c(...params)); + return (...params) => mapValues(computes, (c) => c(...params)); } - private collectInjectedFields(props: Record) { + private collectInjectedFields(props: Record, path: string[]) { const computes: Record = {}; for (const [name, idx] of Object.entries(props)) { - const typ = this.tg.type(idx); - if ("injection" in typ) { - const value = this.collectInjection(this.tg.type(idx)); + path.push(name); + const injection = this.#getInjection(path); + if (injection != null) { + const value = this.collectInjection(this.tg.type(idx), injection); computes[name] = value; } + path.pop(); } return (params: ComputeArgParams) => @@ -599,15 +724,14 @@ class ArgumentCollector { /** Collect the value for a missing parameter. */ private collectDefault( typeIdx: number, + path: string[], ): ComputeArg { const typ = this.tg.type(typeIdx); - if (typ == null) { - throw new Error(`Expected a type at index '${typeIdx}'`); - } this.addPoliciesFrom(typeIdx); - if ("injection" in typ) { - const compute = this.collectInjection(typ); + const injection = this.#getInjection(path); + if (injection != null) { + const compute = this.collectInjection(typ, injection); if (compute != null) { return compute; } @@ -623,7 +747,7 @@ class ArgumentCollector { } case Type.OBJECT: { - return this.collectDefaults(typ.properties); + return this.collectDefaults(typ.properties, path); } default: @@ -634,14 +758,13 @@ class ArgumentCollector { /** Collect the value of an injected parameter. */ private collectInjection( typ: TypeNode, + injection: Injection, ): ComputeArg | null { visitTypes(this.tg.tg, getChildTypes(typ), (node) => { this.addPoliciesFrom(node.idx); return true; }); - const injection = typ.injection!; - switch (injection.source) { case "static": { const jsonString = selectInjection(injection.data, this.effect); @@ -701,7 +824,11 @@ class ArgumentCollector { } case "random": { - return () => this.tg.getRandom(typ); + return () => + this.tg.getRandom( + typ, + selectInjection(injection.data, this.effect), + ); } } } diff --git a/src/typegate/src/engine/planner/injection_utils.ts b/src/typegate/src/engine/planner/injection_utils.ts index e9408ac0fe..5acfe33c82 100644 --- a/src/typegate/src/engine/planner/injection_utils.ts +++ b/src/typegate/src/engine/planner/injection_utils.ts @@ -1,21 +1,18 @@ // Copyright Metatype OÜ, licensed under the Elastic License 2.0. // SPDX-License-Identifier: Elastic-2.0 -import type { - EffectType, - InjectionDataFor_String, -} from "../../typegraph/types.ts"; +import type { EffectType, InjectionData } from "../../typegraph/types.ts"; -export function selectInjection( - data: InjectionDataFor_String, +export function selectInjection( + data: InjectionData, effect: EffectType, -): string | null { +): T | null { if ("value" in data) { - return data.value; + return data.value as T; } if (effect in data) { - return data[effect]; + return data[effect] as T; } return null; } diff --git a/src/typegate/src/engine/planner/mod.ts b/src/typegate/src/engine/planner/mod.ts index c6d7e22f2b..a70bed4517 100644 --- a/src/typegate/src/engine/planner/mod.ts +++ b/src/typegate/src/engine/planner/mod.ts @@ -283,7 +283,7 @@ export class Planner { } return { parent: node, - name: canonicalName, + name, path, selectionSet: field.selectionSet, args: args ?? [], @@ -392,7 +392,11 @@ export class Planner { ); } - const runtime = this.tg.runtimeReferences[schema.runtime]; + const runtime = (schema.type === Type.FUNCTION) + ? this.tg + .runtimeReferences[(this.tg.materializer(schema.materializer)).runtime] + : node.parentStage?.props.runtime ?? + this.tg.runtimeReferences[this.tg.denoRuntimeIdx]; const stage = this.createComputeStage(node, { dependencies: node.parentStage ? [node.parentStage.id()] : [], @@ -444,7 +448,6 @@ export class Planner { output: outputIdx, rate_calls, rate_weight, - parameterTransform = null, } = schema; const outputType = this.tg.type(outputIdx); @@ -472,9 +475,8 @@ export class Planner { node.path.join("."), mat.effect.effect ?? "read", parentProps, - inputIdx, + schema, argNodes, - parameterTransform, ); deps.push(...collected.deps); diff --git a/src/typegate/src/engine/planner/policies.ts b/src/typegate/src/engine/planner/policies.ts index 707d811bee..48278dc7cf 100644 --- a/src/typegate/src/engine/planner/policies.ts +++ b/src/typegate/src/engine/planner/policies.ts @@ -318,9 +318,13 @@ export class OperationPoliciesBuilder { } } + #isNamespace(typeIdx: TypeIdx): boolean { + return this.tg.tg.meta.namespaces!.includes(typeIdx); + } + setReferencedTypes(stageId: StageId, ...types: TypeIdx[]): TypeIdx[] { if (this.current == null) { - if (this.tg.type(types[0]).config?.["__namespace"]) { + if (this.tg.tg.meta.namespaces!.includes(types[0])) { return types; } throw new Error("unexpected state"); diff --git a/src/typegate/src/engine/typecheck/result.ts b/src/typegate/src/engine/typecheck/result.ts index 29d14b7f21..b528cfe574 100644 --- a/src/typegate/src/engine/typecheck/result.ts +++ b/src/typegate/src/engine/typecheck/result.ts @@ -103,7 +103,6 @@ export class ResultValidationCompiler { cg.generateStringValidator({ type: "string", title: "__TypeName", - runtime: -1, policies: [], }); } else if (isScalar(typeNode)) { diff --git a/src/typegate/src/main.ts b/src/typegate/src/main.ts index 2efe7f6c61..53dfa22e96 100644 --- a/src/typegate/src/main.ts +++ b/src/typegate/src/main.ts @@ -61,7 +61,7 @@ try { (req, connInfo) => typegate.handle(req, connInfo.remoteAddr), ); - getLogger().info(`typegate ready on ${globalConfig.tg_port}`); + getLogger().info(`typegate ready on :${server.addr.port}`); await server.finished; } catch (err) { diff --git a/src/typegate/src/runtimes/Runtime.ts b/src/typegate/src/runtimes/Runtime.ts index ce307e8138..b943451846 100644 --- a/src/typegate/src/runtimes/Runtime.ts +++ b/src/typegate/src/runtimes/Runtime.ts @@ -3,7 +3,7 @@ import type { ComputeStage } from "../engine/query_engine.ts"; import { equal } from "@std/assert/equal"; -import type { Resolver } from "../types.ts"; +import type { Resolver, ResolverArgs } from "../types.ts"; export abstract class Runtime { readonly id: string; @@ -53,10 +53,30 @@ export abstract class Runtime { return ret; } + static materializeDefault( + stage: ComputeStage, + waitlist: ComputeStage[], + materializeRoot: (stage: ComputeStage) => ComputeStage[], + ): ComputeStage[] { + const materializedStages: ComputeStage[] = []; + const sameRuntime = Runtime.collectRelativeStages(stage, waitlist); + for (const s of [stage, ...sameRuntime]) { + if (s.props.materializer) { + materializedStages.push(...materializeRoot(s)); + } else { + materializedStages.push( + s.withResolver(Runtime.resolveFromParent(s.props.node)), + ); + } + } + + return materializedStages; + } + static resolveFromParent(name: string): Resolver { return ({ _: { parent } }) => { const resolver = parent[name]; - return typeof resolver === "function" ? resolver() : resolver; + return (typeof resolver === "function" ? resolver() : resolver) ?? null; }; } } diff --git a/src/typegate/src/runtimes/deno/deno.ts b/src/typegate/src/runtimes/deno/deno.ts index c094ba3922..b710fdf940 100644 --- a/src/typegate/src/runtimes/deno/deno.ts +++ b/src/typegate/src/runtimes/deno/deno.ts @@ -201,7 +201,7 @@ export class DenoRuntime extends Runtime { ]; } - if (stage.props.outType.config?.__namespace) { + if (this.tg.meta.namespaces!.includes(stage.props.typeIdx)) { return [stage.withResolver(() => ({}))]; } @@ -212,7 +212,7 @@ export class DenoRuntime extends Runtime { return {}; } const resolver = parent[stage.props.node]; - return typeof resolver === "function" ? resolver() : resolver; + return (typeof resolver === "function" ? resolver() : resolver) ?? null; }), ]; } diff --git a/src/typegate/src/runtimes/graphql.ts b/src/typegate/src/runtimes/graphql.ts index c131d09b2e..5cf6116fa3 100644 --- a/src/typegate/src/runtimes/graphql.ts +++ b/src/typegate/src/runtimes/graphql.ts @@ -130,16 +130,11 @@ export class GraphQLRuntime extends Runtime { }), ); } else { - const resolver: Resolver = ({ _: { parent } }) => { - const resolver = parent[field.props.node]; - const ret = typeof resolver === "function" ? resolver() : resolver; - return ret; - }; stagesMat.push( new ComputeStage({ ...field.props, dependencies: [...field.props.dependencies, queryStage.id()], - resolver, + resolver: Runtime.resolveFromParent(field.props.node), }), ); } diff --git a/src/typegate/src/runtimes/grpc.ts b/src/typegate/src/runtimes/grpc.ts index be89a0822e..6b6c13058b 100644 --- a/src/typegate/src/runtimes/grpc.ts +++ b/src/typegate/src/runtimes/grpc.ts @@ -28,7 +28,6 @@ export class GrpcRuntime extends Runtime { static async init(params: RuntimeInitParams): Promise { logger.info("Initliazing GrpcRuntime"); - logger.debug(`Init params: ${JSON.stringify(params)}`); const { typegraph, args } = params as RuntimeInitParams; const typegraphName = TypeGraph.formatName(typegraph); diff --git a/src/typegate/src/runtimes/prisma/hooks/generate_schema.ts b/src/typegate/src/runtimes/prisma/hooks/generate_schema.ts index f162f793ac..cbc4711768 100644 --- a/src/typegate/src/runtimes/prisma/hooks/generate_schema.ts +++ b/src/typegate/src/runtimes/prisma/hooks/generate_schema.ts @@ -6,6 +6,7 @@ import type { PushHandler } from "../../../typegate/hooks.ts"; import type { SecretManager, TypeGraphDS } from "../../../typegraph/mod.ts"; import type { Cardinality, + Injection, Model, Property, Relationship, @@ -89,7 +90,7 @@ class FieldBuilder { if (typeNode.type !== Type.STRING) { throw new Error("expected string type"); } - [typeName, tags] = this.#getStringTypeAndTags(typeNode); + [typeName, tags] = this.#getStringTypeAndTags(typeNode, prop); } if (prop.unique) { @@ -202,44 +203,10 @@ class FieldBuilder { } } - fieldFromScalarType( - name: string, - typeNode: TypeNode, - quantifier: QuantifierSuffix, - ): ModelField | null { - const scalar = this.#getScalarTypeNameAndTags(typeNode); - if (scalar == null) { - return null; - } - const [type, tags] = scalar; - return new ModelField(name, type + quantifier, tags); - } - - #getScalarTypeNameAndTags( - typeNode: TypeNode, - ): [string, string[]] | null { - switch (typeNode.type) { - case Type.STRING: - return this.#getStringTypeAndTags(typeNode); - - case Type.BOOLEAN: - return ["Boolean", []]; - - case Type.INTEGER: - return ["Int", []]; - - case Type.FLOAT: - return ["Float", []]; - - case Type.OBJECT: - return null; - - default: - throw new Error(`unsupported type: ${typeNode.type}`); - } - } - - #getStringTypeAndTags(typeNode: StringNode): [string, string[]] { + #getStringTypeAndTags( + typeNode: StringNode, + prop: Property & { type: "scalar" }, + ): [string, string[]] { const tags: string[] = []; const src = this.source; switch (this.provider) { @@ -253,21 +220,13 @@ class FieldBuilder { case "date": case "date-time": { - const injection = typeNode.injection; - const tags = []; - if (injection) { - if (injection.source === "dynamic") { - if ("value" in injection.data) { - throw new Error(""); - } - const onCreate = injection.data.create; - if (onCreate === "now") { - tags.push("@default(now())"); - } - const onUpdate = injection.data.update; - if (onUpdate === "now") { - tags.push("@updatedAt"); - } + const injection = prop.injection; + if (injection != null) { + if (injection.create === "DateNow") { + tags.push("@default(now())"); + } + if (injection.update === "DateNow") { + tags.push("@updatedAt"); } } return ["DateTime", tags]; diff --git a/src/typegate/src/runtimes/python.ts b/src/typegate/src/runtimes/python.ts index 10e96d88a1..aa3ac4d081 100644 --- a/src/typegate/src/runtimes/python.ts +++ b/src/typegate/src/runtimes/python.ts @@ -12,6 +12,7 @@ import { WitWireMessenger } from "./wit_wire/mod.ts"; import type { WitWireMatInfo } from "../../engine/runtime.js"; import { sha256 } from "../crypto.ts"; import { InternalAuth } from "../services/auth/protocols/internal.ts"; +import { TypeGraphDS } from "../typegraph/mod.ts"; const logger = getLogger(import.meta); @@ -21,6 +22,7 @@ export class PythonRuntime extends Runtime { private constructor( typegraphName: string, + private tg: TypeGraphDS, uuid: string, private wire: WitWireMessenger, ) { @@ -139,7 +141,7 @@ export class PythonRuntime extends Runtime { ); logger.info("WitWireMessenger initialized"); - return new PythonRuntime(typegraphName, uuid, wire); + return new PythonRuntime(typegraphName, typegraph, uuid, wire); } async deinit(): Promise { @@ -182,7 +184,7 @@ export class PythonRuntime extends Runtime { return [stage.withResolver(await this.delegate(mat))]; } - if (stage.props.outType.config?.__namespace) { + if (this.tg.meta.namespaces!.includes(stage.props.typeIdx)) { return [stage.withResolver(() => ({}))]; } diff --git a/src/typegate/src/runtimes/random.ts b/src/typegate/src/runtimes/random.ts index 96ba3175ec..91411413fa 100644 --- a/src/typegate/src/runtimes/random.ts +++ b/src/typegate/src/runtimes/random.ts @@ -3,21 +3,22 @@ import { Runtime } from "./Runtime.ts"; import { ComputeStage } from "../engine/query_engine.ts"; -import type { TypeNode } from "../typegraph/type_node.ts"; +import type { FunctionNode, TypeNode } from "../typegraph/type_node.ts"; import Chance from "chance"; import type { Resolver, RuntimeInitParams } from "../types.ts"; import type { RandomRuntimeData } from "../typegraph/types.ts"; import { registerRuntime } from "./mod.ts"; +import { TypeGraphDS } from "../typegraph/mod.ts"; @registerRuntime("random") export class RandomRuntime extends Runtime { seed: number | null; chance: typeof Chance; - private _tgTypes: TypeNode[] = []; constructor( typegraphName: string, seed: number | null, + private tg: TypeGraphDS, ) { super(typegraphName); this.seed = seed; @@ -29,21 +30,16 @@ export class RandomRuntime extends Runtime { } static async init(params: RuntimeInitParams): Promise { - const { args, typegraphName } = params as RuntimeInitParams< + const { args, typegraphName, typegraph: tg } = params as RuntimeInitParams< RandomRuntimeData >; const { seed } = args; - const runtime = await new RandomRuntime(typegraphName, seed ?? null); - runtime.setTgTypes(params.typegraph.types); + const runtime = await new RandomRuntime(typegraphName, seed ?? null, tg); return runtime; } - private setTgTypes(tg_types: TypeNode[]) { - this._tgTypes = tg_types; - } - private getTgTypeNameByIndex(index: number) { - return this._tgTypes[index]; + return this.tg.types[index]; } async deinit(): Promise {} @@ -53,59 +49,57 @@ export class RandomRuntime extends Runtime { waitlist: ComputeStage[], _verbose: boolean, ): ComputeStage[] { - const stagesMat: ComputeStage[] = []; - - const sameRuntime = Runtime.collectRelativeStages(stage, waitlist); - - stagesMat.push( - new ComputeStage({ - ...stage.props, - resolver: this.execute(stage.props.outType), - batcher: (x: any) => x, - }), - ); - - stagesMat.push(...sameRuntime.map((stage) => - new ComputeStage({ - ...stage.props, - dependencies: [...stage.props.dependencies, stagesMat[0].id()], - resolver: this.execute(stage.props.outType), - }) - )); - - return stagesMat; + return Runtime.materializeDefault(stage, waitlist, (s) => { + const genNode = (this.tg.types[s.props.typeIdx] as FunctionNode) + .runtimeConfig as GeneratorNode | null; + return [s.withResolver(this.execute(s.props.outType, genNode))]; + }); } - execute(typ: TypeNode): Resolver { + execute(typ: TypeNode, genNode: GeneratorNode | null): Resolver { return () => { - return randomizeRecursively(typ, this.chance, this._tgTypes); + return randomizeRecursively(typ, this.chance, this.tg.types, genNode); }; } } +export type GeneratorNode = + | { children: Record } + | { gen: string; args: Record }; + export default function randomizeRecursively( typ: TypeNode, chance: typeof Chance, tgTypes: TypeNode[], + generatorNode: GeneratorNode | null, ): any { - const config = typ.config ?? {}; - if (Object.prototype.hasOwnProperty.call(config, "gen")) { - const { gen, ...arg } = config; - return chance[gen as string](arg); + if (generatorNode && ("gen" in generatorNode)) { + const { gen, args } = generatorNode; + const res = chance[gen as string](args); + return res; } switch (typ.type) { case "object": { const result: Record = {}; for (const [field, idx] of Object.entries(typ.properties)) { + const genNode = generatorNode && ("children" in generatorNode) && + generatorNode.children[field] || null; const nextNode = tgTypes[idx]; - result[field] = randomizeRecursively(nextNode, chance, tgTypes); + result[field] = randomizeRecursively( + nextNode, + chance, + tgTypes, + genNode, + ); } return result; } case "optional": { const childNodeName = tgTypes[typ.item]; + const genNode = generatorNode && ("children" in generatorNode) && + generatorNode.children["_"] || null; return chance.bool() - ? randomizeRecursively(childNodeName, chance, tgTypes) + ? randomizeRecursively(childNodeName, chance, tgTypes, genNode) : null; } case "integer": @@ -136,7 +130,6 @@ export default function randomizeRecursively( // Get the timestamp of the random date const timestamp = randomDate.getTime(); - console.log(randomDate); // Create a new Date object with the timestamp adjusted for the local timezone offset const dateInUtc = new Date( @@ -161,30 +154,36 @@ export default function randomizeRecursively( const res = []; let size = chance.integer({ min: 1, max: 10 }); const childNodeName = tgTypes[typ.items]; + const genNode = generatorNode && ("children" in generatorNode) && + generatorNode.children["_"] || null; while (size--) { res.push( - randomizeRecursively(childNodeName, chance, tgTypes), + randomizeRecursively(childNodeName, chance, tgTypes, genNode), ); } return res; } case "either": { + const variant = chance.integer({ min: 0, max: typ.oneOf.length - 1 }); + const genNode = generatorNode && ("children" in generatorNode) && + generatorNode.children[`_${variant}`] || null; const result = randomizeRecursively( - tgTypes[ - typ.oneOf[chance.integer({ min: 0, max: typ.oneOf.length - 1 })] - ], + tgTypes[typ.oneOf[variant]], chance, tgTypes, + genNode, ); return result; } case "union": { + const variant = chance.integer({ min: 0, max: typ.anyOf.length - 1 }); + const genNode = generatorNode && ("children" in generatorNode) && + generatorNode.children[`_${variant}`] || null; const result = randomizeRecursively( - tgTypes[ - typ.anyOf[chance.integer({ min: 0, max: typ.anyOf.length - 1 })] - ], + tgTypes[typ.anyOf[variant]], chance, tgTypes, + genNode, ); return result; } diff --git a/src/typegate/src/runtimes/substantial.ts b/src/typegate/src/runtimes/substantial.ts index 913ceb66ff..80886ecfdd 100644 --- a/src/typegate/src/runtimes/substantial.ts +++ b/src/typegate/src/runtimes/substantial.ts @@ -4,7 +4,7 @@ import { Runtime } from "./Runtime.ts"; import { Resolver, RuntimeInitParams } from "../types.ts"; import { ComputeStage } from "../engine/query_engine.ts"; -import { TypeGraph, TypeMaterializer } from "../typegraph/mod.ts"; +import { TypeGraph, TypeGraphDS, TypeMaterializer } from "../typegraph/mod.ts"; import { registerRuntime } from "./mod.ts"; import { getLogger, Logger } from "../log.ts"; import * as ast from "graphql/ast"; @@ -63,6 +63,7 @@ export class SubstantialRuntime extends Runtime { private constructor( typegraphName: string, + private tg: TypeGraphDS, backend: Backend, queue: string, agent: Agent, @@ -78,8 +79,6 @@ export class SubstantialRuntime extends Runtime { static async init(params: RuntimeInitParams): Promise { logger.info("initializing SubstantialRuntime"); - // logger.debug(`init params: ${JSON.stringify(params)}`); - const { typegraph: tg, args, @@ -101,7 +100,7 @@ export class SubstantialRuntime extends Runtime { const backend = runtimeArgs.backend; if (backend.type == "redis") { backend.connection_string = secretManager.secretOrFail( - backend.connection_string + backend.connection_string, ); } @@ -140,6 +139,7 @@ export class SubstantialRuntime extends Runtime { // Prepare the runtime const instance = new SubstantialRuntime( tgName, + tg, backend, queue, agent, @@ -163,7 +163,7 @@ export class SubstantialRuntime extends Runtime { materialize( stage: ComputeStage, _waitlist: ComputeStage[], - _verbose: boolean + _verbose: boolean, ): ComputeStage[] { if (stage.props.node === "__typename") { return [ @@ -179,14 +179,14 @@ export class SubstantialRuntime extends Runtime { return "Mutation"; default: throw new Error( - `Unsupported operation type '${stage.props.operationType}'` + `Unsupported operation type '${stage.props.operationType}'`, ); } }), ]; } - if (stage.props.outType.config?.__namespace) { + if (this.tg.meta.namespaces!.includes(stage.props.typeIdx)) { return [stage.withResolver(() => ({}))]; } diff --git a/src/typegate/src/runtimes/typegate.ts b/src/typegate/src/runtimes/typegate.ts index c4109f859a..81c8878280 100644 --- a/src/typegate/src/runtimes/typegate.ts +++ b/src/typegate/src/runtimes/typegate.ts @@ -23,12 +23,9 @@ interface TypeInfo { optional: boolean; title: string; type: string; - runtime: string; /** list of json string */ enum: string[] | null; /** json string */ - config: string | null; - /** json string */ default: string | null; /** json string */ format: StringFormat | null; @@ -562,8 +559,6 @@ function walkPath( title: node.title, type: node.type, enum: node.enum ?? null, - runtime: tg.runtime(node.runtime).name, - config: node.config ? JSON.stringify(node.config) : null, default: defaultValue ? JSON.stringify(defaultValue) : null, format: format ?? null, fields: node.type == "object" ? collectObjectFields(tg, parent) : null, diff --git a/src/typegate/src/runtimes/typegraph.ts b/src/typegate/src/runtimes/typegraph.ts index c6c3c74702..b109a0df7e 100644 --- a/src/typegate/src/runtimes/typegraph.ts +++ b/src/typegate/src/runtimes/typegraph.ts @@ -12,6 +12,7 @@ import { Runtime } from "./Runtime.ts"; import { ComputeStage } from "../engine/query_engine.ts"; import { isEither, + isEmptyObject, isFunction, isList, isObject, @@ -22,7 +23,6 @@ import { type ObjectNode, Type, type TypeNode, - isEmptyObject, } from "../typegraph/type_node.ts"; import type { Resolver } from "../types.ts"; import { @@ -32,7 +32,7 @@ import { } from "../typegraph/visitor.ts"; import { distinctBy } from "@std/collections/distinct-by"; import { isInjected } from "../typegraph/utils.ts"; -import type { PolicyIndices } from "../typegraph/types.ts"; +import type { InjectionNode, PolicyIndices } from "../typegraph/types.ts"; type DeprecatedArg = { includeDeprecated?: boolean }; @@ -70,7 +70,7 @@ export class TypeGraphRuntime extends Runtime { static init( typegraph: TypeGraphDS, _materializers: TypeMaterializer[], - _args: Record + _args: Record, ): Runtime { return new TypeGraphRuntime(typegraph); } @@ -80,7 +80,7 @@ export class TypeGraphRuntime extends Runtime { materialize( stage: ComputeStage, _waitlist: ComputeStage[], - _verbose: boolean + _verbose: boolean, ): ComputeStage[] { const resolver: Resolver = (() => { const name = stage.props.materializer?.name; @@ -94,16 +94,18 @@ export class TypeGraphRuntime extends Runtime { if (name === "resolver") { return async ({ _: { parent } }) => { const resolver = parent[stage.props.node]; - const ret = - typeof resolver === "function" ? await resolver() : resolver; + const ret = typeof resolver === "function" + ? await resolver() + : resolver; return ret; }; } return async ({ _: { parent } }) => { const resolver = parent[stage.props.node]; - const ret = - typeof resolver === "function" ? await resolver() : resolver; + const ret = typeof resolver === "function" + ? await resolver() + : resolver; return ret; }; })(); @@ -127,8 +129,18 @@ export class TypeGraphRuntime extends Runtime { description: () => `${root.type} typegraph`, types: () => { // filter non-native GraphQL types - const filter = (type: TypeNode) => { - return !isInjected(this.tg, type) && !isQuantifier(type); + const filter = ( + type: TypeNode, + input: { + injectionTree: Record; + path: string[]; + } | null, + ) => { + return ( + (input == null || + !isInjected(this.tg, type, input.path, input.injectionTree)) && + !isQuantifier(type) + ); }; const scalarTypeIndices = new Set(); @@ -161,11 +173,12 @@ export class TypeGraphRuntime extends Runtime { this.scalarIndex.set(type.type, idx); return false; } - if (filter(type)) { + // FIXME + if (filter(type, null)) { inputTypeIndices.add(idx); } return true; - } + }, ); return true; }, @@ -185,7 +198,8 @@ export class TypeGraphRuntime extends Runtime { this.scalarIndex.set(type.type, idx); return false; } - if (filter(type)) { + // FIXME + if (filter(type, null)) { regularTypeIndices.add(idx); } return true; @@ -195,7 +209,7 @@ export class TypeGraphRuntime extends Runtime { visitTypes(this.tg, getChildTypes(this.tg.types[0]), myVisitor); const distinctScalars = distinctBy( [...scalarTypeIndices].map((idx) => this.tg.types[idx]), - (t) => t.type // for scalars: one GraphQL type per `type` not `title` + (t) => t.type, // for scalars: one GraphQL type per `type` not `title` ); const scalarTypes = distinctScalars.map((type) => this.formatType(type, false, false) @@ -203,20 +217,20 @@ export class TypeGraphRuntime extends Runtime { const adhocCustomScalarTypes = hasUnion ? distinctScalars.map((node) => { - const idx = this.scalarIndex.get(node.type)!; - const asObject = generateCustomScalar(node, idx); - return this.formatType(asObject, false, false); - }) + const idx = this.scalarIndex.get(node.type)!; + const asObject = generateCustomScalar(node, idx); + return this.formatType(asObject, false, false); + }) : []; const regularTypes = distinctBy( [...regularTypeIndices].map((idx) => this.tg.types[idx]), - (t) => t.title + (t) => t.title, ).map((type) => this.formatType(type, false, false)); const inputTypes = distinctBy( [...inputTypeIndices].map((idx) => this.tg.types[idx]), - (t) => t.title + (t) => t.title, ).map((type) => this.formatType(type, false, true)); const types = [ @@ -260,16 +274,17 @@ export class TypeGraphRuntime extends Runtime { return type ? this.formatType(type, false, false) : null; }; - formatInputFields = ([name, typeIdx]: [string, number]) => { + formatInputFields = ( + [name, typeIdx]: [string, number], + injectionNode: InjectionNode | null, + ) => { const type = this.tg.types[typeIdx]; - if ( - type.injection || - (isObject(type) && - Object.values(type.properties) - .map((prop) => this.tg.types[prop]) - .every((nested) => nested.injection)) - ) { + // TODO resolve quantifiers + + if (injectionNode && ("injection" in injectionNode)) { + // FIXME MET-704 + return null; } @@ -290,7 +305,7 @@ export class TypeGraphRuntime extends Runtime { formatType = ( type: TypeNode, required: boolean, - asInput: boolean + asInput: boolean, ): Record unknown> => { const common = { // https://github.com/graphql/graphql-js/blob/main/src/type/introspection.ts#L207 @@ -363,7 +378,7 @@ export class TypeGraphRuntime extends Runtime { (this.tg.types[0] as ObjectNode).properties["query"] ], // itself false, - false + false, ), isDeprecated: () => true, deprecationReason: () => @@ -420,11 +435,13 @@ export class TypeGraphRuntime extends Runtime { const variants = isUnion(type) ? type.anyOf : type.oneOf; if (asInput) { const titles = new Set( - variants.map((idx) => this.tg.types[idx].title) + variants.map((idx) => this.tg.types[idx].title), ); - const description = `${type.type} type\n${Array.from(titles).join( - ", " - )}`; + const description = `${type.type} type\n${ + Array.from(titles).join( + ", ", + ) + }`; return { ...common, @@ -483,48 +500,48 @@ export class TypeGraphRuntime extends Runtime { return ret; } - formatField = - (asInput: boolean) => - ([name, typeIdx]: [string, number]) => { - const type = this.tg.types[typeIdx]; - const common = { - // https://github.com/graphql/graphql-js/blob/main/src/type/introspection.ts#L329 - name: () => name, - description: () => `${name} field${this.policyDescription(type)}`, - isDeprecated: () => false, - deprecationReason: () => null, - }; - - if (isFunction(type)) { - return { - ...common, - args: (_: DeprecatedArg = {}) => { - const inp = this.tg.types[type.input as number]; - ensure( - isObject(inp), - `${type} cannot be an input field, require struct` - ); - let entries = Object.entries((inp as ObjectNode).properties); - entries = entries.sort((a, b) => b[1] - a[1]); - return entries - .map(this.formatInputFields) - .filter((f) => f !== null); - }, - type: () => { - const output = this.tg.types[type.output as number]; - return this.formatType(output, true, false); - }, - }; - } + formatField = (asInput: boolean) => ([name, typeIdx]: [string, number]) => { + const type = this.tg.types[typeIdx]; + const common = { + // https://github.com/graphql/graphql-js/blob/main/src/type/introspection.ts#L329 + name: () => name, + description: () => `${name} field${this.policyDescription(type)}`, + isDeprecated: () => false, + deprecationReason: () => null, + }; + if (isFunction(type)) { return { ...common, - args: () => [], + args: (_: DeprecatedArg = {}) => { + const inp = this.tg.types[type.input as number]; + ensure( + isObject(inp), + `${type} cannot be an input field, require struct`, + ); + let entries = Object.entries((inp as ObjectNode).properties); + entries = entries.sort((a, b) => b[1] - a[1]); + return entries + .map((entry) => + this.formatInputFields(entry, type.injections[entry[0]] ?? null) + ) + .filter((f) => f !== null); + }, type: () => { - return this.formatType(type, true, asInput); + const output = this.tg.types[type.output as number]; + return this.formatType(output, true, false); }, }; + } + + return { + ...common, + args: () => [], + type: () => { + return this.formatType(type, true, asInput); + }, }; + }; } function emptyObjectScalar() { diff --git a/src/typegate/src/runtimes/wasm_reflected.ts b/src/typegate/src/runtimes/wasm_reflected.ts index d8332bf1f8..724f646120 100644 --- a/src/typegate/src/runtimes/wasm_reflected.ts +++ b/src/typegate/src/runtimes/wasm_reflected.ts @@ -11,6 +11,7 @@ import * as ast from "graphql/ast"; import type { Materializer, WasmRuntimeData } from "../typegraph/types.ts"; import type { Typegate } from "../typegate/mod.ts"; import { getLogger, type Logger } from "../log.ts"; +import { TypeGraphDS } from "../typegraph/mod.ts"; const logger = getLogger(import.meta); @@ -21,6 +22,7 @@ export class WasmRuntimeReflected extends Runtime { private constructor( public artifactKey: string, typegraphName: string, + private tg: TypeGraphDS, private typegate: Typegate, ) { super(typegraphName); @@ -29,8 +31,14 @@ export class WasmRuntimeReflected extends Runtime { static init(params: RuntimeInitParams): Runtime { logger.info("initializing WasmRuntimeReflected"); - const { typegraphName, typegate, args: { wasm_artifact } } = params; - return new WasmRuntimeReflected(wasm_artifact, typegraphName, typegate); + const { typegraphName, typegraph, typegate, args: { wasm_artifact } } = + params; + return new WasmRuntimeReflected( + wasm_artifact, + typegraphName, + typegraph, + typegate, + ); } async deinit(): Promise {} @@ -71,7 +79,7 @@ export class WasmRuntimeReflected extends Runtime { ]; } - if (stage.props.outType.config?.__namespace) { + if (this.tg.meta.namespaces!.includes(stage.props.typeIdx)) { return [stage.withResolver(() => ({}))]; } diff --git a/src/typegate/src/runtimes/wasm_wire.ts b/src/typegate/src/runtimes/wasm_wire.ts index e403864225..de143b7225 100644 --- a/src/typegate/src/runtimes/wasm_wire.ts +++ b/src/typegate/src/runtimes/wasm_wire.ts @@ -10,6 +10,7 @@ import type { Materializer, WasmRuntimeData } from "../typegraph/types.ts"; import { getLogger, type Logger } from "../log.ts"; import { WitWireMessenger } from "./wit_wire/mod.ts"; import { InternalAuth } from "../services/auth/protocols/internal.ts"; +import { TypeGraphDS } from "../typegraph/mod.ts"; const logger = getLogger(import.meta); @@ -19,6 +20,7 @@ export class WasmRuntimeWire extends Runtime { private constructor( typegraphName: string, + private tg: TypeGraphDS, uuid: string, private wire: WitWireMessenger, ) { @@ -73,7 +75,7 @@ export class WasmRuntimeWire extends Runtime { ); logger.info("wit wire messenger initialized"); - return new WasmRuntimeWire(typegraphName, uuid, wire); + return new WasmRuntimeWire(typegraphName, typegraph, uuid, wire); } async deinit(): Promise { @@ -112,7 +114,7 @@ export class WasmRuntimeWire extends Runtime { return [stage.withResolver(this.delegate(mat))]; } - if (stage.props.outType.config?.__namespace) { + if (this.tg.meta.namespaces!.includes(stage.props.typeIdx)) { return [stage.withResolver(() => ({}))]; } diff --git a/src/typegate/src/runtimes/wit_wire/mod.ts b/src/typegate/src/runtimes/wit_wire/mod.ts index 945bbc8e27..5be4b593ca 100644 --- a/src/typegate/src/runtimes/wit_wire/mod.ts +++ b/src/typegate/src/runtimes/wit_wire/mod.ts @@ -9,7 +9,7 @@ import { getLogger } from "../../log.ts"; const logger = getLogger(import.meta); -const METATYPE_VERSION = "0.4.11-rc.0"; +const METATYPE_VERSION = "0.5.0-rc.1"; export class WitWireMessenger { static async init( diff --git a/src/typegate/src/transports/graphql/typegraph.ts b/src/typegate/src/transports/graphql/typegraph.ts index c9fd1effdf..df08e087df 100644 --- a/src/typegate/src/transports/graphql/typegraph.ts +++ b/src/typegate/src/transports/graphql/typegraph.ts @@ -17,6 +17,11 @@ function splitGraphQLOperations( const queryProperties: PropertiesTable = {}; const mutationProperties: PropertiesTable = {}; + if (typegraph.meta.namespaces == null) { + typegraph.meta.namespaces = []; + } + const namespaces = typegraph.meta.namespaces; + for (const [propertyName, typeIndex] of Object.entries(node.properties)) { const childNode = typegraph.types[typeIndex]; @@ -34,27 +39,23 @@ function splitGraphQLOperations( if (Object.keys(childQueryProperties).length === 0) { mutationProperties[propertyName] = typeIndex; - childNode.config = Object.assign(childNode.config ?? {}, { - __namespace: true, - }); + namespaces.push(typeIndex); } else if (Object.keys(childMutationProperties).length === 0) { queryProperties[propertyName] = typeIndex; - childNode.config = Object.assign(childNode.config ?? {}, { - __namespace: true, - }); + namespaces.push(typeIndex); } else { queryProperties[propertyName] = addNode(typegraph, { ...node, title: `${node.title}_q`, properties: childQueryProperties, - config: { ...(node.config ?? {}), __namespace: true }, }); + namespaces.push(queryProperties[propertyName]); mutationProperties[propertyName] = addNode(typegraph, { ...node, title: `${node.title}_m`, properties: childMutationProperties, - config: { ...(node.config ?? {}), __namespace: true }, }); + namespaces.push(mutationProperties[propertyName]); } break; } @@ -106,8 +107,8 @@ export function parseGraphQLTypeGraph(tgOrig: TypeGraphDS): TypeGraphDS { ...rootNode, title: "Query", properties: queryProperties, - config: { ...(rootNode.config ?? {}), __namespace: true }, }); + typegraph.meta.namespaces!.push(queryIndex); rootNode.properties.query = queryIndex; if (Object.keys(mutationProperties).length > 0) { @@ -115,8 +116,8 @@ export function parseGraphQLTypeGraph(tgOrig: TypeGraphDS): TypeGraphDS { ...rootNode, title: "Mutation", properties: mutationProperties, - config: { ...(rootNode.config ?? {}), __namespace: true }, }); + typegraph.meta.namespaces!.push(mutationIndex); rootNode.properties.mutation = mutationIndex; } diff --git a/src/typegate/src/typegraph/mod.ts b/src/typegate/src/typegraph/mod.ts index a7f19b1941..4b6df1fe6f 100644 --- a/src/typegate/src/typegraph/mod.ts +++ b/src/typegate/src/typegraph/mod.ts @@ -39,7 +39,7 @@ import type { import { InternalAuth } from "../services/auth/protocols/internal.ts"; import type { Protocol } from "../services/auth/protocols/protocol.ts"; import { initRuntime } from "../runtimes/mod.ts"; -import randomizeRecursively from "../runtimes/random.ts"; +import randomizeRecursively, { GeneratorNode } from "../runtimes/random.ts"; import type { Typegate } from "../typegate/mod.ts"; import { TypeUtils } from "./utils.ts"; @@ -65,7 +65,7 @@ export class SecretManager { const value = this.secretOrNull(name); ensure( value != null, - `cannot find secret "${name}" for "${this.typegraphName}"` + `cannot find secret "${name}" for "${this.typegraphName}"`, ); return value as string; } @@ -93,7 +93,6 @@ export class TypeGraph implements AsyncDisposable { title: "string", type: "string", policies: [], - runtime: -1, }; root: TypeNode; @@ -109,7 +108,7 @@ export class TypeGraph implements AsyncDisposable { public runtimeReferences: Runtime[], public cors: (req: Request) => Record, public auths: Map, - public introspection: TypeGraph | null + public introspection: TypeGraph | null, ) { this.root = this.type(0); this.name = TypeGraph.formatName(tg); @@ -153,7 +152,7 @@ export class TypeGraph implements AsyncDisposable { name = ""; } throw new Error( - `Invalid typegraph definition for '${name}': ${res.NotValid.reason}` + `Invalid typegraph definition for '${name}': ${res.NotValid.reason}`, ); } } @@ -163,7 +162,7 @@ export class TypeGraph implements AsyncDisposable { typegraph: TypeGraphDS, secretManager: SecretManager, staticReference: RuntimeResolver, - introspection: TypeGraph | null + introspection: TypeGraph | null, ): Promise { const typegraphName = TypeGraph.formatName(typegraph); const { meta, runtimes } = typegraph; @@ -180,13 +179,13 @@ export class TypeGraph implements AsyncDisposable { "Content-Type", "Authorization", ...meta.cors.allow_headers, - ]) + ]), ).join(","), "Access-Control-Expose-Headers": Array.from( - new Set([nextAuthorizationHeader, ...meta.cors.expose_headers]) + new Set([nextAuthorizationHeader, ...meta.cors.expose_headers]), ).join(","), - "Access-Control-Allow-Credentials": - meta.cors.allow_credentials.toString(), + "Access-Control-Allow-Credentials": meta.cors.allow_credentials + .toString(), }; if (meta.cors.max_age_sec) { staticCors["Access-Control-Max-Age"] = meta.cors.max_age_sec.toString(); @@ -217,7 +216,7 @@ export class TypeGraph implements AsyncDisposable { } const materializers = typegraph.materializers.filter( - (mat) => mat.runtime === idx + (mat) => mat.runtime === idx, ); return initRuntime(runtime.name, { @@ -228,7 +227,7 @@ export class TypeGraph implements AsyncDisposable { args: (runtime as any)?.data ?? {}, secretManager, }); - }) + }), ); const denoRuntime = runtimeReferences[denoRuntimeIdx]; @@ -244,7 +243,7 @@ export class TypeGraph implements AsyncDisposable { runtimeReferences, cors, auths, - introspection + introspection, ); for (const auth of meta.auths) { @@ -258,15 +257,15 @@ export class TypeGraph implements AsyncDisposable { { tg: tg, // required for validation runtimeReferences, - } - ) + }, + ), ); } // override "internal" to enforce internal auth auths.set( internalAuthName, - await InternalAuth.init(typegraphName, typegate.cryptoKeys) + await InternalAuth.init(typegraphName, typegate.cryptoKeys), ); return tg; @@ -275,12 +274,12 @@ export class TypeGraph implements AsyncDisposable { type(idx: number): TypeNode; type( idx: number, - asType: T + asType: T, ): TypeNode & { type: T }; type(idx: number, asType?: T): TypeNode { ensure( typeof idx === "number" && idx < this.tg.types.length, - `cannot find type with index '${idx}'` + `cannot find type with index '${idx}'`, ); const ret = this.tg.types[idx]; if (asType != undefined) { @@ -327,7 +326,10 @@ export class TypeGraph implements AsyncDisposable { throw new Error(`invalid type for secret injection: ${schema.type}`); } - getRandom(schema: TypeNode): number | string | null { + getRandom( + schema: TypeNode, + generator: GeneratorNode | null, + ): number | string | null { const tgTypes: TypeNode[] = this.tg.types; let seed = 12; // default seed if ( @@ -339,7 +341,7 @@ export class TypeGraph implements AsyncDisposable { const chance: typeof Chance = new Chance(seed); try { - const result = randomizeRecursively(schema, chance, tgTypes); + const result = randomizeRecursively(schema, chance, tgTypes, generator); return result; } catch (_) { @@ -385,7 +387,7 @@ export class TypeGraph implements AsyncDisposable { isString(type) || isUnion(type) || isEither(type), - `object expected but got ${type.type}` + `object expected but got ${type.type}`, ); return (x: any) => { return ensureArray(x); @@ -474,7 +476,7 @@ export class TypeGraph implements AsyncDisposable { Object.entries(typeNode.properties).map(([key, idx]) => [ key, this.getPossibleSelectionFields(idx), - ]) + ]), ); } @@ -489,13 +491,13 @@ export class TypeGraph implements AsyncDisposable { const entries = variants.map( (idx) => - [this.type(idx).title, this.getPossibleSelectionFields(idx)] as const + [this.type(idx).title, this.getPossibleSelectionFields(idx)] as const, ); if (entries[0][1] === null) { if (entries.some((e) => e[1] !== null)) { throw new Error( - "Unexpected: All the variants must not expect selection set" + "Unexpected: All the variants must not expect selection set", ); } return null; @@ -506,7 +508,7 @@ export class TypeGraph implements AsyncDisposable { } const expandNestedUnions = ( - entry: readonly [string, PossibleSelectionFields] + entry: readonly [string, PossibleSelectionFields], ): Array<[string, Map]> => { const [typeName, possibleSelections] = entry; diff --git a/src/typegate/src/typegraph/type_node.ts b/src/typegate/src/typegraph/type_node.ts index 3f77cf4818..105a120231 100644 --- a/src/typegate/src/typegraph/type_node.ts +++ b/src/typegate/src/typegraph/type_node.ts @@ -129,8 +129,8 @@ export function getWrappedType(t: QuantifierNode): number { * Returns the indexes of the variant types for a node of type `union` * or `either`. */ -export function getVariantTypesIndexes( - typeNode: UnionNode | EitherNode +export function getVariantTypeIndices( + typeNode: UnionNode | EitherNode, ): number[] { if (typeNode.type === "union") { return typeNode.anyOf; diff --git a/src/typegate/src/typegraph/types.ts b/src/typegate/src/typegraph/types.ts index 27758bd162..6607cc9515 100644 --- a/src/typegate/src/typegraph/types.ts +++ b/src/typegate/src/typegraph/types.ts @@ -6,40 +6,25 @@ export type OptionalNode = { type: "optional"; title: string; - runtime: number; policies: PolicyIndices[]; description?: string | null; - injection?: Injection | null; enum?: string[] | null; - config?: { - [k: string]: unknown; - }; item: number; default_value?: any; }; export type BooleanNode = { type: "boolean"; title: string; - runtime: number; policies: PolicyIndices[]; description?: string | null; - injection?: Injection | null; enum?: string[] | null; - config?: { - [k: string]: unknown; - }; }; export type FloatNode = { type: "float"; title: string; - runtime: number; policies: PolicyIndices[]; description?: string | null; - injection?: Injection | null; enum?: string[] | null; - config?: { - [k: string]: unknown; - }; minimum?: number | null; maximum?: number | null; exclusiveMinimum?: number | null; @@ -49,14 +34,9 @@ export type FloatNode = { export type IntegerNode = { type: "integer"; title: string; - runtime: number; policies: PolicyIndices[]; description?: string | null; - injection?: Injection | null; enum?: string[] | null; - config?: { - [k: string]: unknown; - }; minimum?: number | null; maximum?: number | null; exclusiveMinimum?: number | null; @@ -66,14 +46,9 @@ export type IntegerNode = { export type StringNode = { type: "string"; title: string; - runtime: number; policies: PolicyIndices[]; description?: string | null; - injection?: Injection | null; enum?: string[] | null; - config?: { - [k: string]: unknown; - }; minLength?: number | null; maxLength?: number | null; pattern?: string | null; @@ -82,14 +57,9 @@ export type StringNode = { export type FileNode = { type: "file"; title: string; - runtime: number; policies: PolicyIndices[]; description?: string | null; - injection?: Injection | null; enum?: string[] | null; - config?: { - [k: string]: unknown; - }; minSize?: number | null; maxSize?: number | null; mimeTypes?: string[] | null; @@ -97,14 +67,9 @@ export type FileNode = { export type ObjectNode = { type: "object"; title: string; - runtime: number; policies: PolicyIndices[]; description?: string | null; - injection?: Injection | null; enum?: string[] | null; - config?: { - [k: string]: unknown; - }; properties: { [k: string]: number; }; @@ -114,33 +79,28 @@ export type ObjectNode = { export type ListNode = { type: "list"; title: string; - runtime: number; policies: PolicyIndices[]; description?: string | null; - injection?: Injection | null; enum?: string[] | null; - config?: { - [k: string]: unknown; - }; items: number; maxItems?: number | null; minItems?: number | null; uniqueItems?: boolean | null; }; +export type InjectionNode = + | { children: Record } + | { injection: Injection }; export type FunctionNode = { type: "function"; title: string; - runtime: number; policies: PolicyIndices[]; description?: string | null; - injection?: Injection | null; enum?: string[] | null; - config?: { - [k: string]: unknown; - }; input: number; + injections: Record; parameterTransform?: FunctionParameterTransform | null; output: number; + runtimeConfig: unknown; materializer: number; rate_weight?: number | null; rate_calls: boolean; @@ -148,40 +108,25 @@ export type FunctionNode = { export type UnionNode = { type: "union"; title: string; - runtime: number; policies: PolicyIndices[]; description?: string | null; - injection?: Injection | null; enum?: string[] | null; - config?: { - [k: string]: unknown; - }; anyOf: number[]; }; export type EitherNode = { type: "either"; title: string; - runtime: number; policies: PolicyIndices[]; description?: string | null; - injection?: Injection | null; enum?: string[] | null; - config?: { - [k: string]: unknown; - }; oneOf: number[]; }; export type AnyNode = { type: "any"; title: string; - runtime: number; policies: PolicyIndices[]; description?: string | null; - injection?: Injection | null; enum?: string[] | null; - config?: { - [k: string]: unknown; - }; }; export type TypeNode = | OptionalNode @@ -199,25 +144,25 @@ export type TypeNode = export type PolicyIndices = number | PolicyIndicesByEffect; export type Injection = { source: "static"; - data: InjectionDataFor_String; + data: InjectionData; } | { source: "context"; - data: InjectionDataFor_String; + data: InjectionData; } | { source: "secret"; - data: InjectionDataFor_String; + data: InjectionData; } | { source: "parent"; - data: InjectionDataFor_String; + data: InjectionData; } | { source: "dynamic"; - data: InjectionDataFor_String; + data: InjectionData; } | { source: "random"; - data: InjectionDataFor_String; + data: InjectionData; }; -export type InjectionDataFor_String = SingleValueFor_String | { - [k: string]: string; +export type InjectionData = SingleInjectionValue | { + [k: string]: unknown; }; export type StringFormat = | "uuid" @@ -377,11 +322,8 @@ export interface PolicyIndicesByEffect { delete?: number | null; update?: number | null; } -export interface SingleValueFor_String { - value: string; -} -export interface SingleValueForUint32 { - value: number; +export interface SingleInjectionValue { + value: unknown; } export interface FunctionParameterTransform { resolver_input: number; @@ -500,6 +442,7 @@ export interface TypeMeta { artifacts: { [k: string]: Artifact; }; + namespaces?: number[] | null; } export interface Queries { dynamic: boolean; diff --git a/src/typegate/src/typegraph/utils.ts b/src/typegate/src/typegraph/utils.ts index ecdef079a8..1acd2c8a29 100644 --- a/src/typegate/src/typegraph/utils.ts +++ b/src/typegate/src/typegraph/utils.ts @@ -10,16 +10,48 @@ import { type UnionNode, } from "./type_node.ts"; import type { TypeIdx } from "../types.ts"; +import { Injection, InjectionNode } from "./types.ts"; -export function isInjected(tg: TypeGraphDS, t: TypeNode): boolean { - return ( - t.injection != null || - (isObject(t) && - t.properties.length > 0 && - Object.values(t.properties) - .map((propIdx) => tg.types[propIdx]) - .every((nested) => isInjected(tg, nested))) - ); +/** + * @param path - the path to `t` in the input type of the nearest ascendant function + */ +export function isInjected( + tg: TypeGraphDS, + t: TypeNode, + path: string[], + injectionTree: Record, +): boolean { + if (getInjection(injectionTree, path) != null) { + return true; + } + if (isObject(t)) { + return Object.entries(t.properties).every(([name, typeIdx]) => { + const propType = tg.types[typeIdx]; + return isInjected(tg, propType, [...path, name], injectionTree); + }); + } + return false; +} + +export function getInjection( + tree: Record, + path: string[], +): Injection | null { + const [key, ...rest] = path; + const node = tree[key]; + if (node == null) { + return null; + } + if (rest.length === 0) { + if ("children" in node) { + return null; + } + return node.injection; + } + if ("injection" in node) { + return null; + } + return getInjection(node.children, rest); } const NON_SCALAR_TYPES: Array = [ diff --git a/src/typegate/src/typegraphs/introspection.json b/src/typegate/src/typegraphs/introspection.json index 532a08fd77..71997398b4 100644 --- a/src/typegate/src/typegraphs/introspection.json +++ b/src/typegate/src/typegraphs/introspection.json @@ -3,9 +3,7 @@ { "type": "object", "title": "introspection", - "runtime": 0, "policies": [], - "config": {}, "properties": { "__type": 1, "__schema": 45 @@ -19,13 +17,13 @@ { "type": "function", "title": "root___type_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, "input": 2, "output": 4, + "injections": {}, + "runtimeConfig": null, "materializer": 0, "rate_weight": null, "rate_calls": false @@ -33,9 +31,7 @@ { "type": "object", "title": "root___type_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { "name": 3 }, @@ -45,25 +41,19 @@ { "type": "string", "title": "root___type_fn_input_name_string", - "runtime": 1, - "policies": [], - "config": {} + "policies": [] }, { "type": "optional", "title": "root___type_fn_output", - "runtime": 1, "policies": [], - "config": {}, "item": 5, "default_value": null }, { "type": "object", "title": "type", - "runtime": 1, "policies": [], - "config": {}, "properties": { "kind": 6, "name": 7, @@ -82,7 +72,6 @@ { "type": "string", "title": "type_kind", - "runtime": 1, "policies": [], "enum": [ "\"SCALAR\"", @@ -93,44 +82,37 @@ "\"INPUT_OBJECT\"", "\"LIST\"", "\"NON_NULL\"" - ], - "config": {} + ] }, { "type": "optional", "title": "type_name_root___type_fn_input_name_string_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 3, "default_value": null }, { "type": "optional", "title": "type_description_root___type_fn_input_name_string_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 3, "default_value": null }, { "type": "optional", "title": "type_specifiedByURL_root___type_fn_input_name_string_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 3, "default_value": null }, { "type": "function", "title": "type_fields_fn", - "runtime": 1, "policies": [], - "config": {}, "input": 11, "output": 14, + "injections": {}, + "runtimeConfig": null, "materializer": 1, "rate_weight": null, "rate_calls": false @@ -138,9 +120,7 @@ { "type": "object", "title": "type_fields_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { "includeDeprecated": 12 }, @@ -150,42 +130,32 @@ { "type": "optional", "title": "type_fields_fn_input_includeDeprecated_type_fields_fn_input_includeDeprecated_boolean_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 13, "default_value": null }, { "type": "boolean", "title": "type_fields_fn_input_includeDeprecated_boolean", - "runtime": 1, - "policies": [], - "config": {} + "policies": [] }, { "type": "optional", "title": "type_fields_fn_output", - "runtime": 1, "policies": [], - "config": {}, "item": 15, "default_value": null }, { "type": "list", "title": "type_fields_fn_output", - "runtime": 1, "policies": [], - "config": {}, "items": 16 }, { "type": "object", "title": "field", - "runtime": 1, "policies": [], - "config": {}, "properties": { "name": 3, "description": 17, @@ -200,20 +170,18 @@ { "type": "optional", "title": "field_description_root___type_fn_input_name_string_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 3, "default_value": null }, { "type": "function", "title": "field_args_fn", - "runtime": 1, "policies": [], - "config": {}, "input": 19, "output": 21, + "injections": {}, + "runtimeConfig": null, "materializer": 1, "rate_weight": null, "rate_calls": false @@ -221,9 +189,7 @@ { "type": "object", "title": "field_args_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { "includeDeprecated": 20 }, @@ -233,26 +199,20 @@ { "type": "optional", "title": "field_args_fn_input_includeDeprecated_type_fields_fn_input_includeDeprecated_boolean_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 13, "default_value": null }, { "type": "list", "title": "field_args_fn_output", - "runtime": 1, "policies": [], - "config": {}, "items": 22 }, { "type": "object", "title": "input_value", - "runtime": 1, "policies": [], - "config": {}, "properties": { "name": 3, "description": 23, @@ -267,81 +227,65 @@ { "type": "optional", "title": "input_value_description_root___type_fn_input_name_string_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 3, "default_value": null }, { "type": "optional", "title": "input_value_defaultValue_root___type_fn_input_name_string_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 3, "default_value": null }, { "type": "optional", "title": "input_value_deprecationReason_root___type_fn_input_name_string_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 3, "default_value": null }, { "type": "optional", "title": "field_deprecationReason_root___type_fn_input_name_string_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 3, "default_value": null }, { "type": "optional", "title": "type_interfaces_type_interfaces_type_list_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 28, "default_value": null }, { "type": "list", "title": "type_interfaces_type_list", - "runtime": 1, "policies": [], - "config": {}, "items": 5 }, { "type": "optional", "title": "type_possibleTypes_type_possibleTypes_type_list_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 30, "default_value": null }, { "type": "list", "title": "type_possibleTypes_type_list", - "runtime": 1, "policies": [], - "config": {}, "items": 5 }, { "type": "function", "title": "type_enumValues_fn", - "runtime": 1, "policies": [], - "config": {}, "input": 32, "output": 34, + "injections": {}, + "runtimeConfig": null, "materializer": 1, "rate_weight": null, "rate_calls": false @@ -349,9 +293,7 @@ { "type": "object", "title": "type_enumValues_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { "includeDeprecated": 33 }, @@ -361,35 +303,27 @@ { "type": "optional", "title": "type_enumValues_fn_input_includeDeprecated_type_fields_fn_input_includeDeprecated_boolean_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 13, "default_value": null }, { "type": "optional", "title": "type_enumValues_fn_output", - "runtime": 1, "policies": [], - "config": {}, "item": 35, "default_value": null }, { "type": "list", "title": "type_enumValues_fn_output", - "runtime": 1, "policies": [], - "config": {}, "items": 36 }, { "type": "object", "title": "enum_value", - "runtime": 1, "policies": [], - "config": {}, "properties": { "name": 3, "description": 37, @@ -402,29 +336,25 @@ { "type": "optional", "title": "enum_value_description_root___type_fn_input_name_string_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 3, "default_value": null }, { "type": "optional", "title": "enum_value_deprecationReason_root___type_fn_input_name_string_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 3, "default_value": null }, { "type": "function", "title": "type_inputFields_fn", - "runtime": 1, "policies": [], - "config": {}, "input": 40, "output": 42, + "injections": {}, + "runtimeConfig": null, "materializer": 1, "rate_weight": null, "rate_calls": false @@ -432,9 +362,7 @@ { "type": "object", "title": "type_inputFields_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { "includeDeprecated": 41 }, @@ -444,48 +372,40 @@ { "type": "optional", "title": "type_inputFields_fn_input_includeDeprecated_type_fields_fn_input_includeDeprecated_boolean_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 13, "default_value": null }, { "type": "optional", "title": "type_inputFields_fn_output", - "runtime": 1, "policies": [], - "config": {}, "item": 43, "default_value": null }, { "type": "list", "title": "type_inputFields_fn_output", - "runtime": 1, "policies": [], - "config": {}, "items": 22 }, { "type": "optional", "title": "type_ofType_type_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 5, "default_value": null }, { "type": "function", "title": "root___schema_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, "input": 46, "output": 47, + "injections": {}, + "runtimeConfig": null, "materializer": 3, "rate_weight": null, "rate_calls": false @@ -493,9 +413,7 @@ { "type": "object", "title": "root___schema_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": {}, "id": [], "required": [] @@ -503,9 +421,7 @@ { "type": "object", "title": "schema", - "runtime": 1, "policies": [], - "config": {}, "properties": { "description": 48, "types": 49, @@ -520,52 +436,40 @@ { "type": "optional", "title": "schema_description_root___type_fn_input_name_string_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 3, "default_value": null }, { "type": "list", "title": "schema_types_type_list", - "runtime": 1, "policies": [], - "config": {}, "items": 5 }, { "type": "optional", "title": "schema_mutationType_type_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 5, "default_value": null }, { "type": "optional", "title": "schema_subscriptionType_type_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 5, "default_value": null }, { "type": "list", "title": "schema_directives_directive_list", - "runtime": 1, "policies": [], - "config": {}, "items": 53 }, { "type": "object", "title": "directive", - "runtime": 1, "policies": [], - "config": {}, "properties": { "name": 3, "description": 54, @@ -579,24 +483,19 @@ { "type": "optional", "title": "directive_description_root___type_fn_input_name_string_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 3, "default_value": null }, { "type": "list", "title": "directive_locations_directive_location_list", - "runtime": 1, "policies": [], - "config": {}, "items": 56 }, { "type": "string", "title": "directive_location", - "runtime": 1, "policies": [], "enum": [ "\"QUERY\"", @@ -618,17 +517,16 @@ "\"ENUM_VALUE\"", "\"INPUT_OBJECT\"", "\"INPUT_FIELD_DEFINITION\"" - ], - "config": {} + ] }, { "type": "function", "title": "directive_args_fn", - "runtime": 1, "policies": [], - "config": {}, "input": 58, "output": 60, + "injections": {}, + "runtimeConfig": null, "materializer": 1, "rate_weight": null, "rate_calls": false @@ -636,9 +534,7 @@ { "type": "object", "title": "directive_args_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { "includeDeprecated": 59 }, @@ -648,18 +544,14 @@ { "type": "optional", "title": "directive_args_fn_input_includeDeprecated_type_fields_fn_input_includeDeprecated_boolean_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 13, "default_value": null }, { "type": "list", "title": "directive_args_fn_output", - "runtime": 1, "policies": [], - "config": {}, "items": 22 } ], diff --git a/src/typegate/src/typegraphs/prisma_migration.json b/src/typegate/src/typegraphs/prisma_migration.json index 23c09aea32..c44d6428ba 100644 --- a/src/typegate/src/typegraphs/prisma_migration.json +++ b/src/typegate/src/typegraphs/prisma_migration.json @@ -3,9 +3,7 @@ { "type": "object", "title": "typegate/prisma_migration", - "runtime": 0, "policies": [], - "config": {}, "properties": { "diff": 1, "apply": 8, @@ -25,13 +23,13 @@ { "type": "function", "title": "root_diff_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, "input": 2, "output": 6, + "injections": {}, + "runtimeConfig": null, "materializer": 0, "rate_weight": null, "rate_calls": false @@ -39,9 +37,7 @@ { "type": "object", "title": "root_diff_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { "typegraph": 3, "runtime": 4, @@ -53,32 +49,24 @@ { "type": "string", "title": "root_diff_fn_input_typegraph_string", - "runtime": 1, - "policies": [], - "config": {} + "policies": [] }, { "type": "optional", "title": "root_diff_fn_input_runtime_root_diff_fn_input_typegraph_string_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 3, "default_value": null }, { "type": "boolean", "title": "root_diff_fn_input_script_boolean", - "runtime": 1, - "policies": [], - "config": {} + "policies": [] }, { "type": "object", "title": "root_diff_fn_output", - "runtime": 1, "policies": [], - "config": {}, "properties": { "diff": 7, "runtimeName": 3 @@ -89,22 +77,20 @@ { "type": "optional", "title": "root_diff_fn_output_diff_root_diff_fn_input_typegraph_string_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 3, "default_value": null }, { "type": "function", "title": "root_apply_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, "input": 9, "output": 12, + "injections": {}, + "runtimeConfig": null, "materializer": 2, "rate_weight": null, "rate_calls": false @@ -112,9 +98,7 @@ { "type": "object", "title": "root_apply_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { "typegraph": 3, "runtime": 10, @@ -127,27 +111,21 @@ { "type": "optional", "title": "root_apply_fn_input_runtime_root_diff_fn_input_typegraph_string_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 3, "default_value": null }, { "type": "optional", "title": "root_apply_fn_input_migrations_root_diff_fn_input_typegraph_string_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 3, "default_value": null }, { "type": "object", "title": "root_apply_fn_output", - "runtime": 1, "policies": [], - "config": {}, "properties": { "databaseReset": 5, "appliedMigrations": 13 @@ -158,21 +136,19 @@ { "type": "list", "title": "root_apply_fn_output_appliedMigrations_root_diff_fn_input_typegraph_string_list", - "runtime": 1, "policies": [], - "config": {}, "items": 3 }, { "type": "function", "title": "root_create_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, "input": 15, "output": 18, + "injections": {}, + "runtimeConfig": null, "materializer": 3, "rate_weight": null, "rate_calls": false @@ -180,9 +156,7 @@ { "type": "object", "title": "root_create_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { "typegraph": 3, "runtime": 16, @@ -196,27 +170,21 @@ { "type": "optional", "title": "root_create_fn_input_runtime_root_diff_fn_input_typegraph_string_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 3, "default_value": null }, { "type": "optional", "title": "root_create_fn_input_migrations_root_diff_fn_input_typegraph_string_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 3, "default_value": null }, { "type": "object", "title": "root_create_fn_output", - "runtime": 1, "policies": [], - "config": {}, "properties": { "createdMigrationName": 3, "applyError": 19, @@ -229,31 +197,27 @@ { "type": "optional", "title": "root_create_fn_output_applyError_root_diff_fn_input_typegraph_string_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 3, "default_value": null }, { "type": "optional", "title": "root_create_fn_output_migrations_root_diff_fn_input_typegraph_string_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 3, "default_value": null }, { "type": "function", "title": "root_deploy_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, "input": 22, "output": 24, + "injections": {}, + "runtimeConfig": null, "materializer": 4, "rate_weight": null, "rate_calls": false @@ -261,9 +225,7 @@ { "type": "object", "title": "root_deploy_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { "typegraph": 3, "runtime": 23, @@ -275,18 +237,14 @@ { "type": "optional", "title": "root_deploy_fn_input_runtime_root_diff_fn_input_typegraph_string_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 3, "default_value": null }, { "type": "object", "title": "root_deploy_fn_output", - "runtime": 1, "policies": [], - "config": {}, "properties": { "migrationCount": 25, "appliedMigrations": 26 @@ -297,28 +255,24 @@ { "type": "integer", "title": "root_deploy_fn_output_migrationCount_integer", - "runtime": 1, - "policies": [], - "config": {} + "policies": [] }, { "type": "list", "title": "root_deploy_fn_output_appliedMigrations_root_diff_fn_input_typegraph_string_list", - "runtime": 1, "policies": [], - "config": {}, "items": 3 }, { "type": "function", "title": "root_reset_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, "input": 28, "output": 5, + "injections": {}, + "runtimeConfig": null, "materializer": 5, "rate_weight": null, "rate_calls": false @@ -326,9 +280,7 @@ { "type": "object", "title": "root_reset_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { "typegraph": 3, "runtime": 29 @@ -339,9 +291,7 @@ { "type": "optional", "title": "root_reset_fn_input_runtime_root_diff_fn_input_typegraph_string_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 3, "default_value": null } diff --git a/src/typegate/src/typegraphs/typegate.json b/src/typegate/src/typegraphs/typegate.json index a940f79dd3..8d1e0881a3 100644 --- a/src/typegate/src/typegraphs/typegate.json +++ b/src/typegate/src/typegraphs/typegate.json @@ -3,22 +3,20 @@ { "type": "object", "title": "typegate", - "runtime": 0, "policies": [], - "config": {}, "properties": { "typegraphs": 1, "typegraph": 7, "addTypegraph": 12, "removeTypegraphs": 22, "argInfoByPath": 26, - "findAvailableOperations": 41, - "findPrismaModels": 49, - "execRawPrismaRead": 55, - "execRawPrismaCreate": 67, - "execRawPrismaUpdate": 68, - "execRawPrismaDelete": 69, - "queryPrismaModel": 70 + "findAvailableOperations": 40, + "findPrismaModels": 48, + "execRawPrismaRead": 54, + "execRawPrismaCreate": 66, + "execRawPrismaUpdate": 67, + "execRawPrismaDelete": 68, + "queryPrismaModel": 69 }, "id": [], "required": [ @@ -39,13 +37,13 @@ { "type": "function", "title": "root_typegraphs_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, "input": 2, "output": 3, + "injections": {}, + "runtimeConfig": null, "materializer": 0, "rate_weight": null, "rate_calls": true @@ -53,9 +51,7 @@ { "type": "object", "title": "root_typegraphs_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": {}, "id": [], "required": [] @@ -63,17 +59,13 @@ { "type": "list", "title": "root_typegraphs_fn_output", - "runtime": 1, "policies": [], - "config": {}, "items": 4 }, { "type": "object", "title": "Typegraph", - "runtime": 1, "policies": [], - "config": {}, "properties": { "name": 5, "url": 6 @@ -84,28 +76,24 @@ { "type": "string", "title": "Typegraph_name_string", - "runtime": 1, - "policies": [], - "config": {} + "policies": [] }, { "type": "string", "title": "Typegraph_url_string_uri", - "runtime": 1, "policies": [], - "config": {}, "format": "uri" }, { "type": "function", "title": "root_typegraph_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, "input": 8, "output": 9, + "injections": {}, + "runtimeConfig": null, "materializer": 2, "rate_weight": null, "rate_calls": true @@ -113,9 +101,7 @@ { "type": "object", "title": "root_typegraph_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { "name": 5 }, @@ -125,18 +111,14 @@ { "type": "optional", "title": "root_typegraph_fn_output", - "runtime": 1, "policies": [], - "config": {}, "item": 10, "default_value": null }, { "type": "object", "title": "root_typegraph_fn_output", - "runtime": 1, "policies": [], - "config": {}, "properties": { "name": 5, "url": 6, @@ -148,11 +130,11 @@ { "type": "function", "title": "root_typegraph_fn_output_serialized_fn", - "runtime": 1, "policies": [], - "config": {}, "input": 2, "output": 5, + "injections": {}, + "runtimeConfig": null, "materializer": 3, "rate_weight": null, "rate_calls": false @@ -160,13 +142,13 @@ { "type": "function", "title": "root_addTypegraph_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, "input": 13, "output": 15, + "injections": {}, + "runtimeConfig": null, "materializer": 4, "rate_weight": null, "rate_calls": true @@ -174,9 +156,7 @@ { "type": "object", "title": "root_addTypegraph_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { "fromString": 14, "secrets": 14, @@ -188,17 +168,13 @@ { "type": "string", "title": "root_addTypegraph_fn_input_fromString_string_json", - "runtime": 1, "policies": [], - "config": {}, "format": "json" }, { "type": "object", "title": "root_addTypegraph_fn_output", - "runtime": 1, "policies": [], - "config": {}, "properties": { "name": 5, "messages": 16, @@ -211,17 +187,13 @@ { "type": "list", "title": "root_addTypegraph_fn_output_messages_root_addTypegraph_fn_output_messages_struct_list", - "runtime": 1, "policies": [], - "config": {}, "items": 17 }, { "type": "object", "title": "root_addTypegraph_fn_output_messages_struct", - "runtime": 1, "policies": [], - "config": {}, "properties": { "type": 18, "text": 5 @@ -232,29 +204,23 @@ { "type": "string", "title": "root_addTypegraph_fn_output_messages_struct_type_string_enum", - "runtime": 1, "policies": [], "enum": [ "\"info\"", "\"warning\"", "\"error\"" - ], - "config": {} + ] }, { "type": "list", "title": "root_addTypegraph_fn_output_migrations_root_addTypegraph_fn_output_migrations_struct_list", - "runtime": 1, "policies": [], - "config": {}, "items": 20 }, { "type": "object", "title": "root_addTypegraph_fn_output_migrations_struct", - "runtime": 1, "policies": [], - "config": {}, "properties": { "runtime": 5, "migrations": 5 @@ -265,22 +231,20 @@ { "type": "optional", "title": "root_addTypegraph_fn_output_failure_root_addTypegraph_fn_input_fromString_string_json_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 14, "default_value": null }, { "type": "function", "title": "root_removeTypegraphs_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, "input": 23, "output": 25, + "injections": {}, + "runtimeConfig": null, "materializer": 5, "rate_weight": null, "rate_calls": true @@ -288,9 +252,7 @@ { "type": "object", "title": "root_removeTypegraphs_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { "names": 24 }, @@ -300,28 +262,24 @@ { "type": "list", "title": "root_removeTypegraphs_fn_input_names_Typegraph_name_string_list", - "runtime": 1, "policies": [], - "config": {}, "items": 5 }, { "type": "boolean", "title": "root_removeTypegraphs_fn_output", - "runtime": 1, - "policies": [], - "config": {} + "policies": [] }, { "type": "function", "title": "root_argInfoByPath_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, "input": 27, "output": 30, + "injections": {}, + "runtimeConfig": null, "materializer": 6, "rate_weight": null, "rate_calls": true @@ -329,9 +287,7 @@ { "type": "object", "title": "root_argInfoByPath_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { "typegraph": 5, "queryType": 5, @@ -344,44 +300,34 @@ { "type": "list", "title": "root_argInfoByPath_fn_input_argPaths_root_argInfoByPath_fn_input_argPaths_Typegraph_name_string_list_list", - "runtime": 1, "policies": [], - "config": {}, "items": 29 }, { "type": "list", "title": "root_argInfoByPath_fn_input_argPaths_Typegraph_name_string_list", - "runtime": 1, "policies": [], - "config": {}, "items": 5 }, { "type": "list", "title": "root_argInfoByPath_fn_output", - "runtime": 1, "policies": [], - "config": {}, "items": 31 }, { "type": "object", "title": "TypeInfo", - "runtime": 1, "policies": [], - "config": {}, "properties": { "optional": 25, "title": 5, "type": 5, "enum": 32, - "runtime": 5, - "config": 34, - "default": 35, - "format": 36, - "policies": 37, - "fields": 38 + "default": 34, + "format": 35, + "policies": 36, + "fields": 37 }, "id": [], "required": [] @@ -389,78 +335,53 @@ { "type": "optional", "title": "TypeInfo_enum_TypeInfo_enum_root_addTypegraph_fn_input_fromString_string_json_list_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 33, "default_value": null }, { "type": "list", "title": "TypeInfo_enum_root_addTypegraph_fn_input_fromString_string_json_list", - "runtime": 1, "policies": [], - "config": {}, "items": 14 }, - { - "type": "optional", - "title": "TypeInfo_config_root_addTypegraph_fn_input_fromString_string_json_optional", - "runtime": 1, - "policies": [], - "config": {}, - "item": 14, - "default_value": null - }, { "type": "optional", "title": "TypeInfo_default_root_addTypegraph_fn_input_fromString_string_json_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 14, "default_value": null }, { "type": "optional", "title": "TypeInfo_format_Typegraph_name_string_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 5, "default_value": null }, { "type": "list", "title": "TypeInfo_policies_Typegraph_name_string_list", - "runtime": 1, "policies": [], - "config": {}, "items": 5 }, { "type": "optional", "title": "TypeInfo_fields_TypeInfo_fields_TypeInfo_fields_struct_list_optional", - "runtime": 1, "policies": [], - "config": {}, - "item": 39, + "item": 38, "default_value": null }, { "type": "list", "title": "TypeInfo_fields_TypeInfo_fields_struct_list", - "runtime": 1, "policies": [], - "config": {}, - "items": 40 + "items": 39 }, { "type": "object", "title": "TypeInfo_fields_struct", - "runtime": 1, "policies": [], - "config": {}, "properties": { "subPath": 29, "termNode": 31 @@ -471,13 +392,13 @@ { "type": "function", "title": "root_findAvailableOperations_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, - "input": 42, - "output": 43, + "input": 41, + "output": 42, + "injections": {}, + "runtimeConfig": null, "materializer": 7, "rate_weight": null, "rate_calls": true @@ -485,9 +406,7 @@ { "type": "object", "title": "root_findAvailableOperations_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { "typegraph": 5 }, @@ -497,23 +416,19 @@ { "type": "list", "title": "root_findAvailableOperations_fn_output", - "runtime": 1, "policies": [], - "config": {}, - "items": 44 + "items": 43 }, { "type": "object", "title": "OperationInfo", - "runtime": 1, "policies": [], - "config": {}, "properties": { "name": 5, - "type": 45, - "inputs": 46, + "type": 44, + "inputs": 45, "output": 31, - "outputItem": 48 + "outputItem": 47 }, "id": [], "required": [] @@ -521,28 +436,22 @@ { "type": "string", "title": "OperationInfo_type_string_enum", - "runtime": 1, "policies": [], "enum": [ "\"query\"", "\"mutation\"" - ], - "config": {} + ] }, { "type": "list", "title": "OperationInfo_inputs_OperationInfo_inputs_struct_list", - "runtime": 1, "policies": [], - "config": {}, - "items": 47 + "items": 46 }, { "type": "object", "title": "OperationInfo_inputs_struct", - "runtime": 1, "policies": [], - "config": {}, "properties": { "name": 5, "type": 31 @@ -553,22 +462,20 @@ { "type": "optional", "title": "OperationInfo_outputItem_TypeInfo_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 31, "default_value": null }, { "type": "function", "title": "root_findPrismaModels_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, - "input": 42, - "output": 50, + "input": 41, + "output": 49, + "injections": {}, + "runtimeConfig": null, "materializer": 8, "rate_weight": null, "rate_calls": true @@ -576,21 +483,17 @@ { "type": "list", "title": "root_findPrismaModels_fn_output", - "runtime": 1, "policies": [], - "config": {}, - "items": 51 + "items": 50 }, { "type": "object", "title": "PrismaModelInfo", - "runtime": 1, "policies": [], - "config": {}, "properties": { "name": 5, "runtime": 5, - "fields": 52 + "fields": 51 }, "id": [], "required": [] @@ -598,21 +501,17 @@ { "type": "list", "title": "PrismaModelInfo_fields_PrismaModelInfo_fields_struct_list", - "runtime": 1, "policies": [], - "config": {}, - "items": 53 + "items": 52 }, { "type": "object", "title": "PrismaModelInfo_fields_struct", - "runtime": 1, "policies": [], - "config": {}, "properties": { "name": 5, "as_id": 25, - "type": 54 + "type": 53 }, "id": [], "required": [] @@ -620,19 +519,15 @@ { "type": "object", "title": "ShallowTypeInfo", - "runtime": 1, "policies": [], - "config": {}, "properties": { "optional": 25, "title": 5, "type": 5, "enum": 32, - "runtime": 5, - "config": 34, - "default": 35, - "format": 36, - "policies": 37 + "default": 34, + "format": 35, + "policies": 36 }, "id": [], "required": [] @@ -640,13 +535,13 @@ { "type": "function", "title": "root_execRawPrismaRead_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, - "input": 56, + "input": 55, "output": 14, + "injections": {}, + "runtimeConfig": null, "materializer": 9, "rate_weight": null, "rate_calls": false @@ -654,13 +549,11 @@ { "type": "object", "title": "root_execRawPrismaRead_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { "typegraph": 5, "runtime": 5, - "query": 57 + "query": 56 }, "id": [], "required": [] @@ -668,23 +561,19 @@ { "type": "either", "title": "PrismaQuery", - "runtime": 1, "policies": [], - "config": {}, "oneOf": [ - 58, - 61 + 57, + 60 ] }, { "type": "object", "title": "PrismaSingleQuery", - "runtime": 1, "policies": [], - "config": {}, "properties": { - "modelName": 59, - "action": 60, + "modelName": 58, + "action": 59, "query": 14 }, "id": [], @@ -693,16 +582,13 @@ { "type": "optional", "title": "PrismaSingleQuery_modelName_Typegraph_name_string_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 5, "default_value": null }, { "type": "string", "title": "PrismaQueryTag", - "runtime": 1, "policies": [], "enum": [ "\"findUnique\"", @@ -723,18 +609,15 @@ "\"runCommandRaw\"", "\"findRaw\"", "\"aggregateRaw\"" - ], - "config": {} + ] }, { "type": "object", "title": "PrismaBatchQuery", - "runtime": 1, "policies": [], - "config": {}, "properties": { - "batch": 62, - "transaction": 63 + "batch": 61, + "transaction": 62 }, "id": [], "required": [] @@ -742,28 +625,22 @@ { "type": "list", "title": "PrismaBatchQuery_batch_PrismaSingleQuery_list", - "runtime": 1, "policies": [], - "config": {}, - "items": 58 + "items": 57 }, { "type": "optional", "title": "PrismaBatchQuery_transaction_PrismaBatchQuery_transaction_struct_optional", - "runtime": 1, "policies": [], - "config": {}, - "item": 64, + "item": 63, "default_value": null }, { "type": "object", "title": "PrismaBatchQuery_transaction_struct", - "runtime": 1, "policies": [], - "config": {}, "properties": { - "isolationLevel": 65 + "isolationLevel": 64 }, "id": [], "required": [] @@ -771,16 +648,13 @@ { "type": "optional", "title": "PrismaBatchQuery_transaction_struct_isolationLevel_PrismaBatchQuery_transaction_struct_isolationLevel_string_enum_optional", - "runtime": 1, "policies": [], - "config": {}, - "item": 66, + "item": 65, "default_value": null }, { "type": "string", "title": "PrismaBatchQuery_transaction_struct_isolationLevel_string_enum", - "runtime": 1, "policies": [], "enum": [ "\"read uncommitted\"", @@ -791,19 +665,18 @@ "\"repeatableread\"", "\"snapshot\"", "\"serializable\"" - ], - "config": {} + ] }, { "type": "function", "title": "root_execRawPrismaCreate_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, - "input": 56, + "input": 55, "output": 14, + "injections": {}, + "runtimeConfig": null, "materializer": 10, "rate_weight": null, "rate_calls": false @@ -811,13 +684,13 @@ { "type": "function", "title": "root_execRawPrismaUpdate_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, - "input": 56, + "input": 55, "output": 14, + "injections": {}, + "runtimeConfig": null, "materializer": 11, "rate_weight": null, "rate_calls": false @@ -825,13 +698,13 @@ { "type": "function", "title": "root_execRawPrismaDelete_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, - "input": 56, + "input": 55, "output": 14, + "injections": {}, + "runtimeConfig": null, "materializer": 12, "rate_weight": null, "rate_calls": false @@ -839,13 +712,13 @@ { "type": "function", "title": "root_queryPrismaModel_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, - "input": 71, - "output": 73, + "input": 70, + "output": 72, + "injections": {}, + "runtimeConfig": null, "materializer": 13, "rate_weight": null, "rate_calls": false @@ -853,15 +726,13 @@ { "type": "object", "title": "root_queryPrismaModel_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { "typegraph": 5, "runtime": 5, "model": 5, - "offset": 72, - "limit": 72 + "offset": 71, + "limit": 71 }, "id": [], "required": [] @@ -869,20 +740,16 @@ { "type": "integer", "title": "root_queryPrismaModel_fn_input_offset_integer", - "runtime": 1, - "policies": [], - "config": {} + "policies": [] }, { "type": "object", "title": "root_queryPrismaModel_fn_output", - "runtime": 1, "policies": [], - "config": {}, "properties": { - "fields": 74, - "rowCount": 72, - "data": 75 + "fields": 73, + "rowCount": 71, + "data": 74 }, "id": [], "required": [] @@ -890,17 +757,13 @@ { "type": "list", "title": "root_queryPrismaModel_fn_output_fields_PrismaModelInfo_fields_struct_list", - "runtime": 1, "policies": [], - "config": {}, - "items": 53 + "items": 52 }, { "type": "list", "title": "root_queryPrismaModel_fn_output_data_root_addTypegraph_fn_input_fromString_string_json_list", - "runtime": 1, "policies": [], - "config": {}, "items": 14 } ], diff --git a/src/typegate/src/typegraphs/typegate.py b/src/typegate/src/typegraphs/typegate.py index b108922c34..581fb9e7ad 100644 --- a/src/typegate/src/typegraphs/typegate.py +++ b/src/typegate/src/typegraphs/typegate.py @@ -174,8 +174,6 @@ def typegate(g: Graph): "title": t.string(), "type": t.string(), "enum": t.list(t.json()).optional(), - "runtime": t.string(), - "config": t.json().optional(), "default": t.json().optional(), "format": t.string().optional(), "policies": t.list(t.string()), diff --git a/src/typegraph/core/Cargo.toml b/src/typegraph/core/Cargo.toml index eaca0e6e44..4864d6fde9 100644 --- a/src/typegraph/core/Cargo.toml +++ b/src/typegraph/core/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "typegraph_core" -version = "0.4.11-rc.0" +version = "0.5.0-rc.1" edition = "2021" [lib] diff --git a/src/typegraph/core/src/conversion/hash.rs b/src/typegraph/core/src/conversion/hash.rs index 4f9f83118c..ccaac0b602 100644 --- a/src/typegraph/core/src/conversion/hash.rs +++ b/src/typegraph/core/src/conversion/hash.rs @@ -6,10 +6,5 @@ use crate::typegraph::TypegraphContext; pub use seahash::SeaHasher as Hasher; pub trait Hashable { - fn hash( - &self, - hasher: &mut Hasher, - tg: &mut TypegraphContext, - runtime_id: Option, - ) -> Result<()>; + fn hash(&self, hasher: &mut Hasher, tg: &mut TypegraphContext) -> Result<()>; } diff --git a/src/typegraph/core/src/conversion/parameter_transform.rs b/src/typegraph/core/src/conversion/parameter_transform.rs index 3dcfb33c68..9b47a9d8c9 100644 --- a/src/typegraph/core/src/conversion/parameter_transform.rs +++ b/src/typegraph/core/src/conversion/parameter_transform.rs @@ -14,9 +14,8 @@ use common::typegraph::parameter_transform as cm; pub fn convert_tree( ctx: &mut TypegraphContext, root_fields: &ParameterTransformNode, - runtime_id: u32, ) -> Result { - let res = convert_node(ctx, root_fields, runtime_id)?; + let res = convert_node(ctx, root_fields)?; if !matches!( res.data, cm::ParameterTransformNodeData::Parent(cm::ParameterTransformParentNode::Object { .. }) @@ -29,33 +28,26 @@ pub fn convert_tree( fn convert_node( ctx: &mut TypegraphContext, node: &ParameterTransformNode, - runtime_id: u32, ) -> Result { - let type_idx = ctx.register_type(TypeId(node.type_id), Some(runtime_id))?.0; + let type_idx = ctx.register_type(TypeId(node.type_id))?.0; match &node.data { ParameterTransformNodeData::Leaf(leaf_node) => { - convert_leaf_node(ctx, leaf_node, runtime_id).map(|leaf_node| { - cm::ParameterTransformNode { - type_idx, - data: cm::ParameterTransformNodeData::Leaf(leaf_node), - } - }) - } - ParameterTransformNodeData::Parent(parent_node) => { - convert_parent_node(ctx, parent_node, runtime_id).map(|parent_node| { - cm::ParameterTransformNode { - type_idx, - data: cm::ParameterTransformNodeData::Parent(parent_node), - } + convert_leaf_node(ctx, leaf_node).map(|leaf_node| cm::ParameterTransformNode { + type_idx, + data: cm::ParameterTransformNodeData::Leaf(leaf_node), }) } + ParameterTransformNodeData::Parent(parent_node) => convert_parent_node(ctx, parent_node) + .map(|parent_node| cm::ParameterTransformNode { + type_idx, + data: cm::ParameterTransformNodeData::Parent(parent_node), + }), } } fn convert_leaf_node( ctx: &mut TypegraphContext, node: &ParameterTransformLeafNode, - runtime_id: u32, ) -> Result { match node { ParameterTransformLeafNode::Arg { name } => { @@ -74,7 +66,7 @@ fn convert_leaf_node( } ParameterTransformLeafNode::Parent { type_name } => { let type_ref = t::ref_(type_name, Default::default()).build()?; - let parent_idx = ctx.register_type(type_ref, Some(runtime_id))?.0; + let parent_idx = ctx.register_type(type_ref)?.0; Ok(cm::ParameterTransformLeafNode::Parent { parent_idx }) } } @@ -83,26 +75,22 @@ fn convert_leaf_node( fn convert_parent_node( ctx: &mut TypegraphContext, node: &ParameterTransformParentNode, - runtime_id: u32, ) -> Result { match node { - ParameterTransformParentNode::Object { fields } => { - convert_object_node(ctx, fields, runtime_id) - } - ParameterTransformParentNode::Array { items } => convert_array_node(ctx, items, runtime_id), + ParameterTransformParentNode::Object { fields } => convert_object_node(ctx, fields), + ParameterTransformParentNode::Array { items } => convert_array_node(ctx, items), } } fn convert_object_node( ctx: &mut TypegraphContext, fields: &HashMap, - runtime_id: u32, ) -> Result { Ok(cm::ParameterTransformParentNode::Object { fields: fields .iter() .try_fold(HashMap::new(), |mut acc, (key, node)| { - acc.insert(key.clone(), convert_node(ctx, node, runtime_id)?); + acc.insert(key.clone(), convert_node(ctx, node)?); Ok::<_, TgError>(acc) })?, }) @@ -111,12 +99,11 @@ fn convert_object_node( fn convert_array_node( ctx: &mut TypegraphContext, items: &[ParameterTransformNode], - runtime_id: u32, ) -> Result { Ok(cm::ParameterTransformParentNode::Array { items: items .iter() - .map(|e| convert_node(ctx, e, runtime_id)) + .map(|e| convert_node(ctx, e)) .collect::>>()?, }) } diff --git a/src/typegraph/core/src/conversion/policies.rs b/src/typegraph/core/src/conversion/policies.rs index b969bb0474..1c2747fc91 100644 --- a/src/typegraph/core/src/conversion/policies.rs +++ b/src/typegraph/core/src/conversion/policies.rs @@ -13,7 +13,7 @@ use super::hash::Hashable; impl crate::wit::core::Policy { pub fn convert(&self, ctx: &mut TypegraphContext) -> Result { - let (mat_id, _) = ctx.register_materializer(self.materializer)?; + let mat_id = ctx.register_materializer(self.materializer)?; Ok(Policy { name: self.name.clone(), materializer: mat_id, @@ -26,7 +26,6 @@ impl Hashable for PolicySpec { &self, hasher: &mut crate::conversion::hash::Hasher, _tg: &mut TypegraphContext, - _runtime_id: Option, ) -> Result<()> { match self { PolicySpec::Simple(id) => { diff --git a/src/typegraph/core/src/conversion/runtimes.rs b/src/typegraph/core/src/conversion/runtimes.rs index 9e685fcb54..76c7dc89ef 100644 --- a/src/typegraph/core/src/conversion/runtimes.rs +++ b/src/typegraph/core/src/conversion/runtimes.rs @@ -118,7 +118,7 @@ impl MaterializerConverter for DenoMaterializer { ("module".to_string(), data) } Import(import) => { - let module_mat = c.register_materializer(import.module).unwrap().0; + let module_mat = c.register_materializer(import.module).unwrap(); let data = serde_json::from_value(json!({ "mod": module_mat, "name": import.func_name, @@ -248,7 +248,7 @@ impl MaterializerConverter for PythonMaterializer { ("pymodule".to_string(), data) } Import(import) => { - let module_mat = c.register_materializer(import.module).unwrap().0; + let module_mat = c.register_materializer(import.module).unwrap(); let data = serde_json::from_value(json!({ "mod": module_mat, "name": import.func_name, @@ -417,8 +417,7 @@ pub fn convert_materializer( mat.data.convert(c, mat.runtime_id, mat.effect) } -type RuntimeInitializer = - Box Result>; +type RuntimeInitializer = Box Result>; pub enum ConvertedRuntime { Converted(TGRuntime), @@ -473,15 +472,11 @@ pub fn convert_runtime(_c: &mut TypegraphContext, runtime: Runtime) -> Result Ok(ConvertedRuntime::Lazy(Box::new( - move |runtime_id, runtime_idx, tg| -> Result<_> { + move |runtime_id, tg| -> Result<_> { let ctx = get_prisma_context(runtime_id); let ctx = ctx.borrow(); - Ok(TGRuntime::Known(Rt::Prisma(ctx.convert( - tg, - runtime_idx, - d, - )?))) + Ok(TGRuntime::Known(Rt::Prisma(ctx.convert(tg, d)?))) }, ))), Runtime::PrismaMigration => { diff --git a/src/typegraph/core/src/conversion/types.rs b/src/typegraph/core/src/conversion/types.rs index 9ec7209955..c90f3728bb 100644 --- a/src/typegraph/core/src/conversion/types.rs +++ b/src/typegraph/core/src/conversion/types.rs @@ -3,31 +3,20 @@ use crate::errors::Result; use crate::typegraph::TypegraphContext; -use crate::types::{PolicySpec, RefAttrs, TypeId}; -use common::typegraph::{Injection, PolicyIndices, TypeNode, TypeNodeBase}; +use crate::types::{ExtendedTypeDef, PolicySpec, TypeId}; +use common::typegraph::{PolicyIndices, TypeNode, TypeNodeBase}; use enum_dispatch::enum_dispatch; -use indexmap::IndexMap; use std::rc::Rc; #[enum_dispatch] pub trait TypeConversion { /// takes already converted runtime id - fn convert( - &self, - ctx: &mut TypegraphContext, - runtime_id: Option, - ref_attrs: &RefAttrs, - ) -> Result; + fn convert(&self, ctx: &mut TypegraphContext, xdef: ExtendedTypeDef) -> Result; } impl TypeConversion for Rc { - fn convert( - &self, - ctx: &mut TypegraphContext, - runtime_id: Option, - ref_attrs: &RefAttrs, - ) -> Result { - (**self).convert(ctx, runtime_id, ref_attrs) + fn convert(&self, ctx: &mut TypegraphContext, xdef: ExtendedTypeDef) -> Result { + (**self).convert(ctx, xdef) } } @@ -36,20 +25,14 @@ pub struct BaseBuilderInit<'a, 'b> { pub base_name: &'static str, pub type_id: TypeId, pub name: Option, - pub runtime_idx: u32, pub policies: &'b [PolicySpec], - pub runtime_config: Option<&'b [(String, String)]>, } pub struct BaseBuilder { name: String, - runtime_idx: u32, policies: Vec, - runtime_config: Option>, - // optional features enumeration: Option>, - injection: Option, } impl<'a, 'b> BaseBuilderInit<'a, 'b> { @@ -61,39 +44,20 @@ impl<'a, 'b> BaseBuilderInit<'a, 'b> { None => format!("{}_{}_placeholder", self.base_name, self.type_id.0), }; - let runtime_config = self.runtime_config.map(|c| { - c.iter() - .map(|(k, v)| (k.to_string(), v.to_string())) - .collect::>() - }); - Ok(BaseBuilder { name, - runtime_idx: self.runtime_idx, policies, - runtime_config, - enumeration: None, - injection: None, }) } } impl BaseBuilder { pub fn build(self) -> Result { - let config = self.runtime_config.map(|c| { - c.iter() - .map(|(k, v)| (k.to_string(), serde_json::from_str(v).unwrap())) - .collect::>() - }); - Ok(TypeNodeBase { - config: config.unwrap_or_default(), description: None, enumeration: self.enumeration, - injection: self.injection, policies: self.policies, - runtime: self.runtime_idx, title: self.name, }) } @@ -103,9 +67,4 @@ impl BaseBuilder { enumeration.map(|enumeration| enumeration.iter().map(|v| format!("{v}")).collect()); self } - - pub fn inject(mut self, injection: Option<&Injection>) -> Result { - self.injection = injection.cloned(); - Ok(self) - } } diff --git a/src/typegraph/core/src/errors.rs b/src/typegraph/core/src/errors.rs index 7f294f2109..ef33a1421c 100644 --- a/src/typegraph/core/src/errors.rs +++ b/src/typegraph/core/src/errors.rs @@ -117,31 +117,31 @@ pub fn object_not_found(kind: &str, id: u32) -> TgError { format!("{kind} #{id} not found").into() } -pub fn invalid_path(pos: usize, path: &[String], curr_keys: &[String]) -> TgError { - let mut path_with_cursor = vec![]; - for (i, chunk) in path.iter().enumerate() { - if i == pos { - path_with_cursor.push(format!("[{}]", chunk)); - } else { - path_with_cursor.push(chunk.clone()); - } - } - format!( - "invalid path {:?}, none of {} match the chunk {:?}", - path_with_cursor.join("."), - curr_keys.join(", "), - path.get(pos).unwrap_or(&"".to_string()), - ) - .into() -} - -pub fn expect_object_at_path(path: &[String], actual: &str) -> TgError { - format!( - "object was expected at path {:?}; but got: {actual}", - path.join(".") - ) - .into() -} +// pub fn invalid_path(pos: usize, path: &[String], curr_keys: &[String]) -> TgError { +// let mut path_with_cursor = vec![]; +// for (i, chunk) in path.iter().enumerate() { +// if i == pos { +// path_with_cursor.push(format!("[{}]", chunk)); +// } else { +// path_with_cursor.push(chunk.clone()); +// } +// } +// format!( +// "invalid path {:?}, none of {} match the chunk {:?}", +// path_with_cursor.join("."), +// curr_keys.join(", "), +// path.get(pos).unwrap_or(&"".to_string()), +// ) +// .into() +// } +// +// pub fn expect_object_at_path(path: &[String], actual: &str) -> TgError { +// format!( +// "object was expected at path {:?}; but got: {actual}", +// path.join(".") +// ) +// .into() +// } pub fn unknown_predefined_function(name: &str, runtime: &str) -> TgError { format!("unknown predefined function {name} for runtime {runtime}").into() diff --git a/src/typegraph/core/src/global_store.rs b/src/typegraph/core/src/global_store.rs index abef781464..31b4ec2827 100644 --- a/src/typegraph/core/src/global_store.rs +++ b/src/typegraph/core/src/global_store.rs @@ -6,7 +6,7 @@ use crate::runtimes::{ DenoMaterializer, Materializer, MaterializerData, MaterializerDenoModule, Runtime, }; use crate::types::type_ref::TypeRef; -use crate::types::{ResolveRef as _, Type, TypeDef, TypeDefExt, TypeId, TypeRefBuilder}; +use crate::types::{NamedTypeRef, Type, TypeDef, TypeDefExt, TypeId, TypeRefBuilder}; use crate::wit::core::{Policy as CorePolicy, PolicyId, RuntimeId}; use crate::wit::utils::Auth as WitAuth; @@ -17,6 +17,8 @@ use indexmap::IndexMap; use std::rc::Rc; use std::{cell::RefCell, collections::HashMap}; +const PLACEHOLDER_TYPE_SUFFIX: &str = "_____PLACEHOLDER_____"; + pub type Policy = Rc; /// As all the store entries are append only, we can set a restore point @@ -42,7 +44,7 @@ pub struct Store { pub types: Vec, // the bool indicates weather the name was from // user or generated placeholder (false) - pub type_by_names: IndexMap, + pub type_by_names: IndexMap, (NamedTypeRef, bool)>, pub runtimes: Vec, pub materializers: Vec, @@ -102,7 +104,7 @@ const PREDEFINED_DENO_FUNCTIONS: &[&str] = &["identity", "true"]; thread_local! { pub static STORE: RefCell = RefCell::new(Store::new()); - pub static SDK_VERSION: String = "0.4.11-rc.0".to_owned(); + pub static SDK_VERSION: String = "0.5.0-rc.1".to_owned(); } fn with_store T>(f: F) -> T { @@ -117,10 +119,6 @@ pub fn get_sdk_version() -> String { SDK_VERSION.with(|v| v.clone()) } -/// Option to register or not a type name. -/// Should be disabled for type extensions, because they inherit the name. -pub struct NameRegistration(pub bool); - #[cfg(test)] impl Store { pub fn reset() { @@ -150,7 +148,7 @@ impl Store { }) } - pub fn get_type_by_name(name: &str) -> Option { + pub fn get_type_by_name(name: &str) -> Option { with_store(|s| s.type_by_names.get(name).map(|id| id.0.clone())) } @@ -159,65 +157,112 @@ impl Store { let type_ref = builder.with_id(id.into()); let res = type_ref.clone(); - with_store_mut(move |s| -> Result<()> { - s.types.push(Type::Ref(type_ref)); - Ok(()) - })?; - - Ok(res) - } - - pub fn register_type_def( - build: impl FnOnce(TypeId) -> TypeDef, - name_registration: NameRegistration, - ) -> Result { - // this works since the store is thread local - let id = with_store(|s| s.types.len()) as u32; - let mut type_def = build(id.into()); - // very hacky solution where we keep track of // explicitly named types in user_named_types // we generate names for everything else to // allow the ref system to work - if name_registration.0 { - if let Some(name) = type_def.base().name.clone() { - Self::register_type_name(name, type_def.clone(), true)?; - } else { - // we only need to assign temporary non-user named - // types for lists and optionals. other refs - // will need explicit names by the user - match type_def { - TypeDef::List(_) | TypeDef::Optional(_) => { - let variant = type_def.variant_name(); - let placeholder_name = format!("{variant}_{id}"); - Self::register_type_name(&placeholder_name, type_def.clone(), false)?; - let mut base = type_def.base().clone(); - base.name = Some(placeholder_name); - type_def = type_def.with_base(id.into(), base); - } - _ => {} - } + match &type_ref { + TypeRef::Named(name_ref) => { + let (type_ref, name_ref, name, user_named) = + if name_ref.name.ends_with(PLACEHOLDER_TYPE_SUFFIX) { + let name = name_ref.name.strip_suffix(PLACEHOLDER_TYPE_SUFFIX).unwrap(); + let name_ref = NamedTypeRef { + id: name_ref.id, + name: name.into(), + target: name_ref.target.clone(), + }; + ( + TypeRef::Named(name_ref.clone()), + name_ref, + name.to_string().into(), + false, + ) + } else { + ( + type_ref.clone(), + name_ref.clone(), + name_ref.name.clone(), + true, + ) + }; + let res = type_ref.clone(); + with_store_mut(move |s| -> Result<()> { + s.types.push(Type::Ref(type_ref)); + Ok(()) + })?; + Self::register_type_name(name, name_ref, user_named)?; + Ok(res) + } + _ => { + with_store_mut(move |s| -> Result<()> { + s.types.push(Type::Ref(type_ref)); + Ok(()) + })?; + Ok(res) } } + } - with_store_mut(move |s| -> Result<()> { - s.types.push(Type::Def(type_def)); - Ok(()) - })?; - Ok(id.into()) + pub fn register_type_def(build: impl FnOnce(TypeId) -> TypeDef) -> Result { + // this works since the store is thread local + let id = with_store(|s| s.types.len()) as u32; + let type_def = build(id.into()); + + // // very hacky solution where we keep track of + // // explicitly named types in user_named_types + // // we generate names for everything else to + // // allow the ref system to work + // if name_registration.0 { + // if let Some(name) = type_def.base().name.clone() { + // Self::register_type_name(name, type_def.clone(), true)?; + // } else { + // // we only need to assign temporary non-user named + // // types for lists and optionals. other refs + // // will need explicit names by the user + // match type_def { + // TypeDef::List(_) | TypeDef::Optional(_) => { + // let variant = type_def.variant_name(); + // let placeholder_name = format!("{variant}_{id}"); + // Self::register_type_name(&placeholder_name, type_def.clone(), false)?; + // let mut base = type_def.base().clone(); + // base.name = Some(placeholder_name); + // type_def = type_def.with_base(id.into(), base); + // } + // _ => {} + // } + // } + // } + + { + let type_def = type_def.clone(); + with_store_mut(move |s| -> Result<()> { + s.types.push(Type::Def(type_def)); + Ok(()) + })?; + } + + let type_id: TypeId = id.into(); + match type_def { + TypeDef::List(_) | TypeDef::Optional(_) => { + let variant = type_def.variant_name(); + let placeholder_name = format!("{variant}_{id}{PLACEHOLDER_TYPE_SUFFIX}"); + let type_ref = TypeRef::named(placeholder_name, Type::Def(type_def)).register()?; + Ok(type_ref.id()) + } + _ => Ok(type_id), + } } pub fn register_type_name( - name: impl Into, - type_def: TypeDef, + name: Rc, + name_ref: NamedTypeRef, user_named: bool, ) -> Result<()> { - let name = name.into(); with_store_mut(move |s| -> Result<()> { if s.type_by_names.contains_key(&name) { return Err(format!("type with name {:?} already exists", name).into()); } - s.type_by_names.insert(name, (type_def, user_named)); + s.type_by_names.insert(name, (name_ref, user_named)); Ok(()) }) } @@ -237,121 +282,6 @@ impl Store { with_store_mut(|store| store.random_seed = value) } - pub fn pick_branch_by_path(supertype_id: TypeId, path: &[String]) -> Result<(Type, TypeId)> { - let supertype = supertype_id.resolve_ref()?.0; - let supertype = &supertype; - let filter_and_reduce = |variants: Vec| match path.len() { - 0 => Ok((Type::Def(supertype.clone()), supertype_id)), // terminal node - _ => { - let mut compatible = vec![]; - let mut failures = vec![]; - let chunk = path.first().unwrap(); - for (i, variant) in variants.iter().enumerate() { - let variant: TypeId = variant.into(); - let type_def = variant.resolve_ref()?.0; - match type_def { - TypeDef::Struct(t) => { - for (prop_name, prop_id) in t.iter_props() { - if prop_name.eq(chunk) { - // variant is compatible with the path - // try expanding it, if it fails, just skip - match Store::get_type_by_path(prop_id, &path[1..]) { - Ok((_, solution)) => compatible.push(solution), - Err(e) => failures.push(format!( - "[v{i} → {prop_name}]: {}", - e.stack.first().unwrap().clone() - )), - } - } - } - } - TypeDef::Either(..) | TypeDef::Union(..) => { - // get_type_by_path => pick_branch_by_path - match Store::get_type_by_path(variant, &path[1..]) { - Ok((_, solution)) => compatible.push(solution), - Err(e) => failures - .push(format!("[v{i}]: {}", e.stack.first().unwrap().clone())), - } - } - _ => {} // skip - } - } - - if compatible.is_empty() { - return Err(format!( - "unable to expand variant with **.{}\nDetails:\n{}", - path.join("."), - failures.join("\n") - ) - .into()); - } - - let first = compatible.first().unwrap().to_owned(); - let ret_id = match &supertype { - TypeDef::Union(..) => first, - TypeDef::Either(..) => { - if compatible.len() > 1 { - return Err(format!( - "either node with more than one compatible variant encountered at path **.{}", - path.join("."), - ).into(), - ); - } - first - } - _ => { - return Err("invalid state: either or union expected as supertype".into()); - } - }; - - Ok((ret_id.as_type()?, ret_id)) - } - }; - - match supertype { - TypeDef::Either(t) => filter_and_reduce(t.data.variants.clone()), - TypeDef::Union(t) => filter_and_reduce(t.data.variants.clone()), - _ => Store::get_type_by_path(supertype_id, path), // no branching, trivial case - } - } - - pub fn get_type_by_path(struct_id: TypeId, path: &[String]) -> Result<(Type, TypeId)> { - let mut ret = (struct_id.as_type()?, struct_id); - - let mut curr_path = vec![]; - for (pos, chunk) in path.iter().enumerate() { - let type_def = ret.1.resolve_ref()?.0; - let type_def = type_def.resolve_quantifier()?; - match &type_def { - TypeDef::Struct(t) => { - let result = t.data.props.iter().find(|(k, _)| k.eq(chunk)); - curr_path.push(chunk.clone()); - ret = match result { - Some((_, id)) => (TypeId(*id).as_type()?, id.to_owned().into()), - None => { - return Err(errors::invalid_path( - pos, - path, - &t.data - .props - .iter() - .map(|v| format!("{:?}", v.0.clone())) - .collect::>(), - )); - } - }; - } - TypeDef::Union(..) | TypeDef::Either(..) => { - ret = Store::pick_branch_by_path(type_def.id(), &path[pos..])?; - break; - } - _ => return Err(errors::expect_object_at_path(&curr_path, &type_def.repr())), - } - } - - Ok(ret) - } - pub fn register_runtime(rt: Runtime) -> RuntimeId { with_store_mut(|s| { let id = s.runtimes.len() as u32; @@ -526,10 +456,10 @@ macro_rules! as_variant { ($variant:ident) => { paste::paste! { pub fn [](&self) -> Result]>> { - use crate::types::type_ref::ResolveRef; + use crate::types::AsTypeDefEx as _; match self.as_type()? { Type::Def(TypeDef::$variant(inner)) => Ok(inner), - Type::Ref(type_ref) => type_ref.resolve_ref()?.0.id().[](), + Type::Ref(_) => self.as_xdef()?.type_def.id().[](), _ => Err(errors::invalid_type(stringify!($variant), &self.repr()?)), } } diff --git a/src/typegraph/core/src/lib.rs b/src/typegraph/core/src/lib.rs index f70c51b787..f44c45e921 100644 --- a/src/typegraph/core/src/lib.rs +++ b/src/typegraph/core/src/lib.rs @@ -21,20 +21,20 @@ use std::collections::HashSet; use common::typegraph::Injection; use errors::{Result, TgError}; -use global_store::{NameRegistration, Store}; +use global_store::Store; use indoc::formatdoc; use params::apply; use regex::Regex; use runtimes::{DenoMaterializer, Materializer}; use types::type_ref::AsId; use types::{ - Boolean, Either, File, Float, Func, Integer, List, Optional, StringT, Struct, TypeBoolean, - TypeDef, TypeDefExt, TypeId, TypeRef, Union, WithInjection as _, WithPolicy as _, + AsTypeDefEx as _, Boolean, Either, File, Float, Func, Integer, List, Named, Optional, StringT, + Struct, TypeBoolean, TypeDef, TypeId, TypeRef, Union, WithInjection as _, WithPolicy as _, + WithRuntimeConfig as _, }; -use utils::clear_name; use wit::core::{ - Artifact, ContextCheck, Policy, PolicyId, PolicySpec, SerializeParams, TransformData, TypeBase, + Artifact, ContextCheck, Policy, PolicyId, PolicySpec, SerializeParams, TransformData, TypeEither, TypeFile, TypeFloat, TypeFunc, TypeId as CoreTypeId, TypeInteger, TypeList, TypeOptional, TypeString, TypeStruct, TypeUnion, TypegraphInitParams, }; @@ -68,12 +68,13 @@ impl wit::core::Guest for Lib { .map_err(|e| format!("Could not parse ref attributes: {e:?}")) }) .transpose()?, - )? - .id + ) + .register()? + .id() .0) } - fn integerb(data: TypeInteger, base: TypeBase) -> Result { + fn integerb(data: TypeInteger) -> Result { if let (Some(min), Some(max)) = (data.min, data.max) { if min >= max { return Err(errors::invalid_max_value()); @@ -84,14 +85,10 @@ impl wit::core::Guest for Lib { return Err(errors::invalid_max_value()); } } - Ok(Store::register_type_def( - |id| TypeDef::Integer(Integer { id, base, data }.into()), - NameRegistration(true), - )? - .into()) + Ok(Store::register_type_def(|id| TypeDef::Integer(Integer { id, data }.into()))?.into()) } - fn floatb(data: TypeFloat, base: TypeBase) -> Result { + fn floatb(data: TypeFloat) -> Result { if let (Some(min), Some(max)) = (data.min, data.max) { if min >= max { return Err(errors::invalid_max_value()); @@ -102,118 +99,73 @@ impl wit::core::Guest for Lib { return Err(errors::invalid_max_value()); } } - Ok(Store::register_type_def( - |id| TypeDef::Float(Float { id, base, data }.into()), - NameRegistration(true), - )? - .into()) - } - - fn booleanb(base: TypeBase) -> Result { - Ok(Store::register_type_def( - |id| { - TypeDef::Boolean( - Boolean { - id, - base, - data: TypeBoolean, - } - .into(), - ) - }, - NameRegistration(true), - )? + Ok(Store::register_type_def(|id| TypeDef::Float(Float { id, data }.into()))?.into()) + } + + fn booleanb() -> Result { + Ok(Store::register_type_def(|id| { + TypeDef::Boolean( + Boolean { + id, + data: TypeBoolean, + } + .into(), + ) + })? .into()) } - fn stringb(data: TypeString, base: TypeBase) -> Result { + fn stringb(data: TypeString) -> Result { if let (Some(min), Some(max)) = (data.min, data.max) { if min >= max { return Err(errors::invalid_max_value()); } } - Ok(Store::register_type_def( - |id| TypeDef::String(StringT { id, base, data }.into()), - NameRegistration(true), - )? - .into()) + Ok(Store::register_type_def(|id| TypeDef::String(StringT { id, data }.into()))?.into()) } fn as_id(type_id: CoreTypeId, composite: bool) -> Result { - TypeId(type_id).as_type()?.as_id(composite).map(|t| t.id.0) + TypeId(type_id) + .as_type()? + .as_id(composite) + .map(|t| t.id().0) } - fn fileb(data: TypeFile, base: TypeBase) -> Result { + fn fileb(data: TypeFile) -> Result { if let (Some(min), Some(max)) = (data.min, data.max) { if min >= max { return Err(errors::invalid_max_value()); } } - Ok(Store::register_type_def( - |id| { - /* // TODO why?? - let base = TypeBase { - name: Some(format!("_{}_file", id.0)), - ..base - }; */ - TypeDef::File(File { id, base, data }.into()) - }, - NameRegistration(true), - )? - .into()) + Ok(Store::register_type_def(|id| TypeDef::File(File { id, data }.into()))?.into()) } - fn listb(data: TypeList, base: TypeBase) -> Result { + fn listb(data: TypeList) -> Result { if let (Some(min), Some(max)) = (data.min, data.max) { if min > max { return Err(errors::invalid_max_value()); } } - Ok(Store::register_type_def( - |id| TypeDef::List(List { id, base, data }.into()), - NameRegistration(true), - )? - .into()) + Ok(Store::register_type_def(|id| TypeDef::List(List { id, data }.into()))?.into()) } - fn optionalb(data: TypeOptional, base: TypeBase) -> Result { + fn optionalb(data: TypeOptional) -> Result { /* let inner_name = match base.name { Some(_) => None, None => TypeId(data.of).name()?, }; */ - Ok(Store::register_type_def( - |id| { - /* let base = match inner_name { - Some(n) => TypeBase { - name: Some(format!("_{}_{}?", id.0, n)), - ..base - }, - None => base, - }; */ - TypeDef::Optional(Optional { id, base, data }.into()) - }, - NameRegistration(true), - )? - .into()) + Ok(Store::register_type_def(|id| TypeDef::Optional(Optional { id, data }.into()))?.into()) } - fn unionb(data: TypeUnion, base: TypeBase) -> Result { - Ok(Store::register_type_def( - |id| TypeDef::Union(Union { id, base, data }.into()), - NameRegistration(true), - )? - .into()) + fn unionb(data: TypeUnion) -> Result { + Ok(Store::register_type_def(|id| TypeDef::Union(Union { id, data }.into()))?.into()) } - fn eitherb(data: TypeEither, base: TypeBase) -> Result { - Ok(Store::register_type_def( - |id| TypeDef::Either(Either { id, base, data }.into()), - NameRegistration(true), - )? - .into()) + fn eitherb(data: TypeEither) -> Result { + Ok(Store::register_type_def(|id| TypeDef::Either(Either { id, data }.into()))?.into()) } - fn structb(data: TypeStruct, base: TypeBase) -> Result { + fn structb(data: TypeStruct) -> Result { let mut prop_names = HashSet::new(); for (name, _) in data.props.iter() { if prop_names.contains(name) { @@ -222,11 +174,7 @@ impl wit::core::Guest for Lib { prop_names.insert(name.clone()); } - Ok(Store::register_type_def( - |id| TypeDef::Struct(Struct { id, base, data }.into()), - NameRegistration(true), - )? - .into()) + Ok(Store::register_type_def(|id| TypeDef::Struct(Struct { id, data }.into()))?.into()) } fn extend_struct( @@ -237,37 +185,28 @@ impl wit::core::Guest for Lib { let mut props = type_def.data.props.clone(); props.extend(new_props); - Ok(Store::register_type_def( - |id| { - TypeDef::Struct( - Struct { - id, - base: clear_name(&type_def.base), - data: TypeStruct { - props, - ..type_def.data.clone() - }, - } - .into(), - ) - }, - NameRegistration(false), - )? + Ok(Store::register_type_def(|id| { + TypeDef::Struct( + Struct { + id, + data: TypeStruct { + props, + ..type_def.data.clone() + }, + } + .into(), + ) + })? .into()) } fn funcb(data: TypeFunc) -> Result { let wrapper_type = TypeId(data.inp); - if !matches!(TypeDef::try_from(wrapper_type)?, TypeDef::Struct(_)) { + if !matches!(&wrapper_type.as_xdef()?.type_def, TypeDef::Struct(_)) { return Err(errors::invalid_input_type(&wrapper_type.repr()?)); } - let base = TypeBase::default(); - Ok(Store::register_type_def( - |id| TypeDef::Func(Func { id, base, data }.into()), - NameRegistration(true), - )? - .into()) + Ok(Store::register_type_def(|id| TypeDef::Func(Func { id, data }.into()))?.into()) } fn get_transform_data( @@ -286,7 +225,13 @@ impl wit::core::Guest for Lib { // validation let injection: Injection = serde_json::from_str(&injection).map_err(|e| errors::TgError::from(e.to_string()))?; - Ok(TypeId(type_id).with_injection(injection)?.id.into()) + Ok(TypeId(type_id).with_injection(injection)?.id().into()) + } + + fn with_config(type_id: CoreTypeId, config: String) -> Result { + let config: serde_json::Value = + serde_json::from_str(&config).map_err(|e| errors::TgError::from(e.to_string()))?; + Ok(TypeId(type_id).with_config(config)?.id().into()) } fn with_policy(type_id: CoreTypeId, policy_chain: Vec) -> Result { @@ -294,7 +239,7 @@ impl wit::core::Guest for Lib { .into_iter() .map(|p| p.into()) .collect::>(); - Ok(TypeId(type_id).with_policy(policy_chain)?.id.into()) + Ok(TypeId(type_id).with_policy(policy_chain)?.id().into()) } fn register_policy(pol: Policy) -> Result { @@ -380,18 +325,7 @@ impl wit::core::Guest for Lib { } fn rename_type(type_id: CoreTypeId, new_name: String) -> Result { - match TypeId(type_id).as_type_def()? { - Some(type_def) => { - let mut base = type_def.base().clone(); - base.name = Some(new_name); - Ok(Store::register_type_def( - move |id| type_def.with_base(id, base.clone()), - NameRegistration(true), - )? - .into()) - } - None => Err(wit::core::Error::from("cannot rename ref type")), - } + TypeId(type_id).named(new_name).map(|t| t.id().0) } fn get_type_repr(type_id: CoreTypeId) -> Result { diff --git a/src/typegraph/core/src/params/apply.rs b/src/typegraph/core/src/params/apply.rs index 38b67caf1b..200aea6d62 100644 --- a/src/typegraph/core/src/params/apply.rs +++ b/src/typegraph/core/src/params/apply.rs @@ -552,7 +552,7 @@ mod test { assert_eq!( print_options.print(transform_data.query_input.into()), indoc::indoc! {" - root: struct #5 + root: struct #6 [a]: string #0 [first]: string #1 [second]: string #1 diff --git a/src/typegraph/core/src/runtimes/prisma/context.rs b/src/typegraph/core/src/runtimes/prisma/context.rs index 2b2da6e1c2..6b55be95e3 100644 --- a/src/typegraph/core/src/runtimes/prisma/context.rs +++ b/src/typegraph/core/src/runtimes/prisma/context.rs @@ -1,16 +1,7 @@ // Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. // SPDX-License-Identifier: MPL-2.0 -use std::{ - cell::{OnceCell, Ref, RefCell, RefMut}, - collections::HashMap, - rc::{Rc, Weak}, -}; - -use crate::{typegraph::TypegraphContext, wit::runtimes as wit}; -use common::typegraph::runtimes::prisma as cm; -use indexmap::{map::Entry, IndexMap, IndexSet}; - +use super::model::ModelType; use super::relationship::discovery::CandidatePair; use super::relationship::RelationshipModel; use super::{ @@ -19,6 +10,14 @@ use super::{ }; use crate::errors::Result; use crate::types::TypeId; +use crate::{typegraph::TypegraphContext, wit::runtimes as wit}; +use common::typegraph::runtimes::prisma as cm; +use indexmap::{map::Entry, IndexMap, IndexSet}; +use std::{ + cell::{OnceCell, Ref, RefCell, RefMut}, + collections::HashMap, + rc::{Rc, Weak}, +}; use super::{errors, model::Model, relationship::Relationship}; @@ -34,12 +33,20 @@ impl ModelRef { self.0.borrow_mut() } - pub fn type_name(&self) -> String { - self.0.borrow().type_name.clone() + pub fn model_id(&self) -> TypeId { + self.borrow().model_type.name_ref.id } - pub fn type_id(&self) -> TypeId { - self.0.borrow().type_id + pub fn model_type(&self) -> ModelType { + self.borrow().model_type.clone() + } + + pub fn name(&self) -> Rc { + self.borrow().model_type.name_ref.name.clone() + } + + pub fn get_rel_name(&self, prop: &str) -> Option { + self.borrow().relationships.get(prop).cloned() } } @@ -52,7 +59,7 @@ impl From>> for ModelRef { #[derive(Default, Debug)] pub struct PrismaContext { models: IndexMap, - pub models_by_name: IndexMap, + pub models_by_name: IndexMap, TypeId>, pub relationships: IndexMap, pub typegen_cache: OnceCell>>>, // shared complete_registrations: IndexSet, @@ -60,26 +67,26 @@ pub struct PrismaContext { impl PrismaContext { pub fn model(&self, type_id: TypeId) -> Result { + let model_type: ModelType = type_id.try_into()?; let model = self .models - .get(&type_id) - .ok_or_else(|| errors::unregistered_model(type_id)) - .unwrap(); // TODO ? + .get(&model_type.name_ref.id) + .ok_or_else(|| errors::unregistered_model(type_id))?; Ok(model.clone()) } pub fn is_registered(&self, pair: &CandidatePair) -> Result { - let left_model = pair.0.model.borrow(); - let right_model = pair.1.model.borrow(); + let left_model = &pair.0.model; + let right_model = &pair.1.model; - let left = self.models.contains_key(&left_model.type_id) - && self.models_by_name.contains_key(&left_model.type_name) - && left_model.relationships.contains_key(&pair.1.field_name); + let left = self.models.contains_key(&left_model.model_id()) + && self.models_by_name.contains_key(&left_model.name()) + && left_model.get_rel_name(&pair.1.field_name).is_some(); - let right = self.models.contains_key(&right_model.type_id) - && self.models_by_name.contains_key(&right_model.type_name) - && right_model.relationships.contains_key(&pair.0.field_name); + let right = self.models.contains_key(&right_model.model_id()) + && self.models_by_name.contains_key(&right_model.name()) + && right_model.get_rel_name(&pair.0.field_name).is_some(); match (left, right) { (true, true) => Ok(true), @@ -102,7 +109,7 @@ impl PrismaContext { E::Occupied(rel) => { let rel = rel.get(); return Err(format!("relationship name '{}' already used between {} and {}, please provide another name", - name, rel.left.model_name, rel.right.model_name).into()); + name, rel.left.model_type.name(), rel.right.model_type.name()).into()); } E::Vacant(e) => { e.insert(relationship); @@ -112,8 +119,8 @@ impl PrismaContext { Generated(name) => match self.relationships.entry(name.clone()) { E::Occupied(rel) => { let rel = rel.get(); - return Err(format!("relationship name '{}' already used between {} and {}, please provide a name", - name, rel.left.model_name, rel.right.model_name).into()); + return Err(format!("generated relationship name '{}' already used between {} and {}, please provide a name", + name, rel.left.model_type.name(), rel.right.model_type.name()).into()); } E::Vacant(e) => { e.insert(relationship); @@ -134,17 +141,15 @@ impl PrismaContext { let relationship = Relationship { name: rel_name.to_string(), left: RelationshipModel { - model_type: left.model.type_id(), - model_name: left.model.type_name(), wrapper_type: left.property.wrapper_type_id, cardinality: left.property.quantifier, + model_type: left.model.model_type(), field: right.field_name.clone(), }, right: RelationshipModel { - model_type: right.model.type_id(), - model_name: right.model.type_name(), wrapper_type: right.property.wrapper_type_id, cardinality: right.property.quantifier, + model_type: right.model.model_type(), field: left.field_name.clone(), }, }; @@ -199,20 +204,21 @@ impl PrismaContext { /// returns the registered models /// returns empty if the given root model is already registered fn register_models(&mut self, root_model_id: TypeId) -> Result> { - let model_id = root_model_id; + let model_type: ModelType = root_model_id.try_into()?; + let model_id = model_type.name_ref.id; if let Entry::Vacant(e) = self.models.entry(model_id) { let model: ModelRef = Rc::new(RefCell::new(model_id.try_into()?)).into(); e.insert(model.clone()); self.models_by_name - .insert(model.borrow().type_name.clone(), model_id); + .insert(model.borrow().model_type.name(), model_id); let mut res = vec![model_id]; // register related models { let model = model.borrow(); - for model_id in model.iter_related_models() { - res.extend(self.register_models(model_id)?); + for related in model.iter_related_models() { + res.extend(self.register_models(related.type_id)?); } } @@ -227,14 +233,11 @@ impl PrismaContext { ctx: &mut TypegraphContext, key: &str, prop: &ScalarProperty, - runtime_idx: u32, ) -> Result { Ok(cm::ScalarProperty { key: key.to_string(), cardinality: prop.quantifier.into(), - type_idx: ctx - .register_type(prop.wrapper_type_id, Some(runtime_idx))? - .into(), + type_idx: ctx.register_type(prop.wrapper_type_id)?.into(), prop_type: prop.prop_type.clone(), injection: prop.injection.as_ref().map(|inj| cm::ManagedInjection { create: inj.create.as_ref().and_then(|handler| match handler { @@ -258,18 +261,15 @@ impl PrismaContext { key: &str, prop: &RelationshipProperty, rel_name: String, - runtime_idx: u32, ) -> Result { - let model = self.model(prop.model_id)?; + let model = self.model(prop.model_type.type_id)?; let model = model.borrow(); Ok(cm::RelationshipProperty { key: key.to_string(), cardinality: prop.quantifier.into(), - type_idx: ctx - .register_type(prop.wrapper_type_id, Some(runtime_idx))? - .into(), - model_name: model.type_name.clone(), + type_idx: ctx.register_type(prop.wrapper_type_id)?.into(), + model_name: model.model_type.name().to_string(), unique: prop.unique, relationship_name: rel_name.clone(), relationship_side: { @@ -290,18 +290,17 @@ impl PrismaContext { ctx: &mut TypegraphContext, model: &Model, type_id: TypeId, - runtime_idx: u32, ) -> Result { Ok(cm::Model { - type_idx: ctx.register_type(type_id, Some(runtime_idx))?.into(), - type_name: model.type_name.clone(), + type_idx: ctx.register_type(type_id)?.into(), + type_name: model.model_type.name().to_string(), props: model .props .iter() .map(|(key, prop): (&String, &Property)| -> Result<_> { Ok(match prop { Property::Scalar(prop) => Some(cm::Property::Scalar( - self.convert_scalar_prop(ctx, key, prop, runtime_idx)?, + self.convert_scalar_prop(ctx, key, prop)?, )), Property::Model(prop) => { @@ -311,13 +310,9 @@ impl PrismaContext { model.relationships.get(key).unwrap().clone() }; - Some(cm::Property::Relationship(self.convert_relationship_prop( - ctx, - key, - prop, - rel_name, - runtime_idx, - )?)) + Some(cm::Property::Relationship( + self.convert_relationship_prop(ctx, key, prop, rel_name)?, + )) } Property::Unmanaged(_) => { @@ -336,7 +331,6 @@ impl PrismaContext { pub fn convert( &self, ctx: &mut TypegraphContext, - runtime_idx: u32, data: Rc, ) -> Result { Ok(cm::PrismaRuntimeData { @@ -347,7 +341,7 @@ impl PrismaContext { .iter() .map(|(type_id, model)| -> Result<_> { let model = model.borrow(); - self.convert_model(ctx, &model, *type_id, runtime_idx) + self.convert_model(ctx, &model, *type_id) }) .collect::>>()?, @@ -355,10 +349,8 @@ impl PrismaContext { self.relationships .iter() .map(|(_, rel)| { - let left = - self.convert_relationship_model(ctx, rel.left.clone(), runtime_idx)?; - let right = - self.convert_relationship_model(ctx, rel.right.clone(), runtime_idx)?; + let left = self.convert_relationship_model(ctx, rel.left.clone())?; + let right = self.convert_relationship_model(ctx, rel.right.clone())?; Ok(cm::Relationship { name: rel.name.clone(), left, @@ -375,12 +367,9 @@ impl PrismaContext { &self, ctx: &mut TypegraphContext, model: RelationshipModel, - runtime_idx: u32, ) -> Result { Ok(cm::RelationshipModel { - type_idx: ctx - .register_type(model.model_type, Some(runtime_idx))? - .into(), + type_idx: ctx.register_type(model.model_type.type_id)?.into(), field: model.field.clone(), cardinality: model.cardinality.into(), }) @@ -402,16 +391,15 @@ mod test { .into_iter() .map(|model_id| { let model = ctx.model(model_id).unwrap(); - let model = model.borrow(); - (model.type_id, model.type_name.clone()) + (model.model_id(), model.name().clone()) }) .collect(); assert_eq!( models, vec![ - (user, user.name()?.unwrap()), - (profile, profile.name()?.unwrap()) + (user, user.name()?.unwrap().into()), + (profile, profile.name()?.unwrap().into()) ] ); diff --git a/src/typegraph/core/src/runtimes/prisma/model.rs b/src/typegraph/core/src/runtimes/prisma/model.rs index 5f8d7d6b9b..84b2bdf6e6 100644 --- a/src/typegraph/core/src/runtimes/prisma/model.rs +++ b/src/typegraph/core/src/runtimes/prisma/model.rs @@ -1,25 +1,129 @@ // Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. // SPDX-License-Identifier: MPL-2.0 -pub use common::typegraph::runtimes::prisma::{ScalarType, StringType}; -use common::typegraph::{EffectType, InjectionData}; -use indexmap::IndexMap; -use std::hash::Hash; - -use crate::errors::Result; +use super::constraints::get_struct_level_unique_constraints; +use super::relationship::PrismaRefData; +use crate::errors::{ErrorContext as _, Result, TgError}; +use crate::global_store::Store; use crate::runtimes::prisma::errors; use crate::runtimes::prisma::type_utils::RuntimeConfig; -use crate::types::{FindAttribute as _, RefAttrs, ResolveRef as _, TypeDef, TypeDefExt}; +use crate::types::{ + AsTypeDefEx as _, FindAttribute, NamedTypeRef, RefAttr, RefAttrs, Struct, Type, TypeDef, + TypeRef, +}; use crate::validation::types::validate_value; use crate::{runtimes::prisma::relationship::Cardinality, types::TypeId}; +pub use common::typegraph::runtimes::prisma::{ScalarType, StringType}; +use common::typegraph::{EffectType, InjectionData}; +use indexmap::IndexMap; +use std::rc::Rc; -use super::constraints::get_struct_level_unique_constraints; -use super::relationship::PrismaRefData; +#[derive(Debug, Clone)] +pub struct ModelType { + pub type_id: TypeId, + pub name_ref: NamedTypeRef, + pub resolved: Rc, + pub attrs: RefAttrs, +} + +impl ModelType { + pub fn name(&self) -> Rc { + self.name_ref.name.clone() + } +} + +// fn resolve_indirect(type_id: TypeId) -> Result { +// match type_id.as_type()? { +// Type::Def(_) => Ok(type_id), +// Type::Ref(type_ref) => match type_ref.target.as_ref() { +// RefTarget::Indirect(name) => Store::get_type_by_name(&name) +// .ok_or_else(|| format!("indirect type not found: {}", name).into()) +// .map(|t| t.id) +// .and_then(resolve_indirect), +// RefTarget::Link(link) => resolve_indirect(link.id), +// _ => Ok(type_id), +// }, +// } +// } + +impl TryFrom for ModelType { + type Error = TgError; + + fn try_from(type_id: TypeId) -> Result { + match type_id.as_type().context("building ModelType")? { + Type::Def(_) => Err(errors::unnamed_model(&type_id.repr().unwrap())), + Type::Ref(type_ref) => match &type_ref { + TypeRef::Named(name_ref) => { + let xdef = type_id.as_xdef()?; + let resolved = xdef.type_def.as_struct()?; + Ok(Self { + type_id, + name_ref: name_ref.clone(), + resolved, + attrs: xdef.attributes, + }) + } + TypeRef::Indirect(indirect) => { + let xdef = type_id.as_xdef()?; + let resolved = xdef.type_def.as_struct()?; + Ok(Self { + type_id, + name_ref: Store::get_type_by_name(&indirect.name) + .ok_or_else(|| errors::unnamed_model(&type_id.repr().unwrap()))?, + resolved, + attrs: xdef.attributes, + }) + } + TypeRef::Link(link) => match link.attribute.as_ref() { + RefAttr::RuntimeConfig { runtime, .. } if runtime == "prisma" => { + ModelType::try_from(link.target.id()) + } + _ => { + let flat = type_ref.flatten(); + if flat.name.is_some() { + Err(format!( + "name should be the latest attribute on a model type: {:?}", + type_id.repr().unwrap() + ) + .into()) + } else { + Err(errors::unnamed_model(&type_id.repr().unwrap())) + } + } + }, + _ => { + let flat = type_ref.flatten(); + if flat.name.is_some() { + Err(format!( + "name should be the latest attribute on a model type: {:?}", + type_id.repr().unwrap() + ) + .into()) + } else { + Err(errors::unnamed_model(&type_id.repr().unwrap())) + } + } + }, + } + } +} + +impl std::hash::Hash for ModelType { + fn hash(&self, state: &mut H) { + self.type_id.hash(state); + } +} + +impl std::cmp::PartialEq for ModelType { + fn eq(&self, other: &Self) -> bool { + self.name_ref.name == other.name_ref.name + } +} +impl std::cmp::Eq for ModelType {} #[derive(Debug)] pub struct Model { - pub type_id: TypeId, - pub type_name: String, + pub model_type: ModelType, pub props: IndexMap, pub id_fields: Vec, pub unique_constraints: Vec>, @@ -31,36 +135,37 @@ impl TryFrom for Model { type Error = crate::wit::core::Error; fn try_from(type_id: TypeId) -> Result { - let typ = type_id.as_struct()?; - - let props = typ + let model_type = ModelType::try_from(type_id)?; + // print(&format!( + // "MODEL type_id={type_id:?}; type_def.id={:?} attrs={attrs:?}", + // type_def.id() + // )); + // let typ = type_def.as_struct()?; + + let props = model_type + .resolved .iter_props() .map(|(k, type_id)| Property::new(type_id).map(|p| (k.to_string(), p))) .collect::>>()?; - let type_name = type_id - .name()? - .ok_or_else(|| errors::unnamed_model(&type_id.repr().unwrap()))?; + let config = RuntimeConfig(model_type.attrs.find_runtime_attrs("")); - let config = RuntimeConfig::new(typ.base().runtime_config.as_ref()); - - let id_fields = typ.data.find_id_fields()?; + let id_fields = model_type.resolved.data.find_id_fields()?; let id_fields = match id_fields.len() { 0 => { let id_fields = config.get("id")?; match id_fields { Some(id_fields) => id_fields, - None => return Err(errors::id_field_not_found(&type_name)), + None => return Err(errors::id_field_not_found(&model_type.name())), } } _ => id_fields, }; - let unique_constraints = get_struct_level_unique_constraints(&type_name, &config)?; + let unique_constraints = get_struct_level_unique_constraints(&model_type.name(), &config)?; Ok(Self { - type_id, - type_name, + model_type, props, id_fields, unique_constraints, @@ -81,9 +186,9 @@ impl Model { }) } - pub fn iter_related_models(&self) -> impl Iterator + '_ { + pub fn iter_related_models(&self) -> impl Iterator + '_ { self.props.iter().filter_map(|(_, p)| match p { - Property::Model(p) => Some(p.model_id), + Property::Model(p) => Some(p.model_type.clone()), _ => None, }) } @@ -129,7 +234,7 @@ pub enum Property { #[derive(Debug, Clone)] pub struct RelationshipProperty { pub wrapper_type_id: TypeId, - pub model_id: TypeId, + pub model_type: ModelType, pub quantifier: Cardinality, pub relationship_attributes: RelationshipAttributes, pub unique: bool, @@ -137,9 +242,9 @@ pub struct RelationshipProperty { impl Property { fn new(wrapper_type_id: TypeId) -> Result { - let (type_def, ref_data) = wrapper_type_id.resolve_ref()?; - let runtime_config = RuntimeConfig::new(type_def.base().runtime_config.as_ref()); - let unique = if matches!(type_def, TypeDef::Struct(_)) { + let xdef = wrapper_type_id.as_xdef()?; + let runtime_config = RuntimeConfig(xdef.attributes.find_runtime_attrs("")); + let unique = if matches!(xdef.type_def, TypeDef::Struct(_)) { // the unique config is used to specify struct-level unique constraints on structs false } else { @@ -155,19 +260,19 @@ impl Property { )?; } - let (inner_type_def, card) = match &type_def { - TypeDef::Optional(ref inner) => ( - TypeId(inner.data.of).resolve_ref()?.0, - Cardinality::Optional, - ), - TypeDef::List(inner) => (TypeId(inner.data.of).resolve_ref()?.0, Cardinality::Many), - _ => (type_def.clone(), Cardinality::One), + let (inner_type_id, card) = match &xdef.type_def { + TypeDef::Optional(ref inner) => (TypeId(inner.data.of), Cardinality::Optional), + TypeDef::List(inner) => (TypeId(inner.data.of), Cardinality::Many), + _ => (wrapper_type_id, Cardinality::One), }; + let type_def = inner_type_id.as_xdef()?.type_def; + let scalar = |typ, injection| { Self::Scalar(ScalarProperty { wrapper_type_id, - type_id: inner_type_def.id(), + type_id: inner_type_id, + type_def: type_def.clone(), prop_type: typ, injection, quantifier: card, @@ -177,21 +282,22 @@ impl Property { }) }; - match ref_data + match xdef + .attributes .find_injection() .map(Injection::try_from) .transpose() { - Ok(injection) => match &inner_type_def { + Ok(injection) => match &type_def { TypeDef::Struct(_) => { if injection.is_some() { return Err("injection not supported for models".to_string().into()); } Ok(Self::Model(RelationshipProperty { wrapper_type_id, - model_id: inner_type_def.id(), quantifier: card, - relationship_attributes: RelationshipAttributes::new(&ref_data)?, + model_type: ModelType::try_from(inner_type_id)?, + relationship_attributes: RelationshipAttributes::new(&xdef.attributes)?, unique, })) } @@ -220,7 +326,7 @@ impl Property { } _ => Err("unsupported property type".into()), }, - Err(_) => match inner_type_def { + Err(_) => match &type_def { TypeDef::Func(_) => Err("injection not supported on t::struct()".into()), TypeDef::Optional(_) | TypeDef::List(_) => { Err("nested optional/list not supported".into()) @@ -252,7 +358,7 @@ impl Injection { /// return None if the injection implies that the property is unmanaged. /// Unmanaged properties are properties that will not be present in the /// prisma model. - fn convert_injection(data: &InjectionData) -> Option { + fn convert_injection(data: &InjectionData) -> Option { match data { InjectionData::SingleValue(_) => None, // unmanaged InjectionData::ValueByEffect(map) => { @@ -273,7 +379,7 @@ impl Injection { } } - fn convert_dynamic_injection(data: &InjectionData) -> Option { + fn convert_dynamic_injection(data: &InjectionData) -> Option { match data { InjectionData::SingleValue(_) => None, // unmanaged InjectionData::ValueByEffect(map) => { @@ -283,11 +389,11 @@ impl Injection { } else { Some(Self { create: map.get(&EffectType::Create).and_then(|i| match i.as_str() { - "now" => Some(InjectionHandler::PrismaDateNow), + Some("now") => Some(InjectionHandler::PrismaDateNow), _ => None, }), update: map.get(&EffectType::Update).and_then(|i| match i.as_str() { - "now" => Some(InjectionHandler::PrismaDateNow), + Some("now") => Some(InjectionHandler::PrismaDateNow), _ => None, }), }) @@ -318,6 +424,8 @@ impl TryFrom<&common::typegraph::Injection> for Injection { pub struct ScalarProperty { pub wrapper_type_id: TypeId, pub type_id: TypeId, + #[allow(unused)] + pub type_def: TypeDef, pub prop_type: ScalarType, pub injection: Option, pub quantifier: Cardinality, @@ -329,7 +437,7 @@ pub struct ScalarProperty { #[cfg(test)] mod test { use super::*; - use crate::t::{self, ConcreteTypeBuilder, TypeBuilder}; + use crate::t::{self, TypeBuilder}; impl Property { fn as_scalar(&self) -> Option<&ScalarProperty> { @@ -345,8 +453,7 @@ mod test { let type1 = t::struct_() .propx("one", t::string().as_id()?)? .propx("two", t::string().set_value("Hello".to_string()))? - .named("A") - .build()?; + .build_named("A")?; let model = Model::try_from(type1)?; let one = model.props.get("one"); diff --git a/src/typegraph/core/src/runtimes/prisma/relationship/discovery.rs b/src/typegraph/core/src/runtimes/prisma/relationship/discovery.rs index b5583d6bdc..f09faa8c4c 100644 --- a/src/typegraph/core/src/runtimes/prisma/relationship/discovery.rs +++ b/src/typegraph/core/src/runtimes/prisma/relationship/discovery.rs @@ -23,14 +23,19 @@ impl PrismaContext { prop_name: String, source_candidate: Option<&Candidate>, ) -> Result> { - let model = source_model.borrow(); + // let model = source_model.borrow(); let prop = { - let prop = model.get_prop(&prop_name).ok_or_else(|| { - format!( - "Property {} not found on model {}", - prop_name, model.type_name - ) - })?; + let prop = source_model + .borrow() + .get_prop(&prop_name) + .cloned() + .ok_or_else(|| { + format!( + "Property {} not found on model {}", + prop_name, + source_model.borrow().model_type.name() + ) + })?; let Property::Model(prop) = prop else { return Ok(None); }; @@ -38,11 +43,11 @@ impl PrismaContext { }; if let Some(source_candidate) = source_candidate { - if source_candidate.source_model.type_id() != prop.model_id { + if source_candidate.source_model.model_type() != prop.model_type { return Ok(None); } - if source_candidate.model.type_id() == prop.model_id { + if source_candidate.model.model_type() == prop.model_type { // self reference if prop_name == source_candidate.field_name { return Ok(None); @@ -50,7 +55,7 @@ impl PrismaContext { } } - let target_model = self.model(prop.model_id)?; + let target_model = self.model(prop.model_type.type_id)?; Ok(Some(Candidate { source_model: source_model.clone(), @@ -131,9 +136,9 @@ impl PrismaContext { let alternatives = self.get_potential_targets(candidate.clone())?; match alternatives.len() { 0 => Err(errors::no_relationship_target( - &candidate.source_model.type_name(), + &candidate.source_model.name(), &candidate.field_name, - &candidate.model.type_name(), + &candidate.model.name(), )), 1 => Ok(CandidatePair( candidate, @@ -155,14 +160,12 @@ impl PrismaContext { } pub fn scan_model(&self, model: ModelRef) -> Result> { - let candidates = model - .borrow() - .iter_relationship_props() - .filter_map(|(k, _prop)| { - self.create_candidate(model.clone(), k.to_string(), None) - .transpose() - }) - .collect::>>()?; + let mut candidates = vec![]; + let keys = model.borrow().props.keys().cloned().collect::>(); + for k in keys { + let c = self.create_candidate(model.clone(), k.to_string(), None)?; + candidates.extend(c); + } candidates .into_iter() @@ -208,8 +211,8 @@ impl CandidatePair { ) { (None, None) => Ok(Generated(format!( "rel_{}_{}", - self.1.model.type_name(), - self.0.model.type_name() + self.1.model.name(), + self.0.model.name() ))), (Some(a), None) => Ok(User(a.clone())), (None, Some(b)) => Ok(User(b.clone())), @@ -235,9 +238,9 @@ impl CandidatePair { (Some(true), Some(false)) => Ok(Self(first, second)), (Some(false), Some(true)) => Ok(Self(second, first)), (Some(true), Some(true)) => { - Err(errors::conflicting_attributes("fkey", &first.model.type_name(), &second.field_name, &second.model.type_name(), &first.field_name)) + Err(errors::conflicting_attributes("fkey", &first.model.name(), &second.field_name, &second.model.name(), &first.field_name)) } - (Some(false), Some(false)) => Err(errors::conflicting_attributes("fkey", &first.model.type_name(), &second.field_name, &second.model.type_name(), &first.field_name)), + (Some(false), Some(false)) => Err(errors::conflicting_attributes("fkey", &first.model.name(), &second.field_name, &second.model.name(), &first.field_name)), (Some(true), None) => Ok(Self(first, second)), (Some(false), None) => Ok(Self(second, first)), (None, Some(true)) => Ok(Self(second, first)), @@ -247,8 +250,8 @@ impl CandidatePair { match (first.property.unique, second.property.unique) { (true, false) => Ok(Self(first, second)), (false, true) => Ok(Self(second, first)), - (true, true) => Err(errors::conflicting_attributes("unique", &first.model.type_name(), &second.field_name, &second.model.type_name(), &first.field_name)), - (false, false) => Err(errors::ambiguous_side(&first.model.type_name(), &second.field_name, &second.model.type_name(), &first.field_name)), + (true, true) => Err(errors::conflicting_attributes("unique", &first.model.name(), &second.field_name, &second.model.name(), &first.field_name)), + (false, false) => Err(errors::ambiguous_side(&first.model.name(), &second.field_name, &second.model.name(), &first.field_name)), } } } @@ -266,7 +269,7 @@ impl CandidatePair { (C::Many, C::Many) => { Err(format!( "many-to-many relationship not supported: use explicit join table between {} and {}", - first.model.type_name(), second.model.type_name() + first.model.name(), second.model.name() ).into()) } } diff --git a/src/typegraph/core/src/runtimes/prisma/relationship/mod.rs b/src/typegraph/core/src/runtimes/prisma/relationship/mod.rs index 7bce5279b3..05b67373ae 100644 --- a/src/typegraph/core/src/runtimes/prisma/relationship/mod.rs +++ b/src/typegraph/core/src/runtimes/prisma/relationship/mod.rs @@ -1,12 +1,11 @@ // Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. // SPDX-License-Identifier: MPL-2.0 -use serde::{Deserialize, Serialize}; - +use super::model::ModelType; use crate::errors::Result; -use crate::t; use crate::t::TypeBuilder; -use crate::types::{RefAttr, TypeId}; +use crate::types::{RefAttr, Type, TypeId, TypeRef}; +use serde::{Deserialize, Serialize}; pub mod discovery; @@ -19,10 +18,9 @@ pub enum Cardinality { #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct RelationshipModel { - pub model_type: TypeId, - pub model_name: String, pub wrapper_type: TypeId, pub cardinality: Cardinality, + pub model_type: ModelType, pub field: String, } @@ -55,15 +53,34 @@ pub struct Relationship { pub right: RelationshipModel, } -#[derive(Default, Clone)] +#[derive(Clone)] +pub enum PrismaLinkTarget { + Direct(Type), + #[allow(unused)] + Indirect(String), +} + +#[derive(Clone)] pub struct PrismaLink { - type_name: String, + target: PrismaLinkTarget, rel_name: Option, fkey: Option, target_field: Option, unique: bool, } +impl PrismaLink { + pub fn with_target(target: PrismaLinkTarget) -> Self { + Self { + target, + rel_name: None, + fkey: None, + target_field: None, + unique: false, + } + } +} + #[derive(Default, Debug, Serialize, Deserialize)] pub struct PrismaRefData { pub rel_name: Option, @@ -103,14 +120,16 @@ impl PrismaLink { } fn build_link(&self) -> Result { - t::ref_( - &self.type_name, - Some(RefAttr::runtime( - "prisma", - serde_json::to_value(PrismaRefData::from(self)).unwrap(), - )), - ) - .build() + let attr = RefAttr::runtime( + "prisma", + serde_json::to_value(PrismaRefData::from(self)).unwrap(), + ); + match &self.target { + PrismaLinkTarget::Direct(t) => TypeRef::from_type(t.clone(), attr), + PrismaLinkTarget::Indirect(n) => TypeRef::indirect(n, Some(attr)), + } + .register() + .map(|t| t.id()) } } @@ -126,17 +145,14 @@ pub fn prisma_linkx(typ: impl TypeBuilder) -> Result { } pub fn prisma_link(type_id: TypeId) -> Result { - let name = type_id - .name()? - .ok_or_else(|| "Prisma link target must be named".to_string())?; - Ok(prisma_linkn(name)) + Ok(PrismaLink::with_target(PrismaLinkTarget::Direct( + type_id.as_type()?, + ))) } +#[allow(dead_code)] pub fn prisma_linkn(name: impl Into) -> PrismaLink { - PrismaLink { - type_name: name.into(), - ..Default::default() - } + PrismaLink::with_target(PrismaLinkTarget::Indirect(name.into())) } #[cfg(test)] @@ -146,7 +162,7 @@ mod test { use crate::global_store::Store; use crate::runtimes::prisma::context::PrismaContext; use crate::runtimes::prisma::errors; - use crate::t::{self, ConcreteTypeBuilder, TypeBuilder}; + use crate::t::{self, TypeBuilder}; use crate::test_utils::*; #[test] @@ -159,8 +175,8 @@ mod test { assert_eq!(ctx.relationships.len(), 1); let (name, rel) = ctx.relationships.iter().next().unwrap(); assert_eq!(name, "rel_Post_User"); - assert_eq!(rel.left.model_name, "User"); - assert_eq!(rel.right.model_name, "Post"); + assert_eq!(rel.left.model_type.name().as_ref(), "User"); + assert_eq!(rel.right.model_type.name().as_ref(), "Post"); Ok(()) } @@ -172,15 +188,13 @@ mod test { .propx("id", t::integer().as_id())? .propx("name", t::string())? .propx("posts", t::listx(t::ref_("Post", Default::default()))?)? - .named("User") - .build()?; + .build_named("User")?; let post = t::struct_() .propx("id", t::integer().as_id())? .propx("title", t::string())? .propx("author", prisma_linkn("User").name("PostAuthor"))? - .named("Post") - .build()?; + .build_named("Post")?; let mut ctx = PrismaContext::default(); ctx.manage(user)?; @@ -190,8 +204,8 @@ mod test { assert_eq!(relationships.len(), 1); let (name, rel) = relationships.iter().next().unwrap(); assert_eq!(name, "PostAuthor"); - assert_eq!(rel.left.model_name, "User"); - assert_eq!(rel.right.model_name, "Post"); + assert_eq!(rel.left.model_type.name().as_ref(), "User"); + assert_eq!(rel.right.model_type.name().as_ref(), "Post"); Ok(()) } @@ -205,14 +219,12 @@ mod test { "profile", prisma_linkx(t::optionalx(t::ref_("Profile", Default::default()))?)?.fkey(true), )? - .named("User") - .build()?; + .build_named("User")?; let profile = t::struct_() .propx("id", t::integer().as_id())? .propx("user", t::optionalx(t::ref_("User", Default::default()))?)? - .named("Profile") - .build()?; + .build_named("Profile")?; let mut ctx = PrismaContext::default(); ctx.manage(user)?; @@ -222,8 +234,8 @@ mod test { assert_eq!(relationships.len(), 1); let (name, rel) = relationships.iter().next().unwrap(); assert_eq!(name, "rel_User_Profile"); - assert_eq!(rel.left.model_name, "Profile"); - assert_eq!(rel.right.model_name, "User"); + assert_eq!(rel.left.model_type.name().as_ref(), "Profile"); + assert_eq!(rel.right.model_type.name().as_ref(), "User"); Ok(()) } @@ -235,16 +247,14 @@ mod test { .propx("id", t::integer().as_id())? .propx( "profile", - t::optionalx(t::ref_("Profile", Default::default()))?.config("unique", "true"), + t::optionalx(t::ref_("Profile", Default::default()))?.config("unique", true), )? - .named("User") - .build()?; + .build_named("User")?; let profile = t::struct_() .propx("id", t::integer().as_id())? .propx("user", t::optionalx(t::ref_("User", Default::default()))?)? - .named("Profile") - .build()?; + .build_named("Profile")?; let mut ctx = PrismaContext::default(); ctx.manage(user)?; @@ -253,8 +263,8 @@ mod test { assert_eq!(ctx.relationships.len(), 1); let (name, rel) = ctx.relationships.iter().next().unwrap(); assert_eq!(name, "rel_User_Profile"); - assert_eq!(rel.left.model_name, "Profile"); - assert_eq!(rel.right.model_name, "User"); + assert_eq!(rel.left.model_type.name().as_ref(), "Profile"); + assert_eq!(rel.right.model_type.name().as_ref(), "User"); Ok(()) } @@ -266,8 +276,7 @@ mod test { .propx("id", t::string().as_id())? .propx("children", t::listx(t::ref_("Node", Default::default()))?)? .propx("parent", t::ref_("Node", Default::default()))? - .named("Node") - .build()?; + .build_named("Node")?; let mut ctx = PrismaContext::default(); ctx.manage(node)?; @@ -275,8 +284,8 @@ mod test { assert_eq!(ctx.relationships.len(), 1); let (name, rel) = ctx.relationships.iter().next().unwrap(); assert_eq!(name, "rel_Node_Node"); - assert_eq!(rel.left.model_name, "Node"); - assert_eq!(rel.right.model_name, "Node"); + assert_eq!(rel.left.model_type.name().as_ref(), "Node"); + assert_eq!(rel.right.model_type.name().as_ref(), "Node"); Ok(()) } @@ -287,14 +296,12 @@ mod test { let user = t::struct_() .propx("id", t::integer().as_id())? .propx("profile", t::ref_("Profile", Default::default()))? - .named("User") - .build()?; + .build_named("User")?; let profile = t::struct_() .propx("id", t::integer().as_id())? .propx("user", t::ref_("User", Default::default()))? - .named("Profile") - .build()?; + .build_named("Profile")?; let mut ctx = PrismaContext::default(); let res = ctx.manage(user); @@ -315,14 +322,12 @@ mod test { "profile", t::optionalx(t::ref_("Profile", Default::default()))?, )? - .named("User") - .build()?; + .build_named("User")?; let profile = t::struct_() .propx("id", t::integer().as_id())? .propx("user", t::optionalx(t::ref_("User", Default::default()))?)? - .named("Profile") - .build()?; + .build_named("Profile")?; let mut ctx = PrismaContext::default(); let res = ctx.manage(user); @@ -345,14 +350,12 @@ mod test { let user = t::struct_() .propx("id", t::integer().as_id())? .propx("profile", prisma_linkn("Profile").fkey(true))? - .named("User") - .build()?; + .build_named("User")?; let profile = t::struct_() .propx("id", t::integer().as_id())? .propx("user", prisma_linkn("User").fkey(true))? - .named("Profile") - .build()?; + .build_named("Profile")?; let mut ctx = PrismaContext::default(); let res = ctx.manage(user); @@ -374,14 +377,12 @@ mod test { let user = t::struct_() .propx("id", t::integer().as_id())? .propx("profile", prisma_linkn("Profile").fkey(false))? - .named("User") - .build()?; + .build_named("User")?; let profile = t::struct_() .propx("id", t::integer().as_id())? .propx("user", prisma_linkn("User").fkey(false))? - .named("Profile") - .build()?; + .build_named("Profile")?; let mut ctx = PrismaContext::default(); let res = ctx.manage(user); @@ -408,13 +409,11 @@ mod test { let user = t::struct_() .propx("id", t::integer().as_id())? .propx("profile", prisma_linkn("Profile").fkey(true))? - .named("User") - .build()?; + .build_named("User")?; let _profile = t::struct_() .propx("id", t::integer().as_id())? - .named("Profile") - .build()?; + .build_named("Profile")?; let mut ctx = PrismaContext::default(); let res = ctx.manage(user); diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/additional_filters.rs b/src/typegraph/core/src/runtimes/prisma/type_generation/additional_filters.rs index c2f5bdb9b9..53f6a6be3a 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/additional_filters.rs +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/additional_filters.rs @@ -3,7 +3,8 @@ use crate::runtimes::prisma::context::PrismaContext; use crate::runtimes::prisma::model::Property; -use crate::t::{self, ConcreteTypeBuilder, TypeBuilder}; +use crate::t::{self, TypeBuilder}; +use crate::types::Named as _; use crate::{errors::Result, types::TypeId}; use super::TypeGen; @@ -12,7 +13,11 @@ pub struct Take; impl TypeGen for Take { fn generate(&self, _context: &PrismaContext) -> Result { - t::integer().x_min(0).named(self.name()).build() + t::integer() + .x_min(0) + .build()? + .named(self.name()) + .map(|t| t.id()) } fn name(&self) -> String { @@ -24,7 +29,7 @@ pub struct Skip; impl TypeGen for Skip { fn generate(&self, _context: &PrismaContext) -> Result { - t::integer().min(0).named(self.name()).build() + t::integer().min(0).build_named(self.name()) } fn name(&self) -> String { @@ -47,9 +52,7 @@ impl TypeGen for Distinct { }) .collect(); - t::listx(t::string().enum_(cols))? - .named(self.name()) - .build() + t::listx(t::string().enum_(cols)).build_named(self.name()) } fn name(&self) -> String { @@ -86,7 +89,7 @@ impl TypeGen for Cursor { let variant = t::struct_().prop(k, id).build()?; variants.push(variant) } - t::union(variants).named(self.name()).build() + t::union(variants).build_named(self.name()) } fn name(&self) -> String { diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/aggregate.rs b/src/typegraph/core/src/runtimes/prisma/type_generation/aggregate.rs index 6d7b7228ba..12f11c6403 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/aggregate.rs +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/aggregate.rs @@ -4,7 +4,7 @@ use crate::errors::Result; use crate::runtimes::prisma::context::PrismaContext; use crate::runtimes::prisma::model::{Property, ScalarType}; -use crate::t::{self, ConcreteTypeBuilder, TypeBuilder}; +use crate::t::{self, TypeBuilder}; use crate::types::TypeId; use super::TypeGen; @@ -38,7 +38,7 @@ impl TypeGen for CountOutput { } // TODO union - builder.named(self.name()).build() + builder.build_named(self.name()) } fn name(&self) -> String { @@ -88,7 +88,7 @@ impl TypeGen for NumberAggregateOutput { } } - builder.named(self.name()).build() + builder.build_named(self.name()) } fn name(&self) -> String { diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/count.rs b/src/typegraph/core/src/runtimes/prisma/type_generation/count.rs index 7e9f6fba11..8ae0fad4db 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/count.rs +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/count.rs @@ -4,7 +4,7 @@ use crate::{ errors::Result, runtimes::prisma::context::PrismaContext, - t::{self, ConcreteTypeBuilder, TypeBuilder}, + t::{self, TypeBuilder as _}, types::TypeId, }; @@ -14,7 +14,7 @@ pub struct Count; impl TypeGen for Count { fn generate(&self, _context: &PrismaContext) -> Result { - t::optionalx(t::integer())?.named(self.name()).build() + t::optionalx(t::integer()).build_named(self.name()) } fn name(&self) -> String { diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/filters.rs b/src/typegraph/core/src/runtimes/prisma/type_generation/filters.rs index 946d578681..bd23c70df6 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/filters.rs +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/filters.rs @@ -3,8 +3,8 @@ use crate::errors::Result; use crate::runtimes::prisma::context::PrismaContext; -use crate::t::{self, ConcreteTypeBuilder, TypeBuilder}; -use crate::types::{ResolveRef as _, TypeDef, TypeId}; +use crate::t::{self, TypeBuilder}; +use crate::types::{AsTypeDefEx as _, TypeDef, TypeId}; use super::TypeGen; @@ -14,9 +14,7 @@ impl TypeGen for CompleteFilter { fn generate(&self, context: &PrismaContext) -> Result { let inner = context.generate(&self.0)?; // TODO and, or ??? - t::optionalx(t::unionx![inner, t::struct_().prop("not", inner)])? - .named(self.name()) - .build() + t::optionalx(t::unionx![inner, t::struct_().prop("not", inner)]).build_named(self.name()) } fn name(&self) -> String { @@ -33,8 +31,7 @@ impl TypeGen for BooleanFilter { t::struct_().propx("equals", t::boolean())?, t::struct_().propx("not", t::boolean())?, ] - .named(self.name()) - .build() + .build_named(self.name()) } fn name(&self) -> String { @@ -76,8 +73,7 @@ impl TypeGen for NumberFilter { t::struct_().prop("_min", base), t::struct_().prop("_max", base), ] - .named(self.name()) - .build() + .build_named(self.name()) } else { let type_id = match self.number_type { NumberType::Integer => t::integer().build()?, @@ -98,8 +94,7 @@ impl TypeGen for NumberFilter { t::struct_().prop("in", list_type_id), t::struct_().prop("notIn", list_type_id), ] - .named(self.name()) - .build() + .build_named(self.name()) } } @@ -141,8 +136,7 @@ impl TypeGen for StringFilter { .prop("endsWith", opt_type_id) .min(1), ] - .named(self.name()) - .build() + .build_named(self.name()) } fn name(&self) -> String { @@ -169,8 +163,7 @@ impl TypeGen for ScalarListFilter { // TODO "isSet": mongo only t::struct_().propx("equals", t::list(self.0))?, ] - .named(self.name()) - .build() + .build_named(self.name()) } fn name(&self) -> String { @@ -256,7 +249,7 @@ impl TypeGen for AvgFilter { .unwrap() .iter_props() .filter_map(|(k, type_id)| { - let type_def = type_id.resolve_ref().unwrap().0; + let type_def = type_id.as_xdef().unwrap().type_def; let non_opt_type = match type_def { TypeDef::Optional(inner) => inner.item().as_type_def().unwrap().unwrap(), _ => type_def, @@ -295,9 +288,9 @@ impl TypeGen for SumFilter { .unwrap() .iter_props() .filter_map(|(k, type_id)| { - let type_def = type_id.resolve_ref().unwrap().0; + let type_def = type_id.as_xdef().unwrap().type_def; let non_opt_type = match type_def { - TypeDef::Optional(inner) => inner.item().resolve_ref().unwrap().0, + TypeDef::Optional(inner) => inner.item().as_xdef().unwrap().type_def, _ => type_def, }; match non_opt_type { @@ -332,5 +325,5 @@ fn gen_aggregate_filter (String, NumberType)>( ); } - builder.named(name).build() + builder.build_named(name) } diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/group_by.rs b/src/typegraph/core/src/runtimes/prisma/type_generation/group_by.rs index 4f59d27965..4d144087f0 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/group_by.rs +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/group_by.rs @@ -5,7 +5,7 @@ use crate::errors::Result; use crate::runtimes::prisma::context::PrismaContext; use crate::runtimes::prisma::model::{Property, ScalarType}; use crate::runtimes::prisma::type_generation::where_::Where; -use crate::t::{self, ConcreteTypeBuilder, TypeBuilder}; +use crate::t::{self, TypeBuilder}; use crate::types::TypeId; use super::{aggregate::CountOutput, TypeGen}; @@ -33,9 +33,7 @@ impl TypeGen for GroupingFields { }) .collect(); - t::listx(t::string().enum_(fields))? - .named(self.name()) - .build() + t::listx(t::string().enum_(fields))?.build_named(self.name()) } fn name(&self) -> String { @@ -68,8 +66,7 @@ impl TypeGen for Having { t::struct_().propx("OR", t::list(self_ref))?, t::struct_().prop("NOT", self_ref) ] - .named(name) - .build() + .build_named(name) } fn name(&self) -> String { @@ -115,8 +112,7 @@ impl TypeGen for GroupByResult { ) .build()?, ) - .named(self.name()) - .build() + .build_named(self.name()) } fn name(&self) -> String { @@ -168,7 +164,7 @@ impl TypeGen for SelectNumbers { } } - builder.named(self.name()).build() + builder.build_named(self.name()) } fn name(&self) -> String { diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/input_type.rs b/src/typegraph/core/src/runtimes/prisma/type_generation/input_type.rs index 27a109315d..3ab3190ae6 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/input_type.rs +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/input_type.rs @@ -7,7 +7,7 @@ use crate::errors::Result; use crate::runtimes::prisma::context::PrismaContext; use crate::runtimes::prisma::model::{InjectionHandler, Property}; use crate::runtimes::prisma::{relationship::Cardinality, type_generation::where_::Where}; -use crate::t::{self, ConcreteTypeBuilder, TypeBuilder}; +use crate::t::{self, TypeBuilder}; use crate::types::TypeId; use super::TypeGen; @@ -52,14 +52,18 @@ impl TypeGen for InputType { match prop { Property::Model(prop) => { let rel_name = model.relationships.get(k).ok_or_else(|| { - format!("relationship not registered: {}::{}", model.type_name, k) + format!( + "relationship not registered: {}::{}", + model.model_type.name(), + k + ) })?; if self.skip_rel.contains(rel_name) { continue; } let create = context.generate(&InputType { - model_id: prop.model_id, + model_id: prop.model_type.type_id, skip_rel: { let mut skip_rel = self.skip_rel.clone(); skip_rel.push(rel_name.to_string()); @@ -72,7 +76,7 @@ impl TypeGen for InputType { _ => create, }; - let connect = context.generate(&Where::new(prop.model_id))?; + let connect = context.generate(&Where::new(prop.model_type.type_id))?; let connect = match prop.quantifier { Cardinality::Many => t::unionx!(connect, t::list(connect)).build()?, _ => connect, @@ -91,7 +95,7 @@ impl TypeGen for InputType { if let Operation::Update = self.operation { let update = context.generate(&InputType { - model_id: prop.model_id, + model_id: prop.model_type.type_id, skip_rel: { let mut skip_rel = self.skip_rel.clone(); skip_rel.push(rel_name.to_string()); @@ -206,7 +210,7 @@ impl TypeGen for InputType { } } - builder.named(self.name()).build() + builder.build_named(self.name()) } fn name(&self) -> String { diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs b/src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs index 29c608aec8..d273666cdc 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs @@ -1,4 +1,5 @@ // Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// // SPDX-License-Identifier: MPL-2.0 //! This module is responsible for generating the types for prisma operations. @@ -109,13 +110,11 @@ impl PrismaContext { let type_id = generator.generate(self)?; // name validation - let type_def = type_id.as_type_def()?.unwrap(); - let name = type_def - .base() - .name - .as_ref() + let name = type_id + .as_type()? + .name() .ok_or_else(|| format!("Generated type must have name: {type_name}"))?; - if name != &type_name { + if name.as_ref() != type_name.as_str() { return Err(format!( "Generated type name mismatch: expected {}, got {}", type_name, name diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/order_by.rs b/src/typegraph/core/src/runtimes/prisma/type_generation/order_by.rs index 4f9cc412f3..add7f8d17e 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/order_by.rs +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/order_by.rs @@ -6,7 +6,7 @@ use crate::runtimes::prisma::context::PrismaContext; use crate::runtimes::prisma::errors; use crate::runtimes::prisma::model::{Property, ScalarType}; use crate::runtimes::prisma::relationship::Cardinality; -use crate::t::{ConcreteTypeBuilder, TypeBuilder}; +use crate::t::TypeBuilder; use crate::{t, types::TypeId}; use super::TypeGen; @@ -53,10 +53,9 @@ impl TypeGen for OrderBy { for (k, prop) in model.iter_props() { match prop { Property::Model(prop) => { - let rel_name = model - .relationships - .get(k) - .ok_or_else(|| errors::unregistered_relationship(&model.type_name, k))?; + let rel_name = model.relationships.get(k).ok_or_else(|| { + errors::unregistered_relationship(&model.model_type.name(), k) + })?; if self.skip_rel.contains(rel_name) { continue; @@ -70,8 +69,8 @@ impl TypeGen for OrderBy { Cardinality::Optional | Cardinality::One => { let mut skip_rel = self.skip_rel.clone(); skip_rel.push(rel_name.clone()); - let inner = - context.generate(&OrderBy::new(prop.model_id).skip(skip_rel))?; + let inner = context + .generate(&OrderBy::new(prop.model_type.type_id).skip(skip_rel))?; builder.propx(k, t::optional(inner))?; } } @@ -92,7 +91,7 @@ impl TypeGen for OrderBy { } } - t::listx(builder)?.named(self.name()).build() + t::listx(builder)?.build_named(self.name()) } fn name(&self) -> String { @@ -118,8 +117,7 @@ impl TypeGen for SortOrder { fn generate(&self, _context: &PrismaContext) -> Result { t::string() .enum_(vec!["asc".to_string(), "desc".to_string()]) - .named(self.name()) - .build() + .build_named(self.name()) } fn name(&self) -> String { @@ -133,8 +131,7 @@ impl TypeGen for NullsOrder { fn generate(&self, _context: &PrismaContext) -> Result { t::string() .enum_(vec!["first".to_string(), "last".to_string()]) - .named(self.name()) - .build() + .build_named(self.name()) } fn name(&self) -> String { @@ -156,9 +153,7 @@ impl TypeGen for Sort { builder.prop("nulls", nulls_order); } - t::optionalx(t::unionx![builder, sort_order])? - .named(self.name()) - .build() + t::optionalx(t::unionx![builder, sort_order])?.build_named(self.name()) } fn name(&self) -> String { @@ -179,7 +174,7 @@ impl TypeGen for SortByAggregates { builder.prop("_min", sort); builder.prop("_max", sort); - t::optionalx(builder)?.named(self.name()).build() + t::optionalx(builder)?.build_named(self.name()) } fn name(&self) -> String { @@ -249,8 +244,7 @@ impl TypeGen for AggregateSorting { .prop("_sum", others) .prop("_min", others) .prop("_max", others) - .named(self.name()) - .build() + .build_named(self.name()) } fn name(&self) -> String { diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/out_type.rs b/src/typegraph/core/src/runtimes/prisma/type_generation/out_type.rs index b0a72e4dec..f8b019fce1 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/out_type.rs +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/out_type.rs @@ -5,7 +5,7 @@ use crate::errors::Result; use crate::runtimes::prisma::context::PrismaContext; use crate::runtimes::prisma::errors; use crate::runtimes::prisma::model::Property; -use crate::t::{self, ConcreteTypeBuilder, TypeBuilder}; +use crate::t::{self, TypeBuilder}; use crate::types::TypeId; use super::{Cardinality, TypeGen}; @@ -34,10 +34,9 @@ impl TypeGen for OutType { for (key, prop) in model.iter_props() { match prop { Property::Model(prop) => { - let rel_name = model - .relationships - .get(key) - .ok_or_else(|| errors::unregistered_relationship(&model.type_name, key))?; + let rel_name = model.relationships.get(key).ok_or_else(|| { + errors::unregistered_relationship(&model.model_type.name(), key) + })?; let rel = context.relationships.get(rel_name).unwrap(); if self.skip_rel.contains(rel_name) || rel.left.model_type == rel.right.model_type @@ -49,7 +48,7 @@ impl TypeGen for OutType { skip_rel.push(rel_name.clone()); let out_type = context.generate(&OutType { - model_id: prop.model_id, + model_id: prop.model_type.type_id, skip_rel, })?; @@ -71,7 +70,7 @@ impl TypeGen for OutType { } } - builder.named(self.name()).build() + builder.build_named(self.name()) } fn name(&self) -> String { diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/query_input_type.rs b/src/typegraph/core/src/runtimes/prisma/type_generation/query_input_type.rs index e387d4aab5..bddce719cc 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/query_input_type.rs +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/query_input_type.rs @@ -4,7 +4,7 @@ use crate::{ errors::Result, runtimes::prisma::context::PrismaContext, - t::{self, ConcreteTypeBuilder, TypeBuilder}, + t::{self, TypeBuilder as _}, types::TypeId, }; @@ -69,7 +69,7 @@ impl TypeGen for QueryInputType { )?; } - builder.named(self.name()).build() + builder.build_named(self.name()) } fn name(&self) -> String { diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/query_where_expr.rs b/src/typegraph/core/src/runtimes/prisma/type_generation/query_where_expr.rs index 92dec6cddf..0d59c5381d 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/query_where_expr.rs +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/query_where_expr.rs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: MPL-2.0 use crate::runtimes::prisma::context::PrismaContext; -use crate::t::{self, ConcreteTypeBuilder, TypeBuilder}; +use crate::t::{self, TypeBuilder}; use crate::{errors::Result, types::TypeId}; use super::{where_::Where, TypeGen}; @@ -48,7 +48,6 @@ impl TypeGen for QueryWhereExpr { let and = t::optionalx(t::list(self_ref))?.build()?; let mut builder = t::struct_(); - builder.named(name); for (k, ty) in props.into_iter() { builder.prop(k.clone(), ty.into()); } @@ -56,7 +55,7 @@ impl TypeGen for QueryWhereExpr { builder.prop("OR", and); builder.propx("NOT", t::optional(self_ref))?; - builder.build() + builder.build_named(name) } fn name(&self) -> String { diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__query_where_expr__tests__Post__QueryWhereExpr.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__query_where_expr__tests__Post__QueryWhereExpr.snap index 4b07ebddce..e0d86d342b 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__query_where_expr__tests__Post__QueryWhereExpr.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__query_where_expr__tests__Post__QueryWhereExpr.snap @@ -2,217 +2,511 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/query_where_expr.rs expression: "tree::print(post_where_expr)" --- -root: struct 'Post_query_where_input' #80 -├── [AND]: optional 'optional_78' #78 -│ └── item: list 'list_77' #77 -│ └── item: &Post_query_where_input #76 -├── [NOT]: optional 'optional_79' #79 -│ └── item: &Post_query_where_input #76 -├── [OR]: optional 'optional_78' #78 -│ └── item: list 'list_77' #77 -│ └── item: &Post_query_where_input #76 -├── [author]: optional 'optional_74' #74 -│ └── item: struct 'User_where_excluding_Post' #73 -│ ├── [id]: optional 'optional_62' #62 -│ │ └── item: optional '_prisma_integer_filter_ex' #22 -│ │ └── item: union #21 -│ │ ├── variant_0: either '_prisma_integer_filter' #19 -│ │ │ ├── variant_0: integer #11 -│ │ │ ├── variant_1: struct #14 -│ │ │ │ └── [equals]: integer #11 -│ │ │ ├── variant_2: struct #15 -│ │ │ │ └── [not]: integer #11 -│ │ │ ├── variant_3: struct #16 -│ │ │ │ ├── [gt]: optional 'optional_12' #12 -│ │ │ │ │ └── item: integer #11 -│ │ │ │ ├── [gte]: optional 'optional_12' #12 -│ │ │ │ │ └── item: integer #11 -│ │ │ │ ├── [lt]: optional 'optional_12' #12 -│ │ │ │ │ └── item: integer #11 -│ │ │ │ └── [lte]: optional 'optional_12' #12 -│ │ │ │ └── item: integer #11 -│ │ │ ├── variant_4: struct #17 -│ │ │ │ └── [in]: list 'list_13' #13 -│ │ │ │ └── item: integer #11 -│ │ │ └── variant_5: struct #18 -│ │ │ └── [notIn]: list 'list_13' #13 -│ │ │ └── item: integer #11 -│ │ └── variant_1: struct #20 -│ │ └── [not]: either '_prisma_integer_filter' #19 -│ │ ├── variant_0: integer #11 -│ │ ├── variant_1: struct #14 -│ │ │ └── [equals]: integer #11 -│ │ ├── variant_2: struct #15 -│ │ │ └── [not]: integer #11 -│ │ ├── variant_3: struct #16 -│ │ │ ├── [gt]: optional 'optional_12' #12 -│ │ │ │ └── item: integer #11 -│ │ │ ├── [gte]: optional 'optional_12' #12 -│ │ │ │ └── item: integer #11 -│ │ │ ├── [lt]: optional 'optional_12' #12 -│ │ │ │ └── item: integer #11 -│ │ │ └── [lte]: optional 'optional_12' #12 -│ │ │ └── item: integer #11 -│ │ ├── variant_4: struct #17 -│ │ │ └── [in]: list 'list_13' #13 -│ │ │ └── item: integer #11 -│ │ └── variant_5: struct #18 -│ │ └── [notIn]: list 'list_13' #13 -│ │ └── item: integer #11 -│ ├── [name]: optional 'optional_63' #63 -│ │ └── item: optional '_prisma_string_filter_ex' #39 -│ │ └── item: union #38 -│ │ ├── variant_0: union '_prisma_string_filter' #36 -│ │ │ ├── variant_0: string #24 -│ │ │ ├── variant_1: struct #27 -│ │ │ │ └── [equals]: string #24 -│ │ │ ├── variant_2: struct #28 -│ │ │ │ └── [not]: string #24 -│ │ │ ├── variant_3: struct #29 -│ │ │ │ └── [in]: list 'list_26' #26 -│ │ │ │ └── item: string #24 -│ │ │ ├── variant_4: struct #30 -│ │ │ │ └── [notIn]: list 'list_26' #26 -│ │ │ │ └── item: string #24 -│ │ │ ├── variant_5: struct #33 -│ │ │ │ ├── [contains]: string #24 -│ │ │ │ └── [mode]: optional 'optional_32' #32 -│ │ │ │ └── item: string #31 enum{ '"insensitive"' } -│ │ │ ├── variant_6: struct #34 -│ │ │ │ └── [search]: string #24 -│ │ │ └── variant_7: struct #35 -│ │ │ ├── [endsWith]: optional 'optional_25' #25 -│ │ │ │ └── item: string #24 -│ │ │ └── [startsWith]: optional 'optional_25' #25 -│ │ │ └── item: string #24 -│ │ └── variant_1: struct #37 -│ │ └── [not]: union '_prisma_string_filter' #36 -│ │ ├── variant_0: string #24 -│ │ ├── variant_1: struct #27 -│ │ │ └── [equals]: string #24 -│ │ ├── variant_2: struct #28 -│ │ │ └── [not]: string #24 -│ │ ├── variant_3: struct #29 -│ │ │ └── [in]: list 'list_26' #26 -│ │ │ └── item: string #24 -│ │ ├── variant_4: struct #30 -│ │ │ └── [notIn]: list 'list_26' #26 -│ │ │ └── item: string #24 -│ │ ├── variant_5: struct #33 -│ │ │ ├── [contains]: string #24 -│ │ │ └── [mode]: optional 'optional_32' #32 -│ │ │ └── item: string #31 enum{ '"insensitive"' } -│ │ ├── variant_6: struct #34 -│ │ │ └── [search]: string #24 -│ │ └── variant_7: struct #35 -│ │ ├── [endsWith]: optional 'optional_25' #25 -│ │ │ └── item: string #24 -│ │ └── [startsWith]: optional 'optional_25' #25 -│ │ └── item: string #24 -│ └── [posts]: optional 'optional_72' #72 -│ └── item: union #71 -│ ├── variant_0: struct #66 -│ │ └── [every]: optional 'optional_65' #65 -│ │ └── item: &Post_where #64 -│ ├── variant_1: struct #68 -│ │ └── [some]: optional 'optional_67' #67 -│ │ └── item: &Post_where #64 -│ └── variant_2: struct #70 -│ └── [none]: optional 'optional_69' #69 -│ └── item: &Post_where #64 -├── [id]: optional 'optional_60' #60 -│ └── item: optional '_prisma_integer_filter_ex' #22 -│ └── item: union #21 -│ ├── variant_0: either '_prisma_integer_filter' #19 -│ │ ├── variant_0: integer #11 -│ │ ├── variant_1: struct #14 -│ │ │ └── [equals]: integer #11 -│ │ ├── variant_2: struct #15 -│ │ │ └── [not]: integer #11 -│ │ ├── variant_3: struct #16 -│ │ │ ├── [gt]: optional 'optional_12' #12 -│ │ │ │ └── item: integer #11 -│ │ │ ├── [gte]: optional 'optional_12' #12 -│ │ │ │ └── item: integer #11 -│ │ │ ├── [lt]: optional 'optional_12' #12 -│ │ │ │ └── item: integer #11 -│ │ │ └── [lte]: optional 'optional_12' #12 -│ │ │ └── item: integer #11 -│ │ ├── variant_4: struct #17 -│ │ │ └── [in]: list 'list_13' #13 -│ │ │ └── item: integer #11 -│ │ └── variant_5: struct #18 -│ │ └── [notIn]: list 'list_13' #13 -│ │ └── item: integer #11 -│ └── variant_1: struct #20 -│ └── [not]: either '_prisma_integer_filter' #19 -│ ├── variant_0: integer #11 -│ ├── variant_1: struct #14 -│ │ └── [equals]: integer #11 -│ ├── variant_2: struct #15 -│ │ └── [not]: integer #11 -│ ├── variant_3: struct #16 -│ │ ├── [gt]: optional 'optional_12' #12 -│ │ │ └── item: integer #11 -│ │ ├── [gte]: optional 'optional_12' #12 -│ │ │ └── item: integer #11 -│ │ ├── [lt]: optional 'optional_12' #12 -│ │ │ └── item: integer #11 -│ │ └── [lte]: optional 'optional_12' #12 -│ │ └── item: integer #11 -│ ├── variant_4: struct #17 -│ │ └── [in]: list 'list_13' #13 -│ │ └── item: integer #11 -│ └── variant_5: struct #18 -│ └── [notIn]: list 'list_13' #13 -│ └── item: integer #11 -└── [title]: optional 'optional_61' #61 - └── item: optional '_prisma_string_filter_ex' #39 - └── item: union #38 - ├── variant_0: union '_prisma_string_filter' #36 - │ ├── variant_0: string #24 - │ ├── variant_1: struct #27 - │ │ └── [equals]: string #24 - │ ├── variant_2: struct #28 - │ │ └── [not]: string #24 - │ ├── variant_3: struct #29 - │ │ └── [in]: list 'list_26' #26 - │ │ └── item: string #24 - │ ├── variant_4: struct #30 - │ │ └── [notIn]: list 'list_26' #26 - │ │ └── item: string #24 - │ ├── variant_5: struct #33 - │ │ ├── [contains]: string #24 - │ │ └── [mode]: optional 'optional_32' #32 - │ │ └── item: string #31 enum{ '"insensitive"' } - │ ├── variant_6: struct #34 - │ │ └── [search]: string #24 - │ └── variant_7: struct #35 - │ ├── [endsWith]: optional 'optional_25' #25 - │ │ └── item: string #24 - │ └── [startsWith]: optional 'optional_25' #25 - │ └── item: string #24 - └── variant_1: struct #37 - └── [not]: union '_prisma_string_filter' #36 - ├── variant_0: string #24 - ├── variant_1: struct #27 - │ └── [equals]: string #24 - ├── variant_2: struct #28 - │ └── [not]: string #24 - ├── variant_3: struct #29 - │ └── [in]: list 'list_26' #26 - │ └── item: string #24 - ├── variant_4: struct #30 - │ └── [notIn]: list 'list_26' #26 - │ └── item: string #24 - ├── variant_5: struct #33 - │ ├── [contains]: string #24 - │ └── [mode]: optional 'optional_32' #32 - │ └── item: string #31 enum{ '"insensitive"' } - ├── variant_6: struct #34 - │ └── [search]: string #24 - └── variant_7: struct #35 - ├── [endsWith]: optional 'optional_25' #25 - │ └── item: string #24 - └── [startsWith]: optional 'optional_25' #25 - └── item: string #24 +root: struct 'Post_query_where_input' #151 +├── [AND]: optional 'optional_146' #147 +│ └── item: list 'list_144' #145 +│ └── item: &Post_query_where_input #143 +├── [NOT]: optional 'optional_148' #149 +│ └── item: &Post_query_where_input #143 +├── [OR]: optional 'optional_146' #147 +│ └── item: list 'list_144' #145 +│ └── item: &Post_query_where_input #143 +├── [author]: optional 'optional_139' #140 +│ └── item: struct 'User_where_excluding_Post' #138 +│ ├── [id]: optional 'optional_112' #113 +│ │ └── item: optional '_prisma_integer_filter_ex' #31 +│ │ └── item: union #28 +│ │ ├── variant_0: either '_prisma_integer_filter' #26 +│ │ │ ├── variant_0: integer #15 +│ │ │ ├── variant_1: struct #20 +│ │ │ │ └── [equals]: integer #15 +│ │ │ ├── variant_2: struct #21 +│ │ │ │ └── [not]: integer #15 +│ │ │ ├── variant_3: struct #22 +│ │ │ │ ├── [gt]: optional 'optional_16' #17 +│ │ │ │ │ └── item: integer #15 +│ │ │ │ ├── [gte]: optional 'optional_16' #17 +│ │ │ │ │ └── item: integer #15 +│ │ │ │ ├── [lt]: optional 'optional_16' #17 +│ │ │ │ │ └── item: integer #15 +│ │ │ │ └── [lte]: optional 'optional_16' #17 +│ │ │ │ └── item: integer #15 +│ │ │ ├── variant_4: struct #23 +│ │ │ │ └── [in]: list 'list_18' #19 +│ │ │ │ └── item: integer #15 +│ │ │ └── variant_5: struct #24 +│ │ │ └── [notIn]: list 'list_18' #19 +│ │ │ └── item: integer #15 +│ │ └── variant_1: struct #27 +│ │ └── [not]: either '_prisma_integer_filter' #26 +│ │ ├── variant_0: integer #15 +│ │ ├── variant_1: struct #20 +│ │ │ └── [equals]: integer #15 +│ │ ├── variant_2: struct #21 +│ │ │ └── [not]: integer #15 +│ │ ├── variant_3: struct #22 +│ │ │ ├── [gt]: optional 'optional_16' #17 +│ │ │ │ └── item: integer #15 +│ │ │ ├── [gte]: optional 'optional_16' #17 +│ │ │ │ └── item: integer #15 +│ │ │ ├── [lt]: optional 'optional_16' #17 +│ │ │ │ └── item: integer #15 +│ │ │ └── [lte]: optional 'optional_16' #17 +│ │ │ └── item: integer #15 +│ │ ├── variant_4: struct #23 +│ │ │ └── [in]: list 'list_18' #19 +│ │ │ └── item: integer #15 +│ │ └── variant_5: struct #24 +│ │ └── [notIn]: list 'list_18' #19 +│ │ └── item: integer #15 +│ ├── [name]: optional 'optional_114' #115 +│ │ └── item: optional '_prisma_string_filter_ex' #55 +│ │ └── item: union #52 +│ │ ├── variant_0: union '_prisma_string_filter' #50 +│ │ │ ├── variant_0: string #34 +│ │ │ ├── variant_1: struct #39 +│ │ │ │ └── [equals]: string #34 +│ │ │ ├── variant_2: struct #40 +│ │ │ │ └── [not]: string #34 +│ │ │ ├── variant_3: struct #41 +│ │ │ │ └── [in]: list 'list_37' #38 +│ │ │ │ └── item: string #34 +│ │ │ ├── variant_4: struct #42 +│ │ │ │ └── [notIn]: list 'list_37' #38 +│ │ │ │ └── item: string #34 +│ │ │ ├── variant_5: struct #46 +│ │ │ │ ├── [contains]: string #34 +│ │ │ │ └── [mode]: optional 'optional_44' #45 +│ │ │ │ └── item: string #43 enum{ '"insensitive"' } +│ │ │ ├── variant_6: struct #47 +│ │ │ │ └── [search]: string #34 +│ │ │ └── variant_7: struct #48 +│ │ │ ├── [endsWith]: optional 'optional_35' #36 +│ │ │ │ └── item: string #34 +│ │ │ └── [startsWith]: optional 'optional_35' #36 +│ │ │ └── item: string #34 +│ │ └── variant_1: struct #51 +│ │ └── [not]: union '_prisma_string_filter' #50 +│ │ ├── variant_0: string #34 +│ │ ├── variant_1: struct #39 +│ │ │ └── [equals]: string #34 +│ │ ├── variant_2: struct #40 +│ │ │ └── [not]: string #34 +│ │ ├── variant_3: struct #41 +│ │ │ └── [in]: list 'list_37' #38 +│ │ │ └── item: string #34 +│ │ ├── variant_4: struct #42 +│ │ │ └── [notIn]: list 'list_37' #38 +│ │ │ └── item: string #34 +│ │ ├── variant_5: struct #46 +│ │ │ ├── [contains]: string #34 +│ │ │ └── [mode]: optional 'optional_44' #45 +│ │ │ └── item: string #43 enum{ '"insensitive"' } +│ │ ├── variant_6: struct #47 +│ │ │ └── [search]: string #34 +│ │ └── variant_7: struct #48 +│ │ ├── [endsWith]: optional 'optional_35' #36 +│ │ │ └── item: string #34 +│ │ └── [startsWith]: optional 'optional_35' #36 +│ │ └── item: string #34 +│ └── [posts]: optional 'optional_135' #136 +│ └── item: union #134 +│ ├── variant_0: struct #127 +│ │ └── [every]: optional 'optional_125' #126 +│ │ └── item: struct 'Post_where_excluding_Post_and_User_where_excluding_Post' #124 +│ │ ├── [author]: optional 'optional_121' #122 +│ │ │ └── item: &User_where_excluding_Post #120 +│ │ ├── [id]: optional 'optional_116' #117 +│ │ │ └── item: optional '_prisma_integer_filter_ex' #31 +│ │ │ └── item: union #28 +│ │ │ ├── variant_0: either '_prisma_integer_filter' #26 +│ │ │ │ ├── variant_0: integer #15 +│ │ │ │ ├── variant_1: struct #20 +│ │ │ │ │ └── [equals]: integer #15 +│ │ │ │ ├── variant_2: struct #21 +│ │ │ │ │ └── [not]: integer #15 +│ │ │ │ ├── variant_3: struct #22 +│ │ │ │ │ ├── [gt]: optional 'optional_16' #17 +│ │ │ │ │ │ └── item: integer #15 +│ │ │ │ │ ├── [gte]: optional 'optional_16' #17 +│ │ │ │ │ │ └── item: integer #15 +│ │ │ │ │ ├── [lt]: optional 'optional_16' #17 +│ │ │ │ │ │ └── item: integer #15 +│ │ │ │ │ └── [lte]: optional 'optional_16' #17 +│ │ │ │ │ └── item: integer #15 +│ │ │ │ ├── variant_4: struct #23 +│ │ │ │ │ └── [in]: list 'list_18' #19 +│ │ │ │ │ └── item: integer #15 +│ │ │ │ └── variant_5: struct #24 +│ │ │ │ └── [notIn]: list 'list_18' #19 +│ │ │ │ └── item: integer #15 +│ │ │ └── variant_1: struct #27 +│ │ │ └── [not]: either '_prisma_integer_filter' #26 +│ │ │ ├── variant_0: integer #15 +│ │ │ ├── variant_1: struct #20 +│ │ │ │ └── [equals]: integer #15 +│ │ │ ├── variant_2: struct #21 +│ │ │ │ └── [not]: integer #15 +│ │ │ ├── variant_3: struct #22 +│ │ │ │ ├── [gt]: optional 'optional_16' #17 +│ │ │ │ │ └── item: integer #15 +│ │ │ │ ├── [gte]: optional 'optional_16' #17 +│ │ │ │ │ └── item: integer #15 +│ │ │ │ ├── [lt]: optional 'optional_16' #17 +│ │ │ │ │ └── item: integer #15 +│ │ │ │ └── [lte]: optional 'optional_16' #17 +│ │ │ │ └── item: integer #15 +│ │ │ ├── variant_4: struct #23 +│ │ │ │ └── [in]: list 'list_18' #19 +│ │ │ │ └── item: integer #15 +│ │ │ └── variant_5: struct #24 +│ │ │ └── [notIn]: list 'list_18' #19 +│ │ │ └── item: integer #15 +│ │ └── [title]: optional 'optional_118' #119 +│ │ └── item: optional '_prisma_string_filter_ex' #55 +│ │ └── item: union #52 +│ │ ├── variant_0: union '_prisma_string_filter' #50 +│ │ │ ├── variant_0: string #34 +│ │ │ ├── variant_1: struct #39 +│ │ │ │ └── [equals]: string #34 +│ │ │ ├── variant_2: struct #40 +│ │ │ │ └── [not]: string #34 +│ │ │ ├── variant_3: struct #41 +│ │ │ │ └── [in]: list 'list_37' #38 +│ │ │ │ └── item: string #34 +│ │ │ ├── variant_4: struct #42 +│ │ │ │ └── [notIn]: list 'list_37' #38 +│ │ │ │ └── item: string #34 +│ │ │ ├── variant_5: struct #46 +│ │ │ │ ├── [contains]: string #34 +│ │ │ │ └── [mode]: optional 'optional_44' #45 +│ │ │ │ └── item: string #43 enum{ '"insensitive"' } +│ │ │ ├── variant_6: struct #47 +│ │ │ │ └── [search]: string #34 +│ │ │ └── variant_7: struct #48 +│ │ │ ├── [endsWith]: optional 'optional_35' #36 +│ │ │ │ └── item: string #34 +│ │ │ └── [startsWith]: optional 'optional_35' #36 +│ │ │ └── item: string #34 +│ │ └── variant_1: struct #51 +│ │ └── [not]: union '_prisma_string_filter' #50 +│ │ ├── variant_0: string #34 +│ │ ├── variant_1: struct #39 +│ │ │ └── [equals]: string #34 +│ │ ├── variant_2: struct #40 +│ │ │ └── [not]: string #34 +│ │ ├── variant_3: struct #41 +│ │ │ └── [in]: list 'list_37' #38 +│ │ │ └── item: string #34 +│ │ ├── variant_4: struct #42 +│ │ │ └── [notIn]: list 'list_37' #38 +│ │ │ └── item: string #34 +│ │ ├── variant_5: struct #46 +│ │ │ ├── [contains]: string #34 +│ │ │ └── [mode]: optional 'optional_44' #45 +│ │ │ └── item: string #43 enum{ '"insensitive"' } +│ │ ├── variant_6: struct #47 +│ │ │ └── [search]: string #34 +│ │ └── variant_7: struct #48 +│ │ ├── [endsWith]: optional 'optional_35' #36 +│ │ │ └── item: string #34 +│ │ └── [startsWith]: optional 'optional_35' #36 +│ │ └── item: string #34 +│ ├── variant_1: struct #130 +│ │ └── [some]: optional 'optional_128' #129 +│ │ └── item: struct 'Post_where_excluding_Post_and_User_where_excluding_Post' #124 +│ │ ├── [author]: optional 'optional_121' #122 +│ │ │ └── item: &User_where_excluding_Post #120 +│ │ ├── [id]: optional 'optional_116' #117 +│ │ │ └── item: optional '_prisma_integer_filter_ex' #31 +│ │ │ └── item: union #28 +│ │ │ ├── variant_0: either '_prisma_integer_filter' #26 +│ │ │ │ ├── variant_0: integer #15 +│ │ │ │ ├── variant_1: struct #20 +│ │ │ │ │ └── [equals]: integer #15 +│ │ │ │ ├── variant_2: struct #21 +│ │ │ │ │ └── [not]: integer #15 +│ │ │ │ ├── variant_3: struct #22 +│ │ │ │ │ ├── [gt]: optional 'optional_16' #17 +│ │ │ │ │ │ └── item: integer #15 +│ │ │ │ │ ├── [gte]: optional 'optional_16' #17 +│ │ │ │ │ │ └── item: integer #15 +│ │ │ │ │ ├── [lt]: optional 'optional_16' #17 +│ │ │ │ │ │ └── item: integer #15 +│ │ │ │ │ └── [lte]: optional 'optional_16' #17 +│ │ │ │ │ └── item: integer #15 +│ │ │ │ ├── variant_4: struct #23 +│ │ │ │ │ └── [in]: list 'list_18' #19 +│ │ │ │ │ └── item: integer #15 +│ │ │ │ └── variant_5: struct #24 +│ │ │ │ └── [notIn]: list 'list_18' #19 +│ │ │ │ └── item: integer #15 +│ │ │ └── variant_1: struct #27 +│ │ │ └── [not]: either '_prisma_integer_filter' #26 +│ │ │ ├── variant_0: integer #15 +│ │ │ ├── variant_1: struct #20 +│ │ │ │ └── [equals]: integer #15 +│ │ │ ├── variant_2: struct #21 +│ │ │ │ └── [not]: integer #15 +│ │ │ ├── variant_3: struct #22 +│ │ │ │ ├── [gt]: optional 'optional_16' #17 +│ │ │ │ │ └── item: integer #15 +│ │ │ │ ├── [gte]: optional 'optional_16' #17 +│ │ │ │ │ └── item: integer #15 +│ │ │ │ ├── [lt]: optional 'optional_16' #17 +│ │ │ │ │ └── item: integer #15 +│ │ │ │ └── [lte]: optional 'optional_16' #17 +│ │ │ │ └── item: integer #15 +│ │ │ ├── variant_4: struct #23 +│ │ │ │ └── [in]: list 'list_18' #19 +│ │ │ │ └── item: integer #15 +│ │ │ └── variant_5: struct #24 +│ │ │ └── [notIn]: list 'list_18' #19 +│ │ │ └── item: integer #15 +│ │ └── [title]: optional 'optional_118' #119 +│ │ └── item: optional '_prisma_string_filter_ex' #55 +│ │ └── item: union #52 +│ │ ├── variant_0: union '_prisma_string_filter' #50 +│ │ │ ├── variant_0: string #34 +│ │ │ ├── variant_1: struct #39 +│ │ │ │ └── [equals]: string #34 +│ │ │ ├── variant_2: struct #40 +│ │ │ │ └── [not]: string #34 +│ │ │ ├── variant_3: struct #41 +│ │ │ │ └── [in]: list 'list_37' #38 +│ │ │ │ └── item: string #34 +│ │ │ ├── variant_4: struct #42 +│ │ │ │ └── [notIn]: list 'list_37' #38 +│ │ │ │ └── item: string #34 +│ │ │ ├── variant_5: struct #46 +│ │ │ │ ├── [contains]: string #34 +│ │ │ │ └── [mode]: optional 'optional_44' #45 +│ │ │ │ └── item: string #43 enum{ '"insensitive"' } +│ │ │ ├── variant_6: struct #47 +│ │ │ │ └── [search]: string #34 +│ │ │ └── variant_7: struct #48 +│ │ │ ├── [endsWith]: optional 'optional_35' #36 +│ │ │ │ └── item: string #34 +│ │ │ └── [startsWith]: optional 'optional_35' #36 +│ │ │ └── item: string #34 +│ │ └── variant_1: struct #51 +│ │ └── [not]: union '_prisma_string_filter' #50 +│ │ ├── variant_0: string #34 +│ │ ├── variant_1: struct #39 +│ │ │ └── [equals]: string #34 +│ │ ├── variant_2: struct #40 +│ │ │ └── [not]: string #34 +│ │ ├── variant_3: struct #41 +│ │ │ └── [in]: list 'list_37' #38 +│ │ │ └── item: string #34 +│ │ ├── variant_4: struct #42 +│ │ │ └── [notIn]: list 'list_37' #38 +│ │ │ └── item: string #34 +│ │ ├── variant_5: struct #46 +│ │ │ ├── [contains]: string #34 +│ │ │ └── [mode]: optional 'optional_44' #45 +│ │ │ └── item: string #43 enum{ '"insensitive"' } +│ │ ├── variant_6: struct #47 +│ │ │ └── [search]: string #34 +│ │ └── variant_7: struct #48 +│ │ ├── [endsWith]: optional 'optional_35' #36 +│ │ │ └── item: string #34 +│ │ └── [startsWith]: optional 'optional_35' #36 +│ │ └── item: string #34 +│ └── variant_2: struct #133 +│ └── [none]: optional 'optional_131' #132 +│ └── item: struct 'Post_where_excluding_Post_and_User_where_excluding_Post' #124 +│ ├── [author]: optional 'optional_121' #122 +│ │ └── item: &User_where_excluding_Post #120 +│ ├── [id]: optional 'optional_116' #117 +│ │ └── item: optional '_prisma_integer_filter_ex' #31 +│ │ └── item: union #28 +│ │ ├── variant_0: either '_prisma_integer_filter' #26 +│ │ │ ├── variant_0: integer #15 +│ │ │ ├── variant_1: struct #20 +│ │ │ │ └── [equals]: integer #15 +│ │ │ ├── variant_2: struct #21 +│ │ │ │ └── [not]: integer #15 +│ │ │ ├── variant_3: struct #22 +│ │ │ │ ├── [gt]: optional 'optional_16' #17 +│ │ │ │ │ └── item: integer #15 +│ │ │ │ ├── [gte]: optional 'optional_16' #17 +│ │ │ │ │ └── item: integer #15 +│ │ │ │ ├── [lt]: optional 'optional_16' #17 +│ │ │ │ │ └── item: integer #15 +│ │ │ │ └── [lte]: optional 'optional_16' #17 +│ │ │ │ └── item: integer #15 +│ │ │ ├── variant_4: struct #23 +│ │ │ │ └── [in]: list 'list_18' #19 +│ │ │ │ └── item: integer #15 +│ │ │ └── variant_5: struct #24 +│ │ │ └── [notIn]: list 'list_18' #19 +│ │ │ └── item: integer #15 +│ │ └── variant_1: struct #27 +│ │ └── [not]: either '_prisma_integer_filter' #26 +│ │ ├── variant_0: integer #15 +│ │ ├── variant_1: struct #20 +│ │ │ └── [equals]: integer #15 +│ │ ├── variant_2: struct #21 +│ │ │ └── [not]: integer #15 +│ │ ├── variant_3: struct #22 +│ │ │ ├── [gt]: optional 'optional_16' #17 +│ │ │ │ └── item: integer #15 +│ │ │ ├── [gte]: optional 'optional_16' #17 +│ │ │ │ └── item: integer #15 +│ │ │ ├── [lt]: optional 'optional_16' #17 +│ │ │ │ └── item: integer #15 +│ │ │ └── [lte]: optional 'optional_16' #17 +│ │ │ └── item: integer #15 +│ │ ├── variant_4: struct #23 +│ │ │ └── [in]: list 'list_18' #19 +│ │ │ └── item: integer #15 +│ │ └── variant_5: struct #24 +│ │ └── [notIn]: list 'list_18' #19 +│ │ └── item: integer #15 +│ └── [title]: optional 'optional_118' #119 +│ └── item: optional '_prisma_string_filter_ex' #55 +│ └── item: union #52 +│ ├── variant_0: union '_prisma_string_filter' #50 +│ │ ├── variant_0: string #34 +│ │ ├── variant_1: struct #39 +│ │ │ └── [equals]: string #34 +│ │ ├── variant_2: struct #40 +│ │ │ └── [not]: string #34 +│ │ ├── variant_3: struct #41 +│ │ │ └── [in]: list 'list_37' #38 +│ │ │ └── item: string #34 +│ │ ├── variant_4: struct #42 +│ │ │ └── [notIn]: list 'list_37' #38 +│ │ │ └── item: string #34 +│ │ ├── variant_5: struct #46 +│ │ │ ├── [contains]: string #34 +│ │ │ └── [mode]: optional 'optional_44' #45 +│ │ │ └── item: string #43 enum{ '"insensitive"' } +│ │ ├── variant_6: struct #47 +│ │ │ └── [search]: string #34 +│ │ └── variant_7: struct #48 +│ │ ├── [endsWith]: optional 'optional_35' #36 +│ │ │ └── item: string #34 +│ │ └── [startsWith]: optional 'optional_35' #36 +│ │ └── item: string #34 +│ └── variant_1: struct #51 +│ └── [not]: union '_prisma_string_filter' #50 +│ ├── variant_0: string #34 +│ ├── variant_1: struct #39 +│ │ └── [equals]: string #34 +│ ├── variant_2: struct #40 +│ │ └── [not]: string #34 +│ ├── variant_3: struct #41 +│ │ └── [in]: list 'list_37' #38 +│ │ └── item: string #34 +│ ├── variant_4: struct #42 +│ │ └── [notIn]: list 'list_37' #38 +│ │ └── item: string #34 +│ ├── variant_5: struct #46 +│ │ ├── [contains]: string #34 +│ │ └── [mode]: optional 'optional_44' #45 +│ │ └── item: string #43 enum{ '"insensitive"' } +│ ├── variant_6: struct #47 +│ │ └── [search]: string #34 +│ └── variant_7: struct #48 +│ ├── [endsWith]: optional 'optional_35' #36 +│ │ └── item: string #34 +│ └── [startsWith]: optional 'optional_35' #36 +│ └── item: string #34 +├── [id]: optional 'optional_108' #109 +│ └── item: optional '_prisma_integer_filter_ex' #31 +│ └── item: union #28 +│ ├── variant_0: either '_prisma_integer_filter' #26 +│ │ ├── variant_0: integer #15 +│ │ ├── variant_1: struct #20 +│ │ │ └── [equals]: integer #15 +│ │ ├── variant_2: struct #21 +│ │ │ └── [not]: integer #15 +│ │ ├── variant_3: struct #22 +│ │ │ ├── [gt]: optional 'optional_16' #17 +│ │ │ │ └── item: integer #15 +│ │ │ ├── [gte]: optional 'optional_16' #17 +│ │ │ │ └── item: integer #15 +│ │ │ ├── [lt]: optional 'optional_16' #17 +│ │ │ │ └── item: integer #15 +│ │ │ └── [lte]: optional 'optional_16' #17 +│ │ │ └── item: integer #15 +│ │ ├── variant_4: struct #23 +│ │ │ └── [in]: list 'list_18' #19 +│ │ │ └── item: integer #15 +│ │ └── variant_5: struct #24 +│ │ └── [notIn]: list 'list_18' #19 +│ │ └── item: integer #15 +│ └── variant_1: struct #27 +│ └── [not]: either '_prisma_integer_filter' #26 +│ ├── variant_0: integer #15 +│ ├── variant_1: struct #20 +│ │ └── [equals]: integer #15 +│ ├── variant_2: struct #21 +│ │ └── [not]: integer #15 +│ ├── variant_3: struct #22 +│ │ ├── [gt]: optional 'optional_16' #17 +│ │ │ └── item: integer #15 +│ │ ├── [gte]: optional 'optional_16' #17 +│ │ │ └── item: integer #15 +│ │ ├── [lt]: optional 'optional_16' #17 +│ │ │ └── item: integer #15 +│ │ └── [lte]: optional 'optional_16' #17 +│ │ └── item: integer #15 +│ ├── variant_4: struct #23 +│ │ └── [in]: list 'list_18' #19 +│ │ └── item: integer #15 +│ └── variant_5: struct #24 +│ └── [notIn]: list 'list_18' #19 +│ └── item: integer #15 +└── [title]: optional 'optional_110' #111 + └── item: optional '_prisma_string_filter_ex' #55 + └── item: union #52 + ├── variant_0: union '_prisma_string_filter' #50 + │ ├── variant_0: string #34 + │ ├── variant_1: struct #39 + │ │ └── [equals]: string #34 + │ ├── variant_2: struct #40 + │ │ └── [not]: string #34 + │ ├── variant_3: struct #41 + │ │ └── [in]: list 'list_37' #38 + │ │ └── item: string #34 + │ ├── variant_4: struct #42 + │ │ └── [notIn]: list 'list_37' #38 + │ │ └── item: string #34 + │ ├── variant_5: struct #46 + │ │ ├── [contains]: string #34 + │ │ └── [mode]: optional 'optional_44' #45 + │ │ └── item: string #43 enum{ '"insensitive"' } + │ ├── variant_6: struct #47 + │ │ └── [search]: string #34 + │ └── variant_7: struct #48 + │ ├── [endsWith]: optional 'optional_35' #36 + │ │ └── item: string #34 + │ └── [startsWith]: optional 'optional_35' #36 + │ └── item: string #34 + └── variant_1: struct #51 + └── [not]: union '_prisma_string_filter' #50 + ├── variant_0: string #34 + ├── variant_1: struct #39 + │ └── [equals]: string #34 + ├── variant_2: struct #40 + │ └── [not]: string #34 + ├── variant_3: struct #41 + │ └── [in]: list 'list_37' #38 + │ └── item: string #34 + ├── variant_4: struct #42 + │ └── [notIn]: list 'list_37' #38 + │ └── item: string #34 + ├── variant_5: struct #46 + │ ├── [contains]: string #34 + │ └── [mode]: optional 'optional_44' #45 + │ └── item: string #43 enum{ '"insensitive"' } + ├── variant_6: struct #47 + │ └── [search]: string #34 + └── variant_7: struct #48 + ├── [endsWith]: optional 'optional_35' #36 + │ └── item: string #34 + └── [startsWith]: optional 'optional_35' #36 + └── item: string #34 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__query_where_expr__tests__User__QueryWhereExpr.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__query_where_expr__tests__User__QueryWhereExpr.snap index 27699fafd6..df298a4885 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__query_where_expr__tests__User__QueryWhereExpr.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__query_where_expr__tests__User__QueryWhereExpr.snap @@ -2,413 +2,734 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/query_where_expr.rs expression: "tree::print(user_where_expr)" --- -root: struct 'User_query_where_input' #59 -├── [AND]: optional 'optional_57' #57 -│ └── item: list 'list_56' #56 -│ └── item: &User_query_where_input #55 -├── [NOT]: optional 'optional_58' #58 -│ └── item: &User_query_where_input #55 -├── [OR]: optional 'optional_57' #57 -│ └── item: list 'list_56' #56 -│ └── item: &User_query_where_input #55 -├── [id]: optional 'optional_23' #23 -│ └── item: optional '_prisma_integer_filter_ex' #22 -│ └── item: union #21 -│ ├── variant_0: either '_prisma_integer_filter' #19 -│ │ ├── variant_0: integer #11 -│ │ ├── variant_1: struct #14 -│ │ │ └── [equals]: integer #11 -│ │ ├── variant_2: struct #15 -│ │ │ └── [not]: integer #11 -│ │ ├── variant_3: struct #16 -│ │ │ ├── [gt]: optional 'optional_12' #12 -│ │ │ │ └── item: integer #11 -│ │ │ ├── [gte]: optional 'optional_12' #12 -│ │ │ │ └── item: integer #11 -│ │ │ ├── [lt]: optional 'optional_12' #12 -│ │ │ │ └── item: integer #11 -│ │ │ └── [lte]: optional 'optional_12' #12 -│ │ │ └── item: integer #11 -│ │ ├── variant_4: struct #17 -│ │ │ └── [in]: list 'list_13' #13 -│ │ │ └── item: integer #11 -│ │ └── variant_5: struct #18 -│ │ └── [notIn]: list 'list_13' #13 -│ │ └── item: integer #11 -│ └── variant_1: struct #20 -│ └── [not]: either '_prisma_integer_filter' #19 -│ ├── variant_0: integer #11 -│ ├── variant_1: struct #14 -│ │ └── [equals]: integer #11 -│ ├── variant_2: struct #15 -│ │ └── [not]: integer #11 -│ ├── variant_3: struct #16 -│ │ ├── [gt]: optional 'optional_12' #12 -│ │ │ └── item: integer #11 -│ │ ├── [gte]: optional 'optional_12' #12 -│ │ │ └── item: integer #11 -│ │ ├── [lt]: optional 'optional_12' #12 -│ │ │ └── item: integer #11 -│ │ └── [lte]: optional 'optional_12' #12 -│ │ └── item: integer #11 -│ ├── variant_4: struct #17 -│ │ └── [in]: list 'list_13' #13 -│ │ └── item: integer #11 -│ └── variant_5: struct #18 -│ └── [notIn]: list 'list_13' #13 -│ └── item: integer #11 -├── [name]: optional 'optional_40' #40 -│ └── item: optional '_prisma_string_filter_ex' #39 -│ └── item: union #38 -│ ├── variant_0: union '_prisma_string_filter' #36 -│ │ ├── variant_0: string #24 -│ │ ├── variant_1: struct #27 -│ │ │ └── [equals]: string #24 -│ │ ├── variant_2: struct #28 -│ │ │ └── [not]: string #24 -│ │ ├── variant_3: struct #29 -│ │ │ └── [in]: list 'list_26' #26 -│ │ │ └── item: string #24 -│ │ ├── variant_4: struct #30 -│ │ │ └── [notIn]: list 'list_26' #26 -│ │ │ └── item: string #24 -│ │ ├── variant_5: struct #33 -│ │ │ ├── [contains]: string #24 -│ │ │ └── [mode]: optional 'optional_32' #32 -│ │ │ └── item: string #31 enum{ '"insensitive"' } -│ │ ├── variant_6: struct #34 -│ │ │ └── [search]: string #24 -│ │ └── variant_7: struct #35 -│ │ ├── [endsWith]: optional 'optional_25' #25 -│ │ │ └── item: string #24 -│ │ └── [startsWith]: optional 'optional_25' #25 -│ │ └── item: string #24 -│ └── variant_1: struct #37 -│ └── [not]: union '_prisma_string_filter' #36 -│ ├── variant_0: string #24 -│ ├── variant_1: struct #27 -│ │ └── [equals]: string #24 -│ ├── variant_2: struct #28 -│ │ └── [not]: string #24 -│ ├── variant_3: struct #29 -│ │ └── [in]: list 'list_26' #26 -│ │ └── item: string #24 -│ ├── variant_4: struct #30 -│ │ └── [notIn]: list 'list_26' #26 -│ │ └── item: string #24 -│ ├── variant_5: struct #33 -│ │ ├── [contains]: string #24 -│ │ └── [mode]: optional 'optional_32' #32 -│ │ └── item: string #31 enum{ '"insensitive"' } -│ ├── variant_6: struct #34 -│ │ └── [search]: string #24 -│ └── variant_7: struct #35 -│ ├── [endsWith]: optional 'optional_25' #25 -│ │ └── item: string #24 -│ └── [startsWith]: optional 'optional_25' #25 -│ └── item: string #24 -└── [posts]: optional 'optional_53' #53 - └── item: union #52 - ├── variant_0: struct #47 - │ └── [every]: optional 'optional_46' #46 - │ └── item: struct 'Post_where_excluding_User' #45 - │ ├── [author]: optional 'optional_44' #44 - │ │ └── item: &User_where #43 - │ ├── [id]: optional 'optional_41' #41 - │ │ └── item: optional '_prisma_integer_filter_ex' #22 - │ │ └── item: union #21 - │ │ ├── variant_0: either '_prisma_integer_filter' #19 - │ │ │ ├── variant_0: integer #11 - │ │ │ ├── variant_1: struct #14 - │ │ │ │ └── [equals]: integer #11 - │ │ │ ├── variant_2: struct #15 - │ │ │ │ └── [not]: integer #11 - │ │ │ ├── variant_3: struct #16 - │ │ │ │ ├── [gt]: optional 'optional_12' #12 - │ │ │ │ │ └── item: integer #11 - │ │ │ │ ├── [gte]: optional 'optional_12' #12 - │ │ │ │ │ └── item: integer #11 - │ │ │ │ ├── [lt]: optional 'optional_12' #12 - │ │ │ │ │ └── item: integer #11 - │ │ │ │ └── [lte]: optional 'optional_12' #12 - │ │ │ │ └── item: integer #11 - │ │ │ ├── variant_4: struct #17 - │ │ │ │ └── [in]: list 'list_13' #13 - │ │ │ │ └── item: integer #11 - │ │ │ └── variant_5: struct #18 - │ │ │ └── [notIn]: list 'list_13' #13 - │ │ │ └── item: integer #11 - │ │ └── variant_1: struct #20 - │ │ └── [not]: either '_prisma_integer_filter' #19 - │ │ ├── variant_0: integer #11 - │ │ ├── variant_1: struct #14 - │ │ │ └── [equals]: integer #11 - │ │ ├── variant_2: struct #15 - │ │ │ └── [not]: integer #11 - │ │ ├── variant_3: struct #16 - │ │ │ ├── [gt]: optional 'optional_12' #12 - │ │ │ │ └── item: integer #11 - │ │ │ ├── [gte]: optional 'optional_12' #12 - │ │ │ │ └── item: integer #11 - │ │ │ ├── [lt]: optional 'optional_12' #12 - │ │ │ │ └── item: integer #11 - │ │ │ └── [lte]: optional 'optional_12' #12 - │ │ │ └── item: integer #11 - │ │ ├── variant_4: struct #17 - │ │ │ └── [in]: list 'list_13' #13 - │ │ │ └── item: integer #11 - │ │ └── variant_5: struct #18 - │ │ └── [notIn]: list 'list_13' #13 - │ │ └── item: integer #11 - │ └── [title]: optional 'optional_42' #42 - │ └── item: optional '_prisma_string_filter_ex' #39 - │ └── item: union #38 - │ ├── variant_0: union '_prisma_string_filter' #36 - │ │ ├── variant_0: string #24 - │ │ ├── variant_1: struct #27 - │ │ │ └── [equals]: string #24 - │ │ ├── variant_2: struct #28 - │ │ │ └── [not]: string #24 - │ │ ├── variant_3: struct #29 - │ │ │ └── [in]: list 'list_26' #26 - │ │ │ └── item: string #24 - │ │ ├── variant_4: struct #30 - │ │ │ └── [notIn]: list 'list_26' #26 - │ │ │ └── item: string #24 - │ │ ├── variant_5: struct #33 - │ │ │ ├── [contains]: string #24 - │ │ │ └── [mode]: optional 'optional_32' #32 - │ │ │ └── item: string #31 enum{ '"insensitive"' } - │ │ ├── variant_6: struct #34 - │ │ │ └── [search]: string #24 - │ │ └── variant_7: struct #35 - │ │ ├── [endsWith]: optional 'optional_25' #25 - │ │ │ └── item: string #24 - │ │ └── [startsWith]: optional 'optional_25' #25 - │ │ └── item: string #24 - │ └── variant_1: struct #37 - │ └── [not]: union '_prisma_string_filter' #36 - │ ├── variant_0: string #24 - │ ├── variant_1: struct #27 - │ │ └── [equals]: string #24 - │ ├── variant_2: struct #28 - │ │ └── [not]: string #24 - │ ├── variant_3: struct #29 - │ │ └── [in]: list 'list_26' #26 - │ │ └── item: string #24 - │ ├── variant_4: struct #30 - │ │ └── [notIn]: list 'list_26' #26 - │ │ └── item: string #24 - │ ├── variant_5: struct #33 - │ │ ├── [contains]: string #24 - │ │ └── [mode]: optional 'optional_32' #32 - │ │ └── item: string #31 enum{ '"insensitive"' } - │ ├── variant_6: struct #34 - │ │ └── [search]: string #24 - │ └── variant_7: struct #35 - │ ├── [endsWith]: optional 'optional_25' #25 - │ │ └── item: string #24 - │ └── [startsWith]: optional 'optional_25' #25 - │ └── item: string #24 - ├── variant_1: struct #49 - │ └── [some]: optional 'optional_48' #48 - │ └── item: struct 'Post_where_excluding_User' #45 - │ ├── [author]: optional 'optional_44' #44 - │ │ └── item: &User_where #43 - │ ├── [id]: optional 'optional_41' #41 - │ │ └── item: optional '_prisma_integer_filter_ex' #22 - │ │ └── item: union #21 - │ │ ├── variant_0: either '_prisma_integer_filter' #19 - │ │ │ ├── variant_0: integer #11 - │ │ │ ├── variant_1: struct #14 - │ │ │ │ └── [equals]: integer #11 - │ │ │ ├── variant_2: struct #15 - │ │ │ │ └── [not]: integer #11 - │ │ │ ├── variant_3: struct #16 - │ │ │ │ ├── [gt]: optional 'optional_12' #12 - │ │ │ │ │ └── item: integer #11 - │ │ │ │ ├── [gte]: optional 'optional_12' #12 - │ │ │ │ │ └── item: integer #11 - │ │ │ │ ├── [lt]: optional 'optional_12' #12 - │ │ │ │ │ └── item: integer #11 - │ │ │ │ └── [lte]: optional 'optional_12' #12 - │ │ │ │ └── item: integer #11 - │ │ │ ├── variant_4: struct #17 - │ │ │ │ └── [in]: list 'list_13' #13 - │ │ │ │ └── item: integer #11 - │ │ │ └── variant_5: struct #18 - │ │ │ └── [notIn]: list 'list_13' #13 - │ │ │ └── item: integer #11 - │ │ └── variant_1: struct #20 - │ │ └── [not]: either '_prisma_integer_filter' #19 - │ │ ├── variant_0: integer #11 - │ │ ├── variant_1: struct #14 - │ │ │ └── [equals]: integer #11 - │ │ ├── variant_2: struct #15 - │ │ │ └── [not]: integer #11 - │ │ ├── variant_3: struct #16 - │ │ │ ├── [gt]: optional 'optional_12' #12 - │ │ │ │ └── item: integer #11 - │ │ │ ├── [gte]: optional 'optional_12' #12 - │ │ │ │ └── item: integer #11 - │ │ │ ├── [lt]: optional 'optional_12' #12 - │ │ │ │ └── item: integer #11 - │ │ │ └── [lte]: optional 'optional_12' #12 - │ │ │ └── item: integer #11 - │ │ ├── variant_4: struct #17 - │ │ │ └── [in]: list 'list_13' #13 - │ │ │ └── item: integer #11 - │ │ └── variant_5: struct #18 - │ │ └── [notIn]: list 'list_13' #13 - │ │ └── item: integer #11 - │ └── [title]: optional 'optional_42' #42 - │ └── item: optional '_prisma_string_filter_ex' #39 - │ └── item: union #38 - │ ├── variant_0: union '_prisma_string_filter' #36 - │ │ ├── variant_0: string #24 - │ │ ├── variant_1: struct #27 - │ │ │ └── [equals]: string #24 - │ │ ├── variant_2: struct #28 - │ │ │ └── [not]: string #24 - │ │ ├── variant_3: struct #29 - │ │ │ └── [in]: list 'list_26' #26 - │ │ │ └── item: string #24 - │ │ ├── variant_4: struct #30 - │ │ │ └── [notIn]: list 'list_26' #26 - │ │ │ └── item: string #24 - │ │ ├── variant_5: struct #33 - │ │ │ ├── [contains]: string #24 - │ │ │ └── [mode]: optional 'optional_32' #32 - │ │ │ └── item: string #31 enum{ '"insensitive"' } - │ │ ├── variant_6: struct #34 - │ │ │ └── [search]: string #24 - │ │ └── variant_7: struct #35 - │ │ ├── [endsWith]: optional 'optional_25' #25 - │ │ │ └── item: string #24 - │ │ └── [startsWith]: optional 'optional_25' #25 - │ │ └── item: string #24 - │ └── variant_1: struct #37 - │ └── [not]: union '_prisma_string_filter' #36 - │ ├── variant_0: string #24 - │ ├── variant_1: struct #27 - │ │ └── [equals]: string #24 - │ ├── variant_2: struct #28 - │ │ └── [not]: string #24 - │ ├── variant_3: struct #29 - │ │ └── [in]: list 'list_26' #26 - │ │ └── item: string #24 - │ ├── variant_4: struct #30 - │ │ └── [notIn]: list 'list_26' #26 - │ │ └── item: string #24 - │ ├── variant_5: struct #33 - │ │ ├── [contains]: string #24 - │ │ └── [mode]: optional 'optional_32' #32 - │ │ └── item: string #31 enum{ '"insensitive"' } - │ ├── variant_6: struct #34 - │ │ └── [search]: string #24 - │ └── variant_7: struct #35 - │ ├── [endsWith]: optional 'optional_25' #25 - │ │ └── item: string #24 - │ └── [startsWith]: optional 'optional_25' #25 - │ └── item: string #24 - └── variant_2: struct #51 - └── [none]: optional 'optional_50' #50 - └── item: struct 'Post_where_excluding_User' #45 - ├── [author]: optional 'optional_44' #44 - │ └── item: &User_where #43 - ├── [id]: optional 'optional_41' #41 - │ └── item: optional '_prisma_integer_filter_ex' #22 - │ └── item: union #21 - │ ├── variant_0: either '_prisma_integer_filter' #19 - │ │ ├── variant_0: integer #11 - │ │ ├── variant_1: struct #14 - │ │ │ └── [equals]: integer #11 - │ │ ├── variant_2: struct #15 - │ │ │ └── [not]: integer #11 - │ │ ├── variant_3: struct #16 - │ │ │ ├── [gt]: optional 'optional_12' #12 - │ │ │ │ └── item: integer #11 - │ │ │ ├── [gte]: optional 'optional_12' #12 - │ │ │ │ └── item: integer #11 - │ │ │ ├── [lt]: optional 'optional_12' #12 - │ │ │ │ └── item: integer #11 - │ │ │ └── [lte]: optional 'optional_12' #12 - │ │ │ └── item: integer #11 - │ │ ├── variant_4: struct #17 - │ │ │ └── [in]: list 'list_13' #13 - │ │ │ └── item: integer #11 - │ │ └── variant_5: struct #18 - │ │ └── [notIn]: list 'list_13' #13 - │ │ └── item: integer #11 - │ └── variant_1: struct #20 - │ └── [not]: either '_prisma_integer_filter' #19 - │ ├── variant_0: integer #11 - │ ├── variant_1: struct #14 - │ │ └── [equals]: integer #11 - │ ├── variant_2: struct #15 - │ │ └── [not]: integer #11 - │ ├── variant_3: struct #16 - │ │ ├── [gt]: optional 'optional_12' #12 - │ │ │ └── item: integer #11 - │ │ ├── [gte]: optional 'optional_12' #12 - │ │ │ └── item: integer #11 - │ │ ├── [lt]: optional 'optional_12' #12 - │ │ │ └── item: integer #11 - │ │ └── [lte]: optional 'optional_12' #12 - │ │ └── item: integer #11 - │ ├── variant_4: struct #17 - │ │ └── [in]: list 'list_13' #13 - │ │ └── item: integer #11 - │ └── variant_5: struct #18 - │ └── [notIn]: list 'list_13' #13 - │ └── item: integer #11 - └── [title]: optional 'optional_42' #42 - └── item: optional '_prisma_string_filter_ex' #39 - └── item: union #38 - ├── variant_0: union '_prisma_string_filter' #36 - │ ├── variant_0: string #24 - │ ├── variant_1: struct #27 - │ │ └── [equals]: string #24 - │ ├── variant_2: struct #28 - │ │ └── [not]: string #24 - │ ├── variant_3: struct #29 - │ │ └── [in]: list 'list_26' #26 - │ │ └── item: string #24 - │ ├── variant_4: struct #30 - │ │ └── [notIn]: list 'list_26' #26 - │ │ └── item: string #24 - │ ├── variant_5: struct #33 - │ │ ├── [contains]: string #24 - │ │ └── [mode]: optional 'optional_32' #32 - │ │ └── item: string #31 enum{ '"insensitive"' } - │ ├── variant_6: struct #34 - │ │ └── [search]: string #24 - │ └── variant_7: struct #35 - │ ├── [endsWith]: optional 'optional_25' #25 - │ │ └── item: string #24 - │ └── [startsWith]: optional 'optional_25' #25 - │ └── item: string #24 - └── variant_1: struct #37 - └── [not]: union '_prisma_string_filter' #36 - ├── variant_0: string #24 - ├── variant_1: struct #27 - │ └── [equals]: string #24 - ├── variant_2: struct #28 - │ └── [not]: string #24 - ├── variant_3: struct #29 - │ └── [in]: list 'list_26' #26 - │ └── item: string #24 - ├── variant_4: struct #30 - │ └── [notIn]: list 'list_26' #26 - │ └── item: string #24 - ├── variant_5: struct #33 - │ ├── [contains]: string #24 - │ └── [mode]: optional 'optional_32' #32 - │ └── item: string #31 enum{ '"insensitive"' } - ├── variant_6: struct #34 - │ └── [search]: string #24 - └── variant_7: struct #35 - ├── [endsWith]: optional 'optional_25' #25 - │ └── item: string #24 - └── [startsWith]: optional 'optional_25' #25 - └── item: string #24 +root: struct 'User_query_where_input' #107 +├── [AND]: optional 'optional_102' #103 +│ └── item: list 'list_100' #101 +│ └── item: &User_query_where_input #99 +├── [NOT]: optional 'optional_104' #105 +│ └── item: &User_query_where_input #99 +├── [OR]: optional 'optional_102' #103 +│ └── item: list 'list_100' #101 +│ └── item: &User_query_where_input #99 +├── [id]: optional 'optional_32' #33 +│ └── item: optional '_prisma_integer_filter_ex' #31 +│ └── item: union #28 +│ ├── variant_0: either '_prisma_integer_filter' #26 +│ │ ├── variant_0: integer #15 +│ │ ├── variant_1: struct #20 +│ │ │ └── [equals]: integer #15 +│ │ ├── variant_2: struct #21 +│ │ │ └── [not]: integer #15 +│ │ ├── variant_3: struct #22 +│ │ │ ├── [gt]: optional 'optional_16' #17 +│ │ │ │ └── item: integer #15 +│ │ │ ├── [gte]: optional 'optional_16' #17 +│ │ │ │ └── item: integer #15 +│ │ │ ├── [lt]: optional 'optional_16' #17 +│ │ │ │ └── item: integer #15 +│ │ │ └── [lte]: optional 'optional_16' #17 +│ │ │ └── item: integer #15 +│ │ ├── variant_4: struct #23 +│ │ │ └── [in]: list 'list_18' #19 +│ │ │ └── item: integer #15 +│ │ └── variant_5: struct #24 +│ │ └── [notIn]: list 'list_18' #19 +│ │ └── item: integer #15 +│ └── variant_1: struct #27 +│ └── [not]: either '_prisma_integer_filter' #26 +│ ├── variant_0: integer #15 +│ ├── variant_1: struct #20 +│ │ └── [equals]: integer #15 +│ ├── variant_2: struct #21 +│ │ └── [not]: integer #15 +│ ├── variant_3: struct #22 +│ │ ├── [gt]: optional 'optional_16' #17 +│ │ │ └── item: integer #15 +│ │ ├── [gte]: optional 'optional_16' #17 +│ │ │ └── item: integer #15 +│ │ ├── [lt]: optional 'optional_16' #17 +│ │ │ └── item: integer #15 +│ │ └── [lte]: optional 'optional_16' #17 +│ │ └── item: integer #15 +│ ├── variant_4: struct #23 +│ │ └── [in]: list 'list_18' #19 +│ │ └── item: integer #15 +│ └── variant_5: struct #24 +│ └── [notIn]: list 'list_18' #19 +│ └── item: integer #15 +├── [name]: optional 'optional_56' #57 +│ └── item: optional '_prisma_string_filter_ex' #55 +│ └── item: union #52 +│ ├── variant_0: union '_prisma_string_filter' #50 +│ │ ├── variant_0: string #34 +│ │ ├── variant_1: struct #39 +│ │ │ └── [equals]: string #34 +│ │ ├── variant_2: struct #40 +│ │ │ └── [not]: string #34 +│ │ ├── variant_3: struct #41 +│ │ │ └── [in]: list 'list_37' #38 +│ │ │ └── item: string #34 +│ │ ├── variant_4: struct #42 +│ │ │ └── [notIn]: list 'list_37' #38 +│ │ │ └── item: string #34 +│ │ ├── variant_5: struct #46 +│ │ │ ├── [contains]: string #34 +│ │ │ └── [mode]: optional 'optional_44' #45 +│ │ │ └── item: string #43 enum{ '"insensitive"' } +│ │ ├── variant_6: struct #47 +│ │ │ └── [search]: string #34 +│ │ └── variant_7: struct #48 +│ │ ├── [endsWith]: optional 'optional_35' #36 +│ │ │ └── item: string #34 +│ │ └── [startsWith]: optional 'optional_35' #36 +│ │ └── item: string #34 +│ └── variant_1: struct #51 +│ └── [not]: union '_prisma_string_filter' #50 +│ ├── variant_0: string #34 +│ ├── variant_1: struct #39 +│ │ └── [equals]: string #34 +│ ├── variant_2: struct #40 +│ │ └── [not]: string #34 +│ ├── variant_3: struct #41 +│ │ └── [in]: list 'list_37' #38 +│ │ └── item: string #34 +│ ├── variant_4: struct #42 +│ │ └── [notIn]: list 'list_37' #38 +│ │ └── item: string #34 +│ ├── variant_5: struct #46 +│ │ ├── [contains]: string #34 +│ │ └── [mode]: optional 'optional_44' #45 +│ │ └── item: string #43 enum{ '"insensitive"' } +│ ├── variant_6: struct #47 +│ │ └── [search]: string #34 +│ └── variant_7: struct #48 +│ ├── [endsWith]: optional 'optional_35' #36 +│ │ └── item: string #34 +│ └── [startsWith]: optional 'optional_35' #36 +│ └── item: string #34 +└── [posts]: optional 'optional_95' #96 + └── item: union #94 + ├── variant_0: struct #87 + │ └── [every]: optional 'optional_85' #86 + │ └── item: struct 'Post_where_excluding_User' #84 + │ ├── [author]: optional 'optional_81' #82 + │ │ └── item: struct 'User_where_excluding_User_and_Post_where_excluding_User' #80 + │ │ ├── [id]: optional 'optional_62' #63 + │ │ │ └── item: optional '_prisma_integer_filter_ex' #31 + │ │ │ └── item: union #28 + │ │ │ ├── variant_0: either '_prisma_integer_filter' #26 + │ │ │ │ ├── variant_0: integer #15 + │ │ │ │ ├── variant_1: struct #20 + │ │ │ │ │ └── [equals]: integer #15 + │ │ │ │ ├── variant_2: struct #21 + │ │ │ │ │ └── [not]: integer #15 + │ │ │ │ ├── variant_3: struct #22 + │ │ │ │ │ ├── [gt]: optional 'optional_16' #17 + │ │ │ │ │ │ └── item: integer #15 + │ │ │ │ │ ├── [gte]: optional 'optional_16' #17 + │ │ │ │ │ │ └── item: integer #15 + │ │ │ │ │ ├── [lt]: optional 'optional_16' #17 + │ │ │ │ │ │ └── item: integer #15 + │ │ │ │ │ └── [lte]: optional 'optional_16' #17 + │ │ │ │ │ └── item: integer #15 + │ │ │ │ ├── variant_4: struct #23 + │ │ │ │ │ └── [in]: list 'list_18' #19 + │ │ │ │ │ └── item: integer #15 + │ │ │ │ └── variant_5: struct #24 + │ │ │ │ └── [notIn]: list 'list_18' #19 + │ │ │ │ └── item: integer #15 + │ │ │ └── variant_1: struct #27 + │ │ │ └── [not]: either '_prisma_integer_filter' #26 + │ │ │ ├── variant_0: integer #15 + │ │ │ ├── variant_1: struct #20 + │ │ │ │ └── [equals]: integer #15 + │ │ │ ├── variant_2: struct #21 + │ │ │ │ └── [not]: integer #15 + │ │ │ ├── variant_3: struct #22 + │ │ │ │ ├── [gt]: optional 'optional_16' #17 + │ │ │ │ │ └── item: integer #15 + │ │ │ │ ├── [gte]: optional 'optional_16' #17 + │ │ │ │ │ └── item: integer #15 + │ │ │ │ ├── [lt]: optional 'optional_16' #17 + │ │ │ │ │ └── item: integer #15 + │ │ │ │ └── [lte]: optional 'optional_16' #17 + │ │ │ │ └── item: integer #15 + │ │ │ ├── variant_4: struct #23 + │ │ │ │ └── [in]: list 'list_18' #19 + │ │ │ │ └── item: integer #15 + │ │ │ └── variant_5: struct #24 + │ │ │ └── [notIn]: list 'list_18' #19 + │ │ │ └── item: integer #15 + │ │ ├── [name]: optional 'optional_64' #65 + │ │ │ └── item: optional '_prisma_string_filter_ex' #55 + │ │ │ └── item: union #52 + │ │ │ ├── variant_0: union '_prisma_string_filter' #50 + │ │ │ │ ├── variant_0: string #34 + │ │ │ │ ├── variant_1: struct #39 + │ │ │ │ │ └── [equals]: string #34 + │ │ │ │ ├── variant_2: struct #40 + │ │ │ │ │ └── [not]: string #34 + │ │ │ │ ├── variant_3: struct #41 + │ │ │ │ │ └── [in]: list 'list_37' #38 + │ │ │ │ │ └── item: string #34 + │ │ │ │ ├── variant_4: struct #42 + │ │ │ │ │ └── [notIn]: list 'list_37' #38 + │ │ │ │ │ └── item: string #34 + │ │ │ │ ├── variant_5: struct #46 + │ │ │ │ │ ├── [contains]: string #34 + │ │ │ │ │ └── [mode]: optional 'optional_44' #45 + │ │ │ │ │ └── item: string #43 enum{ '"insensitive"' } + │ │ │ │ ├── variant_6: struct #47 + │ │ │ │ │ └── [search]: string #34 + │ │ │ │ └── variant_7: struct #48 + │ │ │ │ ├── [endsWith]: optional 'optional_35' #36 + │ │ │ │ │ └── item: string #34 + │ │ │ │ └── [startsWith]: optional 'optional_35' #36 + │ │ │ │ └── item: string #34 + │ │ │ └── variant_1: struct #51 + │ │ │ └── [not]: union '_prisma_string_filter' #50 + │ │ │ ├── variant_0: string #34 + │ │ │ ├── variant_1: struct #39 + │ │ │ │ └── [equals]: string #34 + │ │ │ ├── variant_2: struct #40 + │ │ │ │ └── [not]: string #34 + │ │ │ ├── variant_3: struct #41 + │ │ │ │ └── [in]: list 'list_37' #38 + │ │ │ │ └── item: string #34 + │ │ │ ├── variant_4: struct #42 + │ │ │ │ └── [notIn]: list 'list_37' #38 + │ │ │ │ └── item: string #34 + │ │ │ ├── variant_5: struct #46 + │ │ │ │ ├── [contains]: string #34 + │ │ │ │ └── [mode]: optional 'optional_44' #45 + │ │ │ │ └── item: string #43 enum{ '"insensitive"' } + │ │ │ ├── variant_6: struct #47 + │ │ │ │ └── [search]: string #34 + │ │ │ └── variant_7: struct #48 + │ │ │ ├── [endsWith]: optional 'optional_35' #36 + │ │ │ │ └── item: string #34 + │ │ │ └── [startsWith]: optional 'optional_35' #36 + │ │ │ └── item: string #34 + │ │ └── [posts]: optional 'optional_77' #78 + │ │ └── item: union #76 + │ │ ├── variant_0: struct #69 + │ │ │ └── [every]: optional 'optional_67' #68 + │ │ │ └── item: &Post_where_excluding_User #66 + │ │ ├── variant_1: struct #72 + │ │ │ └── [some]: optional 'optional_70' #71 + │ │ │ └── item: &Post_where_excluding_User #66 + │ │ └── variant_2: struct #75 + │ │ └── [none]: optional 'optional_73' #74 + │ │ └── item: &Post_where_excluding_User #66 + │ ├── [id]: optional 'optional_58' #59 + │ │ └── item: optional '_prisma_integer_filter_ex' #31 + │ │ └── item: union #28 + │ │ ├── variant_0: either '_prisma_integer_filter' #26 + │ │ │ ├── variant_0: integer #15 + │ │ │ ├── variant_1: struct #20 + │ │ │ │ └── [equals]: integer #15 + │ │ │ ├── variant_2: struct #21 + │ │ │ │ └── [not]: integer #15 + │ │ │ ├── variant_3: struct #22 + │ │ │ │ ├── [gt]: optional 'optional_16' #17 + │ │ │ │ │ └── item: integer #15 + │ │ │ │ ├── [gte]: optional 'optional_16' #17 + │ │ │ │ │ └── item: integer #15 + │ │ │ │ ├── [lt]: optional 'optional_16' #17 + │ │ │ │ │ └── item: integer #15 + │ │ │ │ └── [lte]: optional 'optional_16' #17 + │ │ │ │ └── item: integer #15 + │ │ │ ├── variant_4: struct #23 + │ │ │ │ └── [in]: list 'list_18' #19 + │ │ │ │ └── item: integer #15 + │ │ │ └── variant_5: struct #24 + │ │ │ └── [notIn]: list 'list_18' #19 + │ │ │ └── item: integer #15 + │ │ └── variant_1: struct #27 + │ │ └── [not]: either '_prisma_integer_filter' #26 + │ │ ├── variant_0: integer #15 + │ │ ├── variant_1: struct #20 + │ │ │ └── [equals]: integer #15 + │ │ ├── variant_2: struct #21 + │ │ │ └── [not]: integer #15 + │ │ ├── variant_3: struct #22 + │ │ │ ├── [gt]: optional 'optional_16' #17 + │ │ │ │ └── item: integer #15 + │ │ │ ├── [gte]: optional 'optional_16' #17 + │ │ │ │ └── item: integer #15 + │ │ │ ├── [lt]: optional 'optional_16' #17 + │ │ │ │ └── item: integer #15 + │ │ │ └── [lte]: optional 'optional_16' #17 + │ │ │ └── item: integer #15 + │ │ ├── variant_4: struct #23 + │ │ │ └── [in]: list 'list_18' #19 + │ │ │ └── item: integer #15 + │ │ └── variant_5: struct #24 + │ │ └── [notIn]: list 'list_18' #19 + │ │ └── item: integer #15 + │ └── [title]: optional 'optional_60' #61 + │ └── item: optional '_prisma_string_filter_ex' #55 + │ └── item: union #52 + │ ├── variant_0: union '_prisma_string_filter' #50 + │ │ ├── variant_0: string #34 + │ │ ├── variant_1: struct #39 + │ │ │ └── [equals]: string #34 + │ │ ├── variant_2: struct #40 + │ │ │ └── [not]: string #34 + │ │ ├── variant_3: struct #41 + │ │ │ └── [in]: list 'list_37' #38 + │ │ │ └── item: string #34 + │ │ ├── variant_4: struct #42 + │ │ │ └── [notIn]: list 'list_37' #38 + │ │ │ └── item: string #34 + │ │ ├── variant_5: struct #46 + │ │ │ ├── [contains]: string #34 + │ │ │ └── [mode]: optional 'optional_44' #45 + │ │ │ └── item: string #43 enum{ '"insensitive"' } + │ │ ├── variant_6: struct #47 + │ │ │ └── [search]: string #34 + │ │ └── variant_7: struct #48 + │ │ ├── [endsWith]: optional 'optional_35' #36 + │ │ │ └── item: string #34 + │ │ └── [startsWith]: optional 'optional_35' #36 + │ │ └── item: string #34 + │ └── variant_1: struct #51 + │ └── [not]: union '_prisma_string_filter' #50 + │ ├── variant_0: string #34 + │ ├── variant_1: struct #39 + │ │ └── [equals]: string #34 + │ ├── variant_2: struct #40 + │ │ └── [not]: string #34 + │ ├── variant_3: struct #41 + │ │ └── [in]: list 'list_37' #38 + │ │ └── item: string #34 + │ ├── variant_4: struct #42 + │ │ └── [notIn]: list 'list_37' #38 + │ │ └── item: string #34 + │ ├── variant_5: struct #46 + │ │ ├── [contains]: string #34 + │ │ └── [mode]: optional 'optional_44' #45 + │ │ └── item: string #43 enum{ '"insensitive"' } + │ ├── variant_6: struct #47 + │ │ └── [search]: string #34 + │ └── variant_7: struct #48 + │ ├── [endsWith]: optional 'optional_35' #36 + │ │ └── item: string #34 + │ └── [startsWith]: optional 'optional_35' #36 + │ └── item: string #34 + ├── variant_1: struct #90 + │ └── [some]: optional 'optional_88' #89 + │ └── item: struct 'Post_where_excluding_User' #84 + │ ├── [author]: optional 'optional_81' #82 + │ │ └── item: struct 'User_where_excluding_User_and_Post_where_excluding_User' #80 + │ │ ├── [id]: optional 'optional_62' #63 + │ │ │ └── item: optional '_prisma_integer_filter_ex' #31 + │ │ │ └── item: union #28 + │ │ │ ├── variant_0: either '_prisma_integer_filter' #26 + │ │ │ │ ├── variant_0: integer #15 + │ │ │ │ ├── variant_1: struct #20 + │ │ │ │ │ └── [equals]: integer #15 + │ │ │ │ ├── variant_2: struct #21 + │ │ │ │ │ └── [not]: integer #15 + │ │ │ │ ├── variant_3: struct #22 + │ │ │ │ │ ├── [gt]: optional 'optional_16' #17 + │ │ │ │ │ │ └── item: integer #15 + │ │ │ │ │ ├── [gte]: optional 'optional_16' #17 + │ │ │ │ │ │ └── item: integer #15 + │ │ │ │ │ ├── [lt]: optional 'optional_16' #17 + │ │ │ │ │ │ └── item: integer #15 + │ │ │ │ │ └── [lte]: optional 'optional_16' #17 + │ │ │ │ │ └── item: integer #15 + │ │ │ │ ├── variant_4: struct #23 + │ │ │ │ │ └── [in]: list 'list_18' #19 + │ │ │ │ │ └── item: integer #15 + │ │ │ │ └── variant_5: struct #24 + │ │ │ │ └── [notIn]: list 'list_18' #19 + │ │ │ │ └── item: integer #15 + │ │ │ └── variant_1: struct #27 + │ │ │ └── [not]: either '_prisma_integer_filter' #26 + │ │ │ ├── variant_0: integer #15 + │ │ │ ├── variant_1: struct #20 + │ │ │ │ └── [equals]: integer #15 + │ │ │ ├── variant_2: struct #21 + │ │ │ │ └── [not]: integer #15 + │ │ │ ├── variant_3: struct #22 + │ │ │ │ ├── [gt]: optional 'optional_16' #17 + │ │ │ │ │ └── item: integer #15 + │ │ │ │ ├── [gte]: optional 'optional_16' #17 + │ │ │ │ │ └── item: integer #15 + │ │ │ │ ├── [lt]: optional 'optional_16' #17 + │ │ │ │ │ └── item: integer #15 + │ │ │ │ └── [lte]: optional 'optional_16' #17 + │ │ │ │ └── item: integer #15 + │ │ │ ├── variant_4: struct #23 + │ │ │ │ └── [in]: list 'list_18' #19 + │ │ │ │ └── item: integer #15 + │ │ │ └── variant_5: struct #24 + │ │ │ └── [notIn]: list 'list_18' #19 + │ │ │ └── item: integer #15 + │ │ ├── [name]: optional 'optional_64' #65 + │ │ │ └── item: optional '_prisma_string_filter_ex' #55 + │ │ │ └── item: union #52 + │ │ │ ├── variant_0: union '_prisma_string_filter' #50 + │ │ │ │ ├── variant_0: string #34 + │ │ │ │ ├── variant_1: struct #39 + │ │ │ │ │ └── [equals]: string #34 + │ │ │ │ ├── variant_2: struct #40 + │ │ │ │ │ └── [not]: string #34 + │ │ │ │ ├── variant_3: struct #41 + │ │ │ │ │ └── [in]: list 'list_37' #38 + │ │ │ │ │ └── item: string #34 + │ │ │ │ ├── variant_4: struct #42 + │ │ │ │ │ └── [notIn]: list 'list_37' #38 + │ │ │ │ │ └── item: string #34 + │ │ │ │ ├── variant_5: struct #46 + │ │ │ │ │ ├── [contains]: string #34 + │ │ │ │ │ └── [mode]: optional 'optional_44' #45 + │ │ │ │ │ └── item: string #43 enum{ '"insensitive"' } + │ │ │ │ ├── variant_6: struct #47 + │ │ │ │ │ └── [search]: string #34 + │ │ │ │ └── variant_7: struct #48 + │ │ │ │ ├── [endsWith]: optional 'optional_35' #36 + │ │ │ │ │ └── item: string #34 + │ │ │ │ └── [startsWith]: optional 'optional_35' #36 + │ │ │ │ └── item: string #34 + │ │ │ └── variant_1: struct #51 + │ │ │ └── [not]: union '_prisma_string_filter' #50 + │ │ │ ├── variant_0: string #34 + │ │ │ ├── variant_1: struct #39 + │ │ │ │ └── [equals]: string #34 + │ │ │ ├── variant_2: struct #40 + │ │ │ │ └── [not]: string #34 + │ │ │ ├── variant_3: struct #41 + │ │ │ │ └── [in]: list 'list_37' #38 + │ │ │ │ └── item: string #34 + │ │ │ ├── variant_4: struct #42 + │ │ │ │ └── [notIn]: list 'list_37' #38 + │ │ │ │ └── item: string #34 + │ │ │ ├── variant_5: struct #46 + │ │ │ │ ├── [contains]: string #34 + │ │ │ │ └── [mode]: optional 'optional_44' #45 + │ │ │ │ └── item: string #43 enum{ '"insensitive"' } + │ │ │ ├── variant_6: struct #47 + │ │ │ │ └── [search]: string #34 + │ │ │ └── variant_7: struct #48 + │ │ │ ├── [endsWith]: optional 'optional_35' #36 + │ │ │ │ └── item: string #34 + │ │ │ └── [startsWith]: optional 'optional_35' #36 + │ │ │ └── item: string #34 + │ │ └── [posts]: optional 'optional_77' #78 + │ │ └── item: union #76 + │ │ ├── variant_0: struct #69 + │ │ │ └── [every]: optional 'optional_67' #68 + │ │ │ └── item: &Post_where_excluding_User #66 + │ │ ├── variant_1: struct #72 + │ │ │ └── [some]: optional 'optional_70' #71 + │ │ │ └── item: &Post_where_excluding_User #66 + │ │ └── variant_2: struct #75 + │ │ └── [none]: optional 'optional_73' #74 + │ │ └── item: &Post_where_excluding_User #66 + │ ├── [id]: optional 'optional_58' #59 + │ │ └── item: optional '_prisma_integer_filter_ex' #31 + │ │ └── item: union #28 + │ │ ├── variant_0: either '_prisma_integer_filter' #26 + │ │ │ ├── variant_0: integer #15 + │ │ │ ├── variant_1: struct #20 + │ │ │ │ └── [equals]: integer #15 + │ │ │ ├── variant_2: struct #21 + │ │ │ │ └── [not]: integer #15 + │ │ │ ├── variant_3: struct #22 + │ │ │ │ ├── [gt]: optional 'optional_16' #17 + │ │ │ │ │ └── item: integer #15 + │ │ │ │ ├── [gte]: optional 'optional_16' #17 + │ │ │ │ │ └── item: integer #15 + │ │ │ │ ├── [lt]: optional 'optional_16' #17 + │ │ │ │ │ └── item: integer #15 + │ │ │ │ └── [lte]: optional 'optional_16' #17 + │ │ │ │ └── item: integer #15 + │ │ │ ├── variant_4: struct #23 + │ │ │ │ └── [in]: list 'list_18' #19 + │ │ │ │ └── item: integer #15 + │ │ │ └── variant_5: struct #24 + │ │ │ └── [notIn]: list 'list_18' #19 + │ │ │ └── item: integer #15 + │ │ └── variant_1: struct #27 + │ │ └── [not]: either '_prisma_integer_filter' #26 + │ │ ├── variant_0: integer #15 + │ │ ├── variant_1: struct #20 + │ │ │ └── [equals]: integer #15 + │ │ ├── variant_2: struct #21 + │ │ │ └── [not]: integer #15 + │ │ ├── variant_3: struct #22 + │ │ │ ├── [gt]: optional 'optional_16' #17 + │ │ │ │ └── item: integer #15 + │ │ │ ├── [gte]: optional 'optional_16' #17 + │ │ │ │ └── item: integer #15 + │ │ │ ├── [lt]: optional 'optional_16' #17 + │ │ │ │ └── item: integer #15 + │ │ │ └── [lte]: optional 'optional_16' #17 + │ │ │ └── item: integer #15 + │ │ ├── variant_4: struct #23 + │ │ │ └── [in]: list 'list_18' #19 + │ │ │ └── item: integer #15 + │ │ └── variant_5: struct #24 + │ │ └── [notIn]: list 'list_18' #19 + │ │ └── item: integer #15 + │ └── [title]: optional 'optional_60' #61 + │ └── item: optional '_prisma_string_filter_ex' #55 + │ └── item: union #52 + │ ├── variant_0: union '_prisma_string_filter' #50 + │ │ ├── variant_0: string #34 + │ │ ├── variant_1: struct #39 + │ │ │ └── [equals]: string #34 + │ │ ├── variant_2: struct #40 + │ │ │ └── [not]: string #34 + │ │ ├── variant_3: struct #41 + │ │ │ └── [in]: list 'list_37' #38 + │ │ │ └── item: string #34 + │ │ ├── variant_4: struct #42 + │ │ │ └── [notIn]: list 'list_37' #38 + │ │ │ └── item: string #34 + │ │ ├── variant_5: struct #46 + │ │ │ ├── [contains]: string #34 + │ │ │ └── [mode]: optional 'optional_44' #45 + │ │ │ └── item: string #43 enum{ '"insensitive"' } + │ │ ├── variant_6: struct #47 + │ │ │ └── [search]: string #34 + │ │ └── variant_7: struct #48 + │ │ ├── [endsWith]: optional 'optional_35' #36 + │ │ │ └── item: string #34 + │ │ └── [startsWith]: optional 'optional_35' #36 + │ │ └── item: string #34 + │ └── variant_1: struct #51 + │ └── [not]: union '_prisma_string_filter' #50 + │ ├── variant_0: string #34 + │ ├── variant_1: struct #39 + │ │ └── [equals]: string #34 + │ ├── variant_2: struct #40 + │ │ └── [not]: string #34 + │ ├── variant_3: struct #41 + │ │ └── [in]: list 'list_37' #38 + │ │ └── item: string #34 + │ ├── variant_4: struct #42 + │ │ └── [notIn]: list 'list_37' #38 + │ │ └── item: string #34 + │ ├── variant_5: struct #46 + │ │ ├── [contains]: string #34 + │ │ └── [mode]: optional 'optional_44' #45 + │ │ └── item: string #43 enum{ '"insensitive"' } + │ ├── variant_6: struct #47 + │ │ └── [search]: string #34 + │ └── variant_7: struct #48 + │ ├── [endsWith]: optional 'optional_35' #36 + │ │ └── item: string #34 + │ └── [startsWith]: optional 'optional_35' #36 + │ └── item: string #34 + └── variant_2: struct #93 + └── [none]: optional 'optional_91' #92 + └── item: struct 'Post_where_excluding_User' #84 + ├── [author]: optional 'optional_81' #82 + │ └── item: struct 'User_where_excluding_User_and_Post_where_excluding_User' #80 + │ ├── [id]: optional 'optional_62' #63 + │ │ └── item: optional '_prisma_integer_filter_ex' #31 + │ │ └── item: union #28 + │ │ ├── variant_0: either '_prisma_integer_filter' #26 + │ │ │ ├── variant_0: integer #15 + │ │ │ ├── variant_1: struct #20 + │ │ │ │ └── [equals]: integer #15 + │ │ │ ├── variant_2: struct #21 + │ │ │ │ └── [not]: integer #15 + │ │ │ ├── variant_3: struct #22 + │ │ │ │ ├── [gt]: optional 'optional_16' #17 + │ │ │ │ │ └── item: integer #15 + │ │ │ │ ├── [gte]: optional 'optional_16' #17 + │ │ │ │ │ └── item: integer #15 + │ │ │ │ ├── [lt]: optional 'optional_16' #17 + │ │ │ │ │ └── item: integer #15 + │ │ │ │ └── [lte]: optional 'optional_16' #17 + │ │ │ │ └── item: integer #15 + │ │ │ ├── variant_4: struct #23 + │ │ │ │ └── [in]: list 'list_18' #19 + │ │ │ │ └── item: integer #15 + │ │ │ └── variant_5: struct #24 + │ │ │ └── [notIn]: list 'list_18' #19 + │ │ │ └── item: integer #15 + │ │ └── variant_1: struct #27 + │ │ └── [not]: either '_prisma_integer_filter' #26 + │ │ ├── variant_0: integer #15 + │ │ ├── variant_1: struct #20 + │ │ │ └── [equals]: integer #15 + │ │ ├── variant_2: struct #21 + │ │ │ └── [not]: integer #15 + │ │ ├── variant_3: struct #22 + │ │ │ ├── [gt]: optional 'optional_16' #17 + │ │ │ │ └── item: integer #15 + │ │ │ ├── [gte]: optional 'optional_16' #17 + │ │ │ │ └── item: integer #15 + │ │ │ ├── [lt]: optional 'optional_16' #17 + │ │ │ │ └── item: integer #15 + │ │ │ └── [lte]: optional 'optional_16' #17 + │ │ │ └── item: integer #15 + │ │ ├── variant_4: struct #23 + │ │ │ └── [in]: list 'list_18' #19 + │ │ │ └── item: integer #15 + │ │ └── variant_5: struct #24 + │ │ └── [notIn]: list 'list_18' #19 + │ │ └── item: integer #15 + │ ├── [name]: optional 'optional_64' #65 + │ │ └── item: optional '_prisma_string_filter_ex' #55 + │ │ └── item: union #52 + │ │ ├── variant_0: union '_prisma_string_filter' #50 + │ │ │ ├── variant_0: string #34 + │ │ │ ├── variant_1: struct #39 + │ │ │ │ └── [equals]: string #34 + │ │ │ ├── variant_2: struct #40 + │ │ │ │ └── [not]: string #34 + │ │ │ ├── variant_3: struct #41 + │ │ │ │ └── [in]: list 'list_37' #38 + │ │ │ │ └── item: string #34 + │ │ │ ├── variant_4: struct #42 + │ │ │ │ └── [notIn]: list 'list_37' #38 + │ │ │ │ └── item: string #34 + │ │ │ ├── variant_5: struct #46 + │ │ │ │ ├── [contains]: string #34 + │ │ │ │ └── [mode]: optional 'optional_44' #45 + │ │ │ │ └── item: string #43 enum{ '"insensitive"' } + │ │ │ ├── variant_6: struct #47 + │ │ │ │ └── [search]: string #34 + │ │ │ └── variant_7: struct #48 + │ │ │ ├── [endsWith]: optional 'optional_35' #36 + │ │ │ │ └── item: string #34 + │ │ │ └── [startsWith]: optional 'optional_35' #36 + │ │ │ └── item: string #34 + │ │ └── variant_1: struct #51 + │ │ └── [not]: union '_prisma_string_filter' #50 + │ │ ├── variant_0: string #34 + │ │ ├── variant_1: struct #39 + │ │ │ └── [equals]: string #34 + │ │ ├── variant_2: struct #40 + │ │ │ └── [not]: string #34 + │ │ ├── variant_3: struct #41 + │ │ │ └── [in]: list 'list_37' #38 + │ │ │ └── item: string #34 + │ │ ├── variant_4: struct #42 + │ │ │ └── [notIn]: list 'list_37' #38 + │ │ │ └── item: string #34 + │ │ ├── variant_5: struct #46 + │ │ │ ├── [contains]: string #34 + │ │ │ └── [mode]: optional 'optional_44' #45 + │ │ │ └── item: string #43 enum{ '"insensitive"' } + │ │ ├── variant_6: struct #47 + │ │ │ └── [search]: string #34 + │ │ └── variant_7: struct #48 + │ │ ├── [endsWith]: optional 'optional_35' #36 + │ │ │ └── item: string #34 + │ │ └── [startsWith]: optional 'optional_35' #36 + │ │ └── item: string #34 + │ └── [posts]: optional 'optional_77' #78 + │ └── item: union #76 + │ ├── variant_0: struct #69 + │ │ └── [every]: optional 'optional_67' #68 + │ │ └── item: &Post_where_excluding_User #66 + │ ├── variant_1: struct #72 + │ │ └── [some]: optional 'optional_70' #71 + │ │ └── item: &Post_where_excluding_User #66 + │ └── variant_2: struct #75 + │ └── [none]: optional 'optional_73' #74 + │ └── item: &Post_where_excluding_User #66 + ├── [id]: optional 'optional_58' #59 + │ └── item: optional '_prisma_integer_filter_ex' #31 + │ └── item: union #28 + │ ├── variant_0: either '_prisma_integer_filter' #26 + │ │ ├── variant_0: integer #15 + │ │ ├── variant_1: struct #20 + │ │ │ └── [equals]: integer #15 + │ │ ├── variant_2: struct #21 + │ │ │ └── [not]: integer #15 + │ │ ├── variant_3: struct #22 + │ │ │ ├── [gt]: optional 'optional_16' #17 + │ │ │ │ └── item: integer #15 + │ │ │ ├── [gte]: optional 'optional_16' #17 + │ │ │ │ └── item: integer #15 + │ │ │ ├── [lt]: optional 'optional_16' #17 + │ │ │ │ └── item: integer #15 + │ │ │ └── [lte]: optional 'optional_16' #17 + │ │ │ └── item: integer #15 + │ │ ├── variant_4: struct #23 + │ │ │ └── [in]: list 'list_18' #19 + │ │ │ └── item: integer #15 + │ │ └── variant_5: struct #24 + │ │ └── [notIn]: list 'list_18' #19 + │ │ └── item: integer #15 + │ └── variant_1: struct #27 + │ └── [not]: either '_prisma_integer_filter' #26 + │ ├── variant_0: integer #15 + │ ├── variant_1: struct #20 + │ │ └── [equals]: integer #15 + │ ├── variant_2: struct #21 + │ │ └── [not]: integer #15 + │ ├── variant_3: struct #22 + │ │ ├── [gt]: optional 'optional_16' #17 + │ │ │ └── item: integer #15 + │ │ ├── [gte]: optional 'optional_16' #17 + │ │ │ └── item: integer #15 + │ │ ├── [lt]: optional 'optional_16' #17 + │ │ │ └── item: integer #15 + │ │ └── [lte]: optional 'optional_16' #17 + │ │ └── item: integer #15 + │ ├── variant_4: struct #23 + │ │ └── [in]: list 'list_18' #19 + │ │ └── item: integer #15 + │ └── variant_5: struct #24 + │ └── [notIn]: list 'list_18' #19 + │ └── item: integer #15 + └── [title]: optional 'optional_60' #61 + └── item: optional '_prisma_string_filter_ex' #55 + └── item: union #52 + ├── variant_0: union '_prisma_string_filter' #50 + │ ├── variant_0: string #34 + │ ├── variant_1: struct #39 + │ │ └── [equals]: string #34 + │ ├── variant_2: struct #40 + │ │ └── [not]: string #34 + │ ├── variant_3: struct #41 + │ │ └── [in]: list 'list_37' #38 + │ │ └── item: string #34 + │ ├── variant_4: struct #42 + │ │ └── [notIn]: list 'list_37' #38 + │ │ └── item: string #34 + │ ├── variant_5: struct #46 + │ │ ├── [contains]: string #34 + │ │ └── [mode]: optional 'optional_44' #45 + │ │ └── item: string #43 enum{ '"insensitive"' } + │ ├── variant_6: struct #47 + │ │ └── [search]: string #34 + │ └── variant_7: struct #48 + │ ├── [endsWith]: optional 'optional_35' #36 + │ │ └── item: string #34 + │ └── [startsWith]: optional 'optional_35' #36 + │ └── item: string #34 + └── variant_1: struct #51 + └── [not]: union '_prisma_string_filter' #50 + ├── variant_0: string #34 + ├── variant_1: struct #39 + │ └── [equals]: string #34 + ├── variant_2: struct #40 + │ └── [not]: string #34 + ├── variant_3: struct #41 + │ └── [in]: list 'list_37' #38 + │ └── item: string #34 + ├── variant_4: struct #42 + │ └── [notIn]: list 'list_37' #38 + │ └── item: string #34 + ├── variant_5: struct #46 + │ ├── [contains]: string #34 + │ └── [mode]: optional 'optional_44' #45 + │ └── item: string #43 enum{ '"insensitive"' } + ├── variant_6: struct #47 + │ └── [search]: string #34 + └── variant_7: struct #48 + ├── [endsWith]: optional 'optional_35' #36 + │ └── item: string #34 + └── [startsWith]: optional 'optional_35' #36 + └── item: string #34 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__aggregate Post out.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__aggregate Post out.snap index fd4ec6351d..307e82b85c 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__aggregate Post out.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__aggregate Post out.snap @@ -2,25 +2,25 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs expression: tp.print(out) --- -root: struct #54 -├─ [_avg]: struct 'Post_avg_aggregate' #48 -│ └─ [id]: optional 'optional_47' #47 -│ └─ item: float #46 -├─ [_count]: struct 'Post_count_aggregate' #45 -│ ├─ [_all]: optional 'optional_44' #44 -│ │ └─ item: integer #43 -│ ├─ [author]: optional 'optional_44' #44 -│ │ └─ item: integer #43 -│ ├─ [id]: optional 'optional_44' #44 -│ │ └─ item: integer #43 -│ └─ [title]: optional 'optional_44' #44 -│ └─ item: integer #43 -├─ [_max]: struct 'Post_number_aggregate' #53 -│ └─ [id]: optional 'optional_52' #52 -│ └─ item: integer #51 -├─ [_min]: struct 'Post_number_aggregate' #53 -│ └─ [id]: optional 'optional_52' #52 -│ └─ item: integer #51 -└─ [_sum]: struct 'Post_number_aggregate' #53 - └─ [id]: optional 'optional_52' #52 - └─ item: integer #51 +root: struct #82 +├─ [_avg]: struct 'Post_avg_aggregate' #73 +│ └─ [id]: optional 'optional_70' #71 +│ └─ item: float #69 +├─ [_count]: struct 'Post_count_aggregate' #68 +│ ├─ [_all]: optional 'optional_65' #66 +│ │ └─ item: integer #64 +│ ├─ [author]: optional 'optional_65' #66 +│ │ └─ item: integer #64 +│ ├─ [id]: optional 'optional_65' #66 +│ │ └─ item: integer #64 +│ └─ [title]: optional 'optional_65' #66 +│ └─ item: integer #64 +├─ [_max]: struct 'Post_number_aggregate' #81 +│ └─ [id]: optional 'optional_78' #79 +│ └─ item: integer #77 +├─ [_min]: struct 'Post_number_aggregate' #81 +│ └─ [id]: optional 'optional_78' #79 +│ └─ item: integer #77 +└─ [_sum]: struct 'Post_number_aggregate' #81 + └─ [id]: optional 'optional_78' #79 + └─ item: integer #77 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__aggregate Record out.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__aggregate Record out.snap index e1e1646d29..826fdf4fb0 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__aggregate Record out.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__aggregate Record out.snap @@ -2,27 +2,27 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs expression: tp.print(out) --- -root: struct #19 -├─ [_avg]: struct 'Record_avg_aggregate' #13 -│ └─ [age]: optional 'optional_12' #12 -│ └─ item: float #11 -├─ [_count]: struct 'Record_count_aggregate' #10 -│ ├─ [_all]: optional 'optional_9' #9 -│ │ └─ item: integer #8 -│ ├─ [age]: optional 'optional_9' #9 -│ │ └─ item: integer #8 -│ ├─ [created_at]: optional 'optional_9' #9 -│ │ └─ item: integer #8 -│ ├─ [id]: optional 'optional_9' #9 -│ │ └─ item: integer #8 -│ └─ [name]: optional 'optional_9' #9 -│ └─ item: integer #8 -├─ [_max]: struct 'Record_number_aggregate' #18 -│ └─ [age]: optional 'optional_17' #17 -│ └─ item: integer #16 -├─ [_min]: struct 'Record_number_aggregate' #18 -│ └─ [age]: optional 'optional_17' #17 -│ └─ item: integer #16 -└─ [_sum]: struct 'Record_number_aggregate' #18 - └─ [age]: optional 'optional_17' #17 - └─ item: integer #16 +root: struct #29 +├─ [_avg]: struct 'Record_avg_aggregate' #20 +│ └─ [age]: optional 'optional_17' #18 +│ └─ item: float #16 +├─ [_count]: struct 'Record_count_aggregate' #15 +│ ├─ [_all]: optional 'optional_12' #13 +│ │ └─ item: integer #11 +│ ├─ [age]: optional 'optional_12' #13 +│ │ └─ item: integer #11 +│ ├─ [created_at]: optional 'optional_12' #13 +│ │ └─ item: integer #11 +│ ├─ [id]: optional 'optional_12' #13 +│ │ └─ item: integer #11 +│ └─ [name]: optional 'optional_12' #13 +│ └─ item: integer #11 +├─ [_max]: struct 'Record_number_aggregate' #28 +│ └─ [age]: optional 'optional_25' #26 +│ └─ item: integer #24 +├─ [_min]: struct 'Record_number_aggregate' #28 +│ └─ [age]: optional 'optional_25' #26 +│ └─ item: integer #24 +└─ [_sum]: struct 'Record_number_aggregate' #28 + └─ [age]: optional 'optional_25' #26 + └─ item: integer #24 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__aggregate User out.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__aggregate User out.snap index 1e037b8663..292b57f918 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__aggregate User out.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__aggregate User out.snap @@ -2,25 +2,25 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs expression: tp.print(out) --- -root: struct #42 -├─ [_avg]: struct 'User_avg_aggregate' #36 -│ └─ [id]: optional 'optional_35' #35 -│ └─ item: float #34 -├─ [_count]: struct 'User_count_aggregate' #33 -│ ├─ [_all]: optional 'optional_32' #32 -│ │ └─ item: integer #31 -│ ├─ [id]: optional 'optional_32' #32 -│ │ └─ item: integer #31 -│ ├─ [name]: optional 'optional_32' #32 -│ │ └─ item: integer #31 -│ └─ [posts]: optional 'optional_32' #32 -│ └─ item: integer #31 -├─ [_max]: struct 'User_number_aggregate' #41 -│ └─ [id]: optional 'optional_40' #40 -│ └─ item: integer #39 -├─ [_min]: struct 'User_number_aggregate' #41 -│ └─ [id]: optional 'optional_40' #40 -│ └─ item: integer #39 -└─ [_sum]: struct 'User_number_aggregate' #41 - └─ [id]: optional 'optional_40' #40 - └─ item: integer #39 +root: struct #63 +├─ [_avg]: struct 'User_avg_aggregate' #54 +│ └─ [id]: optional 'optional_51' #52 +│ └─ item: float #50 +├─ [_count]: struct 'User_count_aggregate' #49 +│ ├─ [_all]: optional 'optional_46' #47 +│ │ └─ item: integer #45 +│ ├─ [id]: optional 'optional_46' #47 +│ │ └─ item: integer #45 +│ ├─ [name]: optional 'optional_46' #47 +│ │ └─ item: integer #45 +│ └─ [posts]: optional 'optional_46' #47 +│ └─ item: integer #45 +├─ [_max]: struct 'User_number_aggregate' #62 +│ └─ [id]: optional 'optional_59' #60 +│ └─ item: integer #58 +├─ [_min]: struct 'User_number_aggregate' #62 +│ └─ [id]: optional 'optional_59' #60 +│ └─ item: integer #58 +└─ [_sum]: struct 'User_number_aggregate' #62 + └─ [id]: optional 'optional_59' #60 + └─ item: integer #58 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__create_many Post inp.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__create_many Post inp.snap index 3231093b1f..d32fddac2e 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__create_many Post inp.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__create_many Post inp.snap @@ -2,824 +2,824 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs expression: tp.print(inp) --- -root: struct #115 -└─ [data]: list 'list_114' #114 - └─ item: struct 'Post_create_input' #113 - ├─ [author]: union #112 - │ ├─ variant_0: struct #109 - │ │ └─ [create]: struct 'User_create_input_excluding_rel_Post_User' #91 - │ │ ├─ [id]: integer #15 - │ │ └─ [name]: string #16 - │ ├─ variant_1: struct #110 - │ │ └─ [connect]: struct 'User_where' #107 - │ │ ├─ [id]: optional 'optional_92' #92 - │ │ │ └─ item: optional '_prisma_integer_filter_ex' #40 - │ │ │ └─ item: union #39 - │ │ │ ├─ variant_0: either '_prisma_integer_filter' #37 - │ │ │ │ ├─ variant_0: integer #29 - │ │ │ │ ├─ variant_1: struct #32 - │ │ │ │ │ └─ [equals]: integer #29 - │ │ │ │ ├─ variant_2: struct #33 - │ │ │ │ │ └─ [not]: integer #29 - │ │ │ │ ├─ variant_3: struct #34 - │ │ │ │ │ ├─ [gt]: optional 'optional_30' #30 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ ├─ [gte]: optional 'optional_30' #30 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ ├─ [lt]: optional 'optional_30' #30 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ └─ [lte]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ ├─ variant_4: struct #35 - │ │ │ │ │ └─ [in]: list 'list_31' #31 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ └─ variant_5: struct #36 - │ │ │ │ └─ [notIn]: list 'list_31' #31 - │ │ │ │ └─ item: integer #29 - │ │ │ └─ variant_1: struct #38 - │ │ │ └─ [not]: either '_prisma_integer_filter' #37 - │ │ │ ├─ variant_0: integer #29 - │ │ │ ├─ variant_1: struct #32 - │ │ │ │ └─ [equals]: integer #29 - │ │ │ ├─ variant_2: struct #33 - │ │ │ │ └─ [not]: integer #29 - │ │ │ ├─ variant_3: struct #34 - │ │ │ │ ├─ [gt]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ ├─ [gte]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ ├─ [lt]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ └─ [lte]: optional 'optional_30' #30 - │ │ │ │ └─ item: integer #29 - │ │ │ ├─ variant_4: struct #35 - │ │ │ │ └─ [in]: list 'list_31' #31 - │ │ │ │ └─ item: integer #29 - │ │ │ └─ variant_5: struct #36 - │ │ │ └─ [notIn]: list 'list_31' #31 - │ │ │ └─ item: integer #29 - │ │ ├─ [name]: optional 'optional_93' #93 - │ │ │ └─ item: optional '_prisma_string_filter_ex' #57 - │ │ │ └─ item: union #56 - │ │ │ ├─ variant_0: union '_prisma_string_filter' #54 - │ │ │ │ ├─ variant_0: string #42 - │ │ │ │ ├─ variant_1: struct #45 - │ │ │ │ │ └─ [equals]: string #42 - │ │ │ │ ├─ variant_2: struct #46 - │ │ │ │ │ └─ [not]: string #42 - │ │ │ │ ├─ variant_3: struct #47 - │ │ │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ │ │ └─ item: string #42 - │ │ │ │ ├─ variant_4: struct #48 - │ │ │ │ │ └─ [notIn]: list 'list_44' #44 - │ │ │ │ │ └─ item: string #42 - │ │ │ │ ├─ variant_5: struct #51 - │ │ │ │ │ ├─ [contains]: string #42 - │ │ │ │ │ └─ [mode]: optional 'optional_50' #50 - │ │ │ │ │ └─ item: string #49 enum{ '"insensitive"' } - │ │ │ │ ├─ variant_6: struct #52 - │ │ │ │ │ └─ [search]: string #42 - │ │ │ │ └─ variant_7: struct #53 - │ │ │ │ ├─ [endsWith]: optional 'optional_43' #43 - │ │ │ │ │ └─ item: string #42 - │ │ │ │ └─ [startsWith]: optional 'optional_43' #43 - │ │ │ │ └─ item: string #42 - │ │ │ └─ variant_1: struct #55 - │ │ │ └─ [not]: union '_prisma_string_filter' #54 - │ │ │ ├─ variant_0: string #42 - │ │ │ ├─ variant_1: struct #45 - │ │ │ │ └─ [equals]: string #42 - │ │ │ ├─ variant_2: struct #46 - │ │ │ │ └─ [not]: string #42 - │ │ │ ├─ variant_3: struct #47 - │ │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ │ └─ item: string #42 - │ │ │ ├─ variant_4: struct #48 - │ │ │ │ └─ [notIn]: list 'list_44' #44 - │ │ │ │ └─ item: string #42 - │ │ │ ├─ variant_5: struct #51 - │ │ │ │ ├─ [contains]: string #42 - │ │ │ │ └─ [mode]: optional 'optional_50' #50 - │ │ │ │ └─ item: string #49 enum{ '"insensitive"' } - │ │ │ ├─ variant_6: struct #52 - │ │ │ │ └─ [search]: string #42 - │ │ │ └─ variant_7: struct #53 - │ │ │ ├─ [endsWith]: optional 'optional_43' #43 - │ │ │ │ └─ item: string #42 - │ │ │ └─ [startsWith]: optional 'optional_43' #43 - │ │ │ └─ item: string #42 - │ │ └─ [posts]: optional 'optional_106' #106 - │ │ └─ item: union #105 - │ │ ├─ variant_0: struct #100 - │ │ │ └─ [every]: optional 'optional_99' #99 - │ │ │ └─ item: struct 'Post_where_excluding_User' #98 - │ │ │ ├─ [author]: optional 'optional_97' #97 - │ │ │ │ └─ item: &User_where #96 - │ │ │ ├─ [id]: optional 'optional_94' #94 - │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #40 - │ │ │ │ └─ item: union #39 - │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #37 - │ │ │ │ │ ├─ variant_0: integer #29 - │ │ │ │ │ ├─ variant_1: struct #32 - │ │ │ │ │ │ └─ [equals]: integer #29 - │ │ │ │ │ ├─ variant_2: struct #33 - │ │ │ │ │ │ └─ [not]: integer #29 - │ │ │ │ │ ├─ variant_3: struct #34 - │ │ │ │ │ │ ├─ [gt]: optional 'optional_30' #30 - │ │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ │ ├─ [gte]: optional 'optional_30' #30 - │ │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ │ ├─ [lt]: optional 'optional_30' #30 - │ │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ │ └─ [lte]: optional 'optional_30' #30 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ ├─ variant_4: struct #35 - │ │ │ │ │ │ └─ [in]: list 'list_31' #31 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ └─ variant_5: struct #36 - │ │ │ │ │ └─ [notIn]: list 'list_31' #31 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ └─ variant_1: struct #38 - │ │ │ │ └─ [not]: either '_prisma_integer_filter' #37 - │ │ │ │ ├─ variant_0: integer #29 - │ │ │ │ ├─ variant_1: struct #32 - │ │ │ │ │ └─ [equals]: integer #29 - │ │ │ │ ├─ variant_2: struct #33 - │ │ │ │ │ └─ [not]: integer #29 - │ │ │ │ ├─ variant_3: struct #34 - │ │ │ │ │ ├─ [gt]: optional 'optional_30' #30 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ ├─ [gte]: optional 'optional_30' #30 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ ├─ [lt]: optional 'optional_30' #30 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ └─ [lte]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ ├─ variant_4: struct #35 - │ │ │ │ │ └─ [in]: list 'list_31' #31 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ └─ variant_5: struct #36 - │ │ │ │ └─ [notIn]: list 'list_31' #31 - │ │ │ │ └─ item: integer #29 - │ │ │ └─ [title]: optional 'optional_95' #95 - │ │ │ └─ item: optional '_prisma_string_filter_ex' #57 - │ │ │ └─ item: union #56 - │ │ │ ├─ variant_0: union '_prisma_string_filter' #54 - │ │ │ │ ├─ variant_0: string #42 - │ │ │ │ ├─ variant_1: struct #45 - │ │ │ │ │ └─ [equals]: string #42 - │ │ │ │ ├─ variant_2: struct #46 - │ │ │ │ │ └─ [not]: string #42 - │ │ │ │ ├─ variant_3: struct #47 - │ │ │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ │ │ └─ item: string #42 - │ │ │ │ ├─ variant_4: struct #48 - │ │ │ │ │ └─ [notIn]: list 'list_44' #44 - │ │ │ │ │ └─ item: string #42 - │ │ │ │ ├─ variant_5: struct #51 - │ │ │ │ │ ├─ [contains]: string #42 - │ │ │ │ │ └─ [mode]: optional 'optional_50' #50 - │ │ │ │ │ └─ item: string #49 enum{ '"insensitive"' } - │ │ │ │ ├─ variant_6: struct #52 - │ │ │ │ │ └─ [search]: string #42 - │ │ │ │ └─ variant_7: struct #53 - │ │ │ │ ├─ [endsWith]: optional 'optional_43' #43 - │ │ │ │ │ └─ item: string #42 - │ │ │ │ └─ [startsWith]: optional 'optional_43' #43 - │ │ │ │ └─ item: string #42 - │ │ │ └─ variant_1: struct #55 - │ │ │ └─ [not]: union '_prisma_string_filter' #54 - │ │ │ ├─ variant_0: string #42 - │ │ │ ├─ variant_1: struct #45 - │ │ │ │ └─ [equals]: string #42 - │ │ │ ├─ variant_2: struct #46 - │ │ │ │ └─ [not]: string #42 - │ │ │ ├─ variant_3: struct #47 - │ │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ │ └─ item: string #42 - │ │ │ ├─ variant_4: struct #48 - │ │ │ │ └─ [notIn]: list 'list_44' #44 - │ │ │ │ └─ item: string #42 - │ │ │ ├─ variant_5: struct #51 - │ │ │ │ ├─ [contains]: string #42 - │ │ │ │ └─ [mode]: optional 'optional_50' #50 - │ │ │ │ └─ item: string #49 enum{ '"insensitive"' } - │ │ │ ├─ variant_6: struct #52 - │ │ │ │ └─ [search]: string #42 - │ │ │ └─ variant_7: struct #53 - │ │ │ ├─ [endsWith]: optional 'optional_43' #43 - │ │ │ │ └─ item: string #42 - │ │ │ └─ [startsWith]: optional 'optional_43' #43 - │ │ │ └─ item: string #42 - │ │ ├─ variant_1: struct #102 - │ │ │ └─ [some]: optional 'optional_101' #101 - │ │ │ └─ item: struct 'Post_where_excluding_User' #98 - │ │ │ ├─ [author]: optional 'optional_97' #97 - │ │ │ │ └─ item: &User_where #96 - │ │ │ ├─ [id]: optional 'optional_94' #94 - │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #40 - │ │ │ │ └─ item: union #39 - │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #37 - │ │ │ │ │ ├─ variant_0: integer #29 - │ │ │ │ │ ├─ variant_1: struct #32 - │ │ │ │ │ │ └─ [equals]: integer #29 - │ │ │ │ │ ├─ variant_2: struct #33 - │ │ │ │ │ │ └─ [not]: integer #29 - │ │ │ │ │ ├─ variant_3: struct #34 - │ │ │ │ │ │ ├─ [gt]: optional 'optional_30' #30 - │ │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ │ ├─ [gte]: optional 'optional_30' #30 - │ │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ │ ├─ [lt]: optional 'optional_30' #30 - │ │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ │ └─ [lte]: optional 'optional_30' #30 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ ├─ variant_4: struct #35 - │ │ │ │ │ │ └─ [in]: list 'list_31' #31 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ └─ variant_5: struct #36 - │ │ │ │ │ └─ [notIn]: list 'list_31' #31 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ └─ variant_1: struct #38 - │ │ │ │ └─ [not]: either '_prisma_integer_filter' #37 - │ │ │ │ ├─ variant_0: integer #29 - │ │ │ │ ├─ variant_1: struct #32 - │ │ │ │ │ └─ [equals]: integer #29 - │ │ │ │ ├─ variant_2: struct #33 - │ │ │ │ │ └─ [not]: integer #29 - │ │ │ │ ├─ variant_3: struct #34 - │ │ │ │ │ ├─ [gt]: optional 'optional_30' #30 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ ├─ [gte]: optional 'optional_30' #30 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ ├─ [lt]: optional 'optional_30' #30 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ └─ [lte]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ ├─ variant_4: struct #35 - │ │ │ │ │ └─ [in]: list 'list_31' #31 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ └─ variant_5: struct #36 - │ │ │ │ └─ [notIn]: list 'list_31' #31 - │ │ │ │ └─ item: integer #29 - │ │ │ └─ [title]: optional 'optional_95' #95 - │ │ │ └─ item: optional '_prisma_string_filter_ex' #57 - │ │ │ └─ item: union #56 - │ │ │ ├─ variant_0: union '_prisma_string_filter' #54 - │ │ │ │ ├─ variant_0: string #42 - │ │ │ │ ├─ variant_1: struct #45 - │ │ │ │ │ └─ [equals]: string #42 - │ │ │ │ ├─ variant_2: struct #46 - │ │ │ │ │ └─ [not]: string #42 - │ │ │ │ ├─ variant_3: struct #47 - │ │ │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ │ │ └─ item: string #42 - │ │ │ │ ├─ variant_4: struct #48 - │ │ │ │ │ └─ [notIn]: list 'list_44' #44 - │ │ │ │ │ └─ item: string #42 - │ │ │ │ ├─ variant_5: struct #51 - │ │ │ │ │ ├─ [contains]: string #42 - │ │ │ │ │ └─ [mode]: optional 'optional_50' #50 - │ │ │ │ │ └─ item: string #49 enum{ '"insensitive"' } - │ │ │ │ ├─ variant_6: struct #52 - │ │ │ │ │ └─ [search]: string #42 - │ │ │ │ └─ variant_7: struct #53 - │ │ │ │ ├─ [endsWith]: optional 'optional_43' #43 - │ │ │ │ │ └─ item: string #42 - │ │ │ │ └─ [startsWith]: optional 'optional_43' #43 - │ │ │ │ └─ item: string #42 - │ │ │ └─ variant_1: struct #55 - │ │ │ └─ [not]: union '_prisma_string_filter' #54 - │ │ │ ├─ variant_0: string #42 - │ │ │ ├─ variant_1: struct #45 - │ │ │ │ └─ [equals]: string #42 - │ │ │ ├─ variant_2: struct #46 - │ │ │ │ └─ [not]: string #42 - │ │ │ ├─ variant_3: struct #47 - │ │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ │ └─ item: string #42 - │ │ │ ├─ variant_4: struct #48 - │ │ │ │ └─ [notIn]: list 'list_44' #44 - │ │ │ │ └─ item: string #42 - │ │ │ ├─ variant_5: struct #51 - │ │ │ │ ├─ [contains]: string #42 - │ │ │ │ └─ [mode]: optional 'optional_50' #50 - │ │ │ │ └─ item: string #49 enum{ '"insensitive"' } - │ │ │ ├─ variant_6: struct #52 - │ │ │ │ └─ [search]: string #42 - │ │ │ └─ variant_7: struct #53 - │ │ │ ├─ [endsWith]: optional 'optional_43' #43 - │ │ │ │ └─ item: string #42 - │ │ │ └─ [startsWith]: optional 'optional_43' #43 - │ │ │ └─ item: string #42 - │ │ └─ variant_2: struct #104 - │ │ └─ [none]: optional 'optional_103' #103 - │ │ └─ item: struct 'Post_where_excluding_User' #98 - │ │ ├─ [author]: optional 'optional_97' #97 - │ │ │ └─ item: &User_where #96 - │ │ ├─ [id]: optional 'optional_94' #94 - │ │ │ └─ item: optional '_prisma_integer_filter_ex' #40 - │ │ │ └─ item: union #39 - │ │ │ ├─ variant_0: either '_prisma_integer_filter' #37 - │ │ │ │ ├─ variant_0: integer #29 - │ │ │ │ ├─ variant_1: struct #32 - │ │ │ │ │ └─ [equals]: integer #29 - │ │ │ │ ├─ variant_2: struct #33 - │ │ │ │ │ └─ [not]: integer #29 - │ │ │ │ ├─ variant_3: struct #34 - │ │ │ │ │ ├─ [gt]: optional 'optional_30' #30 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ ├─ [gte]: optional 'optional_30' #30 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ ├─ [lt]: optional 'optional_30' #30 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ └─ [lte]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ ├─ variant_4: struct #35 - │ │ │ │ │ └─ [in]: list 'list_31' #31 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ └─ variant_5: struct #36 - │ │ │ │ └─ [notIn]: list 'list_31' #31 - │ │ │ │ └─ item: integer #29 - │ │ │ └─ variant_1: struct #38 - │ │ │ └─ [not]: either '_prisma_integer_filter' #37 - │ │ │ ├─ variant_0: integer #29 - │ │ │ ├─ variant_1: struct #32 - │ │ │ │ └─ [equals]: integer #29 - │ │ │ ├─ variant_2: struct #33 - │ │ │ │ └─ [not]: integer #29 - │ │ │ ├─ variant_3: struct #34 - │ │ │ │ ├─ [gt]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ ├─ [gte]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ ├─ [lt]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ └─ [lte]: optional 'optional_30' #30 - │ │ │ │ └─ item: integer #29 - │ │ │ ├─ variant_4: struct #35 - │ │ │ │ └─ [in]: list 'list_31' #31 - │ │ │ │ └─ item: integer #29 - │ │ │ └─ variant_5: struct #36 - │ │ │ └─ [notIn]: list 'list_31' #31 - │ │ │ └─ item: integer #29 - │ │ └─ [title]: optional 'optional_95' #95 - │ │ └─ item: optional '_prisma_string_filter_ex' #57 - │ │ └─ item: union #56 - │ │ ├─ variant_0: union '_prisma_string_filter' #54 - │ │ │ ├─ variant_0: string #42 - │ │ │ ├─ variant_1: struct #45 - │ │ │ │ └─ [equals]: string #42 - │ │ │ ├─ variant_2: struct #46 - │ │ │ │ └─ [not]: string #42 - │ │ │ ├─ variant_3: struct #47 - │ │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ │ └─ item: string #42 - │ │ │ ├─ variant_4: struct #48 - │ │ │ │ └─ [notIn]: list 'list_44' #44 - │ │ │ │ └─ item: string #42 - │ │ │ ├─ variant_5: struct #51 - │ │ │ │ ├─ [contains]: string #42 - │ │ │ │ └─ [mode]: optional 'optional_50' #50 - │ │ │ │ └─ item: string #49 enum{ '"insensitive"' } - │ │ │ ├─ variant_6: struct #52 - │ │ │ │ └─ [search]: string #42 - │ │ │ └─ variant_7: struct #53 - │ │ │ ├─ [endsWith]: optional 'optional_43' #43 - │ │ │ │ └─ item: string #42 - │ │ │ └─ [startsWith]: optional 'optional_43' #43 - │ │ │ └─ item: string #42 - │ │ └─ variant_1: struct #55 - │ │ └─ [not]: union '_prisma_string_filter' #54 - │ │ ├─ variant_0: string #42 - │ │ ├─ variant_1: struct #45 - │ │ │ └─ [equals]: string #42 - │ │ ├─ variant_2: struct #46 - │ │ │ └─ [not]: string #42 - │ │ ├─ variant_3: struct #47 - │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ └─ item: string #42 - │ │ ├─ variant_4: struct #48 - │ │ │ └─ [notIn]: list 'list_44' #44 - │ │ │ └─ item: string #42 - │ │ ├─ variant_5: struct #51 - │ │ │ ├─ [contains]: string #42 - │ │ │ └─ [mode]: optional 'optional_50' #50 - │ │ │ └─ item: string #49 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #52 - │ │ │ └─ [search]: string #42 - │ │ └─ variant_7: struct #53 - │ │ ├─ [endsWith]: optional 'optional_43' #43 - │ │ │ └─ item: string #42 - │ │ └─ [startsWith]: optional 'optional_43' #43 - │ │ └─ item: string #42 - │ └─ variant_2: struct #111 - │ └─ [connectOrCreate]: struct #108 - │ ├─ [create]: struct 'User_create_input_excluding_rel_Post_User' #91 - │ │ ├─ [id]: integer #15 - │ │ └─ [name]: string #16 - │ └─ [where]: struct 'User_where' #107 - │ ├─ [id]: optional 'optional_92' #92 - │ │ └─ item: optional '_prisma_integer_filter_ex' #40 - │ │ └─ item: union #39 - │ │ ├─ variant_0: either '_prisma_integer_filter' #37 - │ │ │ ├─ variant_0: integer #29 - │ │ │ ├─ variant_1: struct #32 - │ │ │ │ └─ [equals]: integer #29 - │ │ │ ├─ variant_2: struct #33 - │ │ │ │ └─ [not]: integer #29 - │ │ │ ├─ variant_3: struct #34 - │ │ │ │ ├─ [gt]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ ├─ [gte]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ ├─ [lt]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ └─ [lte]: optional 'optional_30' #30 - │ │ │ │ └─ item: integer #29 - │ │ │ ├─ variant_4: struct #35 - │ │ │ │ └─ [in]: list 'list_31' #31 - │ │ │ │ └─ item: integer #29 - │ │ │ └─ variant_5: struct #36 - │ │ │ └─ [notIn]: list 'list_31' #31 - │ │ │ └─ item: integer #29 - │ │ └─ variant_1: struct #38 - │ │ └─ [not]: either '_prisma_integer_filter' #37 - │ │ ├─ variant_0: integer #29 - │ │ ├─ variant_1: struct #32 - │ │ │ └─ [equals]: integer #29 - │ │ ├─ variant_2: struct #33 - │ │ │ └─ [not]: integer #29 - │ │ ├─ variant_3: struct #34 - │ │ │ ├─ [gt]: optional 'optional_30' #30 - │ │ │ │ └─ item: integer #29 - │ │ │ ├─ [gte]: optional 'optional_30' #30 - │ │ │ │ └─ item: integer #29 - │ │ │ ├─ [lt]: optional 'optional_30' #30 - │ │ │ │ └─ item: integer #29 - │ │ │ └─ [lte]: optional 'optional_30' #30 - │ │ │ └─ item: integer #29 - │ │ ├─ variant_4: struct #35 - │ │ │ └─ [in]: list 'list_31' #31 - │ │ │ └─ item: integer #29 - │ │ └─ variant_5: struct #36 - │ │ └─ [notIn]: list 'list_31' #31 - │ │ └─ item: integer #29 - │ ├─ [name]: optional 'optional_93' #93 - │ │ └─ item: optional '_prisma_string_filter_ex' #57 - │ │ └─ item: union #56 - │ │ ├─ variant_0: union '_prisma_string_filter' #54 - │ │ │ ├─ variant_0: string #42 - │ │ │ ├─ variant_1: struct #45 - │ │ │ │ └─ [equals]: string #42 - │ │ │ ├─ variant_2: struct #46 - │ │ │ │ └─ [not]: string #42 - │ │ │ ├─ variant_3: struct #47 - │ │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ │ └─ item: string #42 - │ │ │ ├─ variant_4: struct #48 - │ │ │ │ └─ [notIn]: list 'list_44' #44 - │ │ │ │ └─ item: string #42 - │ │ │ ├─ variant_5: struct #51 - │ │ │ │ ├─ [contains]: string #42 - │ │ │ │ └─ [mode]: optional 'optional_50' #50 - │ │ │ │ └─ item: string #49 enum{ '"insensitive"' } - │ │ │ ├─ variant_6: struct #52 - │ │ │ │ └─ [search]: string #42 - │ │ │ └─ variant_7: struct #53 - │ │ │ ├─ [endsWith]: optional 'optional_43' #43 - │ │ │ │ └─ item: string #42 - │ │ │ └─ [startsWith]: optional 'optional_43' #43 - │ │ │ └─ item: string #42 - │ │ └─ variant_1: struct #55 - │ │ └─ [not]: union '_prisma_string_filter' #54 - │ │ ├─ variant_0: string #42 - │ │ ├─ variant_1: struct #45 - │ │ │ └─ [equals]: string #42 - │ │ ├─ variant_2: struct #46 - │ │ │ └─ [not]: string #42 - │ │ ├─ variant_3: struct #47 - │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ └─ item: string #42 - │ │ ├─ variant_4: struct #48 - │ │ │ └─ [notIn]: list 'list_44' #44 - │ │ │ └─ item: string #42 - │ │ ├─ variant_5: struct #51 - │ │ │ ├─ [contains]: string #42 - │ │ │ └─ [mode]: optional 'optional_50' #50 - │ │ │ └─ item: string #49 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #52 - │ │ │ └─ [search]: string #42 - │ │ └─ variant_7: struct #53 - │ │ ├─ [endsWith]: optional 'optional_43' #43 - │ │ │ └─ item: string #42 - │ │ └─ [startsWith]: optional 'optional_43' #43 - │ │ └─ item: string #42 - │ └─ [posts]: optional 'optional_106' #106 - │ └─ item: union #105 - │ ├─ variant_0: struct #100 - │ │ └─ [every]: optional 'optional_99' #99 - │ │ └─ item: struct 'Post_where_excluding_User' #98 - │ │ ├─ [author]: optional 'optional_97' #97 - │ │ │ └─ item: &User_where #96 - │ │ ├─ [id]: optional 'optional_94' #94 - │ │ │ └─ item: optional '_prisma_integer_filter_ex' #40 - │ │ │ └─ item: union #39 - │ │ │ ├─ variant_0: either '_prisma_integer_filter' #37 - │ │ │ │ ├─ variant_0: integer #29 - │ │ │ │ ├─ variant_1: struct #32 - │ │ │ │ │ └─ [equals]: integer #29 - │ │ │ │ ├─ variant_2: struct #33 - │ │ │ │ │ └─ [not]: integer #29 - │ │ │ │ ├─ variant_3: struct #34 - │ │ │ │ │ ├─ [gt]: optional 'optional_30' #30 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ ├─ [gte]: optional 'optional_30' #30 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ ├─ [lt]: optional 'optional_30' #30 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ └─ [lte]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ ├─ variant_4: struct #35 - │ │ │ │ │ └─ [in]: list 'list_31' #31 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ └─ variant_5: struct #36 - │ │ │ │ └─ [notIn]: list 'list_31' #31 - │ │ │ │ └─ item: integer #29 - │ │ │ └─ variant_1: struct #38 - │ │ │ └─ [not]: either '_prisma_integer_filter' #37 - │ │ │ ├─ variant_0: integer #29 - │ │ │ ├─ variant_1: struct #32 - │ │ │ │ └─ [equals]: integer #29 - │ │ │ ├─ variant_2: struct #33 - │ │ │ │ └─ [not]: integer #29 - │ │ │ ├─ variant_3: struct #34 - │ │ │ │ ├─ [gt]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ ├─ [gte]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ ├─ [lt]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ └─ [lte]: optional 'optional_30' #30 - │ │ │ │ └─ item: integer #29 - │ │ │ ├─ variant_4: struct #35 - │ │ │ │ └─ [in]: list 'list_31' #31 - │ │ │ │ └─ item: integer #29 - │ │ │ └─ variant_5: struct #36 - │ │ │ └─ [notIn]: list 'list_31' #31 - │ │ │ └─ item: integer #29 - │ │ └─ [title]: optional 'optional_95' #95 - │ │ └─ item: optional '_prisma_string_filter_ex' #57 - │ │ └─ item: union #56 - │ │ ├─ variant_0: union '_prisma_string_filter' #54 - │ │ │ ├─ variant_0: string #42 - │ │ │ ├─ variant_1: struct #45 - │ │ │ │ └─ [equals]: string #42 - │ │ │ ├─ variant_2: struct #46 - │ │ │ │ └─ [not]: string #42 - │ │ │ ├─ variant_3: struct #47 - │ │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ │ └─ item: string #42 - │ │ │ ├─ variant_4: struct #48 - │ │ │ │ └─ [notIn]: list 'list_44' #44 - │ │ │ │ └─ item: string #42 - │ │ │ ├─ variant_5: struct #51 - │ │ │ │ ├─ [contains]: string #42 - │ │ │ │ └─ [mode]: optional 'optional_50' #50 - │ │ │ │ └─ item: string #49 enum{ '"insensitive"' } - │ │ │ ├─ variant_6: struct #52 - │ │ │ │ └─ [search]: string #42 - │ │ │ └─ variant_7: struct #53 - │ │ │ ├─ [endsWith]: optional 'optional_43' #43 - │ │ │ │ └─ item: string #42 - │ │ │ └─ [startsWith]: optional 'optional_43' #43 - │ │ │ └─ item: string #42 - │ │ └─ variant_1: struct #55 - │ │ └─ [not]: union '_prisma_string_filter' #54 - │ │ ├─ variant_0: string #42 - │ │ ├─ variant_1: struct #45 - │ │ │ └─ [equals]: string #42 - │ │ ├─ variant_2: struct #46 - │ │ │ └─ [not]: string #42 - │ │ ├─ variant_3: struct #47 - │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ └─ item: string #42 - │ │ ├─ variant_4: struct #48 - │ │ │ └─ [notIn]: list 'list_44' #44 - │ │ │ └─ item: string #42 - │ │ ├─ variant_5: struct #51 - │ │ │ ├─ [contains]: string #42 - │ │ │ └─ [mode]: optional 'optional_50' #50 - │ │ │ └─ item: string #49 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #52 - │ │ │ └─ [search]: string #42 - │ │ └─ variant_7: struct #53 - │ │ ├─ [endsWith]: optional 'optional_43' #43 - │ │ │ └─ item: string #42 - │ │ └─ [startsWith]: optional 'optional_43' #43 - │ │ └─ item: string #42 - │ ├─ variant_1: struct #102 - │ │ └─ [some]: optional 'optional_101' #101 - │ │ └─ item: struct 'Post_where_excluding_User' #98 - │ │ ├─ [author]: optional 'optional_97' #97 - │ │ │ └─ item: &User_where #96 - │ │ ├─ [id]: optional 'optional_94' #94 - │ │ │ └─ item: optional '_prisma_integer_filter_ex' #40 - │ │ │ └─ item: union #39 - │ │ │ ├─ variant_0: either '_prisma_integer_filter' #37 - │ │ │ │ ├─ variant_0: integer #29 - │ │ │ │ ├─ variant_1: struct #32 - │ │ │ │ │ └─ [equals]: integer #29 - │ │ │ │ ├─ variant_2: struct #33 - │ │ │ │ │ └─ [not]: integer #29 - │ │ │ │ ├─ variant_3: struct #34 - │ │ │ │ │ ├─ [gt]: optional 'optional_30' #30 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ ├─ [gte]: optional 'optional_30' #30 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ ├─ [lt]: optional 'optional_30' #30 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ └─ [lte]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ ├─ variant_4: struct #35 - │ │ │ │ │ └─ [in]: list 'list_31' #31 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ └─ variant_5: struct #36 - │ │ │ │ └─ [notIn]: list 'list_31' #31 - │ │ │ │ └─ item: integer #29 - │ │ │ └─ variant_1: struct #38 - │ │ │ └─ [not]: either '_prisma_integer_filter' #37 - │ │ │ ├─ variant_0: integer #29 - │ │ │ ├─ variant_1: struct #32 - │ │ │ │ └─ [equals]: integer #29 - │ │ │ ├─ variant_2: struct #33 - │ │ │ │ └─ [not]: integer #29 - │ │ │ ├─ variant_3: struct #34 - │ │ │ │ ├─ [gt]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ ├─ [gte]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ ├─ [lt]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ └─ [lte]: optional 'optional_30' #30 - │ │ │ │ └─ item: integer #29 - │ │ │ ├─ variant_4: struct #35 - │ │ │ │ └─ [in]: list 'list_31' #31 - │ │ │ │ └─ item: integer #29 - │ │ │ └─ variant_5: struct #36 - │ │ │ └─ [notIn]: list 'list_31' #31 - │ │ │ └─ item: integer #29 - │ │ └─ [title]: optional 'optional_95' #95 - │ │ └─ item: optional '_prisma_string_filter_ex' #57 - │ │ └─ item: union #56 - │ │ ├─ variant_0: union '_prisma_string_filter' #54 - │ │ │ ├─ variant_0: string #42 - │ │ │ ├─ variant_1: struct #45 - │ │ │ │ └─ [equals]: string #42 - │ │ │ ├─ variant_2: struct #46 - │ │ │ │ └─ [not]: string #42 - │ │ │ ├─ variant_3: struct #47 - │ │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ │ └─ item: string #42 - │ │ │ ├─ variant_4: struct #48 - │ │ │ │ └─ [notIn]: list 'list_44' #44 - │ │ │ │ └─ item: string #42 - │ │ │ ├─ variant_5: struct #51 - │ │ │ │ ├─ [contains]: string #42 - │ │ │ │ └─ [mode]: optional 'optional_50' #50 - │ │ │ │ └─ item: string #49 enum{ '"insensitive"' } - │ │ │ ├─ variant_6: struct #52 - │ │ │ │ └─ [search]: string #42 - │ │ │ └─ variant_7: struct #53 - │ │ │ ├─ [endsWith]: optional 'optional_43' #43 - │ │ │ │ └─ item: string #42 - │ │ │ └─ [startsWith]: optional 'optional_43' #43 - │ │ │ └─ item: string #42 - │ │ └─ variant_1: struct #55 - │ │ └─ [not]: union '_prisma_string_filter' #54 - │ │ ├─ variant_0: string #42 - │ │ ├─ variant_1: struct #45 - │ │ │ └─ [equals]: string #42 - │ │ ├─ variant_2: struct #46 - │ │ │ └─ [not]: string #42 - │ │ ├─ variant_3: struct #47 - │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ └─ item: string #42 - │ │ ├─ variant_4: struct #48 - │ │ │ └─ [notIn]: list 'list_44' #44 - │ │ │ └─ item: string #42 - │ │ ├─ variant_5: struct #51 - │ │ │ ├─ [contains]: string #42 - │ │ │ └─ [mode]: optional 'optional_50' #50 - │ │ │ └─ item: string #49 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #52 - │ │ │ └─ [search]: string #42 - │ │ └─ variant_7: struct #53 - │ │ ├─ [endsWith]: optional 'optional_43' #43 - │ │ │ └─ item: string #42 - │ │ └─ [startsWith]: optional 'optional_43' #43 - │ │ └─ item: string #42 - │ └─ variant_2: struct #104 - │ └─ [none]: optional 'optional_103' #103 - │ └─ item: struct 'Post_where_excluding_User' #98 - │ ├─ [author]: optional 'optional_97' #97 - │ │ └─ item: &User_where #96 - │ ├─ [id]: optional 'optional_94' #94 - │ │ └─ item: optional '_prisma_integer_filter_ex' #40 - │ │ └─ item: union #39 - │ │ ├─ variant_0: either '_prisma_integer_filter' #37 - │ │ │ ├─ variant_0: integer #29 - │ │ │ ├─ variant_1: struct #32 - │ │ │ │ └─ [equals]: integer #29 - │ │ │ ├─ variant_2: struct #33 - │ │ │ │ └─ [not]: integer #29 - │ │ │ ├─ variant_3: struct #34 - │ │ │ │ ├─ [gt]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ ├─ [gte]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ ├─ [lt]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ └─ [lte]: optional 'optional_30' #30 - │ │ │ │ └─ item: integer #29 - │ │ │ ├─ variant_4: struct #35 - │ │ │ │ └─ [in]: list 'list_31' #31 - │ │ │ │ └─ item: integer #29 - │ │ │ └─ variant_5: struct #36 - │ │ │ └─ [notIn]: list 'list_31' #31 - │ │ │ └─ item: integer #29 - │ │ └─ variant_1: struct #38 - │ │ └─ [not]: either '_prisma_integer_filter' #37 - │ │ ├─ variant_0: integer #29 - │ │ ├─ variant_1: struct #32 - │ │ │ └─ [equals]: integer #29 - │ │ ├─ variant_2: struct #33 - │ │ │ └─ [not]: integer #29 - │ │ ├─ variant_3: struct #34 - │ │ │ ├─ [gt]: optional 'optional_30' #30 - │ │ │ │ └─ item: integer #29 - │ │ │ ├─ [gte]: optional 'optional_30' #30 - │ │ │ │ └─ item: integer #29 - │ │ │ ├─ [lt]: optional 'optional_30' #30 - │ │ │ │ └─ item: integer #29 - │ │ │ └─ [lte]: optional 'optional_30' #30 - │ │ │ └─ item: integer #29 - │ │ ├─ variant_4: struct #35 - │ │ │ └─ [in]: list 'list_31' #31 - │ │ │ └─ item: integer #29 - │ │ └─ variant_5: struct #36 - │ │ └─ [notIn]: list 'list_31' #31 - │ │ └─ item: integer #29 - │ └─ [title]: optional 'optional_95' #95 - │ └─ item: optional '_prisma_string_filter_ex' #57 - │ └─ item: union #56 - │ ├─ variant_0: union '_prisma_string_filter' #54 - │ │ ├─ variant_0: string #42 - │ │ ├─ variant_1: struct #45 - │ │ │ └─ [equals]: string #42 - │ │ ├─ variant_2: struct #46 - │ │ │ └─ [not]: string #42 - │ │ ├─ variant_3: struct #47 - │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ └─ item: string #42 - │ │ ├─ variant_4: struct #48 - │ │ │ └─ [notIn]: list 'list_44' #44 - │ │ │ └─ item: string #42 - │ │ ├─ variant_5: struct #51 - │ │ │ ├─ [contains]: string #42 - │ │ │ └─ [mode]: optional 'optional_50' #50 - │ │ │ └─ item: string #49 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #52 - │ │ │ └─ [search]: string #42 - │ │ └─ variant_7: struct #53 - │ │ ├─ [endsWith]: optional 'optional_43' #43 - │ │ │ └─ item: string #42 - │ │ └─ [startsWith]: optional 'optional_43' #43 - │ │ └─ item: string #42 - │ └─ variant_1: struct #55 - │ └─ [not]: union '_prisma_string_filter' #54 - │ ├─ variant_0: string #42 - │ ├─ variant_1: struct #45 - │ │ └─ [equals]: string #42 - │ ├─ variant_2: struct #46 - │ │ └─ [not]: string #42 - │ ├─ variant_3: struct #47 - │ │ └─ [in]: list 'list_44' #44 - │ │ └─ item: string #42 - │ ├─ variant_4: struct #48 - │ │ └─ [notIn]: list 'list_44' #44 - │ │ └─ item: string #42 - │ ├─ variant_5: struct #51 - │ │ ├─ [contains]: string #42 - │ │ └─ [mode]: optional 'optional_50' #50 - │ │ └─ item: string #49 enum{ '"insensitive"' } - │ ├─ variant_6: struct #52 - │ │ └─ [search]: string #42 - │ └─ variant_7: struct #53 - │ ├─ [endsWith]: optional 'optional_43' #43 - │ │ └─ item: string #42 - │ └─ [startsWith]: optional 'optional_43' #43 - │ └─ item: string #42 - ├─ [id]: optional 'optional_90' #90 - │ └─ item: integer #20 - └─ [title]: string #22 +root: struct #171 +└─ [data]: list 'list_169' #170 + └─ item: struct 'Post_create_input' #168 + ├─ [author]: union #166 + │ ├─ variant_0: struct #163 + │ │ └─ [create]: struct 'User_create_input_excluding_rel_Post_User' #134 + │ │ ├─ [id]: integer #21 + │ │ └─ [name]: string #22 + │ ├─ variant_1: struct #164 + │ │ └─ [connect]: struct 'User_where' #161 + │ │ ├─ [id]: optional 'optional_135' #136 + │ │ │ └─ item: optional '_prisma_integer_filter_ex' #58 + │ │ │ └─ item: union #55 + │ │ │ ├─ variant_0: either '_prisma_integer_filter' #53 + │ │ │ │ ├─ variant_0: integer #42 + │ │ │ │ ├─ variant_1: struct #47 + │ │ │ │ │ └─ [equals]: integer #42 + │ │ │ │ ├─ variant_2: struct #48 + │ │ │ │ │ └─ [not]: integer #42 + │ │ │ │ ├─ variant_3: struct #49 + │ │ │ │ │ ├─ [gt]: optional 'optional_43' #44 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ ├─ [gte]: optional 'optional_43' #44 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ ├─ [lt]: optional 'optional_43' #44 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ └─ [lte]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ ├─ variant_4: struct #50 + │ │ │ │ │ └─ [in]: list 'list_45' #46 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ └─ variant_5: struct #51 + │ │ │ │ └─ [notIn]: list 'list_45' #46 + │ │ │ │ └─ item: integer #42 + │ │ │ └─ variant_1: struct #54 + │ │ │ └─ [not]: either '_prisma_integer_filter' #53 + │ │ │ ├─ variant_0: integer #42 + │ │ │ ├─ variant_1: struct #47 + │ │ │ │ └─ [equals]: integer #42 + │ │ │ ├─ variant_2: struct #48 + │ │ │ │ └─ [not]: integer #42 + │ │ │ ├─ variant_3: struct #49 + │ │ │ │ ├─ [gt]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ ├─ [gte]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ ├─ [lt]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ └─ [lte]: optional 'optional_43' #44 + │ │ │ │ └─ item: integer #42 + │ │ │ ├─ variant_4: struct #50 + │ │ │ │ └─ [in]: list 'list_45' #46 + │ │ │ │ └─ item: integer #42 + │ │ │ └─ variant_5: struct #51 + │ │ │ └─ [notIn]: list 'list_45' #46 + │ │ │ └─ item: integer #42 + │ │ ├─ [name]: optional 'optional_137' #138 + │ │ │ └─ item: optional '_prisma_string_filter_ex' #82 + │ │ │ └─ item: union #79 + │ │ │ ├─ variant_0: union '_prisma_string_filter' #77 + │ │ │ │ ├─ variant_0: string #61 + │ │ │ │ ├─ variant_1: struct #66 + │ │ │ │ │ └─ [equals]: string #61 + │ │ │ │ ├─ variant_2: struct #67 + │ │ │ │ │ └─ [not]: string #61 + │ │ │ │ ├─ variant_3: struct #68 + │ │ │ │ │ └─ [in]: list 'list_64' #65 + │ │ │ │ │ └─ item: string #61 + │ │ │ │ ├─ variant_4: struct #69 + │ │ │ │ │ └─ [notIn]: list 'list_64' #65 + │ │ │ │ │ └─ item: string #61 + │ │ │ │ ├─ variant_5: struct #73 + │ │ │ │ │ ├─ [contains]: string #61 + │ │ │ │ │ └─ [mode]: optional 'optional_71' #72 + │ │ │ │ │ └─ item: string #70 enum{ '"insensitive"' } + │ │ │ │ ├─ variant_6: struct #74 + │ │ │ │ │ └─ [search]: string #61 + │ │ │ │ └─ variant_7: struct #75 + │ │ │ │ ├─ [endsWith]: optional 'optional_62' #63 + │ │ │ │ │ └─ item: string #61 + │ │ │ │ └─ [startsWith]: optional 'optional_62' #63 + │ │ │ │ └─ item: string #61 + │ │ │ └─ variant_1: struct #78 + │ │ │ └─ [not]: union '_prisma_string_filter' #77 + │ │ │ ├─ variant_0: string #61 + │ │ │ ├─ variant_1: struct #66 + │ │ │ │ └─ [equals]: string #61 + │ │ │ ├─ variant_2: struct #67 + │ │ │ │ └─ [not]: string #61 + │ │ │ ├─ variant_3: struct #68 + │ │ │ │ └─ [in]: list 'list_64' #65 + │ │ │ │ └─ item: string #61 + │ │ │ ├─ variant_4: struct #69 + │ │ │ │ └─ [notIn]: list 'list_64' #65 + │ │ │ │ └─ item: string #61 + │ │ │ ├─ variant_5: struct #73 + │ │ │ │ ├─ [contains]: string #61 + │ │ │ │ └─ [mode]: optional 'optional_71' #72 + │ │ │ │ └─ item: string #70 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #74 + │ │ │ │ └─ [search]: string #61 + │ │ │ └─ variant_7: struct #75 + │ │ │ ├─ [endsWith]: optional 'optional_62' #63 + │ │ │ │ └─ item: string #61 + │ │ │ └─ [startsWith]: optional 'optional_62' #63 + │ │ │ └─ item: string #61 + │ │ └─ [posts]: optional 'optional_158' #159 + │ │ └─ item: union #157 + │ │ ├─ variant_0: struct #150 + │ │ │ └─ [every]: optional 'optional_148' #149 + │ │ │ └─ item: struct 'Post_where_excluding_User' #147 + │ │ │ ├─ [author]: optional 'optional_144' #145 + │ │ │ │ └─ item: &User_where #143 + │ │ │ ├─ [id]: optional 'optional_139' #140 + │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #58 + │ │ │ │ └─ item: union #55 + │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #53 + │ │ │ │ │ ├─ variant_0: integer #42 + │ │ │ │ │ ├─ variant_1: struct #47 + │ │ │ │ │ │ └─ [equals]: integer #42 + │ │ │ │ │ ├─ variant_2: struct #48 + │ │ │ │ │ │ └─ [not]: integer #42 + │ │ │ │ │ ├─ variant_3: struct #49 + │ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #44 + │ │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #44 + │ │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #44 + │ │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ │ └─ [lte]: optional 'optional_43' #44 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ ├─ variant_4: struct #50 + │ │ │ │ │ │ └─ [in]: list 'list_45' #46 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ └─ variant_5: struct #51 + │ │ │ │ │ └─ [notIn]: list 'list_45' #46 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ └─ variant_1: struct #54 + │ │ │ │ └─ [not]: either '_prisma_integer_filter' #53 + │ │ │ │ ├─ variant_0: integer #42 + │ │ │ │ ├─ variant_1: struct #47 + │ │ │ │ │ └─ [equals]: integer #42 + │ │ │ │ ├─ variant_2: struct #48 + │ │ │ │ │ └─ [not]: integer #42 + │ │ │ │ ├─ variant_3: struct #49 + │ │ │ │ │ ├─ [gt]: optional 'optional_43' #44 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ ├─ [gte]: optional 'optional_43' #44 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ ├─ [lt]: optional 'optional_43' #44 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ └─ [lte]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ ├─ variant_4: struct #50 + │ │ │ │ │ └─ [in]: list 'list_45' #46 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ └─ variant_5: struct #51 + │ │ │ │ └─ [notIn]: list 'list_45' #46 + │ │ │ │ └─ item: integer #42 + │ │ │ └─ [title]: optional 'optional_141' #142 + │ │ │ └─ item: optional '_prisma_string_filter_ex' #82 + │ │ │ └─ item: union #79 + │ │ │ ├─ variant_0: union '_prisma_string_filter' #77 + │ │ │ │ ├─ variant_0: string #61 + │ │ │ │ ├─ variant_1: struct #66 + │ │ │ │ │ └─ [equals]: string #61 + │ │ │ │ ├─ variant_2: struct #67 + │ │ │ │ │ └─ [not]: string #61 + │ │ │ │ ├─ variant_3: struct #68 + │ │ │ │ │ └─ [in]: list 'list_64' #65 + │ │ │ │ │ └─ item: string #61 + │ │ │ │ ├─ variant_4: struct #69 + │ │ │ │ │ └─ [notIn]: list 'list_64' #65 + │ │ │ │ │ └─ item: string #61 + │ │ │ │ ├─ variant_5: struct #73 + │ │ │ │ │ ├─ [contains]: string #61 + │ │ │ │ │ └─ [mode]: optional 'optional_71' #72 + │ │ │ │ │ └─ item: string #70 enum{ '"insensitive"' } + │ │ │ │ ├─ variant_6: struct #74 + │ │ │ │ │ └─ [search]: string #61 + │ │ │ │ └─ variant_7: struct #75 + │ │ │ │ ├─ [endsWith]: optional 'optional_62' #63 + │ │ │ │ │ └─ item: string #61 + │ │ │ │ └─ [startsWith]: optional 'optional_62' #63 + │ │ │ │ └─ item: string #61 + │ │ │ └─ variant_1: struct #78 + │ │ │ └─ [not]: union '_prisma_string_filter' #77 + │ │ │ ├─ variant_0: string #61 + │ │ │ ├─ variant_1: struct #66 + │ │ │ │ └─ [equals]: string #61 + │ │ │ ├─ variant_2: struct #67 + │ │ │ │ └─ [not]: string #61 + │ │ │ ├─ variant_3: struct #68 + │ │ │ │ └─ [in]: list 'list_64' #65 + │ │ │ │ └─ item: string #61 + │ │ │ ├─ variant_4: struct #69 + │ │ │ │ └─ [notIn]: list 'list_64' #65 + │ │ │ │ └─ item: string #61 + │ │ │ ├─ variant_5: struct #73 + │ │ │ │ ├─ [contains]: string #61 + │ │ │ │ └─ [mode]: optional 'optional_71' #72 + │ │ │ │ └─ item: string #70 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #74 + │ │ │ │ └─ [search]: string #61 + │ │ │ └─ variant_7: struct #75 + │ │ │ ├─ [endsWith]: optional 'optional_62' #63 + │ │ │ │ └─ item: string #61 + │ │ │ └─ [startsWith]: optional 'optional_62' #63 + │ │ │ └─ item: string #61 + │ │ ├─ variant_1: struct #153 + │ │ │ └─ [some]: optional 'optional_151' #152 + │ │ │ └─ item: struct 'Post_where_excluding_User' #147 + │ │ │ ├─ [author]: optional 'optional_144' #145 + │ │ │ │ └─ item: &User_where #143 + │ │ │ ├─ [id]: optional 'optional_139' #140 + │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #58 + │ │ │ │ └─ item: union #55 + │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #53 + │ │ │ │ │ ├─ variant_0: integer #42 + │ │ │ │ │ ├─ variant_1: struct #47 + │ │ │ │ │ │ └─ [equals]: integer #42 + │ │ │ │ │ ├─ variant_2: struct #48 + │ │ │ │ │ │ └─ [not]: integer #42 + │ │ │ │ │ ├─ variant_3: struct #49 + │ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #44 + │ │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #44 + │ │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #44 + │ │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ │ └─ [lte]: optional 'optional_43' #44 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ ├─ variant_4: struct #50 + │ │ │ │ │ │ └─ [in]: list 'list_45' #46 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ └─ variant_5: struct #51 + │ │ │ │ │ └─ [notIn]: list 'list_45' #46 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ └─ variant_1: struct #54 + │ │ │ │ └─ [not]: either '_prisma_integer_filter' #53 + │ │ │ │ ├─ variant_0: integer #42 + │ │ │ │ ├─ variant_1: struct #47 + │ │ │ │ │ └─ [equals]: integer #42 + │ │ │ │ ├─ variant_2: struct #48 + │ │ │ │ │ └─ [not]: integer #42 + │ │ │ │ ├─ variant_3: struct #49 + │ │ │ │ │ ├─ [gt]: optional 'optional_43' #44 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ ├─ [gte]: optional 'optional_43' #44 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ ├─ [lt]: optional 'optional_43' #44 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ └─ [lte]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ ├─ variant_4: struct #50 + │ │ │ │ │ └─ [in]: list 'list_45' #46 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ └─ variant_5: struct #51 + │ │ │ │ └─ [notIn]: list 'list_45' #46 + │ │ │ │ └─ item: integer #42 + │ │ │ └─ [title]: optional 'optional_141' #142 + │ │ │ └─ item: optional '_prisma_string_filter_ex' #82 + │ │ │ └─ item: union #79 + │ │ │ ├─ variant_0: union '_prisma_string_filter' #77 + │ │ │ │ ├─ variant_0: string #61 + │ │ │ │ ├─ variant_1: struct #66 + │ │ │ │ │ └─ [equals]: string #61 + │ │ │ │ ├─ variant_2: struct #67 + │ │ │ │ │ └─ [not]: string #61 + │ │ │ │ ├─ variant_3: struct #68 + │ │ │ │ │ └─ [in]: list 'list_64' #65 + │ │ │ │ │ └─ item: string #61 + │ │ │ │ ├─ variant_4: struct #69 + │ │ │ │ │ └─ [notIn]: list 'list_64' #65 + │ │ │ │ │ └─ item: string #61 + │ │ │ │ ├─ variant_5: struct #73 + │ │ │ │ │ ├─ [contains]: string #61 + │ │ │ │ │ └─ [mode]: optional 'optional_71' #72 + │ │ │ │ │ └─ item: string #70 enum{ '"insensitive"' } + │ │ │ │ ├─ variant_6: struct #74 + │ │ │ │ │ └─ [search]: string #61 + │ │ │ │ └─ variant_7: struct #75 + │ │ │ │ ├─ [endsWith]: optional 'optional_62' #63 + │ │ │ │ │ └─ item: string #61 + │ │ │ │ └─ [startsWith]: optional 'optional_62' #63 + │ │ │ │ └─ item: string #61 + │ │ │ └─ variant_1: struct #78 + │ │ │ └─ [not]: union '_prisma_string_filter' #77 + │ │ │ ├─ variant_0: string #61 + │ │ │ ├─ variant_1: struct #66 + │ │ │ │ └─ [equals]: string #61 + │ │ │ ├─ variant_2: struct #67 + │ │ │ │ └─ [not]: string #61 + │ │ │ ├─ variant_3: struct #68 + │ │ │ │ └─ [in]: list 'list_64' #65 + │ │ │ │ └─ item: string #61 + │ │ │ ├─ variant_4: struct #69 + │ │ │ │ └─ [notIn]: list 'list_64' #65 + │ │ │ │ └─ item: string #61 + │ │ │ ├─ variant_5: struct #73 + │ │ │ │ ├─ [contains]: string #61 + │ │ │ │ └─ [mode]: optional 'optional_71' #72 + │ │ │ │ └─ item: string #70 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #74 + │ │ │ │ └─ [search]: string #61 + │ │ │ └─ variant_7: struct #75 + │ │ │ ├─ [endsWith]: optional 'optional_62' #63 + │ │ │ │ └─ item: string #61 + │ │ │ └─ [startsWith]: optional 'optional_62' #63 + │ │ │ └─ item: string #61 + │ │ └─ variant_2: struct #156 + │ │ └─ [none]: optional 'optional_154' #155 + │ │ └─ item: struct 'Post_where_excluding_User' #147 + │ │ ├─ [author]: optional 'optional_144' #145 + │ │ │ └─ item: &User_where #143 + │ │ ├─ [id]: optional 'optional_139' #140 + │ │ │ └─ item: optional '_prisma_integer_filter_ex' #58 + │ │ │ └─ item: union #55 + │ │ │ ├─ variant_0: either '_prisma_integer_filter' #53 + │ │ │ │ ├─ variant_0: integer #42 + │ │ │ │ ├─ variant_1: struct #47 + │ │ │ │ │ └─ [equals]: integer #42 + │ │ │ │ ├─ variant_2: struct #48 + │ │ │ │ │ └─ [not]: integer #42 + │ │ │ │ ├─ variant_3: struct #49 + │ │ │ │ │ ├─ [gt]: optional 'optional_43' #44 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ ├─ [gte]: optional 'optional_43' #44 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ ├─ [lt]: optional 'optional_43' #44 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ └─ [lte]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ ├─ variant_4: struct #50 + │ │ │ │ │ └─ [in]: list 'list_45' #46 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ └─ variant_5: struct #51 + │ │ │ │ └─ [notIn]: list 'list_45' #46 + │ │ │ │ └─ item: integer #42 + │ │ │ └─ variant_1: struct #54 + │ │ │ └─ [not]: either '_prisma_integer_filter' #53 + │ │ │ ├─ variant_0: integer #42 + │ │ │ ├─ variant_1: struct #47 + │ │ │ │ └─ [equals]: integer #42 + │ │ │ ├─ variant_2: struct #48 + │ │ │ │ └─ [not]: integer #42 + │ │ │ ├─ variant_3: struct #49 + │ │ │ │ ├─ [gt]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ ├─ [gte]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ ├─ [lt]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ └─ [lte]: optional 'optional_43' #44 + │ │ │ │ └─ item: integer #42 + │ │ │ ├─ variant_4: struct #50 + │ │ │ │ └─ [in]: list 'list_45' #46 + │ │ │ │ └─ item: integer #42 + │ │ │ └─ variant_5: struct #51 + │ │ │ └─ [notIn]: list 'list_45' #46 + │ │ │ └─ item: integer #42 + │ │ └─ [title]: optional 'optional_141' #142 + │ │ └─ item: optional '_prisma_string_filter_ex' #82 + │ │ └─ item: union #79 + │ │ ├─ variant_0: union '_prisma_string_filter' #77 + │ │ │ ├─ variant_0: string #61 + │ │ │ ├─ variant_1: struct #66 + │ │ │ │ └─ [equals]: string #61 + │ │ │ ├─ variant_2: struct #67 + │ │ │ │ └─ [not]: string #61 + │ │ │ ├─ variant_3: struct #68 + │ │ │ │ └─ [in]: list 'list_64' #65 + │ │ │ │ └─ item: string #61 + │ │ │ ├─ variant_4: struct #69 + │ │ │ │ └─ [notIn]: list 'list_64' #65 + │ │ │ │ └─ item: string #61 + │ │ │ ├─ variant_5: struct #73 + │ │ │ │ ├─ [contains]: string #61 + │ │ │ │ └─ [mode]: optional 'optional_71' #72 + │ │ │ │ └─ item: string #70 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #74 + │ │ │ │ └─ [search]: string #61 + │ │ │ └─ variant_7: struct #75 + │ │ │ ├─ [endsWith]: optional 'optional_62' #63 + │ │ │ │ └─ item: string #61 + │ │ │ └─ [startsWith]: optional 'optional_62' #63 + │ │ │ └─ item: string #61 + │ │ └─ variant_1: struct #78 + │ │ └─ [not]: union '_prisma_string_filter' #77 + │ │ ├─ variant_0: string #61 + │ │ ├─ variant_1: struct #66 + │ │ │ └─ [equals]: string #61 + │ │ ├─ variant_2: struct #67 + │ │ │ └─ [not]: string #61 + │ │ ├─ variant_3: struct #68 + │ │ │ └─ [in]: list 'list_64' #65 + │ │ │ └─ item: string #61 + │ │ ├─ variant_4: struct #69 + │ │ │ └─ [notIn]: list 'list_64' #65 + │ │ │ └─ item: string #61 + │ │ ├─ variant_5: struct #73 + │ │ │ ├─ [contains]: string #61 + │ │ │ └─ [mode]: optional 'optional_71' #72 + │ │ │ └─ item: string #70 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #74 + │ │ │ └─ [search]: string #61 + │ │ └─ variant_7: struct #75 + │ │ ├─ [endsWith]: optional 'optional_62' #63 + │ │ │ └─ item: string #61 + │ │ └─ [startsWith]: optional 'optional_62' #63 + │ │ └─ item: string #61 + │ └─ variant_2: struct #165 + │ └─ [connectOrCreate]: struct #162 + │ ├─ [create]: struct 'User_create_input_excluding_rel_Post_User' #134 + │ │ ├─ [id]: integer #21 + │ │ └─ [name]: string #22 + │ └─ [where]: struct 'User_where' #161 + │ ├─ [id]: optional 'optional_135' #136 + │ │ └─ item: optional '_prisma_integer_filter_ex' #58 + │ │ └─ item: union #55 + │ │ ├─ variant_0: either '_prisma_integer_filter' #53 + │ │ │ ├─ variant_0: integer #42 + │ │ │ ├─ variant_1: struct #47 + │ │ │ │ └─ [equals]: integer #42 + │ │ │ ├─ variant_2: struct #48 + │ │ │ │ └─ [not]: integer #42 + │ │ │ ├─ variant_3: struct #49 + │ │ │ │ ├─ [gt]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ ├─ [gte]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ ├─ [lt]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ └─ [lte]: optional 'optional_43' #44 + │ │ │ │ └─ item: integer #42 + │ │ │ ├─ variant_4: struct #50 + │ │ │ │ └─ [in]: list 'list_45' #46 + │ │ │ │ └─ item: integer #42 + │ │ │ └─ variant_5: struct #51 + │ │ │ └─ [notIn]: list 'list_45' #46 + │ │ │ └─ item: integer #42 + │ │ └─ variant_1: struct #54 + │ │ └─ [not]: either '_prisma_integer_filter' #53 + │ │ ├─ variant_0: integer #42 + │ │ ├─ variant_1: struct #47 + │ │ │ └─ [equals]: integer #42 + │ │ ├─ variant_2: struct #48 + │ │ │ └─ [not]: integer #42 + │ │ ├─ variant_3: struct #49 + │ │ │ ├─ [gt]: optional 'optional_43' #44 + │ │ │ │ └─ item: integer #42 + │ │ │ ├─ [gte]: optional 'optional_43' #44 + │ │ │ │ └─ item: integer #42 + │ │ │ ├─ [lt]: optional 'optional_43' #44 + │ │ │ │ └─ item: integer #42 + │ │ │ └─ [lte]: optional 'optional_43' #44 + │ │ │ └─ item: integer #42 + │ │ ├─ variant_4: struct #50 + │ │ │ └─ [in]: list 'list_45' #46 + │ │ │ └─ item: integer #42 + │ │ └─ variant_5: struct #51 + │ │ └─ [notIn]: list 'list_45' #46 + │ │ └─ item: integer #42 + │ ├─ [name]: optional 'optional_137' #138 + │ │ └─ item: optional '_prisma_string_filter_ex' #82 + │ │ └─ item: union #79 + │ │ ├─ variant_0: union '_prisma_string_filter' #77 + │ │ │ ├─ variant_0: string #61 + │ │ │ ├─ variant_1: struct #66 + │ │ │ │ └─ [equals]: string #61 + │ │ │ ├─ variant_2: struct #67 + │ │ │ │ └─ [not]: string #61 + │ │ │ ├─ variant_3: struct #68 + │ │ │ │ └─ [in]: list 'list_64' #65 + │ │ │ │ └─ item: string #61 + │ │ │ ├─ variant_4: struct #69 + │ │ │ │ └─ [notIn]: list 'list_64' #65 + │ │ │ │ └─ item: string #61 + │ │ │ ├─ variant_5: struct #73 + │ │ │ │ ├─ [contains]: string #61 + │ │ │ │ └─ [mode]: optional 'optional_71' #72 + │ │ │ │ └─ item: string #70 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #74 + │ │ │ │ └─ [search]: string #61 + │ │ │ └─ variant_7: struct #75 + │ │ │ ├─ [endsWith]: optional 'optional_62' #63 + │ │ │ │ └─ item: string #61 + │ │ │ └─ [startsWith]: optional 'optional_62' #63 + │ │ │ └─ item: string #61 + │ │ └─ variant_1: struct #78 + │ │ └─ [not]: union '_prisma_string_filter' #77 + │ │ ├─ variant_0: string #61 + │ │ ├─ variant_1: struct #66 + │ │ │ └─ [equals]: string #61 + │ │ ├─ variant_2: struct #67 + │ │ │ └─ [not]: string #61 + │ │ ├─ variant_3: struct #68 + │ │ │ └─ [in]: list 'list_64' #65 + │ │ │ └─ item: string #61 + │ │ ├─ variant_4: struct #69 + │ │ │ └─ [notIn]: list 'list_64' #65 + │ │ │ └─ item: string #61 + │ │ ├─ variant_5: struct #73 + │ │ │ ├─ [contains]: string #61 + │ │ │ └─ [mode]: optional 'optional_71' #72 + │ │ │ └─ item: string #70 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #74 + │ │ │ └─ [search]: string #61 + │ │ └─ variant_7: struct #75 + │ │ ├─ [endsWith]: optional 'optional_62' #63 + │ │ │ └─ item: string #61 + │ │ └─ [startsWith]: optional 'optional_62' #63 + │ │ └─ item: string #61 + │ └─ [posts]: optional 'optional_158' #159 + │ └─ item: union #157 + │ ├─ variant_0: struct #150 + │ │ └─ [every]: optional 'optional_148' #149 + │ │ └─ item: struct 'Post_where_excluding_User' #147 + │ │ ├─ [author]: optional 'optional_144' #145 + │ │ │ └─ item: &User_where #143 + │ │ ├─ [id]: optional 'optional_139' #140 + │ │ │ └─ item: optional '_prisma_integer_filter_ex' #58 + │ │ │ └─ item: union #55 + │ │ │ ├─ variant_0: either '_prisma_integer_filter' #53 + │ │ │ │ ├─ variant_0: integer #42 + │ │ │ │ ├─ variant_1: struct #47 + │ │ │ │ │ └─ [equals]: integer #42 + │ │ │ │ ├─ variant_2: struct #48 + │ │ │ │ │ └─ [not]: integer #42 + │ │ │ │ ├─ variant_3: struct #49 + │ │ │ │ │ ├─ [gt]: optional 'optional_43' #44 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ ├─ [gte]: optional 'optional_43' #44 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ ├─ [lt]: optional 'optional_43' #44 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ └─ [lte]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ ├─ variant_4: struct #50 + │ │ │ │ │ └─ [in]: list 'list_45' #46 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ └─ variant_5: struct #51 + │ │ │ │ └─ [notIn]: list 'list_45' #46 + │ │ │ │ └─ item: integer #42 + │ │ │ └─ variant_1: struct #54 + │ │ │ └─ [not]: either '_prisma_integer_filter' #53 + │ │ │ ├─ variant_0: integer #42 + │ │ │ ├─ variant_1: struct #47 + │ │ │ │ └─ [equals]: integer #42 + │ │ │ ├─ variant_2: struct #48 + │ │ │ │ └─ [not]: integer #42 + │ │ │ ├─ variant_3: struct #49 + │ │ │ │ ├─ [gt]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ ├─ [gte]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ ├─ [lt]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ └─ [lte]: optional 'optional_43' #44 + │ │ │ │ └─ item: integer #42 + │ │ │ ├─ variant_4: struct #50 + │ │ │ │ └─ [in]: list 'list_45' #46 + │ │ │ │ └─ item: integer #42 + │ │ │ └─ variant_5: struct #51 + │ │ │ └─ [notIn]: list 'list_45' #46 + │ │ │ └─ item: integer #42 + │ │ └─ [title]: optional 'optional_141' #142 + │ │ └─ item: optional '_prisma_string_filter_ex' #82 + │ │ └─ item: union #79 + │ │ ├─ variant_0: union '_prisma_string_filter' #77 + │ │ │ ├─ variant_0: string #61 + │ │ │ ├─ variant_1: struct #66 + │ │ │ │ └─ [equals]: string #61 + │ │ │ ├─ variant_2: struct #67 + │ │ │ │ └─ [not]: string #61 + │ │ │ ├─ variant_3: struct #68 + │ │ │ │ └─ [in]: list 'list_64' #65 + │ │ │ │ └─ item: string #61 + │ │ │ ├─ variant_4: struct #69 + │ │ │ │ └─ [notIn]: list 'list_64' #65 + │ │ │ │ └─ item: string #61 + │ │ │ ├─ variant_5: struct #73 + │ │ │ │ ├─ [contains]: string #61 + │ │ │ │ └─ [mode]: optional 'optional_71' #72 + │ │ │ │ └─ item: string #70 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #74 + │ │ │ │ └─ [search]: string #61 + │ │ │ └─ variant_7: struct #75 + │ │ │ ├─ [endsWith]: optional 'optional_62' #63 + │ │ │ │ └─ item: string #61 + │ │ │ └─ [startsWith]: optional 'optional_62' #63 + │ │ │ └─ item: string #61 + │ │ └─ variant_1: struct #78 + │ │ └─ [not]: union '_prisma_string_filter' #77 + │ │ ├─ variant_0: string #61 + │ │ ├─ variant_1: struct #66 + │ │ │ └─ [equals]: string #61 + │ │ ├─ variant_2: struct #67 + │ │ │ └─ [not]: string #61 + │ │ ├─ variant_3: struct #68 + │ │ │ └─ [in]: list 'list_64' #65 + │ │ │ └─ item: string #61 + │ │ ├─ variant_4: struct #69 + │ │ │ └─ [notIn]: list 'list_64' #65 + │ │ │ └─ item: string #61 + │ │ ├─ variant_5: struct #73 + │ │ │ ├─ [contains]: string #61 + │ │ │ └─ [mode]: optional 'optional_71' #72 + │ │ │ └─ item: string #70 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #74 + │ │ │ └─ [search]: string #61 + │ │ └─ variant_7: struct #75 + │ │ ├─ [endsWith]: optional 'optional_62' #63 + │ │ │ └─ item: string #61 + │ │ └─ [startsWith]: optional 'optional_62' #63 + │ │ └─ item: string #61 + │ ├─ variant_1: struct #153 + │ │ └─ [some]: optional 'optional_151' #152 + │ │ └─ item: struct 'Post_where_excluding_User' #147 + │ │ ├─ [author]: optional 'optional_144' #145 + │ │ │ └─ item: &User_where #143 + │ │ ├─ [id]: optional 'optional_139' #140 + │ │ │ └─ item: optional '_prisma_integer_filter_ex' #58 + │ │ │ └─ item: union #55 + │ │ │ ├─ variant_0: either '_prisma_integer_filter' #53 + │ │ │ │ ├─ variant_0: integer #42 + │ │ │ │ ├─ variant_1: struct #47 + │ │ │ │ │ └─ [equals]: integer #42 + │ │ │ │ ├─ variant_2: struct #48 + │ │ │ │ │ └─ [not]: integer #42 + │ │ │ │ ├─ variant_3: struct #49 + │ │ │ │ │ ├─ [gt]: optional 'optional_43' #44 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ ├─ [gte]: optional 'optional_43' #44 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ ├─ [lt]: optional 'optional_43' #44 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ └─ [lte]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ ├─ variant_4: struct #50 + │ │ │ │ │ └─ [in]: list 'list_45' #46 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ └─ variant_5: struct #51 + │ │ │ │ └─ [notIn]: list 'list_45' #46 + │ │ │ │ └─ item: integer #42 + │ │ │ └─ variant_1: struct #54 + │ │ │ └─ [not]: either '_prisma_integer_filter' #53 + │ │ │ ├─ variant_0: integer #42 + │ │ │ ├─ variant_1: struct #47 + │ │ │ │ └─ [equals]: integer #42 + │ │ │ ├─ variant_2: struct #48 + │ │ │ │ └─ [not]: integer #42 + │ │ │ ├─ variant_3: struct #49 + │ │ │ │ ├─ [gt]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ ├─ [gte]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ ├─ [lt]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ └─ [lte]: optional 'optional_43' #44 + │ │ │ │ └─ item: integer #42 + │ │ │ ├─ variant_4: struct #50 + │ │ │ │ └─ [in]: list 'list_45' #46 + │ │ │ │ └─ item: integer #42 + │ │ │ └─ variant_5: struct #51 + │ │ │ └─ [notIn]: list 'list_45' #46 + │ │ │ └─ item: integer #42 + │ │ └─ [title]: optional 'optional_141' #142 + │ │ └─ item: optional '_prisma_string_filter_ex' #82 + │ │ └─ item: union #79 + │ │ ├─ variant_0: union '_prisma_string_filter' #77 + │ │ │ ├─ variant_0: string #61 + │ │ │ ├─ variant_1: struct #66 + │ │ │ │ └─ [equals]: string #61 + │ │ │ ├─ variant_2: struct #67 + │ │ │ │ └─ [not]: string #61 + │ │ │ ├─ variant_3: struct #68 + │ │ │ │ └─ [in]: list 'list_64' #65 + │ │ │ │ └─ item: string #61 + │ │ │ ├─ variant_4: struct #69 + │ │ │ │ └─ [notIn]: list 'list_64' #65 + │ │ │ │ └─ item: string #61 + │ │ │ ├─ variant_5: struct #73 + │ │ │ │ ├─ [contains]: string #61 + │ │ │ │ └─ [mode]: optional 'optional_71' #72 + │ │ │ │ └─ item: string #70 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #74 + │ │ │ │ └─ [search]: string #61 + │ │ │ └─ variant_7: struct #75 + │ │ │ ├─ [endsWith]: optional 'optional_62' #63 + │ │ │ │ └─ item: string #61 + │ │ │ └─ [startsWith]: optional 'optional_62' #63 + │ │ │ └─ item: string #61 + │ │ └─ variant_1: struct #78 + │ │ └─ [not]: union '_prisma_string_filter' #77 + │ │ ├─ variant_0: string #61 + │ │ ├─ variant_1: struct #66 + │ │ │ └─ [equals]: string #61 + │ │ ├─ variant_2: struct #67 + │ │ │ └─ [not]: string #61 + │ │ ├─ variant_3: struct #68 + │ │ │ └─ [in]: list 'list_64' #65 + │ │ │ └─ item: string #61 + │ │ ├─ variant_4: struct #69 + │ │ │ └─ [notIn]: list 'list_64' #65 + │ │ │ └─ item: string #61 + │ │ ├─ variant_5: struct #73 + │ │ │ ├─ [contains]: string #61 + │ │ │ └─ [mode]: optional 'optional_71' #72 + │ │ │ └─ item: string #70 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #74 + │ │ │ └─ [search]: string #61 + │ │ └─ variant_7: struct #75 + │ │ ├─ [endsWith]: optional 'optional_62' #63 + │ │ │ └─ item: string #61 + │ │ └─ [startsWith]: optional 'optional_62' #63 + │ │ └─ item: string #61 + │ └─ variant_2: struct #156 + │ └─ [none]: optional 'optional_154' #155 + │ └─ item: struct 'Post_where_excluding_User' #147 + │ ├─ [author]: optional 'optional_144' #145 + │ │ └─ item: &User_where #143 + │ ├─ [id]: optional 'optional_139' #140 + │ │ └─ item: optional '_prisma_integer_filter_ex' #58 + │ │ └─ item: union #55 + │ │ ├─ variant_0: either '_prisma_integer_filter' #53 + │ │ │ ├─ variant_0: integer #42 + │ │ │ ├─ variant_1: struct #47 + │ │ │ │ └─ [equals]: integer #42 + │ │ │ ├─ variant_2: struct #48 + │ │ │ │ └─ [not]: integer #42 + │ │ │ ├─ variant_3: struct #49 + │ │ │ │ ├─ [gt]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ ├─ [gte]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ ├─ [lt]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ └─ [lte]: optional 'optional_43' #44 + │ │ │ │ └─ item: integer #42 + │ │ │ ├─ variant_4: struct #50 + │ │ │ │ └─ [in]: list 'list_45' #46 + │ │ │ │ └─ item: integer #42 + │ │ │ └─ variant_5: struct #51 + │ │ │ └─ [notIn]: list 'list_45' #46 + │ │ │ └─ item: integer #42 + │ │ └─ variant_1: struct #54 + │ │ └─ [not]: either '_prisma_integer_filter' #53 + │ │ ├─ variant_0: integer #42 + │ │ ├─ variant_1: struct #47 + │ │ │ └─ [equals]: integer #42 + │ │ ├─ variant_2: struct #48 + │ │ │ └─ [not]: integer #42 + │ │ ├─ variant_3: struct #49 + │ │ │ ├─ [gt]: optional 'optional_43' #44 + │ │ │ │ └─ item: integer #42 + │ │ │ ├─ [gte]: optional 'optional_43' #44 + │ │ │ │ └─ item: integer #42 + │ │ │ ├─ [lt]: optional 'optional_43' #44 + │ │ │ │ └─ item: integer #42 + │ │ │ └─ [lte]: optional 'optional_43' #44 + │ │ │ └─ item: integer #42 + │ │ ├─ variant_4: struct #50 + │ │ │ └─ [in]: list 'list_45' #46 + │ │ │ └─ item: integer #42 + │ │ └─ variant_5: struct #51 + │ │ └─ [notIn]: list 'list_45' #46 + │ │ └─ item: integer #42 + │ └─ [title]: optional 'optional_141' #142 + │ └─ item: optional '_prisma_string_filter_ex' #82 + │ └─ item: union #79 + │ ├─ variant_0: union '_prisma_string_filter' #77 + │ │ ├─ variant_0: string #61 + │ │ ├─ variant_1: struct #66 + │ │ │ └─ [equals]: string #61 + │ │ ├─ variant_2: struct #67 + │ │ │ └─ [not]: string #61 + │ │ ├─ variant_3: struct #68 + │ │ │ └─ [in]: list 'list_64' #65 + │ │ │ └─ item: string #61 + │ │ ├─ variant_4: struct #69 + │ │ │ └─ [notIn]: list 'list_64' #65 + │ │ │ └─ item: string #61 + │ │ ├─ variant_5: struct #73 + │ │ │ ├─ [contains]: string #61 + │ │ │ └─ [mode]: optional 'optional_71' #72 + │ │ │ └─ item: string #70 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #74 + │ │ │ └─ [search]: string #61 + │ │ └─ variant_7: struct #75 + │ │ ├─ [endsWith]: optional 'optional_62' #63 + │ │ │ └─ item: string #61 + │ │ └─ [startsWith]: optional 'optional_62' #63 + │ │ └─ item: string #61 + │ └─ variant_1: struct #78 + │ └─ [not]: union '_prisma_string_filter' #77 + │ ├─ variant_0: string #61 + │ ├─ variant_1: struct #66 + │ │ └─ [equals]: string #61 + │ ├─ variant_2: struct #67 + │ │ └─ [not]: string #61 + │ ├─ variant_3: struct #68 + │ │ └─ [in]: list 'list_64' #65 + │ │ └─ item: string #61 + │ ├─ variant_4: struct #69 + │ │ └─ [notIn]: list 'list_64' #65 + │ │ └─ item: string #61 + │ ├─ variant_5: struct #73 + │ │ ├─ [contains]: string #61 + │ │ └─ [mode]: optional 'optional_71' #72 + │ │ └─ item: string #70 enum{ '"insensitive"' } + │ ├─ variant_6: struct #74 + │ │ └─ [search]: string #61 + │ └─ variant_7: struct #75 + │ ├─ [endsWith]: optional 'optional_62' #63 + │ │ └─ item: string #61 + │ └─ [startsWith]: optional 'optional_62' #63 + │ └─ item: string #61 + ├─ [id]: optional 'optional_131' #132 + │ └─ item: integer #30 + └─ [title]: string #31 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__create_many Post out.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__create_many Post out.snap index 8fb0ba6381..7314cc7fd7 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__create_many Post out.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__create_many Post out.snap @@ -2,5 +2,5 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs expression: tp.print(out) --- -root: struct #117 -└─ [count]: integer #116 +root: struct #173 +└─ [count]: integer #172 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__create_many Record inp.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__create_many Record inp.snap index e304d59068..3fad08512c 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__create_many Record inp.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__create_many Record inp.snap @@ -2,12 +2,12 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs expression: tp.print(inp) --- -root: struct #11 -└─ [data]: list 'list_10' #10 - └─ item: struct 'Record_create_input' #9 - ├─ [age]: optional 'optional_6' #6 - │ └─ item: integer #5 +root: struct #17 +└─ [data]: list 'list_15' #16 + └─ item: struct 'Record_create_input' #14 + ├─ [age]: optional 'optional_7' #8 + │ └─ item: integer #6 ├─ [created_at]: string #1 - ├─ [id]: optional 'optional_8' #8 - │ └─ item: string #2 - └─ [name]: string #4 + ├─ [id]: optional 'optional_11' #12 + │ └─ item: string #4 + └─ [name]: string #5 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__create_many Record out.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__create_many Record out.snap index 53e2b115e0..c535c1535d 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__create_many Record out.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__create_many Record out.snap @@ -2,5 +2,5 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs expression: tp.print(out) --- -root: struct #13 -└─ [count]: integer #12 +root: struct #19 +└─ [count]: integer #18 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__create_many User inp.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__create_many User inp.snap index b9dc0c9aee..5de325b502 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__create_many User inp.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__create_many User inp.snap @@ -2,876 +2,876 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs expression: tp.print(inp) --- -root: struct #87 -└─ [data]: list 'list_86' #86 - └─ item: struct 'User_create_input' #85 - ├─ [id]: integer #15 - ├─ [name]: string #16 - └─ [posts]: optional 'optional_84' #84 - └─ item: union #83 - ├─ variant_0: struct #76 - │ └─ [create]: union #28 - │ ├─ variant_0: struct 'Post_create_input_excluding_rel_Post_User' #26 - │ │ ├─ [id]: optional 'optional_25' #25 - │ │ │ └─ item: integer #20 - │ │ └─ [title]: string #22 - │ └─ variant_1: list 'list_27' #27 - │ └─ item: struct 'Post_create_input_excluding_rel_Post_User' #26 - │ ├─ [id]: optional 'optional_25' #25 - │ │ └─ item: integer #20 - │ └─ [title]: string #22 - ├─ variant_1: struct #77 - │ └─ [connect]: union #74 - │ ├─ variant_0: struct 'Post_where' #72 - │ │ ├─ [author]: optional 'optional_71' #71 - │ │ │ └─ item: struct 'User_where_excluding_Post' #70 - │ │ │ ├─ [id]: optional 'optional_59' #59 - │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #40 - │ │ │ │ └─ item: union #39 - │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #37 - │ │ │ │ │ ├─ variant_0: integer #29 - │ │ │ │ │ ├─ variant_1: struct #32 - │ │ │ │ │ │ └─ [equals]: integer #29 - │ │ │ │ │ ├─ variant_2: struct #33 - │ │ │ │ │ │ └─ [not]: integer #29 - │ │ │ │ │ ├─ variant_3: struct #34 - │ │ │ │ │ │ ├─ [gt]: optional 'optional_30' #30 - │ │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ │ ├─ [gte]: optional 'optional_30' #30 - │ │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ │ ├─ [lt]: optional 'optional_30' #30 - │ │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ │ └─ [lte]: optional 'optional_30' #30 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ ├─ variant_4: struct #35 - │ │ │ │ │ │ └─ [in]: list 'list_31' #31 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ └─ variant_5: struct #36 - │ │ │ │ │ └─ [notIn]: list 'list_31' #31 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ └─ variant_1: struct #38 - │ │ │ │ └─ [not]: either '_prisma_integer_filter' #37 - │ │ │ │ ├─ variant_0: integer #29 - │ │ │ │ ├─ variant_1: struct #32 - │ │ │ │ │ └─ [equals]: integer #29 - │ │ │ │ ├─ variant_2: struct #33 - │ │ │ │ │ └─ [not]: integer #29 - │ │ │ │ ├─ variant_3: struct #34 - │ │ │ │ │ ├─ [gt]: optional 'optional_30' #30 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ ├─ [gte]: optional 'optional_30' #30 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ ├─ [lt]: optional 'optional_30' #30 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ └─ [lte]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ ├─ variant_4: struct #35 - │ │ │ │ │ └─ [in]: list 'list_31' #31 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ └─ variant_5: struct #36 - │ │ │ │ └─ [notIn]: list 'list_31' #31 - │ │ │ │ └─ item: integer #29 - │ │ │ ├─ [name]: optional 'optional_60' #60 - │ │ │ │ └─ item: optional '_prisma_string_filter_ex' #57 - │ │ │ │ └─ item: union #56 - │ │ │ │ ├─ variant_0: union '_prisma_string_filter' #54 - │ │ │ │ │ ├─ variant_0: string #42 - │ │ │ │ │ ├─ variant_1: struct #45 - │ │ │ │ │ │ └─ [equals]: string #42 - │ │ │ │ │ ├─ variant_2: struct #46 - │ │ │ │ │ │ └─ [not]: string #42 - │ │ │ │ │ ├─ variant_3: struct #47 - │ │ │ │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ │ │ │ └─ item: string #42 - │ │ │ │ │ ├─ variant_4: struct #48 - │ │ │ │ │ │ └─ [notIn]: list 'list_44' #44 - │ │ │ │ │ │ └─ item: string #42 - │ │ │ │ │ ├─ variant_5: struct #51 - │ │ │ │ │ │ ├─ [contains]: string #42 - │ │ │ │ │ │ └─ [mode]: optional 'optional_50' #50 - │ │ │ │ │ │ └─ item: string #49 enum{ '"insensitive"' } - │ │ │ │ │ ├─ variant_6: struct #52 - │ │ │ │ │ │ └─ [search]: string #42 - │ │ │ │ │ └─ variant_7: struct #53 - │ │ │ │ │ ├─ [endsWith]: optional 'optional_43' #43 - │ │ │ │ │ │ └─ item: string #42 - │ │ │ │ │ └─ [startsWith]: optional 'optional_43' #43 - │ │ │ │ │ └─ item: string #42 - │ │ │ │ └─ variant_1: struct #55 - │ │ │ │ └─ [not]: union '_prisma_string_filter' #54 - │ │ │ │ ├─ variant_0: string #42 - │ │ │ │ ├─ variant_1: struct #45 - │ │ │ │ │ └─ [equals]: string #42 - │ │ │ │ ├─ variant_2: struct #46 - │ │ │ │ │ └─ [not]: string #42 - │ │ │ │ ├─ variant_3: struct #47 - │ │ │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ │ │ └─ item: string #42 - │ │ │ │ ├─ variant_4: struct #48 - │ │ │ │ │ └─ [notIn]: list 'list_44' #44 - │ │ │ │ │ └─ item: string #42 - │ │ │ │ ├─ variant_5: struct #51 - │ │ │ │ │ ├─ [contains]: string #42 - │ │ │ │ │ └─ [mode]: optional 'optional_50' #50 - │ │ │ │ │ └─ item: string #49 enum{ '"insensitive"' } - │ │ │ │ ├─ variant_6: struct #52 - │ │ │ │ │ └─ [search]: string #42 - │ │ │ │ └─ variant_7: struct #53 - │ │ │ │ ├─ [endsWith]: optional 'optional_43' #43 - │ │ │ │ │ └─ item: string #42 - │ │ │ │ └─ [startsWith]: optional 'optional_43' #43 - │ │ │ │ └─ item: string #42 - │ │ │ └─ [posts]: optional 'optional_69' #69 - │ │ │ └─ item: union #68 - │ │ │ ├─ variant_0: struct #63 - │ │ │ │ └─ [every]: optional 'optional_62' #62 - │ │ │ │ └─ item: &Post_where #61 - │ │ │ ├─ variant_1: struct #65 - │ │ │ │ └─ [some]: optional 'optional_64' #64 - │ │ │ │ └─ item: &Post_where #61 - │ │ │ └─ variant_2: struct #67 - │ │ │ └─ [none]: optional 'optional_66' #66 - │ │ │ └─ item: &Post_where #61 - │ │ ├─ [id]: optional 'optional_41' #41 - │ │ │ └─ item: optional '_prisma_integer_filter_ex' #40 - │ │ │ └─ item: union #39 - │ │ │ ├─ variant_0: either '_prisma_integer_filter' #37 - │ │ │ │ ├─ variant_0: integer #29 - │ │ │ │ ├─ variant_1: struct #32 - │ │ │ │ │ └─ [equals]: integer #29 - │ │ │ │ ├─ variant_2: struct #33 - │ │ │ │ │ └─ [not]: integer #29 - │ │ │ │ ├─ variant_3: struct #34 - │ │ │ │ │ ├─ [gt]: optional 'optional_30' #30 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ ├─ [gte]: optional 'optional_30' #30 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ ├─ [lt]: optional 'optional_30' #30 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ └─ [lte]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ ├─ variant_4: struct #35 - │ │ │ │ │ └─ [in]: list 'list_31' #31 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ └─ variant_5: struct #36 - │ │ │ │ └─ [notIn]: list 'list_31' #31 - │ │ │ │ └─ item: integer #29 - │ │ │ └─ variant_1: struct #38 - │ │ │ └─ [not]: either '_prisma_integer_filter' #37 - │ │ │ ├─ variant_0: integer #29 - │ │ │ ├─ variant_1: struct #32 - │ │ │ │ └─ [equals]: integer #29 - │ │ │ ├─ variant_2: struct #33 - │ │ │ │ └─ [not]: integer #29 - │ │ │ ├─ variant_3: struct #34 - │ │ │ │ ├─ [gt]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ ├─ [gte]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ ├─ [lt]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ └─ [lte]: optional 'optional_30' #30 - │ │ │ │ └─ item: integer #29 - │ │ │ ├─ variant_4: struct #35 - │ │ │ │ └─ [in]: list 'list_31' #31 - │ │ │ │ └─ item: integer #29 - │ │ │ └─ variant_5: struct #36 - │ │ │ └─ [notIn]: list 'list_31' #31 - │ │ │ └─ item: integer #29 - │ │ └─ [title]: optional 'optional_58' #58 - │ │ └─ item: optional '_prisma_string_filter_ex' #57 - │ │ └─ item: union #56 - │ │ ├─ variant_0: union '_prisma_string_filter' #54 - │ │ │ ├─ variant_0: string #42 - │ │ │ ├─ variant_1: struct #45 - │ │ │ │ └─ [equals]: string #42 - │ │ │ ├─ variant_2: struct #46 - │ │ │ │ └─ [not]: string #42 - │ │ │ ├─ variant_3: struct #47 - │ │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ │ └─ item: string #42 - │ │ │ ├─ variant_4: struct #48 - │ │ │ │ └─ [notIn]: list 'list_44' #44 - │ │ │ │ └─ item: string #42 - │ │ │ ├─ variant_5: struct #51 - │ │ │ │ ├─ [contains]: string #42 - │ │ │ │ └─ [mode]: optional 'optional_50' #50 - │ │ │ │ └─ item: string #49 enum{ '"insensitive"' } - │ │ │ ├─ variant_6: struct #52 - │ │ │ │ └─ [search]: string #42 - │ │ │ └─ variant_7: struct #53 - │ │ │ ├─ [endsWith]: optional 'optional_43' #43 - │ │ │ │ └─ item: string #42 - │ │ │ └─ [startsWith]: optional 'optional_43' #43 - │ │ │ └─ item: string #42 - │ │ └─ variant_1: struct #55 - │ │ └─ [not]: union '_prisma_string_filter' #54 - │ │ ├─ variant_0: string #42 - │ │ ├─ variant_1: struct #45 - │ │ │ └─ [equals]: string #42 - │ │ ├─ variant_2: struct #46 - │ │ │ └─ [not]: string #42 - │ │ ├─ variant_3: struct #47 - │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ └─ item: string #42 - │ │ ├─ variant_4: struct #48 - │ │ │ └─ [notIn]: list 'list_44' #44 - │ │ │ └─ item: string #42 - │ │ ├─ variant_5: struct #51 - │ │ │ ├─ [contains]: string #42 - │ │ │ └─ [mode]: optional 'optional_50' #50 - │ │ │ └─ item: string #49 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #52 - │ │ │ └─ [search]: string #42 - │ │ └─ variant_7: struct #53 - │ │ ├─ [endsWith]: optional 'optional_43' #43 - │ │ │ └─ item: string #42 - │ │ └─ [startsWith]: optional 'optional_43' #43 - │ │ └─ item: string #42 - │ └─ variant_1: list 'list_73' #73 - │ └─ item: struct 'Post_where' #72 - │ ├─ [author]: optional 'optional_71' #71 - │ │ └─ item: struct 'User_where_excluding_Post' #70 - │ │ ├─ [id]: optional 'optional_59' #59 - │ │ │ └─ item: optional '_prisma_integer_filter_ex' #40 - │ │ │ └─ item: union #39 - │ │ │ ├─ variant_0: either '_prisma_integer_filter' #37 - │ │ │ │ ├─ variant_0: integer #29 - │ │ │ │ ├─ variant_1: struct #32 - │ │ │ │ │ └─ [equals]: integer #29 - │ │ │ │ ├─ variant_2: struct #33 - │ │ │ │ │ └─ [not]: integer #29 - │ │ │ │ ├─ variant_3: struct #34 - │ │ │ │ │ ├─ [gt]: optional 'optional_30' #30 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ ├─ [gte]: optional 'optional_30' #30 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ ├─ [lt]: optional 'optional_30' #30 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ └─ [lte]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ ├─ variant_4: struct #35 - │ │ │ │ │ └─ [in]: list 'list_31' #31 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ └─ variant_5: struct #36 - │ │ │ │ └─ [notIn]: list 'list_31' #31 - │ │ │ │ └─ item: integer #29 - │ │ │ └─ variant_1: struct #38 - │ │ │ └─ [not]: either '_prisma_integer_filter' #37 - │ │ │ ├─ variant_0: integer #29 - │ │ │ ├─ variant_1: struct #32 - │ │ │ │ └─ [equals]: integer #29 - │ │ │ ├─ variant_2: struct #33 - │ │ │ │ └─ [not]: integer #29 - │ │ │ ├─ variant_3: struct #34 - │ │ │ │ ├─ [gt]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ ├─ [gte]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ ├─ [lt]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ └─ [lte]: optional 'optional_30' #30 - │ │ │ │ └─ item: integer #29 - │ │ │ ├─ variant_4: struct #35 - │ │ │ │ └─ [in]: list 'list_31' #31 - │ │ │ │ └─ item: integer #29 - │ │ │ └─ variant_5: struct #36 - │ │ │ └─ [notIn]: list 'list_31' #31 - │ │ │ └─ item: integer #29 - │ │ ├─ [name]: optional 'optional_60' #60 - │ │ │ └─ item: optional '_prisma_string_filter_ex' #57 - │ │ │ └─ item: union #56 - │ │ │ ├─ variant_0: union '_prisma_string_filter' #54 - │ │ │ │ ├─ variant_0: string #42 - │ │ │ │ ├─ variant_1: struct #45 - │ │ │ │ │ └─ [equals]: string #42 - │ │ │ │ ├─ variant_2: struct #46 - │ │ │ │ │ └─ [not]: string #42 - │ │ │ │ ├─ variant_3: struct #47 - │ │ │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ │ │ └─ item: string #42 - │ │ │ │ ├─ variant_4: struct #48 - │ │ │ │ │ └─ [notIn]: list 'list_44' #44 - │ │ │ │ │ └─ item: string #42 - │ │ │ │ ├─ variant_5: struct #51 - │ │ │ │ │ ├─ [contains]: string #42 - │ │ │ │ │ └─ [mode]: optional 'optional_50' #50 - │ │ │ │ │ └─ item: string #49 enum{ '"insensitive"' } - │ │ │ │ ├─ variant_6: struct #52 - │ │ │ │ │ └─ [search]: string #42 - │ │ │ │ └─ variant_7: struct #53 - │ │ │ │ ├─ [endsWith]: optional 'optional_43' #43 - │ │ │ │ │ └─ item: string #42 - │ │ │ │ └─ [startsWith]: optional 'optional_43' #43 - │ │ │ │ └─ item: string #42 - │ │ │ └─ variant_1: struct #55 - │ │ │ └─ [not]: union '_prisma_string_filter' #54 - │ │ │ ├─ variant_0: string #42 - │ │ │ ├─ variant_1: struct #45 - │ │ │ │ └─ [equals]: string #42 - │ │ │ ├─ variant_2: struct #46 - │ │ │ │ └─ [not]: string #42 - │ │ │ ├─ variant_3: struct #47 - │ │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ │ └─ item: string #42 - │ │ │ ├─ variant_4: struct #48 - │ │ │ │ └─ [notIn]: list 'list_44' #44 - │ │ │ │ └─ item: string #42 - │ │ │ ├─ variant_5: struct #51 - │ │ │ │ ├─ [contains]: string #42 - │ │ │ │ └─ [mode]: optional 'optional_50' #50 - │ │ │ │ └─ item: string #49 enum{ '"insensitive"' } - │ │ │ ├─ variant_6: struct #52 - │ │ │ │ └─ [search]: string #42 - │ │ │ └─ variant_7: struct #53 - │ │ │ ├─ [endsWith]: optional 'optional_43' #43 - │ │ │ │ └─ item: string #42 - │ │ │ └─ [startsWith]: optional 'optional_43' #43 - │ │ │ └─ item: string #42 - │ │ └─ [posts]: optional 'optional_69' #69 - │ │ └─ item: union #68 - │ │ ├─ variant_0: struct #63 - │ │ │ └─ [every]: optional 'optional_62' #62 - │ │ │ └─ item: &Post_where #61 - │ │ ├─ variant_1: struct #65 - │ │ │ └─ [some]: optional 'optional_64' #64 - │ │ │ └─ item: &Post_where #61 - │ │ └─ variant_2: struct #67 - │ │ └─ [none]: optional 'optional_66' #66 - │ │ └─ item: &Post_where #61 - │ ├─ [id]: optional 'optional_41' #41 - │ │ └─ item: optional '_prisma_integer_filter_ex' #40 - │ │ └─ item: union #39 - │ │ ├─ variant_0: either '_prisma_integer_filter' #37 - │ │ │ ├─ variant_0: integer #29 - │ │ │ ├─ variant_1: struct #32 - │ │ │ │ └─ [equals]: integer #29 - │ │ │ ├─ variant_2: struct #33 - │ │ │ │ └─ [not]: integer #29 - │ │ │ ├─ variant_3: struct #34 - │ │ │ │ ├─ [gt]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ ├─ [gte]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ ├─ [lt]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ └─ [lte]: optional 'optional_30' #30 - │ │ │ │ └─ item: integer #29 - │ │ │ ├─ variant_4: struct #35 - │ │ │ │ └─ [in]: list 'list_31' #31 - │ │ │ │ └─ item: integer #29 - │ │ │ └─ variant_5: struct #36 - │ │ │ └─ [notIn]: list 'list_31' #31 - │ │ │ └─ item: integer #29 - │ │ └─ variant_1: struct #38 - │ │ └─ [not]: either '_prisma_integer_filter' #37 - │ │ ├─ variant_0: integer #29 - │ │ ├─ variant_1: struct #32 - │ │ │ └─ [equals]: integer #29 - │ │ ├─ variant_2: struct #33 - │ │ │ └─ [not]: integer #29 - │ │ ├─ variant_3: struct #34 - │ │ │ ├─ [gt]: optional 'optional_30' #30 - │ │ │ │ └─ item: integer #29 - │ │ │ ├─ [gte]: optional 'optional_30' #30 - │ │ │ │ └─ item: integer #29 - │ │ │ ├─ [lt]: optional 'optional_30' #30 - │ │ │ │ └─ item: integer #29 - │ │ │ └─ [lte]: optional 'optional_30' #30 - │ │ │ └─ item: integer #29 - │ │ ├─ variant_4: struct #35 - │ │ │ └─ [in]: list 'list_31' #31 - │ │ │ └─ item: integer #29 - │ │ └─ variant_5: struct #36 - │ │ └─ [notIn]: list 'list_31' #31 - │ │ └─ item: integer #29 - │ └─ [title]: optional 'optional_58' #58 - │ └─ item: optional '_prisma_string_filter_ex' #57 - │ └─ item: union #56 - │ ├─ variant_0: union '_prisma_string_filter' #54 - │ │ ├─ variant_0: string #42 - │ │ ├─ variant_1: struct #45 - │ │ │ └─ [equals]: string #42 - │ │ ├─ variant_2: struct #46 - │ │ │ └─ [not]: string #42 - │ │ ├─ variant_3: struct #47 - │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ └─ item: string #42 - │ │ ├─ variant_4: struct #48 - │ │ │ └─ [notIn]: list 'list_44' #44 - │ │ │ └─ item: string #42 - │ │ ├─ variant_5: struct #51 - │ │ │ ├─ [contains]: string #42 - │ │ │ └─ [mode]: optional 'optional_50' #50 - │ │ │ └─ item: string #49 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #52 - │ │ │ └─ [search]: string #42 - │ │ └─ variant_7: struct #53 - │ │ ├─ [endsWith]: optional 'optional_43' #43 - │ │ │ └─ item: string #42 - │ │ └─ [startsWith]: optional 'optional_43' #43 - │ │ └─ item: string #42 - │ └─ variant_1: struct #55 - │ └─ [not]: union '_prisma_string_filter' #54 - │ ├─ variant_0: string #42 - │ ├─ variant_1: struct #45 - │ │ └─ [equals]: string #42 - │ ├─ variant_2: struct #46 - │ │ └─ [not]: string #42 - │ ├─ variant_3: struct #47 - │ │ └─ [in]: list 'list_44' #44 - │ │ └─ item: string #42 - │ ├─ variant_4: struct #48 - │ │ └─ [notIn]: list 'list_44' #44 - │ │ └─ item: string #42 - │ ├─ variant_5: struct #51 - │ │ ├─ [contains]: string #42 - │ │ └─ [mode]: optional 'optional_50' #50 - │ │ └─ item: string #49 enum{ '"insensitive"' } - │ ├─ variant_6: struct #52 - │ │ └─ [search]: string #42 - │ └─ variant_7: struct #53 - │ ├─ [endsWith]: optional 'optional_43' #43 - │ │ └─ item: string #42 - │ └─ [startsWith]: optional 'optional_43' #43 - │ └─ item: string #42 - ├─ variant_2: struct #78 - │ └─ [connectOrCreate]: struct #75 - │ ├─ [create]: union #28 - │ │ ├─ variant_0: struct 'Post_create_input_excluding_rel_Post_User' #26 - │ │ │ ├─ [id]: optional 'optional_25' #25 - │ │ │ │ └─ item: integer #20 - │ │ │ └─ [title]: string #22 - │ │ └─ variant_1: list 'list_27' #27 - │ │ └─ item: struct 'Post_create_input_excluding_rel_Post_User' #26 - │ │ ├─ [id]: optional 'optional_25' #25 - │ │ │ └─ item: integer #20 - │ │ └─ [title]: string #22 - │ └─ [where]: union #74 - │ ├─ variant_0: struct 'Post_where' #72 - │ │ ├─ [author]: optional 'optional_71' #71 - │ │ │ └─ item: struct 'User_where_excluding_Post' #70 - │ │ │ ├─ [id]: optional 'optional_59' #59 - │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #40 - │ │ │ │ └─ item: union #39 - │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #37 - │ │ │ │ │ ├─ variant_0: integer #29 - │ │ │ │ │ ├─ variant_1: struct #32 - │ │ │ │ │ │ └─ [equals]: integer #29 - │ │ │ │ │ ├─ variant_2: struct #33 - │ │ │ │ │ │ └─ [not]: integer #29 - │ │ │ │ │ ├─ variant_3: struct #34 - │ │ │ │ │ │ ├─ [gt]: optional 'optional_30' #30 - │ │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ │ ├─ [gte]: optional 'optional_30' #30 - │ │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ │ ├─ [lt]: optional 'optional_30' #30 - │ │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ │ └─ [lte]: optional 'optional_30' #30 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ ├─ variant_4: struct #35 - │ │ │ │ │ │ └─ [in]: list 'list_31' #31 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ └─ variant_5: struct #36 - │ │ │ │ │ └─ [notIn]: list 'list_31' #31 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ └─ variant_1: struct #38 - │ │ │ │ └─ [not]: either '_prisma_integer_filter' #37 - │ │ │ │ ├─ variant_0: integer #29 - │ │ │ │ ├─ variant_1: struct #32 - │ │ │ │ │ └─ [equals]: integer #29 - │ │ │ │ ├─ variant_2: struct #33 - │ │ │ │ │ └─ [not]: integer #29 - │ │ │ │ ├─ variant_3: struct #34 - │ │ │ │ │ ├─ [gt]: optional 'optional_30' #30 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ ├─ [gte]: optional 'optional_30' #30 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ ├─ [lt]: optional 'optional_30' #30 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ └─ [lte]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ ├─ variant_4: struct #35 - │ │ │ │ │ └─ [in]: list 'list_31' #31 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ └─ variant_5: struct #36 - │ │ │ │ └─ [notIn]: list 'list_31' #31 - │ │ │ │ └─ item: integer #29 - │ │ │ ├─ [name]: optional 'optional_60' #60 - │ │ │ │ └─ item: optional '_prisma_string_filter_ex' #57 - │ │ │ │ └─ item: union #56 - │ │ │ │ ├─ variant_0: union '_prisma_string_filter' #54 - │ │ │ │ │ ├─ variant_0: string #42 - │ │ │ │ │ ├─ variant_1: struct #45 - │ │ │ │ │ │ └─ [equals]: string #42 - │ │ │ │ │ ├─ variant_2: struct #46 - │ │ │ │ │ │ └─ [not]: string #42 - │ │ │ │ │ ├─ variant_3: struct #47 - │ │ │ │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ │ │ │ └─ item: string #42 - │ │ │ │ │ ├─ variant_4: struct #48 - │ │ │ │ │ │ └─ [notIn]: list 'list_44' #44 - │ │ │ │ │ │ └─ item: string #42 - │ │ │ │ │ ├─ variant_5: struct #51 - │ │ │ │ │ │ ├─ [contains]: string #42 - │ │ │ │ │ │ └─ [mode]: optional 'optional_50' #50 - │ │ │ │ │ │ └─ item: string #49 enum{ '"insensitive"' } - │ │ │ │ │ ├─ variant_6: struct #52 - │ │ │ │ │ │ └─ [search]: string #42 - │ │ │ │ │ └─ variant_7: struct #53 - │ │ │ │ │ ├─ [endsWith]: optional 'optional_43' #43 - │ │ │ │ │ │ └─ item: string #42 - │ │ │ │ │ └─ [startsWith]: optional 'optional_43' #43 - │ │ │ │ │ └─ item: string #42 - │ │ │ │ └─ variant_1: struct #55 - │ │ │ │ └─ [not]: union '_prisma_string_filter' #54 - │ │ │ │ ├─ variant_0: string #42 - │ │ │ │ ├─ variant_1: struct #45 - │ │ │ │ │ └─ [equals]: string #42 - │ │ │ │ ├─ variant_2: struct #46 - │ │ │ │ │ └─ [not]: string #42 - │ │ │ │ ├─ variant_3: struct #47 - │ │ │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ │ │ └─ item: string #42 - │ │ │ │ ├─ variant_4: struct #48 - │ │ │ │ │ └─ [notIn]: list 'list_44' #44 - │ │ │ │ │ └─ item: string #42 - │ │ │ │ ├─ variant_5: struct #51 - │ │ │ │ │ ├─ [contains]: string #42 - │ │ │ │ │ └─ [mode]: optional 'optional_50' #50 - │ │ │ │ │ └─ item: string #49 enum{ '"insensitive"' } - │ │ │ │ ├─ variant_6: struct #52 - │ │ │ │ │ └─ [search]: string #42 - │ │ │ │ └─ variant_7: struct #53 - │ │ │ │ ├─ [endsWith]: optional 'optional_43' #43 - │ │ │ │ │ └─ item: string #42 - │ │ │ │ └─ [startsWith]: optional 'optional_43' #43 - │ │ │ │ └─ item: string #42 - │ │ │ └─ [posts]: optional 'optional_69' #69 - │ │ │ └─ item: union #68 - │ │ │ ├─ variant_0: struct #63 - │ │ │ │ └─ [every]: optional 'optional_62' #62 - │ │ │ │ └─ item: &Post_where #61 - │ │ │ ├─ variant_1: struct #65 - │ │ │ │ └─ [some]: optional 'optional_64' #64 - │ │ │ │ └─ item: &Post_where #61 - │ │ │ └─ variant_2: struct #67 - │ │ │ └─ [none]: optional 'optional_66' #66 - │ │ │ └─ item: &Post_where #61 - │ │ ├─ [id]: optional 'optional_41' #41 - │ │ │ └─ item: optional '_prisma_integer_filter_ex' #40 - │ │ │ └─ item: union #39 - │ │ │ ├─ variant_0: either '_prisma_integer_filter' #37 - │ │ │ │ ├─ variant_0: integer #29 - │ │ │ │ ├─ variant_1: struct #32 - │ │ │ │ │ └─ [equals]: integer #29 - │ │ │ │ ├─ variant_2: struct #33 - │ │ │ │ │ └─ [not]: integer #29 - │ │ │ │ ├─ variant_3: struct #34 - │ │ │ │ │ ├─ [gt]: optional 'optional_30' #30 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ ├─ [gte]: optional 'optional_30' #30 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ ├─ [lt]: optional 'optional_30' #30 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ └─ [lte]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ ├─ variant_4: struct #35 - │ │ │ │ │ └─ [in]: list 'list_31' #31 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ └─ variant_5: struct #36 - │ │ │ │ └─ [notIn]: list 'list_31' #31 - │ │ │ │ └─ item: integer #29 - │ │ │ └─ variant_1: struct #38 - │ │ │ └─ [not]: either '_prisma_integer_filter' #37 - │ │ │ ├─ variant_0: integer #29 - │ │ │ ├─ variant_1: struct #32 - │ │ │ │ └─ [equals]: integer #29 - │ │ │ ├─ variant_2: struct #33 - │ │ │ │ └─ [not]: integer #29 - │ │ │ ├─ variant_3: struct #34 - │ │ │ │ ├─ [gt]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ ├─ [gte]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ ├─ [lt]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ └─ [lte]: optional 'optional_30' #30 - │ │ │ │ └─ item: integer #29 - │ │ │ ├─ variant_4: struct #35 - │ │ │ │ └─ [in]: list 'list_31' #31 - │ │ │ │ └─ item: integer #29 - │ │ │ └─ variant_5: struct #36 - │ │ │ └─ [notIn]: list 'list_31' #31 - │ │ │ └─ item: integer #29 - │ │ └─ [title]: optional 'optional_58' #58 - │ │ └─ item: optional '_prisma_string_filter_ex' #57 - │ │ └─ item: union #56 - │ │ ├─ variant_0: union '_prisma_string_filter' #54 - │ │ │ ├─ variant_0: string #42 - │ │ │ ├─ variant_1: struct #45 - │ │ │ │ └─ [equals]: string #42 - │ │ │ ├─ variant_2: struct #46 - │ │ │ │ └─ [not]: string #42 - │ │ │ ├─ variant_3: struct #47 - │ │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ │ └─ item: string #42 - │ │ │ ├─ variant_4: struct #48 - │ │ │ │ └─ [notIn]: list 'list_44' #44 - │ │ │ │ └─ item: string #42 - │ │ │ ├─ variant_5: struct #51 - │ │ │ │ ├─ [contains]: string #42 - │ │ │ │ └─ [mode]: optional 'optional_50' #50 - │ │ │ │ └─ item: string #49 enum{ '"insensitive"' } - │ │ │ ├─ variant_6: struct #52 - │ │ │ │ └─ [search]: string #42 - │ │ │ └─ variant_7: struct #53 - │ │ │ ├─ [endsWith]: optional 'optional_43' #43 - │ │ │ │ └─ item: string #42 - │ │ │ └─ [startsWith]: optional 'optional_43' #43 - │ │ │ └─ item: string #42 - │ │ └─ variant_1: struct #55 - │ │ └─ [not]: union '_prisma_string_filter' #54 - │ │ ├─ variant_0: string #42 - │ │ ├─ variant_1: struct #45 - │ │ │ └─ [equals]: string #42 - │ │ ├─ variant_2: struct #46 - │ │ │ └─ [not]: string #42 - │ │ ├─ variant_3: struct #47 - │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ └─ item: string #42 - │ │ ├─ variant_4: struct #48 - │ │ │ └─ [notIn]: list 'list_44' #44 - │ │ │ └─ item: string #42 - │ │ ├─ variant_5: struct #51 - │ │ │ ├─ [contains]: string #42 - │ │ │ └─ [mode]: optional 'optional_50' #50 - │ │ │ └─ item: string #49 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #52 - │ │ │ └─ [search]: string #42 - │ │ └─ variant_7: struct #53 - │ │ ├─ [endsWith]: optional 'optional_43' #43 - │ │ │ └─ item: string #42 - │ │ └─ [startsWith]: optional 'optional_43' #43 - │ │ └─ item: string #42 - │ └─ variant_1: list 'list_73' #73 - │ └─ item: struct 'Post_where' #72 - │ ├─ [author]: optional 'optional_71' #71 - │ │ └─ item: struct 'User_where_excluding_Post' #70 - │ │ ├─ [id]: optional 'optional_59' #59 - │ │ │ └─ item: optional '_prisma_integer_filter_ex' #40 - │ │ │ └─ item: union #39 - │ │ │ ├─ variant_0: either '_prisma_integer_filter' #37 - │ │ │ │ ├─ variant_0: integer #29 - │ │ │ │ ├─ variant_1: struct #32 - │ │ │ │ │ └─ [equals]: integer #29 - │ │ │ │ ├─ variant_2: struct #33 - │ │ │ │ │ └─ [not]: integer #29 - │ │ │ │ ├─ variant_3: struct #34 - │ │ │ │ │ ├─ [gt]: optional 'optional_30' #30 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ ├─ [gte]: optional 'optional_30' #30 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ ├─ [lt]: optional 'optional_30' #30 - │ │ │ │ │ │ └─ item: integer #29 - │ │ │ │ │ └─ [lte]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ ├─ variant_4: struct #35 - │ │ │ │ │ └─ [in]: list 'list_31' #31 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ └─ variant_5: struct #36 - │ │ │ │ └─ [notIn]: list 'list_31' #31 - │ │ │ │ └─ item: integer #29 - │ │ │ └─ variant_1: struct #38 - │ │ │ └─ [not]: either '_prisma_integer_filter' #37 - │ │ │ ├─ variant_0: integer #29 - │ │ │ ├─ variant_1: struct #32 - │ │ │ │ └─ [equals]: integer #29 - │ │ │ ├─ variant_2: struct #33 - │ │ │ │ └─ [not]: integer #29 - │ │ │ ├─ variant_3: struct #34 - │ │ │ │ ├─ [gt]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ ├─ [gte]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ ├─ [lt]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ └─ [lte]: optional 'optional_30' #30 - │ │ │ │ └─ item: integer #29 - │ │ │ ├─ variant_4: struct #35 - │ │ │ │ └─ [in]: list 'list_31' #31 - │ │ │ │ └─ item: integer #29 - │ │ │ └─ variant_5: struct #36 - │ │ │ └─ [notIn]: list 'list_31' #31 - │ │ │ └─ item: integer #29 - │ │ ├─ [name]: optional 'optional_60' #60 - │ │ │ └─ item: optional '_prisma_string_filter_ex' #57 - │ │ │ └─ item: union #56 - │ │ │ ├─ variant_0: union '_prisma_string_filter' #54 - │ │ │ │ ├─ variant_0: string #42 - │ │ │ │ ├─ variant_1: struct #45 - │ │ │ │ │ └─ [equals]: string #42 - │ │ │ │ ├─ variant_2: struct #46 - │ │ │ │ │ └─ [not]: string #42 - │ │ │ │ ├─ variant_3: struct #47 - │ │ │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ │ │ └─ item: string #42 - │ │ │ │ ├─ variant_4: struct #48 - │ │ │ │ │ └─ [notIn]: list 'list_44' #44 - │ │ │ │ │ └─ item: string #42 - │ │ │ │ ├─ variant_5: struct #51 - │ │ │ │ │ ├─ [contains]: string #42 - │ │ │ │ │ └─ [mode]: optional 'optional_50' #50 - │ │ │ │ │ └─ item: string #49 enum{ '"insensitive"' } - │ │ │ │ ├─ variant_6: struct #52 - │ │ │ │ │ └─ [search]: string #42 - │ │ │ │ └─ variant_7: struct #53 - │ │ │ │ ├─ [endsWith]: optional 'optional_43' #43 - │ │ │ │ │ └─ item: string #42 - │ │ │ │ └─ [startsWith]: optional 'optional_43' #43 - │ │ │ │ └─ item: string #42 - │ │ │ └─ variant_1: struct #55 - │ │ │ └─ [not]: union '_prisma_string_filter' #54 - │ │ │ ├─ variant_0: string #42 - │ │ │ ├─ variant_1: struct #45 - │ │ │ │ └─ [equals]: string #42 - │ │ │ ├─ variant_2: struct #46 - │ │ │ │ └─ [not]: string #42 - │ │ │ ├─ variant_3: struct #47 - │ │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ │ └─ item: string #42 - │ │ │ ├─ variant_4: struct #48 - │ │ │ │ └─ [notIn]: list 'list_44' #44 - │ │ │ │ └─ item: string #42 - │ │ │ ├─ variant_5: struct #51 - │ │ │ │ ├─ [contains]: string #42 - │ │ │ │ └─ [mode]: optional 'optional_50' #50 - │ │ │ │ └─ item: string #49 enum{ '"insensitive"' } - │ │ │ ├─ variant_6: struct #52 - │ │ │ │ └─ [search]: string #42 - │ │ │ └─ variant_7: struct #53 - │ │ │ ├─ [endsWith]: optional 'optional_43' #43 - │ │ │ │ └─ item: string #42 - │ │ │ └─ [startsWith]: optional 'optional_43' #43 - │ │ │ └─ item: string #42 - │ │ └─ [posts]: optional 'optional_69' #69 - │ │ └─ item: union #68 - │ │ ├─ variant_0: struct #63 - │ │ │ └─ [every]: optional 'optional_62' #62 - │ │ │ └─ item: &Post_where #61 - │ │ ├─ variant_1: struct #65 - │ │ │ └─ [some]: optional 'optional_64' #64 - │ │ │ └─ item: &Post_where #61 - │ │ └─ variant_2: struct #67 - │ │ └─ [none]: optional 'optional_66' #66 - │ │ └─ item: &Post_where #61 - │ ├─ [id]: optional 'optional_41' #41 - │ │ └─ item: optional '_prisma_integer_filter_ex' #40 - │ │ └─ item: union #39 - │ │ ├─ variant_0: either '_prisma_integer_filter' #37 - │ │ │ ├─ variant_0: integer #29 - │ │ │ ├─ variant_1: struct #32 - │ │ │ │ └─ [equals]: integer #29 - │ │ │ ├─ variant_2: struct #33 - │ │ │ │ └─ [not]: integer #29 - │ │ │ ├─ variant_3: struct #34 - │ │ │ │ ├─ [gt]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ ├─ [gte]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ ├─ [lt]: optional 'optional_30' #30 - │ │ │ │ │ └─ item: integer #29 - │ │ │ │ └─ [lte]: optional 'optional_30' #30 - │ │ │ │ └─ item: integer #29 - │ │ │ ├─ variant_4: struct #35 - │ │ │ │ └─ [in]: list 'list_31' #31 - │ │ │ │ └─ item: integer #29 - │ │ │ └─ variant_5: struct #36 - │ │ │ └─ [notIn]: list 'list_31' #31 - │ │ │ └─ item: integer #29 - │ │ └─ variant_1: struct #38 - │ │ └─ [not]: either '_prisma_integer_filter' #37 - │ │ ├─ variant_0: integer #29 - │ │ ├─ variant_1: struct #32 - │ │ │ └─ [equals]: integer #29 - │ │ ├─ variant_2: struct #33 - │ │ │ └─ [not]: integer #29 - │ │ ├─ variant_3: struct #34 - │ │ │ ├─ [gt]: optional 'optional_30' #30 - │ │ │ │ └─ item: integer #29 - │ │ │ ├─ [gte]: optional 'optional_30' #30 - │ │ │ │ └─ item: integer #29 - │ │ │ ├─ [lt]: optional 'optional_30' #30 - │ │ │ │ └─ item: integer #29 - │ │ │ └─ [lte]: optional 'optional_30' #30 - │ │ │ └─ item: integer #29 - │ │ ├─ variant_4: struct #35 - │ │ │ └─ [in]: list 'list_31' #31 - │ │ │ └─ item: integer #29 - │ │ └─ variant_5: struct #36 - │ │ └─ [notIn]: list 'list_31' #31 - │ │ └─ item: integer #29 - │ └─ [title]: optional 'optional_58' #58 - │ └─ item: optional '_prisma_string_filter_ex' #57 - │ └─ item: union #56 - │ ├─ variant_0: union '_prisma_string_filter' #54 - │ │ ├─ variant_0: string #42 - │ │ ├─ variant_1: struct #45 - │ │ │ └─ [equals]: string #42 - │ │ ├─ variant_2: struct #46 - │ │ │ └─ [not]: string #42 - │ │ ├─ variant_3: struct #47 - │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ └─ item: string #42 - │ │ ├─ variant_4: struct #48 - │ │ │ └─ [notIn]: list 'list_44' #44 - │ │ │ └─ item: string #42 - │ │ ├─ variant_5: struct #51 - │ │ │ ├─ [contains]: string #42 - │ │ │ └─ [mode]: optional 'optional_50' #50 - │ │ │ └─ item: string #49 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #52 - │ │ │ └─ [search]: string #42 - │ │ └─ variant_7: struct #53 - │ │ ├─ [endsWith]: optional 'optional_43' #43 - │ │ │ └─ item: string #42 - │ │ └─ [startsWith]: optional 'optional_43' #43 - │ │ └─ item: string #42 - │ └─ variant_1: struct #55 - │ └─ [not]: union '_prisma_string_filter' #54 - │ ├─ variant_0: string #42 - │ ├─ variant_1: struct #45 - │ │ └─ [equals]: string #42 - │ ├─ variant_2: struct #46 - │ │ └─ [not]: string #42 - │ ├─ variant_3: struct #47 - │ │ └─ [in]: list 'list_44' #44 - │ │ └─ item: string #42 - │ ├─ variant_4: struct #48 - │ │ └─ [notIn]: list 'list_44' #44 - │ │ └─ item: string #42 - │ ├─ variant_5: struct #51 - │ │ ├─ [contains]: string #42 - │ │ └─ [mode]: optional 'optional_50' #50 - │ │ └─ item: string #49 enum{ '"insensitive"' } - │ ├─ variant_6: struct #52 - │ │ └─ [search]: string #42 - │ └─ variant_7: struct #53 - │ ├─ [endsWith]: optional 'optional_43' #43 - │ │ └─ item: string #42 - │ └─ [startsWith]: optional 'optional_43' #43 - │ └─ item: string #42 - └─ variant_3: struct #82 - └─ [createMany]: optional 'optional_81' #81 - └─ item: struct #80 - └─ [data]: list 'list_79' #79 - └─ item: union #28 - ├─ variant_0: struct 'Post_create_input_excluding_rel_Post_User' #26 - │ ├─ [id]: optional 'optional_25' #25 - │ │ └─ item: integer #20 - │ └─ [title]: string #22 - └─ variant_1: list 'list_27' #27 - └─ item: struct 'Post_create_input_excluding_rel_Post_User' #26 - ├─ [id]: optional 'optional_25' #25 - │ └─ item: integer #20 - └─ [title]: string #22 +root: struct #128 +└─ [data]: list 'list_126' #127 + └─ item: struct 'User_create_input' #125 + ├─ [id]: integer #21 + ├─ [name]: string #22 + └─ [posts]: optional 'optional_122' #123 + └─ item: union #121 + ├─ variant_0: struct #112 + │ └─ [create]: union #41 + │ ├─ variant_0: struct 'Post_create_input_excluding_rel_Post_User' #38 + │ │ ├─ [id]: optional 'optional_35' #36 + │ │ │ └─ item: integer #30 + │ │ └─ [title]: string #31 + │ └─ variant_1: list 'list_39' #40 + │ └─ item: struct 'Post_create_input_excluding_rel_Post_User' #38 + │ ├─ [id]: optional 'optional_35' #36 + │ │ └─ item: integer #30 + │ └─ [title]: string #31 + ├─ variant_1: struct #113 + │ └─ [connect]: union #110 + │ ├─ variant_0: struct 'Post_where' #107 + │ │ ├─ [author]: optional 'optional_104' #105 + │ │ │ └─ item: struct 'User_where_excluding_Post' #103 + │ │ │ ├─ [id]: optional 'optional_85' #86 + │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #58 + │ │ │ │ └─ item: union #55 + │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #53 + │ │ │ │ │ ├─ variant_0: integer #42 + │ │ │ │ │ ├─ variant_1: struct #47 + │ │ │ │ │ │ └─ [equals]: integer #42 + │ │ │ │ │ ├─ variant_2: struct #48 + │ │ │ │ │ │ └─ [not]: integer #42 + │ │ │ │ │ ├─ variant_3: struct #49 + │ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #44 + │ │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #44 + │ │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #44 + │ │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ │ └─ [lte]: optional 'optional_43' #44 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ ├─ variant_4: struct #50 + │ │ │ │ │ │ └─ [in]: list 'list_45' #46 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ └─ variant_5: struct #51 + │ │ │ │ │ └─ [notIn]: list 'list_45' #46 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ └─ variant_1: struct #54 + │ │ │ │ └─ [not]: either '_prisma_integer_filter' #53 + │ │ │ │ ├─ variant_0: integer #42 + │ │ │ │ ├─ variant_1: struct #47 + │ │ │ │ │ └─ [equals]: integer #42 + │ │ │ │ ├─ variant_2: struct #48 + │ │ │ │ │ └─ [not]: integer #42 + │ │ │ │ ├─ variant_3: struct #49 + │ │ │ │ │ ├─ [gt]: optional 'optional_43' #44 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ ├─ [gte]: optional 'optional_43' #44 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ ├─ [lt]: optional 'optional_43' #44 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ └─ [lte]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ ├─ variant_4: struct #50 + │ │ │ │ │ └─ [in]: list 'list_45' #46 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ └─ variant_5: struct #51 + │ │ │ │ └─ [notIn]: list 'list_45' #46 + │ │ │ │ └─ item: integer #42 + │ │ │ ├─ [name]: optional 'optional_87' #88 + │ │ │ │ └─ item: optional '_prisma_string_filter_ex' #82 + │ │ │ │ └─ item: union #79 + │ │ │ │ ├─ variant_0: union '_prisma_string_filter' #77 + │ │ │ │ │ ├─ variant_0: string #61 + │ │ │ │ │ ├─ variant_1: struct #66 + │ │ │ │ │ │ └─ [equals]: string #61 + │ │ │ │ │ ├─ variant_2: struct #67 + │ │ │ │ │ │ └─ [not]: string #61 + │ │ │ │ │ ├─ variant_3: struct #68 + │ │ │ │ │ │ └─ [in]: list 'list_64' #65 + │ │ │ │ │ │ └─ item: string #61 + │ │ │ │ │ ├─ variant_4: struct #69 + │ │ │ │ │ │ └─ [notIn]: list 'list_64' #65 + │ │ │ │ │ │ └─ item: string #61 + │ │ │ │ │ ├─ variant_5: struct #73 + │ │ │ │ │ │ ├─ [contains]: string #61 + │ │ │ │ │ │ └─ [mode]: optional 'optional_71' #72 + │ │ │ │ │ │ └─ item: string #70 enum{ '"insensitive"' } + │ │ │ │ │ ├─ variant_6: struct #74 + │ │ │ │ │ │ └─ [search]: string #61 + │ │ │ │ │ └─ variant_7: struct #75 + │ │ │ │ │ ├─ [endsWith]: optional 'optional_62' #63 + │ │ │ │ │ │ └─ item: string #61 + │ │ │ │ │ └─ [startsWith]: optional 'optional_62' #63 + │ │ │ │ │ └─ item: string #61 + │ │ │ │ └─ variant_1: struct #78 + │ │ │ │ └─ [not]: union '_prisma_string_filter' #77 + │ │ │ │ ├─ variant_0: string #61 + │ │ │ │ ├─ variant_1: struct #66 + │ │ │ │ │ └─ [equals]: string #61 + │ │ │ │ ├─ variant_2: struct #67 + │ │ │ │ │ └─ [not]: string #61 + │ │ │ │ ├─ variant_3: struct #68 + │ │ │ │ │ └─ [in]: list 'list_64' #65 + │ │ │ │ │ └─ item: string #61 + │ │ │ │ ├─ variant_4: struct #69 + │ │ │ │ │ └─ [notIn]: list 'list_64' #65 + │ │ │ │ │ └─ item: string #61 + │ │ │ │ ├─ variant_5: struct #73 + │ │ │ │ │ ├─ [contains]: string #61 + │ │ │ │ │ └─ [mode]: optional 'optional_71' #72 + │ │ │ │ │ └─ item: string #70 enum{ '"insensitive"' } + │ │ │ │ ├─ variant_6: struct #74 + │ │ │ │ │ └─ [search]: string #61 + │ │ │ │ └─ variant_7: struct #75 + │ │ │ │ ├─ [endsWith]: optional 'optional_62' #63 + │ │ │ │ │ └─ item: string #61 + │ │ │ │ └─ [startsWith]: optional 'optional_62' #63 + │ │ │ │ └─ item: string #61 + │ │ │ └─ [posts]: optional 'optional_100' #101 + │ │ │ └─ item: union #99 + │ │ │ ├─ variant_0: struct #92 + │ │ │ │ └─ [every]: optional 'optional_90' #91 + │ │ │ │ └─ item: &Post_where #89 + │ │ │ ├─ variant_1: struct #95 + │ │ │ │ └─ [some]: optional 'optional_93' #94 + │ │ │ │ └─ item: &Post_where #89 + │ │ │ └─ variant_2: struct #98 + │ │ │ └─ [none]: optional 'optional_96' #97 + │ │ │ └─ item: &Post_where #89 + │ │ ├─ [id]: optional 'optional_59' #60 + │ │ │ └─ item: optional '_prisma_integer_filter_ex' #58 + │ │ │ └─ item: union #55 + │ │ │ ├─ variant_0: either '_prisma_integer_filter' #53 + │ │ │ │ ├─ variant_0: integer #42 + │ │ │ │ ├─ variant_1: struct #47 + │ │ │ │ │ └─ [equals]: integer #42 + │ │ │ │ ├─ variant_2: struct #48 + │ │ │ │ │ └─ [not]: integer #42 + │ │ │ │ ├─ variant_3: struct #49 + │ │ │ │ │ ├─ [gt]: optional 'optional_43' #44 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ ├─ [gte]: optional 'optional_43' #44 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ ├─ [lt]: optional 'optional_43' #44 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ └─ [lte]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ ├─ variant_4: struct #50 + │ │ │ │ │ └─ [in]: list 'list_45' #46 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ └─ variant_5: struct #51 + │ │ │ │ └─ [notIn]: list 'list_45' #46 + │ │ │ │ └─ item: integer #42 + │ │ │ └─ variant_1: struct #54 + │ │ │ └─ [not]: either '_prisma_integer_filter' #53 + │ │ │ ├─ variant_0: integer #42 + │ │ │ ├─ variant_1: struct #47 + │ │ │ │ └─ [equals]: integer #42 + │ │ │ ├─ variant_2: struct #48 + │ │ │ │ └─ [not]: integer #42 + │ │ │ ├─ variant_3: struct #49 + │ │ │ │ ├─ [gt]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ ├─ [gte]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ ├─ [lt]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ └─ [lte]: optional 'optional_43' #44 + │ │ │ │ └─ item: integer #42 + │ │ │ ├─ variant_4: struct #50 + │ │ │ │ └─ [in]: list 'list_45' #46 + │ │ │ │ └─ item: integer #42 + │ │ │ └─ variant_5: struct #51 + │ │ │ └─ [notIn]: list 'list_45' #46 + │ │ │ └─ item: integer #42 + │ │ └─ [title]: optional 'optional_83' #84 + │ │ └─ item: optional '_prisma_string_filter_ex' #82 + │ │ └─ item: union #79 + │ │ ├─ variant_0: union '_prisma_string_filter' #77 + │ │ │ ├─ variant_0: string #61 + │ │ │ ├─ variant_1: struct #66 + │ │ │ │ └─ [equals]: string #61 + │ │ │ ├─ variant_2: struct #67 + │ │ │ │ └─ [not]: string #61 + │ │ │ ├─ variant_3: struct #68 + │ │ │ │ └─ [in]: list 'list_64' #65 + │ │ │ │ └─ item: string #61 + │ │ │ ├─ variant_4: struct #69 + │ │ │ │ └─ [notIn]: list 'list_64' #65 + │ │ │ │ └─ item: string #61 + │ │ │ ├─ variant_5: struct #73 + │ │ │ │ ├─ [contains]: string #61 + │ │ │ │ └─ [mode]: optional 'optional_71' #72 + │ │ │ │ └─ item: string #70 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #74 + │ │ │ │ └─ [search]: string #61 + │ │ │ └─ variant_7: struct #75 + │ │ │ ├─ [endsWith]: optional 'optional_62' #63 + │ │ │ │ └─ item: string #61 + │ │ │ └─ [startsWith]: optional 'optional_62' #63 + │ │ │ └─ item: string #61 + │ │ └─ variant_1: struct #78 + │ │ └─ [not]: union '_prisma_string_filter' #77 + │ │ ├─ variant_0: string #61 + │ │ ├─ variant_1: struct #66 + │ │ │ └─ [equals]: string #61 + │ │ ├─ variant_2: struct #67 + │ │ │ └─ [not]: string #61 + │ │ ├─ variant_3: struct #68 + │ │ │ └─ [in]: list 'list_64' #65 + │ │ │ └─ item: string #61 + │ │ ├─ variant_4: struct #69 + │ │ │ └─ [notIn]: list 'list_64' #65 + │ │ │ └─ item: string #61 + │ │ ├─ variant_5: struct #73 + │ │ │ ├─ [contains]: string #61 + │ │ │ └─ [mode]: optional 'optional_71' #72 + │ │ │ └─ item: string #70 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #74 + │ │ │ └─ [search]: string #61 + │ │ └─ variant_7: struct #75 + │ │ ├─ [endsWith]: optional 'optional_62' #63 + │ │ │ └─ item: string #61 + │ │ └─ [startsWith]: optional 'optional_62' #63 + │ │ └─ item: string #61 + │ └─ variant_1: list 'list_108' #109 + │ └─ item: struct 'Post_where' #107 + │ ├─ [author]: optional 'optional_104' #105 + │ │ └─ item: struct 'User_where_excluding_Post' #103 + │ │ ├─ [id]: optional 'optional_85' #86 + │ │ │ └─ item: optional '_prisma_integer_filter_ex' #58 + │ │ │ └─ item: union #55 + │ │ │ ├─ variant_0: either '_prisma_integer_filter' #53 + │ │ │ │ ├─ variant_0: integer #42 + │ │ │ │ ├─ variant_1: struct #47 + │ │ │ │ │ └─ [equals]: integer #42 + │ │ │ │ ├─ variant_2: struct #48 + │ │ │ │ │ └─ [not]: integer #42 + │ │ │ │ ├─ variant_3: struct #49 + │ │ │ │ │ ├─ [gt]: optional 'optional_43' #44 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ ├─ [gte]: optional 'optional_43' #44 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ ├─ [lt]: optional 'optional_43' #44 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ └─ [lte]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ ├─ variant_4: struct #50 + │ │ │ │ │ └─ [in]: list 'list_45' #46 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ └─ variant_5: struct #51 + │ │ │ │ └─ [notIn]: list 'list_45' #46 + │ │ │ │ └─ item: integer #42 + │ │ │ └─ variant_1: struct #54 + │ │ │ └─ [not]: either '_prisma_integer_filter' #53 + │ │ │ ├─ variant_0: integer #42 + │ │ │ ├─ variant_1: struct #47 + │ │ │ │ └─ [equals]: integer #42 + │ │ │ ├─ variant_2: struct #48 + │ │ │ │ └─ [not]: integer #42 + │ │ │ ├─ variant_3: struct #49 + │ │ │ │ ├─ [gt]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ ├─ [gte]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ ├─ [lt]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ └─ [lte]: optional 'optional_43' #44 + │ │ │ │ └─ item: integer #42 + │ │ │ ├─ variant_4: struct #50 + │ │ │ │ └─ [in]: list 'list_45' #46 + │ │ │ │ └─ item: integer #42 + │ │ │ └─ variant_5: struct #51 + │ │ │ └─ [notIn]: list 'list_45' #46 + │ │ │ └─ item: integer #42 + │ │ ├─ [name]: optional 'optional_87' #88 + │ │ │ └─ item: optional '_prisma_string_filter_ex' #82 + │ │ │ └─ item: union #79 + │ │ │ ├─ variant_0: union '_prisma_string_filter' #77 + │ │ │ │ ├─ variant_0: string #61 + │ │ │ │ ├─ variant_1: struct #66 + │ │ │ │ │ └─ [equals]: string #61 + │ │ │ │ ├─ variant_2: struct #67 + │ │ │ │ │ └─ [not]: string #61 + │ │ │ │ ├─ variant_3: struct #68 + │ │ │ │ │ └─ [in]: list 'list_64' #65 + │ │ │ │ │ └─ item: string #61 + │ │ │ │ ├─ variant_4: struct #69 + │ │ │ │ │ └─ [notIn]: list 'list_64' #65 + │ │ │ │ │ └─ item: string #61 + │ │ │ │ ├─ variant_5: struct #73 + │ │ │ │ │ ├─ [contains]: string #61 + │ │ │ │ │ └─ [mode]: optional 'optional_71' #72 + │ │ │ │ │ └─ item: string #70 enum{ '"insensitive"' } + │ │ │ │ ├─ variant_6: struct #74 + │ │ │ │ │ └─ [search]: string #61 + │ │ │ │ └─ variant_7: struct #75 + │ │ │ │ ├─ [endsWith]: optional 'optional_62' #63 + │ │ │ │ │ └─ item: string #61 + │ │ │ │ └─ [startsWith]: optional 'optional_62' #63 + │ │ │ │ └─ item: string #61 + │ │ │ └─ variant_1: struct #78 + │ │ │ └─ [not]: union '_prisma_string_filter' #77 + │ │ │ ├─ variant_0: string #61 + │ │ │ ├─ variant_1: struct #66 + │ │ │ │ └─ [equals]: string #61 + │ │ │ ├─ variant_2: struct #67 + │ │ │ │ └─ [not]: string #61 + │ │ │ ├─ variant_3: struct #68 + │ │ │ │ └─ [in]: list 'list_64' #65 + │ │ │ │ └─ item: string #61 + │ │ │ ├─ variant_4: struct #69 + │ │ │ │ └─ [notIn]: list 'list_64' #65 + │ │ │ │ └─ item: string #61 + │ │ │ ├─ variant_5: struct #73 + │ │ │ │ ├─ [contains]: string #61 + │ │ │ │ └─ [mode]: optional 'optional_71' #72 + │ │ │ │ └─ item: string #70 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #74 + │ │ │ │ └─ [search]: string #61 + │ │ │ └─ variant_7: struct #75 + │ │ │ ├─ [endsWith]: optional 'optional_62' #63 + │ │ │ │ └─ item: string #61 + │ │ │ └─ [startsWith]: optional 'optional_62' #63 + │ │ │ └─ item: string #61 + │ │ └─ [posts]: optional 'optional_100' #101 + │ │ └─ item: union #99 + │ │ ├─ variant_0: struct #92 + │ │ │ └─ [every]: optional 'optional_90' #91 + │ │ │ └─ item: &Post_where #89 + │ │ ├─ variant_1: struct #95 + │ │ │ └─ [some]: optional 'optional_93' #94 + │ │ │ └─ item: &Post_where #89 + │ │ └─ variant_2: struct #98 + │ │ └─ [none]: optional 'optional_96' #97 + │ │ └─ item: &Post_where #89 + │ ├─ [id]: optional 'optional_59' #60 + │ │ └─ item: optional '_prisma_integer_filter_ex' #58 + │ │ └─ item: union #55 + │ │ ├─ variant_0: either '_prisma_integer_filter' #53 + │ │ │ ├─ variant_0: integer #42 + │ │ │ ├─ variant_1: struct #47 + │ │ │ │ └─ [equals]: integer #42 + │ │ │ ├─ variant_2: struct #48 + │ │ │ │ └─ [not]: integer #42 + │ │ │ ├─ variant_3: struct #49 + │ │ │ │ ├─ [gt]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ ├─ [gte]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ ├─ [lt]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ └─ [lte]: optional 'optional_43' #44 + │ │ │ │ └─ item: integer #42 + │ │ │ ├─ variant_4: struct #50 + │ │ │ │ └─ [in]: list 'list_45' #46 + │ │ │ │ └─ item: integer #42 + │ │ │ └─ variant_5: struct #51 + │ │ │ └─ [notIn]: list 'list_45' #46 + │ │ │ └─ item: integer #42 + │ │ └─ variant_1: struct #54 + │ │ └─ [not]: either '_prisma_integer_filter' #53 + │ │ ├─ variant_0: integer #42 + │ │ ├─ variant_1: struct #47 + │ │ │ └─ [equals]: integer #42 + │ │ ├─ variant_2: struct #48 + │ │ │ └─ [not]: integer #42 + │ │ ├─ variant_3: struct #49 + │ │ │ ├─ [gt]: optional 'optional_43' #44 + │ │ │ │ └─ item: integer #42 + │ │ │ ├─ [gte]: optional 'optional_43' #44 + │ │ │ │ └─ item: integer #42 + │ │ │ ├─ [lt]: optional 'optional_43' #44 + │ │ │ │ └─ item: integer #42 + │ │ │ └─ [lte]: optional 'optional_43' #44 + │ │ │ └─ item: integer #42 + │ │ ├─ variant_4: struct #50 + │ │ │ └─ [in]: list 'list_45' #46 + │ │ │ └─ item: integer #42 + │ │ └─ variant_5: struct #51 + │ │ └─ [notIn]: list 'list_45' #46 + │ │ └─ item: integer #42 + │ └─ [title]: optional 'optional_83' #84 + │ └─ item: optional '_prisma_string_filter_ex' #82 + │ └─ item: union #79 + │ ├─ variant_0: union '_prisma_string_filter' #77 + │ │ ├─ variant_0: string #61 + │ │ ├─ variant_1: struct #66 + │ │ │ └─ [equals]: string #61 + │ │ ├─ variant_2: struct #67 + │ │ │ └─ [not]: string #61 + │ │ ├─ variant_3: struct #68 + │ │ │ └─ [in]: list 'list_64' #65 + │ │ │ └─ item: string #61 + │ │ ├─ variant_4: struct #69 + │ │ │ └─ [notIn]: list 'list_64' #65 + │ │ │ └─ item: string #61 + │ │ ├─ variant_5: struct #73 + │ │ │ ├─ [contains]: string #61 + │ │ │ └─ [mode]: optional 'optional_71' #72 + │ │ │ └─ item: string #70 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #74 + │ │ │ └─ [search]: string #61 + │ │ └─ variant_7: struct #75 + │ │ ├─ [endsWith]: optional 'optional_62' #63 + │ │ │ └─ item: string #61 + │ │ └─ [startsWith]: optional 'optional_62' #63 + │ │ └─ item: string #61 + │ └─ variant_1: struct #78 + │ └─ [not]: union '_prisma_string_filter' #77 + │ ├─ variant_0: string #61 + │ ├─ variant_1: struct #66 + │ │ └─ [equals]: string #61 + │ ├─ variant_2: struct #67 + │ │ └─ [not]: string #61 + │ ├─ variant_3: struct #68 + │ │ └─ [in]: list 'list_64' #65 + │ │ └─ item: string #61 + │ ├─ variant_4: struct #69 + │ │ └─ [notIn]: list 'list_64' #65 + │ │ └─ item: string #61 + │ ├─ variant_5: struct #73 + │ │ ├─ [contains]: string #61 + │ │ └─ [mode]: optional 'optional_71' #72 + │ │ └─ item: string #70 enum{ '"insensitive"' } + │ ├─ variant_6: struct #74 + │ │ └─ [search]: string #61 + │ └─ variant_7: struct #75 + │ ├─ [endsWith]: optional 'optional_62' #63 + │ │ └─ item: string #61 + │ └─ [startsWith]: optional 'optional_62' #63 + │ └─ item: string #61 + ├─ variant_2: struct #114 + │ └─ [connectOrCreate]: struct #111 + │ ├─ [create]: union #41 + │ │ ├─ variant_0: struct 'Post_create_input_excluding_rel_Post_User' #38 + │ │ │ ├─ [id]: optional 'optional_35' #36 + │ │ │ │ └─ item: integer #30 + │ │ │ └─ [title]: string #31 + │ │ └─ variant_1: list 'list_39' #40 + │ │ └─ item: struct 'Post_create_input_excluding_rel_Post_User' #38 + │ │ ├─ [id]: optional 'optional_35' #36 + │ │ │ └─ item: integer #30 + │ │ └─ [title]: string #31 + │ └─ [where]: union #110 + │ ├─ variant_0: struct 'Post_where' #107 + │ │ ├─ [author]: optional 'optional_104' #105 + │ │ │ └─ item: struct 'User_where_excluding_Post' #103 + │ │ │ ├─ [id]: optional 'optional_85' #86 + │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #58 + │ │ │ │ └─ item: union #55 + │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #53 + │ │ │ │ │ ├─ variant_0: integer #42 + │ │ │ │ │ ├─ variant_1: struct #47 + │ │ │ │ │ │ └─ [equals]: integer #42 + │ │ │ │ │ ├─ variant_2: struct #48 + │ │ │ │ │ │ └─ [not]: integer #42 + │ │ │ │ │ ├─ variant_3: struct #49 + │ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #44 + │ │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #44 + │ │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #44 + │ │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ │ └─ [lte]: optional 'optional_43' #44 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ ├─ variant_4: struct #50 + │ │ │ │ │ │ └─ [in]: list 'list_45' #46 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ └─ variant_5: struct #51 + │ │ │ │ │ └─ [notIn]: list 'list_45' #46 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ └─ variant_1: struct #54 + │ │ │ │ └─ [not]: either '_prisma_integer_filter' #53 + │ │ │ │ ├─ variant_0: integer #42 + │ │ │ │ ├─ variant_1: struct #47 + │ │ │ │ │ └─ [equals]: integer #42 + │ │ │ │ ├─ variant_2: struct #48 + │ │ │ │ │ └─ [not]: integer #42 + │ │ │ │ ├─ variant_3: struct #49 + │ │ │ │ │ ├─ [gt]: optional 'optional_43' #44 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ ├─ [gte]: optional 'optional_43' #44 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ ├─ [lt]: optional 'optional_43' #44 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ └─ [lte]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ ├─ variant_4: struct #50 + │ │ │ │ │ └─ [in]: list 'list_45' #46 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ └─ variant_5: struct #51 + │ │ │ │ └─ [notIn]: list 'list_45' #46 + │ │ │ │ └─ item: integer #42 + │ │ │ ├─ [name]: optional 'optional_87' #88 + │ │ │ │ └─ item: optional '_prisma_string_filter_ex' #82 + │ │ │ │ └─ item: union #79 + │ │ │ │ ├─ variant_0: union '_prisma_string_filter' #77 + │ │ │ │ │ ├─ variant_0: string #61 + │ │ │ │ │ ├─ variant_1: struct #66 + │ │ │ │ │ │ └─ [equals]: string #61 + │ │ │ │ │ ├─ variant_2: struct #67 + │ │ │ │ │ │ └─ [not]: string #61 + │ │ │ │ │ ├─ variant_3: struct #68 + │ │ │ │ │ │ └─ [in]: list 'list_64' #65 + │ │ │ │ │ │ └─ item: string #61 + │ │ │ │ │ ├─ variant_4: struct #69 + │ │ │ │ │ │ └─ [notIn]: list 'list_64' #65 + │ │ │ │ │ │ └─ item: string #61 + │ │ │ │ │ ├─ variant_5: struct #73 + │ │ │ │ │ │ ├─ [contains]: string #61 + │ │ │ │ │ │ └─ [mode]: optional 'optional_71' #72 + │ │ │ │ │ │ └─ item: string #70 enum{ '"insensitive"' } + │ │ │ │ │ ├─ variant_6: struct #74 + │ │ │ │ │ │ └─ [search]: string #61 + │ │ │ │ │ └─ variant_7: struct #75 + │ │ │ │ │ ├─ [endsWith]: optional 'optional_62' #63 + │ │ │ │ │ │ └─ item: string #61 + │ │ │ │ │ └─ [startsWith]: optional 'optional_62' #63 + │ │ │ │ │ └─ item: string #61 + │ │ │ │ └─ variant_1: struct #78 + │ │ │ │ └─ [not]: union '_prisma_string_filter' #77 + │ │ │ │ ├─ variant_0: string #61 + │ │ │ │ ├─ variant_1: struct #66 + │ │ │ │ │ └─ [equals]: string #61 + │ │ │ │ ├─ variant_2: struct #67 + │ │ │ │ │ └─ [not]: string #61 + │ │ │ │ ├─ variant_3: struct #68 + │ │ │ │ │ └─ [in]: list 'list_64' #65 + │ │ │ │ │ └─ item: string #61 + │ │ │ │ ├─ variant_4: struct #69 + │ │ │ │ │ └─ [notIn]: list 'list_64' #65 + │ │ │ │ │ └─ item: string #61 + │ │ │ │ ├─ variant_5: struct #73 + │ │ │ │ │ ├─ [contains]: string #61 + │ │ │ │ │ └─ [mode]: optional 'optional_71' #72 + │ │ │ │ │ └─ item: string #70 enum{ '"insensitive"' } + │ │ │ │ ├─ variant_6: struct #74 + │ │ │ │ │ └─ [search]: string #61 + │ │ │ │ └─ variant_7: struct #75 + │ │ │ │ ├─ [endsWith]: optional 'optional_62' #63 + │ │ │ │ │ └─ item: string #61 + │ │ │ │ └─ [startsWith]: optional 'optional_62' #63 + │ │ │ │ └─ item: string #61 + │ │ │ └─ [posts]: optional 'optional_100' #101 + │ │ │ └─ item: union #99 + │ │ │ ├─ variant_0: struct #92 + │ │ │ │ └─ [every]: optional 'optional_90' #91 + │ │ │ │ └─ item: &Post_where #89 + │ │ │ ├─ variant_1: struct #95 + │ │ │ │ └─ [some]: optional 'optional_93' #94 + │ │ │ │ └─ item: &Post_where #89 + │ │ │ └─ variant_2: struct #98 + │ │ │ └─ [none]: optional 'optional_96' #97 + │ │ │ └─ item: &Post_where #89 + │ │ ├─ [id]: optional 'optional_59' #60 + │ │ │ └─ item: optional '_prisma_integer_filter_ex' #58 + │ │ │ └─ item: union #55 + │ │ │ ├─ variant_0: either '_prisma_integer_filter' #53 + │ │ │ │ ├─ variant_0: integer #42 + │ │ │ │ ├─ variant_1: struct #47 + │ │ │ │ │ └─ [equals]: integer #42 + │ │ │ │ ├─ variant_2: struct #48 + │ │ │ │ │ └─ [not]: integer #42 + │ │ │ │ ├─ variant_3: struct #49 + │ │ │ │ │ ├─ [gt]: optional 'optional_43' #44 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ ├─ [gte]: optional 'optional_43' #44 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ ├─ [lt]: optional 'optional_43' #44 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ └─ [lte]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ ├─ variant_4: struct #50 + │ │ │ │ │ └─ [in]: list 'list_45' #46 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ └─ variant_5: struct #51 + │ │ │ │ └─ [notIn]: list 'list_45' #46 + │ │ │ │ └─ item: integer #42 + │ │ │ └─ variant_1: struct #54 + │ │ │ └─ [not]: either '_prisma_integer_filter' #53 + │ │ │ ├─ variant_0: integer #42 + │ │ │ ├─ variant_1: struct #47 + │ │ │ │ └─ [equals]: integer #42 + │ │ │ ├─ variant_2: struct #48 + │ │ │ │ └─ [not]: integer #42 + │ │ │ ├─ variant_3: struct #49 + │ │ │ │ ├─ [gt]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ ├─ [gte]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ ├─ [lt]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ └─ [lte]: optional 'optional_43' #44 + │ │ │ │ └─ item: integer #42 + │ │ │ ├─ variant_4: struct #50 + │ │ │ │ └─ [in]: list 'list_45' #46 + │ │ │ │ └─ item: integer #42 + │ │ │ └─ variant_5: struct #51 + │ │ │ └─ [notIn]: list 'list_45' #46 + │ │ │ └─ item: integer #42 + │ │ └─ [title]: optional 'optional_83' #84 + │ │ └─ item: optional '_prisma_string_filter_ex' #82 + │ │ └─ item: union #79 + │ │ ├─ variant_0: union '_prisma_string_filter' #77 + │ │ │ ├─ variant_0: string #61 + │ │ │ ├─ variant_1: struct #66 + │ │ │ │ └─ [equals]: string #61 + │ │ │ ├─ variant_2: struct #67 + │ │ │ │ └─ [not]: string #61 + │ │ │ ├─ variant_3: struct #68 + │ │ │ │ └─ [in]: list 'list_64' #65 + │ │ │ │ └─ item: string #61 + │ │ │ ├─ variant_4: struct #69 + │ │ │ │ └─ [notIn]: list 'list_64' #65 + │ │ │ │ └─ item: string #61 + │ │ │ ├─ variant_5: struct #73 + │ │ │ │ ├─ [contains]: string #61 + │ │ │ │ └─ [mode]: optional 'optional_71' #72 + │ │ │ │ └─ item: string #70 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #74 + │ │ │ │ └─ [search]: string #61 + │ │ │ └─ variant_7: struct #75 + │ │ │ ├─ [endsWith]: optional 'optional_62' #63 + │ │ │ │ └─ item: string #61 + │ │ │ └─ [startsWith]: optional 'optional_62' #63 + │ │ │ └─ item: string #61 + │ │ └─ variant_1: struct #78 + │ │ └─ [not]: union '_prisma_string_filter' #77 + │ │ ├─ variant_0: string #61 + │ │ ├─ variant_1: struct #66 + │ │ │ └─ [equals]: string #61 + │ │ ├─ variant_2: struct #67 + │ │ │ └─ [not]: string #61 + │ │ ├─ variant_3: struct #68 + │ │ │ └─ [in]: list 'list_64' #65 + │ │ │ └─ item: string #61 + │ │ ├─ variant_4: struct #69 + │ │ │ └─ [notIn]: list 'list_64' #65 + │ │ │ └─ item: string #61 + │ │ ├─ variant_5: struct #73 + │ │ │ ├─ [contains]: string #61 + │ │ │ └─ [mode]: optional 'optional_71' #72 + │ │ │ └─ item: string #70 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #74 + │ │ │ └─ [search]: string #61 + │ │ └─ variant_7: struct #75 + │ │ ├─ [endsWith]: optional 'optional_62' #63 + │ │ │ └─ item: string #61 + │ │ └─ [startsWith]: optional 'optional_62' #63 + │ │ └─ item: string #61 + │ └─ variant_1: list 'list_108' #109 + │ └─ item: struct 'Post_where' #107 + │ ├─ [author]: optional 'optional_104' #105 + │ │ └─ item: struct 'User_where_excluding_Post' #103 + │ │ ├─ [id]: optional 'optional_85' #86 + │ │ │ └─ item: optional '_prisma_integer_filter_ex' #58 + │ │ │ └─ item: union #55 + │ │ │ ├─ variant_0: either '_prisma_integer_filter' #53 + │ │ │ │ ├─ variant_0: integer #42 + │ │ │ │ ├─ variant_1: struct #47 + │ │ │ │ │ └─ [equals]: integer #42 + │ │ │ │ ├─ variant_2: struct #48 + │ │ │ │ │ └─ [not]: integer #42 + │ │ │ │ ├─ variant_3: struct #49 + │ │ │ │ │ ├─ [gt]: optional 'optional_43' #44 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ ├─ [gte]: optional 'optional_43' #44 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ ├─ [lt]: optional 'optional_43' #44 + │ │ │ │ │ │ └─ item: integer #42 + │ │ │ │ │ └─ [lte]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ ├─ variant_4: struct #50 + │ │ │ │ │ └─ [in]: list 'list_45' #46 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ └─ variant_5: struct #51 + │ │ │ │ └─ [notIn]: list 'list_45' #46 + │ │ │ │ └─ item: integer #42 + │ │ │ └─ variant_1: struct #54 + │ │ │ └─ [not]: either '_prisma_integer_filter' #53 + │ │ │ ├─ variant_0: integer #42 + │ │ │ ├─ variant_1: struct #47 + │ │ │ │ └─ [equals]: integer #42 + │ │ │ ├─ variant_2: struct #48 + │ │ │ │ └─ [not]: integer #42 + │ │ │ ├─ variant_3: struct #49 + │ │ │ │ ├─ [gt]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ ├─ [gte]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ ├─ [lt]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ └─ [lte]: optional 'optional_43' #44 + │ │ │ │ └─ item: integer #42 + │ │ │ ├─ variant_4: struct #50 + │ │ │ │ └─ [in]: list 'list_45' #46 + │ │ │ │ └─ item: integer #42 + │ │ │ └─ variant_5: struct #51 + │ │ │ └─ [notIn]: list 'list_45' #46 + │ │ │ └─ item: integer #42 + │ │ ├─ [name]: optional 'optional_87' #88 + │ │ │ └─ item: optional '_prisma_string_filter_ex' #82 + │ │ │ └─ item: union #79 + │ │ │ ├─ variant_0: union '_prisma_string_filter' #77 + │ │ │ │ ├─ variant_0: string #61 + │ │ │ │ ├─ variant_1: struct #66 + │ │ │ │ │ └─ [equals]: string #61 + │ │ │ │ ├─ variant_2: struct #67 + │ │ │ │ │ └─ [not]: string #61 + │ │ │ │ ├─ variant_3: struct #68 + │ │ │ │ │ └─ [in]: list 'list_64' #65 + │ │ │ │ │ └─ item: string #61 + │ │ │ │ ├─ variant_4: struct #69 + │ │ │ │ │ └─ [notIn]: list 'list_64' #65 + │ │ │ │ │ └─ item: string #61 + │ │ │ │ ├─ variant_5: struct #73 + │ │ │ │ │ ├─ [contains]: string #61 + │ │ │ │ │ └─ [mode]: optional 'optional_71' #72 + │ │ │ │ │ └─ item: string #70 enum{ '"insensitive"' } + │ │ │ │ ├─ variant_6: struct #74 + │ │ │ │ │ └─ [search]: string #61 + │ │ │ │ └─ variant_7: struct #75 + │ │ │ │ ├─ [endsWith]: optional 'optional_62' #63 + │ │ │ │ │ └─ item: string #61 + │ │ │ │ └─ [startsWith]: optional 'optional_62' #63 + │ │ │ │ └─ item: string #61 + │ │ │ └─ variant_1: struct #78 + │ │ │ └─ [not]: union '_prisma_string_filter' #77 + │ │ │ ├─ variant_0: string #61 + │ │ │ ├─ variant_1: struct #66 + │ │ │ │ └─ [equals]: string #61 + │ │ │ ├─ variant_2: struct #67 + │ │ │ │ └─ [not]: string #61 + │ │ │ ├─ variant_3: struct #68 + │ │ │ │ └─ [in]: list 'list_64' #65 + │ │ │ │ └─ item: string #61 + │ │ │ ├─ variant_4: struct #69 + │ │ │ │ └─ [notIn]: list 'list_64' #65 + │ │ │ │ └─ item: string #61 + │ │ │ ├─ variant_5: struct #73 + │ │ │ │ ├─ [contains]: string #61 + │ │ │ │ └─ [mode]: optional 'optional_71' #72 + │ │ │ │ └─ item: string #70 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #74 + │ │ │ │ └─ [search]: string #61 + │ │ │ └─ variant_7: struct #75 + │ │ │ ├─ [endsWith]: optional 'optional_62' #63 + │ │ │ │ └─ item: string #61 + │ │ │ └─ [startsWith]: optional 'optional_62' #63 + │ │ │ └─ item: string #61 + │ │ └─ [posts]: optional 'optional_100' #101 + │ │ └─ item: union #99 + │ │ ├─ variant_0: struct #92 + │ │ │ └─ [every]: optional 'optional_90' #91 + │ │ │ └─ item: &Post_where #89 + │ │ ├─ variant_1: struct #95 + │ │ │ └─ [some]: optional 'optional_93' #94 + │ │ │ └─ item: &Post_where #89 + │ │ └─ variant_2: struct #98 + │ │ └─ [none]: optional 'optional_96' #97 + │ │ └─ item: &Post_where #89 + │ ├─ [id]: optional 'optional_59' #60 + │ │ └─ item: optional '_prisma_integer_filter_ex' #58 + │ │ └─ item: union #55 + │ │ ├─ variant_0: either '_prisma_integer_filter' #53 + │ │ │ ├─ variant_0: integer #42 + │ │ │ ├─ variant_1: struct #47 + │ │ │ │ └─ [equals]: integer #42 + │ │ │ ├─ variant_2: struct #48 + │ │ │ │ └─ [not]: integer #42 + │ │ │ ├─ variant_3: struct #49 + │ │ │ │ ├─ [gt]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ ├─ [gte]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ ├─ [lt]: optional 'optional_43' #44 + │ │ │ │ │ └─ item: integer #42 + │ │ │ │ └─ [lte]: optional 'optional_43' #44 + │ │ │ │ └─ item: integer #42 + │ │ │ ├─ variant_4: struct #50 + │ │ │ │ └─ [in]: list 'list_45' #46 + │ │ │ │ └─ item: integer #42 + │ │ │ └─ variant_5: struct #51 + │ │ │ └─ [notIn]: list 'list_45' #46 + │ │ │ └─ item: integer #42 + │ │ └─ variant_1: struct #54 + │ │ └─ [not]: either '_prisma_integer_filter' #53 + │ │ ├─ variant_0: integer #42 + │ │ ├─ variant_1: struct #47 + │ │ │ └─ [equals]: integer #42 + │ │ ├─ variant_2: struct #48 + │ │ │ └─ [not]: integer #42 + │ │ ├─ variant_3: struct #49 + │ │ │ ├─ [gt]: optional 'optional_43' #44 + │ │ │ │ └─ item: integer #42 + │ │ │ ├─ [gte]: optional 'optional_43' #44 + │ │ │ │ └─ item: integer #42 + │ │ │ ├─ [lt]: optional 'optional_43' #44 + │ │ │ │ └─ item: integer #42 + │ │ │ └─ [lte]: optional 'optional_43' #44 + │ │ │ └─ item: integer #42 + │ │ ├─ variant_4: struct #50 + │ │ │ └─ [in]: list 'list_45' #46 + │ │ │ └─ item: integer #42 + │ │ └─ variant_5: struct #51 + │ │ └─ [notIn]: list 'list_45' #46 + │ │ └─ item: integer #42 + │ └─ [title]: optional 'optional_83' #84 + │ └─ item: optional '_prisma_string_filter_ex' #82 + │ └─ item: union #79 + │ ├─ variant_0: union '_prisma_string_filter' #77 + │ │ ├─ variant_0: string #61 + │ │ ├─ variant_1: struct #66 + │ │ │ └─ [equals]: string #61 + │ │ ├─ variant_2: struct #67 + │ │ │ └─ [not]: string #61 + │ │ ├─ variant_3: struct #68 + │ │ │ └─ [in]: list 'list_64' #65 + │ │ │ └─ item: string #61 + │ │ ├─ variant_4: struct #69 + │ │ │ └─ [notIn]: list 'list_64' #65 + │ │ │ └─ item: string #61 + │ │ ├─ variant_5: struct #73 + │ │ │ ├─ [contains]: string #61 + │ │ │ └─ [mode]: optional 'optional_71' #72 + │ │ │ └─ item: string #70 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #74 + │ │ │ └─ [search]: string #61 + │ │ └─ variant_7: struct #75 + │ │ ├─ [endsWith]: optional 'optional_62' #63 + │ │ │ └─ item: string #61 + │ │ └─ [startsWith]: optional 'optional_62' #63 + │ │ └─ item: string #61 + │ └─ variant_1: struct #78 + │ └─ [not]: union '_prisma_string_filter' #77 + │ ├─ variant_0: string #61 + │ ├─ variant_1: struct #66 + │ │ └─ [equals]: string #61 + │ ├─ variant_2: struct #67 + │ │ └─ [not]: string #61 + │ ├─ variant_3: struct #68 + │ │ └─ [in]: list 'list_64' #65 + │ │ └─ item: string #61 + │ ├─ variant_4: struct #69 + │ │ └─ [notIn]: list 'list_64' #65 + │ │ └─ item: string #61 + │ ├─ variant_5: struct #73 + │ │ ├─ [contains]: string #61 + │ │ └─ [mode]: optional 'optional_71' #72 + │ │ └─ item: string #70 enum{ '"insensitive"' } + │ ├─ variant_6: struct #74 + │ │ └─ [search]: string #61 + │ └─ variant_7: struct #75 + │ ├─ [endsWith]: optional 'optional_62' #63 + │ │ └─ item: string #61 + │ └─ [startsWith]: optional 'optional_62' #63 + │ └─ item: string #61 + └─ variant_3: struct #120 + └─ [createMany]: optional 'optional_118' #119 + └─ item: struct #117 + └─ [data]: list 'list_115' #116 + └─ item: union #41 + ├─ variant_0: struct 'Post_create_input_excluding_rel_Post_User' #38 + │ ├─ [id]: optional 'optional_35' #36 + │ │ └─ item: integer #30 + │ └─ [title]: string #31 + └─ variant_1: list 'list_39' #40 + └─ item: struct 'Post_create_input_excluding_rel_Post_User' #38 + ├─ [id]: optional 'optional_35' #36 + │ └─ item: integer #30 + └─ [title]: string #31 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__create_many User out.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__create_many User out.snap index b284b41876..f285e4972e 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__create_many User out.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__create_many User out.snap @@ -2,5 +2,5 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs expression: tp.print(out) --- -root: struct #89 -└─ [count]: integer #88 +root: struct #130 +└─ [count]: integer #129 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__create_one Post inp.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__create_one Post inp.snap index 4f170b8e2d..00e0da51bf 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__create_one Post inp.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__create_one Post inp.snap @@ -2,823 +2,823 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs expression: tp.print(inp) --- -root: struct #108 -└─ [data]: struct 'Post_create_input' #107 - ├─ [author]: union #106 - │ ├─ variant_0: struct #103 - │ │ └─ [create]: struct 'User_create_input_excluding_rel_Post_User' #85 - │ │ ├─ [id]: integer #12 - │ │ └─ [name]: string #13 - │ ├─ variant_1: struct #104 - │ │ └─ [connect]: struct 'User_where' #101 - │ │ ├─ [id]: optional 'optional_86' #86 - │ │ │ └─ item: optional '_prisma_integer_filter_ex' #37 - │ │ │ └─ item: union #36 - │ │ │ ├─ variant_0: either '_prisma_integer_filter' #34 - │ │ │ │ ├─ variant_0: integer #26 - │ │ │ │ ├─ variant_1: struct #29 - │ │ │ │ │ └─ [equals]: integer #26 - │ │ │ │ ├─ variant_2: struct #30 - │ │ │ │ │ └─ [not]: integer #26 - │ │ │ │ ├─ variant_3: struct #31 - │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ variant_4: struct #32 - │ │ │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ └─ variant_5: struct #33 - │ │ │ │ └─ [notIn]: list 'list_28' #28 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ variant_1: struct #35 - │ │ │ └─ [not]: either '_prisma_integer_filter' #34 - │ │ │ ├─ variant_0: integer #26 - │ │ │ ├─ variant_1: struct #29 - │ │ │ │ └─ [equals]: integer #26 - │ │ │ ├─ variant_2: struct #30 - │ │ │ │ └─ [not]: integer #26 - │ │ │ ├─ variant_3: struct #31 - │ │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ variant_4: struct #32 - │ │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ variant_5: struct #33 - │ │ │ └─ [notIn]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ ├─ [name]: optional 'optional_87' #87 - │ │ │ └─ item: optional '_prisma_string_filter_ex' #54 - │ │ │ └─ item: union #53 - │ │ │ ├─ variant_0: union '_prisma_string_filter' #51 - │ │ │ │ ├─ variant_0: string #39 - │ │ │ │ ├─ variant_1: struct #42 - │ │ │ │ │ └─ [equals]: string #39 - │ │ │ │ ├─ variant_2: struct #43 - │ │ │ │ │ └─ [not]: string #39 - │ │ │ │ ├─ variant_3: struct #44 - │ │ │ │ │ └─ [in]: list 'list_41' #41 - │ │ │ │ │ └─ item: string #39 - │ │ │ │ ├─ variant_4: struct #45 - │ │ │ │ │ └─ [notIn]: list 'list_41' #41 - │ │ │ │ │ └─ item: string #39 - │ │ │ │ ├─ variant_5: struct #48 - │ │ │ │ │ ├─ [contains]: string #39 - │ │ │ │ │ └─ [mode]: optional 'optional_47' #47 - │ │ │ │ │ └─ item: string #46 enum{ '"insensitive"' } - │ │ │ │ ├─ variant_6: struct #49 - │ │ │ │ │ └─ [search]: string #39 - │ │ │ │ └─ variant_7: struct #50 - │ │ │ │ ├─ [endsWith]: optional 'optional_40' #40 - │ │ │ │ │ └─ item: string #39 - │ │ │ │ └─ [startsWith]: optional 'optional_40' #40 - │ │ │ │ └─ item: string #39 - │ │ │ └─ variant_1: struct #52 - │ │ │ └─ [not]: union '_prisma_string_filter' #51 - │ │ │ ├─ variant_0: string #39 - │ │ │ ├─ variant_1: struct #42 - │ │ │ │ └─ [equals]: string #39 - │ │ │ ├─ variant_2: struct #43 - │ │ │ │ └─ [not]: string #39 - │ │ │ ├─ variant_3: struct #44 - │ │ │ │ └─ [in]: list 'list_41' #41 - │ │ │ │ └─ item: string #39 - │ │ │ ├─ variant_4: struct #45 - │ │ │ │ └─ [notIn]: list 'list_41' #41 - │ │ │ │ └─ item: string #39 - │ │ │ ├─ variant_5: struct #48 - │ │ │ │ ├─ [contains]: string #39 - │ │ │ │ └─ [mode]: optional 'optional_47' #47 - │ │ │ │ └─ item: string #46 enum{ '"insensitive"' } - │ │ │ ├─ variant_6: struct #49 - │ │ │ │ └─ [search]: string #39 - │ │ │ └─ variant_7: struct #50 - │ │ │ ├─ [endsWith]: optional 'optional_40' #40 - │ │ │ │ └─ item: string #39 - │ │ │ └─ [startsWith]: optional 'optional_40' #40 - │ │ │ └─ item: string #39 - │ │ └─ [posts]: optional 'optional_100' #100 - │ │ └─ item: union #99 - │ │ ├─ variant_0: struct #94 - │ │ │ └─ [every]: optional 'optional_93' #93 - │ │ │ └─ item: struct 'Post_where_excluding_User' #92 - │ │ │ ├─ [author]: optional 'optional_91' #91 - │ │ │ │ └─ item: &User_where #90 - │ │ │ ├─ [id]: optional 'optional_88' #88 - │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #37 - │ │ │ │ └─ item: union #36 - │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #34 - │ │ │ │ │ ├─ variant_0: integer #26 - │ │ │ │ │ ├─ variant_1: struct #29 - │ │ │ │ │ │ └─ [equals]: integer #26 - │ │ │ │ │ ├─ variant_2: struct #30 - │ │ │ │ │ │ └─ [not]: integer #26 - │ │ │ │ │ ├─ variant_3: struct #31 - │ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ ├─ variant_4: struct #32 - │ │ │ │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ └─ variant_5: struct #33 - │ │ │ │ │ └─ [notIn]: list 'list_28' #28 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ └─ variant_1: struct #35 - │ │ │ │ └─ [not]: either '_prisma_integer_filter' #34 - │ │ │ │ ├─ variant_0: integer #26 - │ │ │ │ ├─ variant_1: struct #29 - │ │ │ │ │ └─ [equals]: integer #26 - │ │ │ │ ├─ variant_2: struct #30 - │ │ │ │ │ └─ [not]: integer #26 - │ │ │ │ ├─ variant_3: struct #31 - │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ variant_4: struct #32 - │ │ │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ └─ variant_5: struct #33 - │ │ │ │ └─ [notIn]: list 'list_28' #28 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ [title]: optional 'optional_89' #89 - │ │ │ └─ item: optional '_prisma_string_filter_ex' #54 - │ │ │ └─ item: union #53 - │ │ │ ├─ variant_0: union '_prisma_string_filter' #51 - │ │ │ │ ├─ variant_0: string #39 - │ │ │ │ ├─ variant_1: struct #42 - │ │ │ │ │ └─ [equals]: string #39 - │ │ │ │ ├─ variant_2: struct #43 - │ │ │ │ │ └─ [not]: string #39 - │ │ │ │ ├─ variant_3: struct #44 - │ │ │ │ │ └─ [in]: list 'list_41' #41 - │ │ │ │ │ └─ item: string #39 - │ │ │ │ ├─ variant_4: struct #45 - │ │ │ │ │ └─ [notIn]: list 'list_41' #41 - │ │ │ │ │ └─ item: string #39 - │ │ │ │ ├─ variant_5: struct #48 - │ │ │ │ │ ├─ [contains]: string #39 - │ │ │ │ │ └─ [mode]: optional 'optional_47' #47 - │ │ │ │ │ └─ item: string #46 enum{ '"insensitive"' } - │ │ │ │ ├─ variant_6: struct #49 - │ │ │ │ │ └─ [search]: string #39 - │ │ │ │ └─ variant_7: struct #50 - │ │ │ │ ├─ [endsWith]: optional 'optional_40' #40 - │ │ │ │ │ └─ item: string #39 - │ │ │ │ └─ [startsWith]: optional 'optional_40' #40 - │ │ │ │ └─ item: string #39 - │ │ │ └─ variant_1: struct #52 - │ │ │ └─ [not]: union '_prisma_string_filter' #51 - │ │ │ ├─ variant_0: string #39 - │ │ │ ├─ variant_1: struct #42 - │ │ │ │ └─ [equals]: string #39 - │ │ │ ├─ variant_2: struct #43 - │ │ │ │ └─ [not]: string #39 - │ │ │ ├─ variant_3: struct #44 - │ │ │ │ └─ [in]: list 'list_41' #41 - │ │ │ │ └─ item: string #39 - │ │ │ ├─ variant_4: struct #45 - │ │ │ │ └─ [notIn]: list 'list_41' #41 - │ │ │ │ └─ item: string #39 - │ │ │ ├─ variant_5: struct #48 - │ │ │ │ ├─ [contains]: string #39 - │ │ │ │ └─ [mode]: optional 'optional_47' #47 - │ │ │ │ └─ item: string #46 enum{ '"insensitive"' } - │ │ │ ├─ variant_6: struct #49 - │ │ │ │ └─ [search]: string #39 - │ │ │ └─ variant_7: struct #50 - │ │ │ ├─ [endsWith]: optional 'optional_40' #40 - │ │ │ │ └─ item: string #39 - │ │ │ └─ [startsWith]: optional 'optional_40' #40 - │ │ │ └─ item: string #39 - │ │ ├─ variant_1: struct #96 - │ │ │ └─ [some]: optional 'optional_95' #95 - │ │ │ └─ item: struct 'Post_where_excluding_User' #92 - │ │ │ ├─ [author]: optional 'optional_91' #91 - │ │ │ │ └─ item: &User_where #90 - │ │ │ ├─ [id]: optional 'optional_88' #88 - │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #37 - │ │ │ │ └─ item: union #36 - │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #34 - │ │ │ │ │ ├─ variant_0: integer #26 - │ │ │ │ │ ├─ variant_1: struct #29 - │ │ │ │ │ │ └─ [equals]: integer #26 - │ │ │ │ │ ├─ variant_2: struct #30 - │ │ │ │ │ │ └─ [not]: integer #26 - │ │ │ │ │ ├─ variant_3: struct #31 - │ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ ├─ variant_4: struct #32 - │ │ │ │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ └─ variant_5: struct #33 - │ │ │ │ │ └─ [notIn]: list 'list_28' #28 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ └─ variant_1: struct #35 - │ │ │ │ └─ [not]: either '_prisma_integer_filter' #34 - │ │ │ │ ├─ variant_0: integer #26 - │ │ │ │ ├─ variant_1: struct #29 - │ │ │ │ │ └─ [equals]: integer #26 - │ │ │ │ ├─ variant_2: struct #30 - │ │ │ │ │ └─ [not]: integer #26 - │ │ │ │ ├─ variant_3: struct #31 - │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ variant_4: struct #32 - │ │ │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ └─ variant_5: struct #33 - │ │ │ │ └─ [notIn]: list 'list_28' #28 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ [title]: optional 'optional_89' #89 - │ │ │ └─ item: optional '_prisma_string_filter_ex' #54 - │ │ │ └─ item: union #53 - │ │ │ ├─ variant_0: union '_prisma_string_filter' #51 - │ │ │ │ ├─ variant_0: string #39 - │ │ │ │ ├─ variant_1: struct #42 - │ │ │ │ │ └─ [equals]: string #39 - │ │ │ │ ├─ variant_2: struct #43 - │ │ │ │ │ └─ [not]: string #39 - │ │ │ │ ├─ variant_3: struct #44 - │ │ │ │ │ └─ [in]: list 'list_41' #41 - │ │ │ │ │ └─ item: string #39 - │ │ │ │ ├─ variant_4: struct #45 - │ │ │ │ │ └─ [notIn]: list 'list_41' #41 - │ │ │ │ │ └─ item: string #39 - │ │ │ │ ├─ variant_5: struct #48 - │ │ │ │ │ ├─ [contains]: string #39 - │ │ │ │ │ └─ [mode]: optional 'optional_47' #47 - │ │ │ │ │ └─ item: string #46 enum{ '"insensitive"' } - │ │ │ │ ├─ variant_6: struct #49 - │ │ │ │ │ └─ [search]: string #39 - │ │ │ │ └─ variant_7: struct #50 - │ │ │ │ ├─ [endsWith]: optional 'optional_40' #40 - │ │ │ │ │ └─ item: string #39 - │ │ │ │ └─ [startsWith]: optional 'optional_40' #40 - │ │ │ │ └─ item: string #39 - │ │ │ └─ variant_1: struct #52 - │ │ │ └─ [not]: union '_prisma_string_filter' #51 - │ │ │ ├─ variant_0: string #39 - │ │ │ ├─ variant_1: struct #42 - │ │ │ │ └─ [equals]: string #39 - │ │ │ ├─ variant_2: struct #43 - │ │ │ │ └─ [not]: string #39 - │ │ │ ├─ variant_3: struct #44 - │ │ │ │ └─ [in]: list 'list_41' #41 - │ │ │ │ └─ item: string #39 - │ │ │ ├─ variant_4: struct #45 - │ │ │ │ └─ [notIn]: list 'list_41' #41 - │ │ │ │ └─ item: string #39 - │ │ │ ├─ variant_5: struct #48 - │ │ │ │ ├─ [contains]: string #39 - │ │ │ │ └─ [mode]: optional 'optional_47' #47 - │ │ │ │ └─ item: string #46 enum{ '"insensitive"' } - │ │ │ ├─ variant_6: struct #49 - │ │ │ │ └─ [search]: string #39 - │ │ │ └─ variant_7: struct #50 - │ │ │ ├─ [endsWith]: optional 'optional_40' #40 - │ │ │ │ └─ item: string #39 - │ │ │ └─ [startsWith]: optional 'optional_40' #40 - │ │ │ └─ item: string #39 - │ │ └─ variant_2: struct #98 - │ │ └─ [none]: optional 'optional_97' #97 - │ │ └─ item: struct 'Post_where_excluding_User' #92 - │ │ ├─ [author]: optional 'optional_91' #91 - │ │ │ └─ item: &User_where #90 - │ │ ├─ [id]: optional 'optional_88' #88 - │ │ │ └─ item: optional '_prisma_integer_filter_ex' #37 - │ │ │ └─ item: union #36 - │ │ │ ├─ variant_0: either '_prisma_integer_filter' #34 - │ │ │ │ ├─ variant_0: integer #26 - │ │ │ │ ├─ variant_1: struct #29 - │ │ │ │ │ └─ [equals]: integer #26 - │ │ │ │ ├─ variant_2: struct #30 - │ │ │ │ │ └─ [not]: integer #26 - │ │ │ │ ├─ variant_3: struct #31 - │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ variant_4: struct #32 - │ │ │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ └─ variant_5: struct #33 - │ │ │ │ └─ [notIn]: list 'list_28' #28 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ variant_1: struct #35 - │ │ │ └─ [not]: either '_prisma_integer_filter' #34 - │ │ │ ├─ variant_0: integer #26 - │ │ │ ├─ variant_1: struct #29 - │ │ │ │ └─ [equals]: integer #26 - │ │ │ ├─ variant_2: struct #30 - │ │ │ │ └─ [not]: integer #26 - │ │ │ ├─ variant_3: struct #31 - │ │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ variant_4: struct #32 - │ │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ variant_5: struct #33 - │ │ │ └─ [notIn]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ └─ [title]: optional 'optional_89' #89 - │ │ └─ item: optional '_prisma_string_filter_ex' #54 - │ │ └─ item: union #53 - │ │ ├─ variant_0: union '_prisma_string_filter' #51 - │ │ │ ├─ variant_0: string #39 - │ │ │ ├─ variant_1: struct #42 - │ │ │ │ └─ [equals]: string #39 - │ │ │ ├─ variant_2: struct #43 - │ │ │ │ └─ [not]: string #39 - │ │ │ ├─ variant_3: struct #44 - │ │ │ │ └─ [in]: list 'list_41' #41 - │ │ │ │ └─ item: string #39 - │ │ │ ├─ variant_4: struct #45 - │ │ │ │ └─ [notIn]: list 'list_41' #41 - │ │ │ │ └─ item: string #39 - │ │ │ ├─ variant_5: struct #48 - │ │ │ │ ├─ [contains]: string #39 - │ │ │ │ └─ [mode]: optional 'optional_47' #47 - │ │ │ │ └─ item: string #46 enum{ '"insensitive"' } - │ │ │ ├─ variant_6: struct #49 - │ │ │ │ └─ [search]: string #39 - │ │ │ └─ variant_7: struct #50 - │ │ │ ├─ [endsWith]: optional 'optional_40' #40 - │ │ │ │ └─ item: string #39 - │ │ │ └─ [startsWith]: optional 'optional_40' #40 - │ │ │ └─ item: string #39 - │ │ └─ variant_1: struct #52 - │ │ └─ [not]: union '_prisma_string_filter' #51 - │ │ ├─ variant_0: string #39 - │ │ ├─ variant_1: struct #42 - │ │ │ └─ [equals]: string #39 - │ │ ├─ variant_2: struct #43 - │ │ │ └─ [not]: string #39 - │ │ ├─ variant_3: struct #44 - │ │ │ └─ [in]: list 'list_41' #41 - │ │ │ └─ item: string #39 - │ │ ├─ variant_4: struct #45 - │ │ │ └─ [notIn]: list 'list_41' #41 - │ │ │ └─ item: string #39 - │ │ ├─ variant_5: struct #48 - │ │ │ ├─ [contains]: string #39 - │ │ │ └─ [mode]: optional 'optional_47' #47 - │ │ │ └─ item: string #46 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #49 - │ │ │ └─ [search]: string #39 - │ │ └─ variant_7: struct #50 - │ │ ├─ [endsWith]: optional 'optional_40' #40 - │ │ │ └─ item: string #39 - │ │ └─ [startsWith]: optional 'optional_40' #40 - │ │ └─ item: string #39 - │ └─ variant_2: struct #105 - │ └─ [connectOrCreate]: struct #102 - │ ├─ [create]: struct 'User_create_input_excluding_rel_Post_User' #85 - │ │ ├─ [id]: integer #12 - │ │ └─ [name]: string #13 - │ └─ [where]: struct 'User_where' #101 - │ ├─ [id]: optional 'optional_86' #86 - │ │ └─ item: optional '_prisma_integer_filter_ex' #37 - │ │ └─ item: union #36 - │ │ ├─ variant_0: either '_prisma_integer_filter' #34 - │ │ │ ├─ variant_0: integer #26 - │ │ │ ├─ variant_1: struct #29 - │ │ │ │ └─ [equals]: integer #26 - │ │ │ ├─ variant_2: struct #30 - │ │ │ │ └─ [not]: integer #26 - │ │ │ ├─ variant_3: struct #31 - │ │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ variant_4: struct #32 - │ │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ variant_5: struct #33 - │ │ │ └─ [notIn]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ └─ variant_1: struct #35 - │ │ └─ [not]: either '_prisma_integer_filter' #34 - │ │ ├─ variant_0: integer #26 - │ │ ├─ variant_1: struct #29 - │ │ │ └─ [equals]: integer #26 - │ │ ├─ variant_2: struct #30 - │ │ │ └─ [not]: integer #26 - │ │ ├─ variant_3: struct #31 - │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ variant_4: struct #32 - │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ └─ variant_5: struct #33 - │ │ └─ [notIn]: list 'list_28' #28 - │ │ └─ item: integer #26 - │ ├─ [name]: optional 'optional_87' #87 - │ │ └─ item: optional '_prisma_string_filter_ex' #54 - │ │ └─ item: union #53 - │ │ ├─ variant_0: union '_prisma_string_filter' #51 - │ │ │ ├─ variant_0: string #39 - │ │ │ ├─ variant_1: struct #42 - │ │ │ │ └─ [equals]: string #39 - │ │ │ ├─ variant_2: struct #43 - │ │ │ │ └─ [not]: string #39 - │ │ │ ├─ variant_3: struct #44 - │ │ │ │ └─ [in]: list 'list_41' #41 - │ │ │ │ └─ item: string #39 - │ │ │ ├─ variant_4: struct #45 - │ │ │ │ └─ [notIn]: list 'list_41' #41 - │ │ │ │ └─ item: string #39 - │ │ │ ├─ variant_5: struct #48 - │ │ │ │ ├─ [contains]: string #39 - │ │ │ │ └─ [mode]: optional 'optional_47' #47 - │ │ │ │ └─ item: string #46 enum{ '"insensitive"' } - │ │ │ ├─ variant_6: struct #49 - │ │ │ │ └─ [search]: string #39 - │ │ │ └─ variant_7: struct #50 - │ │ │ ├─ [endsWith]: optional 'optional_40' #40 - │ │ │ │ └─ item: string #39 - │ │ │ └─ [startsWith]: optional 'optional_40' #40 - │ │ │ └─ item: string #39 - │ │ └─ variant_1: struct #52 - │ │ └─ [not]: union '_prisma_string_filter' #51 - │ │ ├─ variant_0: string #39 - │ │ ├─ variant_1: struct #42 - │ │ │ └─ [equals]: string #39 - │ │ ├─ variant_2: struct #43 - │ │ │ └─ [not]: string #39 - │ │ ├─ variant_3: struct #44 - │ │ │ └─ [in]: list 'list_41' #41 - │ │ │ └─ item: string #39 - │ │ ├─ variant_4: struct #45 - │ │ │ └─ [notIn]: list 'list_41' #41 - │ │ │ └─ item: string #39 - │ │ ├─ variant_5: struct #48 - │ │ │ ├─ [contains]: string #39 - │ │ │ └─ [mode]: optional 'optional_47' #47 - │ │ │ └─ item: string #46 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #49 - │ │ │ └─ [search]: string #39 - │ │ └─ variant_7: struct #50 - │ │ ├─ [endsWith]: optional 'optional_40' #40 - │ │ │ └─ item: string #39 - │ │ └─ [startsWith]: optional 'optional_40' #40 - │ │ └─ item: string #39 - │ └─ [posts]: optional 'optional_100' #100 - │ └─ item: union #99 - │ ├─ variant_0: struct #94 - │ │ └─ [every]: optional 'optional_93' #93 - │ │ └─ item: struct 'Post_where_excluding_User' #92 - │ │ ├─ [author]: optional 'optional_91' #91 - │ │ │ └─ item: &User_where #90 - │ │ ├─ [id]: optional 'optional_88' #88 - │ │ │ └─ item: optional '_prisma_integer_filter_ex' #37 - │ │ │ └─ item: union #36 - │ │ │ ├─ variant_0: either '_prisma_integer_filter' #34 - │ │ │ │ ├─ variant_0: integer #26 - │ │ │ │ ├─ variant_1: struct #29 - │ │ │ │ │ └─ [equals]: integer #26 - │ │ │ │ ├─ variant_2: struct #30 - │ │ │ │ │ └─ [not]: integer #26 - │ │ │ │ ├─ variant_3: struct #31 - │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ variant_4: struct #32 - │ │ │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ └─ variant_5: struct #33 - │ │ │ │ └─ [notIn]: list 'list_28' #28 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ variant_1: struct #35 - │ │ │ └─ [not]: either '_prisma_integer_filter' #34 - │ │ │ ├─ variant_0: integer #26 - │ │ │ ├─ variant_1: struct #29 - │ │ │ │ └─ [equals]: integer #26 - │ │ │ ├─ variant_2: struct #30 - │ │ │ │ └─ [not]: integer #26 - │ │ │ ├─ variant_3: struct #31 - │ │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ variant_4: struct #32 - │ │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ variant_5: struct #33 - │ │ │ └─ [notIn]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ └─ [title]: optional 'optional_89' #89 - │ │ └─ item: optional '_prisma_string_filter_ex' #54 - │ │ └─ item: union #53 - │ │ ├─ variant_0: union '_prisma_string_filter' #51 - │ │ │ ├─ variant_0: string #39 - │ │ │ ├─ variant_1: struct #42 - │ │ │ │ └─ [equals]: string #39 - │ │ │ ├─ variant_2: struct #43 - │ │ │ │ └─ [not]: string #39 - │ │ │ ├─ variant_3: struct #44 - │ │ │ │ └─ [in]: list 'list_41' #41 - │ │ │ │ └─ item: string #39 - │ │ │ ├─ variant_4: struct #45 - │ │ │ │ └─ [notIn]: list 'list_41' #41 - │ │ │ │ └─ item: string #39 - │ │ │ ├─ variant_5: struct #48 - │ │ │ │ ├─ [contains]: string #39 - │ │ │ │ └─ [mode]: optional 'optional_47' #47 - │ │ │ │ └─ item: string #46 enum{ '"insensitive"' } - │ │ │ ├─ variant_6: struct #49 - │ │ │ │ └─ [search]: string #39 - │ │ │ └─ variant_7: struct #50 - │ │ │ ├─ [endsWith]: optional 'optional_40' #40 - │ │ │ │ └─ item: string #39 - │ │ │ └─ [startsWith]: optional 'optional_40' #40 - │ │ │ └─ item: string #39 - │ │ └─ variant_1: struct #52 - │ │ └─ [not]: union '_prisma_string_filter' #51 - │ │ ├─ variant_0: string #39 - │ │ ├─ variant_1: struct #42 - │ │ │ └─ [equals]: string #39 - │ │ ├─ variant_2: struct #43 - │ │ │ └─ [not]: string #39 - │ │ ├─ variant_3: struct #44 - │ │ │ └─ [in]: list 'list_41' #41 - │ │ │ └─ item: string #39 - │ │ ├─ variant_4: struct #45 - │ │ │ └─ [notIn]: list 'list_41' #41 - │ │ │ └─ item: string #39 - │ │ ├─ variant_5: struct #48 - │ │ │ ├─ [contains]: string #39 - │ │ │ └─ [mode]: optional 'optional_47' #47 - │ │ │ └─ item: string #46 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #49 - │ │ │ └─ [search]: string #39 - │ │ └─ variant_7: struct #50 - │ │ ├─ [endsWith]: optional 'optional_40' #40 - │ │ │ └─ item: string #39 - │ │ └─ [startsWith]: optional 'optional_40' #40 - │ │ └─ item: string #39 - │ ├─ variant_1: struct #96 - │ │ └─ [some]: optional 'optional_95' #95 - │ │ └─ item: struct 'Post_where_excluding_User' #92 - │ │ ├─ [author]: optional 'optional_91' #91 - │ │ │ └─ item: &User_where #90 - │ │ ├─ [id]: optional 'optional_88' #88 - │ │ │ └─ item: optional '_prisma_integer_filter_ex' #37 - │ │ │ └─ item: union #36 - │ │ │ ├─ variant_0: either '_prisma_integer_filter' #34 - │ │ │ │ ├─ variant_0: integer #26 - │ │ │ │ ├─ variant_1: struct #29 - │ │ │ │ │ └─ [equals]: integer #26 - │ │ │ │ ├─ variant_2: struct #30 - │ │ │ │ │ └─ [not]: integer #26 - │ │ │ │ ├─ variant_3: struct #31 - │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ variant_4: struct #32 - │ │ │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ └─ variant_5: struct #33 - │ │ │ │ └─ [notIn]: list 'list_28' #28 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ variant_1: struct #35 - │ │ │ └─ [not]: either '_prisma_integer_filter' #34 - │ │ │ ├─ variant_0: integer #26 - │ │ │ ├─ variant_1: struct #29 - │ │ │ │ └─ [equals]: integer #26 - │ │ │ ├─ variant_2: struct #30 - │ │ │ │ └─ [not]: integer #26 - │ │ │ ├─ variant_3: struct #31 - │ │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ variant_4: struct #32 - │ │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ variant_5: struct #33 - │ │ │ └─ [notIn]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ └─ [title]: optional 'optional_89' #89 - │ │ └─ item: optional '_prisma_string_filter_ex' #54 - │ │ └─ item: union #53 - │ │ ├─ variant_0: union '_prisma_string_filter' #51 - │ │ │ ├─ variant_0: string #39 - │ │ │ ├─ variant_1: struct #42 - │ │ │ │ └─ [equals]: string #39 - │ │ │ ├─ variant_2: struct #43 - │ │ │ │ └─ [not]: string #39 - │ │ │ ├─ variant_3: struct #44 - │ │ │ │ └─ [in]: list 'list_41' #41 - │ │ │ │ └─ item: string #39 - │ │ │ ├─ variant_4: struct #45 - │ │ │ │ └─ [notIn]: list 'list_41' #41 - │ │ │ │ └─ item: string #39 - │ │ │ ├─ variant_5: struct #48 - │ │ │ │ ├─ [contains]: string #39 - │ │ │ │ └─ [mode]: optional 'optional_47' #47 - │ │ │ │ └─ item: string #46 enum{ '"insensitive"' } - │ │ │ ├─ variant_6: struct #49 - │ │ │ │ └─ [search]: string #39 - │ │ │ └─ variant_7: struct #50 - │ │ │ ├─ [endsWith]: optional 'optional_40' #40 - │ │ │ │ └─ item: string #39 - │ │ │ └─ [startsWith]: optional 'optional_40' #40 - │ │ │ └─ item: string #39 - │ │ └─ variant_1: struct #52 - │ │ └─ [not]: union '_prisma_string_filter' #51 - │ │ ├─ variant_0: string #39 - │ │ ├─ variant_1: struct #42 - │ │ │ └─ [equals]: string #39 - │ │ ├─ variant_2: struct #43 - │ │ │ └─ [not]: string #39 - │ │ ├─ variant_3: struct #44 - │ │ │ └─ [in]: list 'list_41' #41 - │ │ │ └─ item: string #39 - │ │ ├─ variant_4: struct #45 - │ │ │ └─ [notIn]: list 'list_41' #41 - │ │ │ └─ item: string #39 - │ │ ├─ variant_5: struct #48 - │ │ │ ├─ [contains]: string #39 - │ │ │ └─ [mode]: optional 'optional_47' #47 - │ │ │ └─ item: string #46 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #49 - │ │ │ └─ [search]: string #39 - │ │ └─ variant_7: struct #50 - │ │ ├─ [endsWith]: optional 'optional_40' #40 - │ │ │ └─ item: string #39 - │ │ └─ [startsWith]: optional 'optional_40' #40 - │ │ └─ item: string #39 - │ └─ variant_2: struct #98 - │ └─ [none]: optional 'optional_97' #97 - │ └─ item: struct 'Post_where_excluding_User' #92 - │ ├─ [author]: optional 'optional_91' #91 - │ │ └─ item: &User_where #90 - │ ├─ [id]: optional 'optional_88' #88 - │ │ └─ item: optional '_prisma_integer_filter_ex' #37 - │ │ └─ item: union #36 - │ │ ├─ variant_0: either '_prisma_integer_filter' #34 - │ │ │ ├─ variant_0: integer #26 - │ │ │ ├─ variant_1: struct #29 - │ │ │ │ └─ [equals]: integer #26 - │ │ │ ├─ variant_2: struct #30 - │ │ │ │ └─ [not]: integer #26 - │ │ │ ├─ variant_3: struct #31 - │ │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ variant_4: struct #32 - │ │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ variant_5: struct #33 - │ │ │ └─ [notIn]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ └─ variant_1: struct #35 - │ │ └─ [not]: either '_prisma_integer_filter' #34 - │ │ ├─ variant_0: integer #26 - │ │ ├─ variant_1: struct #29 - │ │ │ └─ [equals]: integer #26 - │ │ ├─ variant_2: struct #30 - │ │ │ └─ [not]: integer #26 - │ │ ├─ variant_3: struct #31 - │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ variant_4: struct #32 - │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ └─ variant_5: struct #33 - │ │ └─ [notIn]: list 'list_28' #28 - │ │ └─ item: integer #26 - │ └─ [title]: optional 'optional_89' #89 - │ └─ item: optional '_prisma_string_filter_ex' #54 - │ └─ item: union #53 - │ ├─ variant_0: union '_prisma_string_filter' #51 - │ │ ├─ variant_0: string #39 - │ │ ├─ variant_1: struct #42 - │ │ │ └─ [equals]: string #39 - │ │ ├─ variant_2: struct #43 - │ │ │ └─ [not]: string #39 - │ │ ├─ variant_3: struct #44 - │ │ │ └─ [in]: list 'list_41' #41 - │ │ │ └─ item: string #39 - │ │ ├─ variant_4: struct #45 - │ │ │ └─ [notIn]: list 'list_41' #41 - │ │ │ └─ item: string #39 - │ │ ├─ variant_5: struct #48 - │ │ │ ├─ [contains]: string #39 - │ │ │ └─ [mode]: optional 'optional_47' #47 - │ │ │ └─ item: string #46 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #49 - │ │ │ └─ [search]: string #39 - │ │ └─ variant_7: struct #50 - │ │ ├─ [endsWith]: optional 'optional_40' #40 - │ │ │ └─ item: string #39 - │ │ └─ [startsWith]: optional 'optional_40' #40 - │ │ └─ item: string #39 - │ └─ variant_1: struct #52 - │ └─ [not]: union '_prisma_string_filter' #51 - │ ├─ variant_0: string #39 - │ ├─ variant_1: struct #42 - │ │ └─ [equals]: string #39 - │ ├─ variant_2: struct #43 - │ │ └─ [not]: string #39 - │ ├─ variant_3: struct #44 - │ │ └─ [in]: list 'list_41' #41 - │ │ └─ item: string #39 - │ ├─ variant_4: struct #45 - │ │ └─ [notIn]: list 'list_41' #41 - │ │ └─ item: string #39 - │ ├─ variant_5: struct #48 - │ │ ├─ [contains]: string #39 - │ │ └─ [mode]: optional 'optional_47' #47 - │ │ └─ item: string #46 enum{ '"insensitive"' } - │ ├─ variant_6: struct #49 - │ │ └─ [search]: string #39 - │ └─ variant_7: struct #50 - │ ├─ [endsWith]: optional 'optional_40' #40 - │ │ └─ item: string #39 - │ └─ [startsWith]: optional 'optional_40' #40 - │ └─ item: string #39 - ├─ [id]: optional 'optional_84' #84 - │ └─ item: integer #17 - └─ [title]: string #19 +root: struct #161 +└─ [data]: struct 'Post_create_input' #160 + ├─ [author]: union #158 + │ ├─ variant_0: struct #155 + │ │ └─ [create]: struct 'User_create_input_excluding_rel_Post_User' #126 + │ │ ├─ [id]: integer #17 + │ │ └─ [name]: string #18 + │ ├─ variant_1: struct #156 + │ │ └─ [connect]: struct 'User_where' #153 + │ │ ├─ [id]: optional 'optional_127' #128 + │ │ │ └─ item: optional '_prisma_integer_filter_ex' #54 + │ │ │ └─ item: union #51 + │ │ │ ├─ variant_0: either '_prisma_integer_filter' #49 + │ │ │ │ ├─ variant_0: integer #38 + │ │ │ │ ├─ variant_1: struct #43 + │ │ │ │ │ └─ [equals]: integer #38 + │ │ │ │ ├─ variant_2: struct #44 + │ │ │ │ │ └─ [not]: integer #38 + │ │ │ │ ├─ variant_3: struct #45 + │ │ │ │ │ ├─ [gt]: optional 'optional_39' #40 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ ├─ [gte]: optional 'optional_39' #40 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ ├─ [lt]: optional 'optional_39' #40 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ └─ [lte]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ ├─ variant_4: struct #46 + │ │ │ │ │ └─ [in]: list 'list_41' #42 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ └─ variant_5: struct #47 + │ │ │ │ └─ [notIn]: list 'list_41' #42 + │ │ │ │ └─ item: integer #38 + │ │ │ └─ variant_1: struct #50 + │ │ │ └─ [not]: either '_prisma_integer_filter' #49 + │ │ │ ├─ variant_0: integer #38 + │ │ │ ├─ variant_1: struct #43 + │ │ │ │ └─ [equals]: integer #38 + │ │ │ ├─ variant_2: struct #44 + │ │ │ │ └─ [not]: integer #38 + │ │ │ ├─ variant_3: struct #45 + │ │ │ │ ├─ [gt]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ ├─ [gte]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ ├─ [lt]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ └─ [lte]: optional 'optional_39' #40 + │ │ │ │ └─ item: integer #38 + │ │ │ ├─ variant_4: struct #46 + │ │ │ │ └─ [in]: list 'list_41' #42 + │ │ │ │ └─ item: integer #38 + │ │ │ └─ variant_5: struct #47 + │ │ │ └─ [notIn]: list 'list_41' #42 + │ │ │ └─ item: integer #38 + │ │ ├─ [name]: optional 'optional_129' #130 + │ │ │ └─ item: optional '_prisma_string_filter_ex' #78 + │ │ │ └─ item: union #75 + │ │ │ ├─ variant_0: union '_prisma_string_filter' #73 + │ │ │ │ ├─ variant_0: string #57 + │ │ │ │ ├─ variant_1: struct #62 + │ │ │ │ │ └─ [equals]: string #57 + │ │ │ │ ├─ variant_2: struct #63 + │ │ │ │ │ └─ [not]: string #57 + │ │ │ │ ├─ variant_3: struct #64 + │ │ │ │ │ └─ [in]: list 'list_60' #61 + │ │ │ │ │ └─ item: string #57 + │ │ │ │ ├─ variant_4: struct #65 + │ │ │ │ │ └─ [notIn]: list 'list_60' #61 + │ │ │ │ │ └─ item: string #57 + │ │ │ │ ├─ variant_5: struct #69 + │ │ │ │ │ ├─ [contains]: string #57 + │ │ │ │ │ └─ [mode]: optional 'optional_67' #68 + │ │ │ │ │ └─ item: string #66 enum{ '"insensitive"' } + │ │ │ │ ├─ variant_6: struct #70 + │ │ │ │ │ └─ [search]: string #57 + │ │ │ │ └─ variant_7: struct #71 + │ │ │ │ ├─ [endsWith]: optional 'optional_58' #59 + │ │ │ │ │ └─ item: string #57 + │ │ │ │ └─ [startsWith]: optional 'optional_58' #59 + │ │ │ │ └─ item: string #57 + │ │ │ └─ variant_1: struct #74 + │ │ │ └─ [not]: union '_prisma_string_filter' #73 + │ │ │ ├─ variant_0: string #57 + │ │ │ ├─ variant_1: struct #62 + │ │ │ │ └─ [equals]: string #57 + │ │ │ ├─ variant_2: struct #63 + │ │ │ │ └─ [not]: string #57 + │ │ │ ├─ variant_3: struct #64 + │ │ │ │ └─ [in]: list 'list_60' #61 + │ │ │ │ └─ item: string #57 + │ │ │ ├─ variant_4: struct #65 + │ │ │ │ └─ [notIn]: list 'list_60' #61 + │ │ │ │ └─ item: string #57 + │ │ │ ├─ variant_5: struct #69 + │ │ │ │ ├─ [contains]: string #57 + │ │ │ │ └─ [mode]: optional 'optional_67' #68 + │ │ │ │ └─ item: string #66 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #70 + │ │ │ │ └─ [search]: string #57 + │ │ │ └─ variant_7: struct #71 + │ │ │ ├─ [endsWith]: optional 'optional_58' #59 + │ │ │ │ └─ item: string #57 + │ │ │ └─ [startsWith]: optional 'optional_58' #59 + │ │ │ └─ item: string #57 + │ │ └─ [posts]: optional 'optional_150' #151 + │ │ └─ item: union #149 + │ │ ├─ variant_0: struct #142 + │ │ │ └─ [every]: optional 'optional_140' #141 + │ │ │ └─ item: struct 'Post_where_excluding_User' #139 + │ │ │ ├─ [author]: optional 'optional_136' #137 + │ │ │ │ └─ item: &User_where #135 + │ │ │ ├─ [id]: optional 'optional_131' #132 + │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #54 + │ │ │ │ └─ item: union #51 + │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #49 + │ │ │ │ │ ├─ variant_0: integer #38 + │ │ │ │ │ ├─ variant_1: struct #43 + │ │ │ │ │ │ └─ [equals]: integer #38 + │ │ │ │ │ ├─ variant_2: struct #44 + │ │ │ │ │ │ └─ [not]: integer #38 + │ │ │ │ │ ├─ variant_3: struct #45 + │ │ │ │ │ │ ├─ [gt]: optional 'optional_39' #40 + │ │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ │ ├─ [gte]: optional 'optional_39' #40 + │ │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ │ ├─ [lt]: optional 'optional_39' #40 + │ │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ │ └─ [lte]: optional 'optional_39' #40 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ ├─ variant_4: struct #46 + │ │ │ │ │ │ └─ [in]: list 'list_41' #42 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ └─ variant_5: struct #47 + │ │ │ │ │ └─ [notIn]: list 'list_41' #42 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ └─ variant_1: struct #50 + │ │ │ │ └─ [not]: either '_prisma_integer_filter' #49 + │ │ │ │ ├─ variant_0: integer #38 + │ │ │ │ ├─ variant_1: struct #43 + │ │ │ │ │ └─ [equals]: integer #38 + │ │ │ │ ├─ variant_2: struct #44 + │ │ │ │ │ └─ [not]: integer #38 + │ │ │ │ ├─ variant_3: struct #45 + │ │ │ │ │ ├─ [gt]: optional 'optional_39' #40 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ ├─ [gte]: optional 'optional_39' #40 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ ├─ [lt]: optional 'optional_39' #40 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ └─ [lte]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ ├─ variant_4: struct #46 + │ │ │ │ │ └─ [in]: list 'list_41' #42 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ └─ variant_5: struct #47 + │ │ │ │ └─ [notIn]: list 'list_41' #42 + │ │ │ │ └─ item: integer #38 + │ │ │ └─ [title]: optional 'optional_133' #134 + │ │ │ └─ item: optional '_prisma_string_filter_ex' #78 + │ │ │ └─ item: union #75 + │ │ │ ├─ variant_0: union '_prisma_string_filter' #73 + │ │ │ │ ├─ variant_0: string #57 + │ │ │ │ ├─ variant_1: struct #62 + │ │ │ │ │ └─ [equals]: string #57 + │ │ │ │ ├─ variant_2: struct #63 + │ │ │ │ │ └─ [not]: string #57 + │ │ │ │ ├─ variant_3: struct #64 + │ │ │ │ │ └─ [in]: list 'list_60' #61 + │ │ │ │ │ └─ item: string #57 + │ │ │ │ ├─ variant_4: struct #65 + │ │ │ │ │ └─ [notIn]: list 'list_60' #61 + │ │ │ │ │ └─ item: string #57 + │ │ │ │ ├─ variant_5: struct #69 + │ │ │ │ │ ├─ [contains]: string #57 + │ │ │ │ │ └─ [mode]: optional 'optional_67' #68 + │ │ │ │ │ └─ item: string #66 enum{ '"insensitive"' } + │ │ │ │ ├─ variant_6: struct #70 + │ │ │ │ │ └─ [search]: string #57 + │ │ │ │ └─ variant_7: struct #71 + │ │ │ │ ├─ [endsWith]: optional 'optional_58' #59 + │ │ │ │ │ └─ item: string #57 + │ │ │ │ └─ [startsWith]: optional 'optional_58' #59 + │ │ │ │ └─ item: string #57 + │ │ │ └─ variant_1: struct #74 + │ │ │ └─ [not]: union '_prisma_string_filter' #73 + │ │ │ ├─ variant_0: string #57 + │ │ │ ├─ variant_1: struct #62 + │ │ │ │ └─ [equals]: string #57 + │ │ │ ├─ variant_2: struct #63 + │ │ │ │ └─ [not]: string #57 + │ │ │ ├─ variant_3: struct #64 + │ │ │ │ └─ [in]: list 'list_60' #61 + │ │ │ │ └─ item: string #57 + │ │ │ ├─ variant_4: struct #65 + │ │ │ │ └─ [notIn]: list 'list_60' #61 + │ │ │ │ └─ item: string #57 + │ │ │ ├─ variant_5: struct #69 + │ │ │ │ ├─ [contains]: string #57 + │ │ │ │ └─ [mode]: optional 'optional_67' #68 + │ │ │ │ └─ item: string #66 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #70 + │ │ │ │ └─ [search]: string #57 + │ │ │ └─ variant_7: struct #71 + │ │ │ ├─ [endsWith]: optional 'optional_58' #59 + │ │ │ │ └─ item: string #57 + │ │ │ └─ [startsWith]: optional 'optional_58' #59 + │ │ │ └─ item: string #57 + │ │ ├─ variant_1: struct #145 + │ │ │ └─ [some]: optional 'optional_143' #144 + │ │ │ └─ item: struct 'Post_where_excluding_User' #139 + │ │ │ ├─ [author]: optional 'optional_136' #137 + │ │ │ │ └─ item: &User_where #135 + │ │ │ ├─ [id]: optional 'optional_131' #132 + │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #54 + │ │ │ │ └─ item: union #51 + │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #49 + │ │ │ │ │ ├─ variant_0: integer #38 + │ │ │ │ │ ├─ variant_1: struct #43 + │ │ │ │ │ │ └─ [equals]: integer #38 + │ │ │ │ │ ├─ variant_2: struct #44 + │ │ │ │ │ │ └─ [not]: integer #38 + │ │ │ │ │ ├─ variant_3: struct #45 + │ │ │ │ │ │ ├─ [gt]: optional 'optional_39' #40 + │ │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ │ ├─ [gte]: optional 'optional_39' #40 + │ │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ │ ├─ [lt]: optional 'optional_39' #40 + │ │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ │ └─ [lte]: optional 'optional_39' #40 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ ├─ variant_4: struct #46 + │ │ │ │ │ │ └─ [in]: list 'list_41' #42 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ └─ variant_5: struct #47 + │ │ │ │ │ └─ [notIn]: list 'list_41' #42 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ └─ variant_1: struct #50 + │ │ │ │ └─ [not]: either '_prisma_integer_filter' #49 + │ │ │ │ ├─ variant_0: integer #38 + │ │ │ │ ├─ variant_1: struct #43 + │ │ │ │ │ └─ [equals]: integer #38 + │ │ │ │ ├─ variant_2: struct #44 + │ │ │ │ │ └─ [not]: integer #38 + │ │ │ │ ├─ variant_3: struct #45 + │ │ │ │ │ ├─ [gt]: optional 'optional_39' #40 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ ├─ [gte]: optional 'optional_39' #40 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ ├─ [lt]: optional 'optional_39' #40 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ └─ [lte]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ ├─ variant_4: struct #46 + │ │ │ │ │ └─ [in]: list 'list_41' #42 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ └─ variant_5: struct #47 + │ │ │ │ └─ [notIn]: list 'list_41' #42 + │ │ │ │ └─ item: integer #38 + │ │ │ └─ [title]: optional 'optional_133' #134 + │ │ │ └─ item: optional '_prisma_string_filter_ex' #78 + │ │ │ └─ item: union #75 + │ │ │ ├─ variant_0: union '_prisma_string_filter' #73 + │ │ │ │ ├─ variant_0: string #57 + │ │ │ │ ├─ variant_1: struct #62 + │ │ │ │ │ └─ [equals]: string #57 + │ │ │ │ ├─ variant_2: struct #63 + │ │ │ │ │ └─ [not]: string #57 + │ │ │ │ ├─ variant_3: struct #64 + │ │ │ │ │ └─ [in]: list 'list_60' #61 + │ │ │ │ │ └─ item: string #57 + │ │ │ │ ├─ variant_4: struct #65 + │ │ │ │ │ └─ [notIn]: list 'list_60' #61 + │ │ │ │ │ └─ item: string #57 + │ │ │ │ ├─ variant_5: struct #69 + │ │ │ │ │ ├─ [contains]: string #57 + │ │ │ │ │ └─ [mode]: optional 'optional_67' #68 + │ │ │ │ │ └─ item: string #66 enum{ '"insensitive"' } + │ │ │ │ ├─ variant_6: struct #70 + │ │ │ │ │ └─ [search]: string #57 + │ │ │ │ └─ variant_7: struct #71 + │ │ │ │ ├─ [endsWith]: optional 'optional_58' #59 + │ │ │ │ │ └─ item: string #57 + │ │ │ │ └─ [startsWith]: optional 'optional_58' #59 + │ │ │ │ └─ item: string #57 + │ │ │ └─ variant_1: struct #74 + │ │ │ └─ [not]: union '_prisma_string_filter' #73 + │ │ │ ├─ variant_0: string #57 + │ │ │ ├─ variant_1: struct #62 + │ │ │ │ └─ [equals]: string #57 + │ │ │ ├─ variant_2: struct #63 + │ │ │ │ └─ [not]: string #57 + │ │ │ ├─ variant_3: struct #64 + │ │ │ │ └─ [in]: list 'list_60' #61 + │ │ │ │ └─ item: string #57 + │ │ │ ├─ variant_4: struct #65 + │ │ │ │ └─ [notIn]: list 'list_60' #61 + │ │ │ │ └─ item: string #57 + │ │ │ ├─ variant_5: struct #69 + │ │ │ │ ├─ [contains]: string #57 + │ │ │ │ └─ [mode]: optional 'optional_67' #68 + │ │ │ │ └─ item: string #66 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #70 + │ │ │ │ └─ [search]: string #57 + │ │ │ └─ variant_7: struct #71 + │ │ │ ├─ [endsWith]: optional 'optional_58' #59 + │ │ │ │ └─ item: string #57 + │ │ │ └─ [startsWith]: optional 'optional_58' #59 + │ │ │ └─ item: string #57 + │ │ └─ variant_2: struct #148 + │ │ └─ [none]: optional 'optional_146' #147 + │ │ └─ item: struct 'Post_where_excluding_User' #139 + │ │ ├─ [author]: optional 'optional_136' #137 + │ │ │ └─ item: &User_where #135 + │ │ ├─ [id]: optional 'optional_131' #132 + │ │ │ └─ item: optional '_prisma_integer_filter_ex' #54 + │ │ │ └─ item: union #51 + │ │ │ ├─ variant_0: either '_prisma_integer_filter' #49 + │ │ │ │ ├─ variant_0: integer #38 + │ │ │ │ ├─ variant_1: struct #43 + │ │ │ │ │ └─ [equals]: integer #38 + │ │ │ │ ├─ variant_2: struct #44 + │ │ │ │ │ └─ [not]: integer #38 + │ │ │ │ ├─ variant_3: struct #45 + │ │ │ │ │ ├─ [gt]: optional 'optional_39' #40 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ ├─ [gte]: optional 'optional_39' #40 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ ├─ [lt]: optional 'optional_39' #40 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ └─ [lte]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ ├─ variant_4: struct #46 + │ │ │ │ │ └─ [in]: list 'list_41' #42 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ └─ variant_5: struct #47 + │ │ │ │ └─ [notIn]: list 'list_41' #42 + │ │ │ │ └─ item: integer #38 + │ │ │ └─ variant_1: struct #50 + │ │ │ └─ [not]: either '_prisma_integer_filter' #49 + │ │ │ ├─ variant_0: integer #38 + │ │ │ ├─ variant_1: struct #43 + │ │ │ │ └─ [equals]: integer #38 + │ │ │ ├─ variant_2: struct #44 + │ │ │ │ └─ [not]: integer #38 + │ │ │ ├─ variant_3: struct #45 + │ │ │ │ ├─ [gt]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ ├─ [gte]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ ├─ [lt]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ └─ [lte]: optional 'optional_39' #40 + │ │ │ │ └─ item: integer #38 + │ │ │ ├─ variant_4: struct #46 + │ │ │ │ └─ [in]: list 'list_41' #42 + │ │ │ │ └─ item: integer #38 + │ │ │ └─ variant_5: struct #47 + │ │ │ └─ [notIn]: list 'list_41' #42 + │ │ │ └─ item: integer #38 + │ │ └─ [title]: optional 'optional_133' #134 + │ │ └─ item: optional '_prisma_string_filter_ex' #78 + │ │ └─ item: union #75 + │ │ ├─ variant_0: union '_prisma_string_filter' #73 + │ │ │ ├─ variant_0: string #57 + │ │ │ ├─ variant_1: struct #62 + │ │ │ │ └─ [equals]: string #57 + │ │ │ ├─ variant_2: struct #63 + │ │ │ │ └─ [not]: string #57 + │ │ │ ├─ variant_3: struct #64 + │ │ │ │ └─ [in]: list 'list_60' #61 + │ │ │ │ └─ item: string #57 + │ │ │ ├─ variant_4: struct #65 + │ │ │ │ └─ [notIn]: list 'list_60' #61 + │ │ │ │ └─ item: string #57 + │ │ │ ├─ variant_5: struct #69 + │ │ │ │ ├─ [contains]: string #57 + │ │ │ │ └─ [mode]: optional 'optional_67' #68 + │ │ │ │ └─ item: string #66 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #70 + │ │ │ │ └─ [search]: string #57 + │ │ │ └─ variant_7: struct #71 + │ │ │ ├─ [endsWith]: optional 'optional_58' #59 + │ │ │ │ └─ item: string #57 + │ │ │ └─ [startsWith]: optional 'optional_58' #59 + │ │ │ └─ item: string #57 + │ │ └─ variant_1: struct #74 + │ │ └─ [not]: union '_prisma_string_filter' #73 + │ │ ├─ variant_0: string #57 + │ │ ├─ variant_1: struct #62 + │ │ │ └─ [equals]: string #57 + │ │ ├─ variant_2: struct #63 + │ │ │ └─ [not]: string #57 + │ │ ├─ variant_3: struct #64 + │ │ │ └─ [in]: list 'list_60' #61 + │ │ │ └─ item: string #57 + │ │ ├─ variant_4: struct #65 + │ │ │ └─ [notIn]: list 'list_60' #61 + │ │ │ └─ item: string #57 + │ │ ├─ variant_5: struct #69 + │ │ │ ├─ [contains]: string #57 + │ │ │ └─ [mode]: optional 'optional_67' #68 + │ │ │ └─ item: string #66 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #70 + │ │ │ └─ [search]: string #57 + │ │ └─ variant_7: struct #71 + │ │ ├─ [endsWith]: optional 'optional_58' #59 + │ │ │ └─ item: string #57 + │ │ └─ [startsWith]: optional 'optional_58' #59 + │ │ └─ item: string #57 + │ └─ variant_2: struct #157 + │ └─ [connectOrCreate]: struct #154 + │ ├─ [create]: struct 'User_create_input_excluding_rel_Post_User' #126 + │ │ ├─ [id]: integer #17 + │ │ └─ [name]: string #18 + │ └─ [where]: struct 'User_where' #153 + │ ├─ [id]: optional 'optional_127' #128 + │ │ └─ item: optional '_prisma_integer_filter_ex' #54 + │ │ └─ item: union #51 + │ │ ├─ variant_0: either '_prisma_integer_filter' #49 + │ │ │ ├─ variant_0: integer #38 + │ │ │ ├─ variant_1: struct #43 + │ │ │ │ └─ [equals]: integer #38 + │ │ │ ├─ variant_2: struct #44 + │ │ │ │ └─ [not]: integer #38 + │ │ │ ├─ variant_3: struct #45 + │ │ │ │ ├─ [gt]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ ├─ [gte]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ ├─ [lt]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ └─ [lte]: optional 'optional_39' #40 + │ │ │ │ └─ item: integer #38 + │ │ │ ├─ variant_4: struct #46 + │ │ │ │ └─ [in]: list 'list_41' #42 + │ │ │ │ └─ item: integer #38 + │ │ │ └─ variant_5: struct #47 + │ │ │ └─ [notIn]: list 'list_41' #42 + │ │ │ └─ item: integer #38 + │ │ └─ variant_1: struct #50 + │ │ └─ [not]: either '_prisma_integer_filter' #49 + │ │ ├─ variant_0: integer #38 + │ │ ├─ variant_1: struct #43 + │ │ │ └─ [equals]: integer #38 + │ │ ├─ variant_2: struct #44 + │ │ │ └─ [not]: integer #38 + │ │ ├─ variant_3: struct #45 + │ │ │ ├─ [gt]: optional 'optional_39' #40 + │ │ │ │ └─ item: integer #38 + │ │ │ ├─ [gte]: optional 'optional_39' #40 + │ │ │ │ └─ item: integer #38 + │ │ │ ├─ [lt]: optional 'optional_39' #40 + │ │ │ │ └─ item: integer #38 + │ │ │ └─ [lte]: optional 'optional_39' #40 + │ │ │ └─ item: integer #38 + │ │ ├─ variant_4: struct #46 + │ │ │ └─ [in]: list 'list_41' #42 + │ │ │ └─ item: integer #38 + │ │ └─ variant_5: struct #47 + │ │ └─ [notIn]: list 'list_41' #42 + │ │ └─ item: integer #38 + │ ├─ [name]: optional 'optional_129' #130 + │ │ └─ item: optional '_prisma_string_filter_ex' #78 + │ │ └─ item: union #75 + │ │ ├─ variant_0: union '_prisma_string_filter' #73 + │ │ │ ├─ variant_0: string #57 + │ │ │ ├─ variant_1: struct #62 + │ │ │ │ └─ [equals]: string #57 + │ │ │ ├─ variant_2: struct #63 + │ │ │ │ └─ [not]: string #57 + │ │ │ ├─ variant_3: struct #64 + │ │ │ │ └─ [in]: list 'list_60' #61 + │ │ │ │ └─ item: string #57 + │ │ │ ├─ variant_4: struct #65 + │ │ │ │ └─ [notIn]: list 'list_60' #61 + │ │ │ │ └─ item: string #57 + │ │ │ ├─ variant_5: struct #69 + │ │ │ │ ├─ [contains]: string #57 + │ │ │ │ └─ [mode]: optional 'optional_67' #68 + │ │ │ │ └─ item: string #66 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #70 + │ │ │ │ └─ [search]: string #57 + │ │ │ └─ variant_7: struct #71 + │ │ │ ├─ [endsWith]: optional 'optional_58' #59 + │ │ │ │ └─ item: string #57 + │ │ │ └─ [startsWith]: optional 'optional_58' #59 + │ │ │ └─ item: string #57 + │ │ └─ variant_1: struct #74 + │ │ └─ [not]: union '_prisma_string_filter' #73 + │ │ ├─ variant_0: string #57 + │ │ ├─ variant_1: struct #62 + │ │ │ └─ [equals]: string #57 + │ │ ├─ variant_2: struct #63 + │ │ │ └─ [not]: string #57 + │ │ ├─ variant_3: struct #64 + │ │ │ └─ [in]: list 'list_60' #61 + │ │ │ └─ item: string #57 + │ │ ├─ variant_4: struct #65 + │ │ │ └─ [notIn]: list 'list_60' #61 + │ │ │ └─ item: string #57 + │ │ ├─ variant_5: struct #69 + │ │ │ ├─ [contains]: string #57 + │ │ │ └─ [mode]: optional 'optional_67' #68 + │ │ │ └─ item: string #66 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #70 + │ │ │ └─ [search]: string #57 + │ │ └─ variant_7: struct #71 + │ │ ├─ [endsWith]: optional 'optional_58' #59 + │ │ │ └─ item: string #57 + │ │ └─ [startsWith]: optional 'optional_58' #59 + │ │ └─ item: string #57 + │ └─ [posts]: optional 'optional_150' #151 + │ └─ item: union #149 + │ ├─ variant_0: struct #142 + │ │ └─ [every]: optional 'optional_140' #141 + │ │ └─ item: struct 'Post_where_excluding_User' #139 + │ │ ├─ [author]: optional 'optional_136' #137 + │ │ │ └─ item: &User_where #135 + │ │ ├─ [id]: optional 'optional_131' #132 + │ │ │ └─ item: optional '_prisma_integer_filter_ex' #54 + │ │ │ └─ item: union #51 + │ │ │ ├─ variant_0: either '_prisma_integer_filter' #49 + │ │ │ │ ├─ variant_0: integer #38 + │ │ │ │ ├─ variant_1: struct #43 + │ │ │ │ │ └─ [equals]: integer #38 + │ │ │ │ ├─ variant_2: struct #44 + │ │ │ │ │ └─ [not]: integer #38 + │ │ │ │ ├─ variant_3: struct #45 + │ │ │ │ │ ├─ [gt]: optional 'optional_39' #40 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ ├─ [gte]: optional 'optional_39' #40 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ ├─ [lt]: optional 'optional_39' #40 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ └─ [lte]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ ├─ variant_4: struct #46 + │ │ │ │ │ └─ [in]: list 'list_41' #42 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ └─ variant_5: struct #47 + │ │ │ │ └─ [notIn]: list 'list_41' #42 + │ │ │ │ └─ item: integer #38 + │ │ │ └─ variant_1: struct #50 + │ │ │ └─ [not]: either '_prisma_integer_filter' #49 + │ │ │ ├─ variant_0: integer #38 + │ │ │ ├─ variant_1: struct #43 + │ │ │ │ └─ [equals]: integer #38 + │ │ │ ├─ variant_2: struct #44 + │ │ │ │ └─ [not]: integer #38 + │ │ │ ├─ variant_3: struct #45 + │ │ │ │ ├─ [gt]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ ├─ [gte]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ ├─ [lt]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ └─ [lte]: optional 'optional_39' #40 + │ │ │ │ └─ item: integer #38 + │ │ │ ├─ variant_4: struct #46 + │ │ │ │ └─ [in]: list 'list_41' #42 + │ │ │ │ └─ item: integer #38 + │ │ │ └─ variant_5: struct #47 + │ │ │ └─ [notIn]: list 'list_41' #42 + │ │ │ └─ item: integer #38 + │ │ └─ [title]: optional 'optional_133' #134 + │ │ └─ item: optional '_prisma_string_filter_ex' #78 + │ │ └─ item: union #75 + │ │ ├─ variant_0: union '_prisma_string_filter' #73 + │ │ │ ├─ variant_0: string #57 + │ │ │ ├─ variant_1: struct #62 + │ │ │ │ └─ [equals]: string #57 + │ │ │ ├─ variant_2: struct #63 + │ │ │ │ └─ [not]: string #57 + │ │ │ ├─ variant_3: struct #64 + │ │ │ │ └─ [in]: list 'list_60' #61 + │ │ │ │ └─ item: string #57 + │ │ │ ├─ variant_4: struct #65 + │ │ │ │ └─ [notIn]: list 'list_60' #61 + │ │ │ │ └─ item: string #57 + │ │ │ ├─ variant_5: struct #69 + │ │ │ │ ├─ [contains]: string #57 + │ │ │ │ └─ [mode]: optional 'optional_67' #68 + │ │ │ │ └─ item: string #66 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #70 + │ │ │ │ └─ [search]: string #57 + │ │ │ └─ variant_7: struct #71 + │ │ │ ├─ [endsWith]: optional 'optional_58' #59 + │ │ │ │ └─ item: string #57 + │ │ │ └─ [startsWith]: optional 'optional_58' #59 + │ │ │ └─ item: string #57 + │ │ └─ variant_1: struct #74 + │ │ └─ [not]: union '_prisma_string_filter' #73 + │ │ ├─ variant_0: string #57 + │ │ ├─ variant_1: struct #62 + │ │ │ └─ [equals]: string #57 + │ │ ├─ variant_2: struct #63 + │ │ │ └─ [not]: string #57 + │ │ ├─ variant_3: struct #64 + │ │ │ └─ [in]: list 'list_60' #61 + │ │ │ └─ item: string #57 + │ │ ├─ variant_4: struct #65 + │ │ │ └─ [notIn]: list 'list_60' #61 + │ │ │ └─ item: string #57 + │ │ ├─ variant_5: struct #69 + │ │ │ ├─ [contains]: string #57 + │ │ │ └─ [mode]: optional 'optional_67' #68 + │ │ │ └─ item: string #66 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #70 + │ │ │ └─ [search]: string #57 + │ │ └─ variant_7: struct #71 + │ │ ├─ [endsWith]: optional 'optional_58' #59 + │ │ │ └─ item: string #57 + │ │ └─ [startsWith]: optional 'optional_58' #59 + │ │ └─ item: string #57 + │ ├─ variant_1: struct #145 + │ │ └─ [some]: optional 'optional_143' #144 + │ │ └─ item: struct 'Post_where_excluding_User' #139 + │ │ ├─ [author]: optional 'optional_136' #137 + │ │ │ └─ item: &User_where #135 + │ │ ├─ [id]: optional 'optional_131' #132 + │ │ │ └─ item: optional '_prisma_integer_filter_ex' #54 + │ │ │ └─ item: union #51 + │ │ │ ├─ variant_0: either '_prisma_integer_filter' #49 + │ │ │ │ ├─ variant_0: integer #38 + │ │ │ │ ├─ variant_1: struct #43 + │ │ │ │ │ └─ [equals]: integer #38 + │ │ │ │ ├─ variant_2: struct #44 + │ │ │ │ │ └─ [not]: integer #38 + │ │ │ │ ├─ variant_3: struct #45 + │ │ │ │ │ ├─ [gt]: optional 'optional_39' #40 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ ├─ [gte]: optional 'optional_39' #40 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ ├─ [lt]: optional 'optional_39' #40 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ └─ [lte]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ ├─ variant_4: struct #46 + │ │ │ │ │ └─ [in]: list 'list_41' #42 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ └─ variant_5: struct #47 + │ │ │ │ └─ [notIn]: list 'list_41' #42 + │ │ │ │ └─ item: integer #38 + │ │ │ └─ variant_1: struct #50 + │ │ │ └─ [not]: either '_prisma_integer_filter' #49 + │ │ │ ├─ variant_0: integer #38 + │ │ │ ├─ variant_1: struct #43 + │ │ │ │ └─ [equals]: integer #38 + │ │ │ ├─ variant_2: struct #44 + │ │ │ │ └─ [not]: integer #38 + │ │ │ ├─ variant_3: struct #45 + │ │ │ │ ├─ [gt]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ ├─ [gte]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ ├─ [lt]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ └─ [lte]: optional 'optional_39' #40 + │ │ │ │ └─ item: integer #38 + │ │ │ ├─ variant_4: struct #46 + │ │ │ │ └─ [in]: list 'list_41' #42 + │ │ │ │ └─ item: integer #38 + │ │ │ └─ variant_5: struct #47 + │ │ │ └─ [notIn]: list 'list_41' #42 + │ │ │ └─ item: integer #38 + │ │ └─ [title]: optional 'optional_133' #134 + │ │ └─ item: optional '_prisma_string_filter_ex' #78 + │ │ └─ item: union #75 + │ │ ├─ variant_0: union '_prisma_string_filter' #73 + │ │ │ ├─ variant_0: string #57 + │ │ │ ├─ variant_1: struct #62 + │ │ │ │ └─ [equals]: string #57 + │ │ │ ├─ variant_2: struct #63 + │ │ │ │ └─ [not]: string #57 + │ │ │ ├─ variant_3: struct #64 + │ │ │ │ └─ [in]: list 'list_60' #61 + │ │ │ │ └─ item: string #57 + │ │ │ ├─ variant_4: struct #65 + │ │ │ │ └─ [notIn]: list 'list_60' #61 + │ │ │ │ └─ item: string #57 + │ │ │ ├─ variant_5: struct #69 + │ │ │ │ ├─ [contains]: string #57 + │ │ │ │ └─ [mode]: optional 'optional_67' #68 + │ │ │ │ └─ item: string #66 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #70 + │ │ │ │ └─ [search]: string #57 + │ │ │ └─ variant_7: struct #71 + │ │ │ ├─ [endsWith]: optional 'optional_58' #59 + │ │ │ │ └─ item: string #57 + │ │ │ └─ [startsWith]: optional 'optional_58' #59 + │ │ │ └─ item: string #57 + │ │ └─ variant_1: struct #74 + │ │ └─ [not]: union '_prisma_string_filter' #73 + │ │ ├─ variant_0: string #57 + │ │ ├─ variant_1: struct #62 + │ │ │ └─ [equals]: string #57 + │ │ ├─ variant_2: struct #63 + │ │ │ └─ [not]: string #57 + │ │ ├─ variant_3: struct #64 + │ │ │ └─ [in]: list 'list_60' #61 + │ │ │ └─ item: string #57 + │ │ ├─ variant_4: struct #65 + │ │ │ └─ [notIn]: list 'list_60' #61 + │ │ │ └─ item: string #57 + │ │ ├─ variant_5: struct #69 + │ │ │ ├─ [contains]: string #57 + │ │ │ └─ [mode]: optional 'optional_67' #68 + │ │ │ └─ item: string #66 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #70 + │ │ │ └─ [search]: string #57 + │ │ └─ variant_7: struct #71 + │ │ ├─ [endsWith]: optional 'optional_58' #59 + │ │ │ └─ item: string #57 + │ │ └─ [startsWith]: optional 'optional_58' #59 + │ │ └─ item: string #57 + │ └─ variant_2: struct #148 + │ └─ [none]: optional 'optional_146' #147 + │ └─ item: struct 'Post_where_excluding_User' #139 + │ ├─ [author]: optional 'optional_136' #137 + │ │ └─ item: &User_where #135 + │ ├─ [id]: optional 'optional_131' #132 + │ │ └─ item: optional '_prisma_integer_filter_ex' #54 + │ │ └─ item: union #51 + │ │ ├─ variant_0: either '_prisma_integer_filter' #49 + │ │ │ ├─ variant_0: integer #38 + │ │ │ ├─ variant_1: struct #43 + │ │ │ │ └─ [equals]: integer #38 + │ │ │ ├─ variant_2: struct #44 + │ │ │ │ └─ [not]: integer #38 + │ │ │ ├─ variant_3: struct #45 + │ │ │ │ ├─ [gt]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ ├─ [gte]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ ├─ [lt]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ └─ [lte]: optional 'optional_39' #40 + │ │ │ │ └─ item: integer #38 + │ │ │ ├─ variant_4: struct #46 + │ │ │ │ └─ [in]: list 'list_41' #42 + │ │ │ │ └─ item: integer #38 + │ │ │ └─ variant_5: struct #47 + │ │ │ └─ [notIn]: list 'list_41' #42 + │ │ │ └─ item: integer #38 + │ │ └─ variant_1: struct #50 + │ │ └─ [not]: either '_prisma_integer_filter' #49 + │ │ ├─ variant_0: integer #38 + │ │ ├─ variant_1: struct #43 + │ │ │ └─ [equals]: integer #38 + │ │ ├─ variant_2: struct #44 + │ │ │ └─ [not]: integer #38 + │ │ ├─ variant_3: struct #45 + │ │ │ ├─ [gt]: optional 'optional_39' #40 + │ │ │ │ └─ item: integer #38 + │ │ │ ├─ [gte]: optional 'optional_39' #40 + │ │ │ │ └─ item: integer #38 + │ │ │ ├─ [lt]: optional 'optional_39' #40 + │ │ │ │ └─ item: integer #38 + │ │ │ └─ [lte]: optional 'optional_39' #40 + │ │ │ └─ item: integer #38 + │ │ ├─ variant_4: struct #46 + │ │ │ └─ [in]: list 'list_41' #42 + │ │ │ └─ item: integer #38 + │ │ └─ variant_5: struct #47 + │ │ └─ [notIn]: list 'list_41' #42 + │ │ └─ item: integer #38 + │ └─ [title]: optional 'optional_133' #134 + │ └─ item: optional '_prisma_string_filter_ex' #78 + │ └─ item: union #75 + │ ├─ variant_0: union '_prisma_string_filter' #73 + │ │ ├─ variant_0: string #57 + │ │ ├─ variant_1: struct #62 + │ │ │ └─ [equals]: string #57 + │ │ ├─ variant_2: struct #63 + │ │ │ └─ [not]: string #57 + │ │ ├─ variant_3: struct #64 + │ │ │ └─ [in]: list 'list_60' #61 + │ │ │ └─ item: string #57 + │ │ ├─ variant_4: struct #65 + │ │ │ └─ [notIn]: list 'list_60' #61 + │ │ │ └─ item: string #57 + │ │ ├─ variant_5: struct #69 + │ │ │ ├─ [contains]: string #57 + │ │ │ └─ [mode]: optional 'optional_67' #68 + │ │ │ └─ item: string #66 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #70 + │ │ │ └─ [search]: string #57 + │ │ └─ variant_7: struct #71 + │ │ ├─ [endsWith]: optional 'optional_58' #59 + │ │ │ └─ item: string #57 + │ │ └─ [startsWith]: optional 'optional_58' #59 + │ │ └─ item: string #57 + │ └─ variant_1: struct #74 + │ └─ [not]: union '_prisma_string_filter' #73 + │ ├─ variant_0: string #57 + │ ├─ variant_1: struct #62 + │ │ └─ [equals]: string #57 + │ ├─ variant_2: struct #63 + │ │ └─ [not]: string #57 + │ ├─ variant_3: struct #64 + │ │ └─ [in]: list 'list_60' #61 + │ │ └─ item: string #57 + │ ├─ variant_4: struct #65 + │ │ └─ [notIn]: list 'list_60' #61 + │ │ └─ item: string #57 + │ ├─ variant_5: struct #69 + │ │ ├─ [contains]: string #57 + │ │ └─ [mode]: optional 'optional_67' #68 + │ │ └─ item: string #66 enum{ '"insensitive"' } + │ ├─ variant_6: struct #70 + │ │ └─ [search]: string #57 + │ └─ variant_7: struct #71 + │ ├─ [endsWith]: optional 'optional_58' #59 + │ │ └─ item: string #57 + │ └─ [startsWith]: optional 'optional_58' #59 + │ └─ item: string #57 + ├─ [id]: optional 'optional_123' #124 + │ └─ item: integer #26 + └─ [title]: string #27 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__create_one Record inp.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__create_one Record inp.snap index f2c201da1d..e4e4c3a470 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__create_one Record inp.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__create_one Record inp.snap @@ -2,11 +2,11 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs expression: tp.print(inp) --- -root: struct #10 -└─ [data]: struct 'Record_create_input' #9 - ├─ [age]: optional 'optional_6' #6 - │ └─ item: integer #5 +root: struct #15 +└─ [data]: struct 'Record_create_input' #14 + ├─ [age]: optional 'optional_7' #8 + │ └─ item: integer #6 ├─ [created_at]: string #1 - ├─ [id]: optional 'optional_8' #8 - │ └─ item: string #2 - └─ [name]: string #4 + ├─ [id]: optional 'optional_11' #12 + │ └─ item: string #4 + └─ [name]: string #5 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__create_one User inp.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__create_one User inp.snap index 17428a7ad8..e6de6bbee7 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__create_one User inp.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__create_one User inp.snap @@ -2,875 +2,875 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs expression: tp.print(inp) --- -root: struct #83 -└─ [data]: struct 'User_create_input' #82 - ├─ [id]: integer #12 - ├─ [name]: string #13 - └─ [posts]: optional 'optional_81' #81 - └─ item: union #80 - ├─ variant_0: struct #73 - │ └─ [create]: union #25 - │ ├─ variant_0: struct 'Post_create_input_excluding_rel_Post_User' #23 - │ │ ├─ [id]: optional 'optional_22' #22 - │ │ │ └─ item: integer #17 - │ │ └─ [title]: string #19 - │ └─ variant_1: list 'list_24' #24 - │ └─ item: struct 'Post_create_input_excluding_rel_Post_User' #23 - │ ├─ [id]: optional 'optional_22' #22 - │ │ └─ item: integer #17 - │ └─ [title]: string #19 - ├─ variant_1: struct #74 - │ └─ [connect]: union #71 - │ ├─ variant_0: struct 'Post_where' #69 - │ │ ├─ [author]: optional 'optional_68' #68 - │ │ │ └─ item: struct 'User_where_excluding_Post' #67 - │ │ │ ├─ [id]: optional 'optional_56' #56 - │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #37 - │ │ │ │ └─ item: union #36 - │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #34 - │ │ │ │ │ ├─ variant_0: integer #26 - │ │ │ │ │ ├─ variant_1: struct #29 - │ │ │ │ │ │ └─ [equals]: integer #26 - │ │ │ │ │ ├─ variant_2: struct #30 - │ │ │ │ │ │ └─ [not]: integer #26 - │ │ │ │ │ ├─ variant_3: struct #31 - │ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ ├─ variant_4: struct #32 - │ │ │ │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ └─ variant_5: struct #33 - │ │ │ │ │ └─ [notIn]: list 'list_28' #28 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ └─ variant_1: struct #35 - │ │ │ │ └─ [not]: either '_prisma_integer_filter' #34 - │ │ │ │ ├─ variant_0: integer #26 - │ │ │ │ ├─ variant_1: struct #29 - │ │ │ │ │ └─ [equals]: integer #26 - │ │ │ │ ├─ variant_2: struct #30 - │ │ │ │ │ └─ [not]: integer #26 - │ │ │ │ ├─ variant_3: struct #31 - │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ variant_4: struct #32 - │ │ │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ └─ variant_5: struct #33 - │ │ │ │ └─ [notIn]: list 'list_28' #28 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [name]: optional 'optional_57' #57 - │ │ │ │ └─ item: optional '_prisma_string_filter_ex' #54 - │ │ │ │ └─ item: union #53 - │ │ │ │ ├─ variant_0: union '_prisma_string_filter' #51 - │ │ │ │ │ ├─ variant_0: string #39 - │ │ │ │ │ ├─ variant_1: struct #42 - │ │ │ │ │ │ └─ [equals]: string #39 - │ │ │ │ │ ├─ variant_2: struct #43 - │ │ │ │ │ │ └─ [not]: string #39 - │ │ │ │ │ ├─ variant_3: struct #44 - │ │ │ │ │ │ └─ [in]: list 'list_41' #41 - │ │ │ │ │ │ └─ item: string #39 - │ │ │ │ │ ├─ variant_4: struct #45 - │ │ │ │ │ │ └─ [notIn]: list 'list_41' #41 - │ │ │ │ │ │ └─ item: string #39 - │ │ │ │ │ ├─ variant_5: struct #48 - │ │ │ │ │ │ ├─ [contains]: string #39 - │ │ │ │ │ │ └─ [mode]: optional 'optional_47' #47 - │ │ │ │ │ │ └─ item: string #46 enum{ '"insensitive"' } - │ │ │ │ │ ├─ variant_6: struct #49 - │ │ │ │ │ │ └─ [search]: string #39 - │ │ │ │ │ └─ variant_7: struct #50 - │ │ │ │ │ ├─ [endsWith]: optional 'optional_40' #40 - │ │ │ │ │ │ └─ item: string #39 - │ │ │ │ │ └─ [startsWith]: optional 'optional_40' #40 - │ │ │ │ │ └─ item: string #39 - │ │ │ │ └─ variant_1: struct #52 - │ │ │ │ └─ [not]: union '_prisma_string_filter' #51 - │ │ │ │ ├─ variant_0: string #39 - │ │ │ │ ├─ variant_1: struct #42 - │ │ │ │ │ └─ [equals]: string #39 - │ │ │ │ ├─ variant_2: struct #43 - │ │ │ │ │ └─ [not]: string #39 - │ │ │ │ ├─ variant_3: struct #44 - │ │ │ │ │ └─ [in]: list 'list_41' #41 - │ │ │ │ │ └─ item: string #39 - │ │ │ │ ├─ variant_4: struct #45 - │ │ │ │ │ └─ [notIn]: list 'list_41' #41 - │ │ │ │ │ └─ item: string #39 - │ │ │ │ ├─ variant_5: struct #48 - │ │ │ │ │ ├─ [contains]: string #39 - │ │ │ │ │ └─ [mode]: optional 'optional_47' #47 - │ │ │ │ │ └─ item: string #46 enum{ '"insensitive"' } - │ │ │ │ ├─ variant_6: struct #49 - │ │ │ │ │ └─ [search]: string #39 - │ │ │ │ └─ variant_7: struct #50 - │ │ │ │ ├─ [endsWith]: optional 'optional_40' #40 - │ │ │ │ │ └─ item: string #39 - │ │ │ │ └─ [startsWith]: optional 'optional_40' #40 - │ │ │ │ └─ item: string #39 - │ │ │ └─ [posts]: optional 'optional_66' #66 - │ │ │ └─ item: union #65 - │ │ │ ├─ variant_0: struct #60 - │ │ │ │ └─ [every]: optional 'optional_59' #59 - │ │ │ │ └─ item: &Post_where #58 - │ │ │ ├─ variant_1: struct #62 - │ │ │ │ └─ [some]: optional 'optional_61' #61 - │ │ │ │ └─ item: &Post_where #58 - │ │ │ └─ variant_2: struct #64 - │ │ │ └─ [none]: optional 'optional_63' #63 - │ │ │ └─ item: &Post_where #58 - │ │ ├─ [id]: optional 'optional_38' #38 - │ │ │ └─ item: optional '_prisma_integer_filter_ex' #37 - │ │ │ └─ item: union #36 - │ │ │ ├─ variant_0: either '_prisma_integer_filter' #34 - │ │ │ │ ├─ variant_0: integer #26 - │ │ │ │ ├─ variant_1: struct #29 - │ │ │ │ │ └─ [equals]: integer #26 - │ │ │ │ ├─ variant_2: struct #30 - │ │ │ │ │ └─ [not]: integer #26 - │ │ │ │ ├─ variant_3: struct #31 - │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ variant_4: struct #32 - │ │ │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ └─ variant_5: struct #33 - │ │ │ │ └─ [notIn]: list 'list_28' #28 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ variant_1: struct #35 - │ │ │ └─ [not]: either '_prisma_integer_filter' #34 - │ │ │ ├─ variant_0: integer #26 - │ │ │ ├─ variant_1: struct #29 - │ │ │ │ └─ [equals]: integer #26 - │ │ │ ├─ variant_2: struct #30 - │ │ │ │ └─ [not]: integer #26 - │ │ │ ├─ variant_3: struct #31 - │ │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ variant_4: struct #32 - │ │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ variant_5: struct #33 - │ │ │ └─ [notIn]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ └─ [title]: optional 'optional_55' #55 - │ │ └─ item: optional '_prisma_string_filter_ex' #54 - │ │ └─ item: union #53 - │ │ ├─ variant_0: union '_prisma_string_filter' #51 - │ │ │ ├─ variant_0: string #39 - │ │ │ ├─ variant_1: struct #42 - │ │ │ │ └─ [equals]: string #39 - │ │ │ ├─ variant_2: struct #43 - │ │ │ │ └─ [not]: string #39 - │ │ │ ├─ variant_3: struct #44 - │ │ │ │ └─ [in]: list 'list_41' #41 - │ │ │ │ └─ item: string #39 - │ │ │ ├─ variant_4: struct #45 - │ │ │ │ └─ [notIn]: list 'list_41' #41 - │ │ │ │ └─ item: string #39 - │ │ │ ├─ variant_5: struct #48 - │ │ │ │ ├─ [contains]: string #39 - │ │ │ │ └─ [mode]: optional 'optional_47' #47 - │ │ │ │ └─ item: string #46 enum{ '"insensitive"' } - │ │ │ ├─ variant_6: struct #49 - │ │ │ │ └─ [search]: string #39 - │ │ │ └─ variant_7: struct #50 - │ │ │ ├─ [endsWith]: optional 'optional_40' #40 - │ │ │ │ └─ item: string #39 - │ │ │ └─ [startsWith]: optional 'optional_40' #40 - │ │ │ └─ item: string #39 - │ │ └─ variant_1: struct #52 - │ │ └─ [not]: union '_prisma_string_filter' #51 - │ │ ├─ variant_0: string #39 - │ │ ├─ variant_1: struct #42 - │ │ │ └─ [equals]: string #39 - │ │ ├─ variant_2: struct #43 - │ │ │ └─ [not]: string #39 - │ │ ├─ variant_3: struct #44 - │ │ │ └─ [in]: list 'list_41' #41 - │ │ │ └─ item: string #39 - │ │ ├─ variant_4: struct #45 - │ │ │ └─ [notIn]: list 'list_41' #41 - │ │ │ └─ item: string #39 - │ │ ├─ variant_5: struct #48 - │ │ │ ├─ [contains]: string #39 - │ │ │ └─ [mode]: optional 'optional_47' #47 - │ │ │ └─ item: string #46 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #49 - │ │ │ └─ [search]: string #39 - │ │ └─ variant_7: struct #50 - │ │ ├─ [endsWith]: optional 'optional_40' #40 - │ │ │ └─ item: string #39 - │ │ └─ [startsWith]: optional 'optional_40' #40 - │ │ └─ item: string #39 - │ └─ variant_1: list 'list_70' #70 - │ └─ item: struct 'Post_where' #69 - │ ├─ [author]: optional 'optional_68' #68 - │ │ └─ item: struct 'User_where_excluding_Post' #67 - │ │ ├─ [id]: optional 'optional_56' #56 - │ │ │ └─ item: optional '_prisma_integer_filter_ex' #37 - │ │ │ └─ item: union #36 - │ │ │ ├─ variant_0: either '_prisma_integer_filter' #34 - │ │ │ │ ├─ variant_0: integer #26 - │ │ │ │ ├─ variant_1: struct #29 - │ │ │ │ │ └─ [equals]: integer #26 - │ │ │ │ ├─ variant_2: struct #30 - │ │ │ │ │ └─ [not]: integer #26 - │ │ │ │ ├─ variant_3: struct #31 - │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ variant_4: struct #32 - │ │ │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ └─ variant_5: struct #33 - │ │ │ │ └─ [notIn]: list 'list_28' #28 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ variant_1: struct #35 - │ │ │ └─ [not]: either '_prisma_integer_filter' #34 - │ │ │ ├─ variant_0: integer #26 - │ │ │ ├─ variant_1: struct #29 - │ │ │ │ └─ [equals]: integer #26 - │ │ │ ├─ variant_2: struct #30 - │ │ │ │ └─ [not]: integer #26 - │ │ │ ├─ variant_3: struct #31 - │ │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ variant_4: struct #32 - │ │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ variant_5: struct #33 - │ │ │ └─ [notIn]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ ├─ [name]: optional 'optional_57' #57 - │ │ │ └─ item: optional '_prisma_string_filter_ex' #54 - │ │ │ └─ item: union #53 - │ │ │ ├─ variant_0: union '_prisma_string_filter' #51 - │ │ │ │ ├─ variant_0: string #39 - │ │ │ │ ├─ variant_1: struct #42 - │ │ │ │ │ └─ [equals]: string #39 - │ │ │ │ ├─ variant_2: struct #43 - │ │ │ │ │ └─ [not]: string #39 - │ │ │ │ ├─ variant_3: struct #44 - │ │ │ │ │ └─ [in]: list 'list_41' #41 - │ │ │ │ │ └─ item: string #39 - │ │ │ │ ├─ variant_4: struct #45 - │ │ │ │ │ └─ [notIn]: list 'list_41' #41 - │ │ │ │ │ └─ item: string #39 - │ │ │ │ ├─ variant_5: struct #48 - │ │ │ │ │ ├─ [contains]: string #39 - │ │ │ │ │ └─ [mode]: optional 'optional_47' #47 - │ │ │ │ │ └─ item: string #46 enum{ '"insensitive"' } - │ │ │ │ ├─ variant_6: struct #49 - │ │ │ │ │ └─ [search]: string #39 - │ │ │ │ └─ variant_7: struct #50 - │ │ │ │ ├─ [endsWith]: optional 'optional_40' #40 - │ │ │ │ │ └─ item: string #39 - │ │ │ │ └─ [startsWith]: optional 'optional_40' #40 - │ │ │ │ └─ item: string #39 - │ │ │ └─ variant_1: struct #52 - │ │ │ └─ [not]: union '_prisma_string_filter' #51 - │ │ │ ├─ variant_0: string #39 - │ │ │ ├─ variant_1: struct #42 - │ │ │ │ └─ [equals]: string #39 - │ │ │ ├─ variant_2: struct #43 - │ │ │ │ └─ [not]: string #39 - │ │ │ ├─ variant_3: struct #44 - │ │ │ │ └─ [in]: list 'list_41' #41 - │ │ │ │ └─ item: string #39 - │ │ │ ├─ variant_4: struct #45 - │ │ │ │ └─ [notIn]: list 'list_41' #41 - │ │ │ │ └─ item: string #39 - │ │ │ ├─ variant_5: struct #48 - │ │ │ │ ├─ [contains]: string #39 - │ │ │ │ └─ [mode]: optional 'optional_47' #47 - │ │ │ │ └─ item: string #46 enum{ '"insensitive"' } - │ │ │ ├─ variant_6: struct #49 - │ │ │ │ └─ [search]: string #39 - │ │ │ └─ variant_7: struct #50 - │ │ │ ├─ [endsWith]: optional 'optional_40' #40 - │ │ │ │ └─ item: string #39 - │ │ │ └─ [startsWith]: optional 'optional_40' #40 - │ │ │ └─ item: string #39 - │ │ └─ [posts]: optional 'optional_66' #66 - │ │ └─ item: union #65 - │ │ ├─ variant_0: struct #60 - │ │ │ └─ [every]: optional 'optional_59' #59 - │ │ │ └─ item: &Post_where #58 - │ │ ├─ variant_1: struct #62 - │ │ │ └─ [some]: optional 'optional_61' #61 - │ │ │ └─ item: &Post_where #58 - │ │ └─ variant_2: struct #64 - │ │ └─ [none]: optional 'optional_63' #63 - │ │ └─ item: &Post_where #58 - │ ├─ [id]: optional 'optional_38' #38 - │ │ └─ item: optional '_prisma_integer_filter_ex' #37 - │ │ └─ item: union #36 - │ │ ├─ variant_0: either '_prisma_integer_filter' #34 - │ │ │ ├─ variant_0: integer #26 - │ │ │ ├─ variant_1: struct #29 - │ │ │ │ └─ [equals]: integer #26 - │ │ │ ├─ variant_2: struct #30 - │ │ │ │ └─ [not]: integer #26 - │ │ │ ├─ variant_3: struct #31 - │ │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ variant_4: struct #32 - │ │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ variant_5: struct #33 - │ │ │ └─ [notIn]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ └─ variant_1: struct #35 - │ │ └─ [not]: either '_prisma_integer_filter' #34 - │ │ ├─ variant_0: integer #26 - │ │ ├─ variant_1: struct #29 - │ │ │ └─ [equals]: integer #26 - │ │ ├─ variant_2: struct #30 - │ │ │ └─ [not]: integer #26 - │ │ ├─ variant_3: struct #31 - │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ variant_4: struct #32 - │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ └─ variant_5: struct #33 - │ │ └─ [notIn]: list 'list_28' #28 - │ │ └─ item: integer #26 - │ └─ [title]: optional 'optional_55' #55 - │ └─ item: optional '_prisma_string_filter_ex' #54 - │ └─ item: union #53 - │ ├─ variant_0: union '_prisma_string_filter' #51 - │ │ ├─ variant_0: string #39 - │ │ ├─ variant_1: struct #42 - │ │ │ └─ [equals]: string #39 - │ │ ├─ variant_2: struct #43 - │ │ │ └─ [not]: string #39 - │ │ ├─ variant_3: struct #44 - │ │ │ └─ [in]: list 'list_41' #41 - │ │ │ └─ item: string #39 - │ │ ├─ variant_4: struct #45 - │ │ │ └─ [notIn]: list 'list_41' #41 - │ │ │ └─ item: string #39 - │ │ ├─ variant_5: struct #48 - │ │ │ ├─ [contains]: string #39 - │ │ │ └─ [mode]: optional 'optional_47' #47 - │ │ │ └─ item: string #46 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #49 - │ │ │ └─ [search]: string #39 - │ │ └─ variant_7: struct #50 - │ │ ├─ [endsWith]: optional 'optional_40' #40 - │ │ │ └─ item: string #39 - │ │ └─ [startsWith]: optional 'optional_40' #40 - │ │ └─ item: string #39 - │ └─ variant_1: struct #52 - │ └─ [not]: union '_prisma_string_filter' #51 - │ ├─ variant_0: string #39 - │ ├─ variant_1: struct #42 - │ │ └─ [equals]: string #39 - │ ├─ variant_2: struct #43 - │ │ └─ [not]: string #39 - │ ├─ variant_3: struct #44 - │ │ └─ [in]: list 'list_41' #41 - │ │ └─ item: string #39 - │ ├─ variant_4: struct #45 - │ │ └─ [notIn]: list 'list_41' #41 - │ │ └─ item: string #39 - │ ├─ variant_5: struct #48 - │ │ ├─ [contains]: string #39 - │ │ └─ [mode]: optional 'optional_47' #47 - │ │ └─ item: string #46 enum{ '"insensitive"' } - │ ├─ variant_6: struct #49 - │ │ └─ [search]: string #39 - │ └─ variant_7: struct #50 - │ ├─ [endsWith]: optional 'optional_40' #40 - │ │ └─ item: string #39 - │ └─ [startsWith]: optional 'optional_40' #40 - │ └─ item: string #39 - ├─ variant_2: struct #75 - │ └─ [connectOrCreate]: struct #72 - │ ├─ [create]: union #25 - │ │ ├─ variant_0: struct 'Post_create_input_excluding_rel_Post_User' #23 - │ │ │ ├─ [id]: optional 'optional_22' #22 - │ │ │ │ └─ item: integer #17 - │ │ │ └─ [title]: string #19 - │ │ └─ variant_1: list 'list_24' #24 - │ │ └─ item: struct 'Post_create_input_excluding_rel_Post_User' #23 - │ │ ├─ [id]: optional 'optional_22' #22 - │ │ │ └─ item: integer #17 - │ │ └─ [title]: string #19 - │ └─ [where]: union #71 - │ ├─ variant_0: struct 'Post_where' #69 - │ │ ├─ [author]: optional 'optional_68' #68 - │ │ │ └─ item: struct 'User_where_excluding_Post' #67 - │ │ │ ├─ [id]: optional 'optional_56' #56 - │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #37 - │ │ │ │ └─ item: union #36 - │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #34 - │ │ │ │ │ ├─ variant_0: integer #26 - │ │ │ │ │ ├─ variant_1: struct #29 - │ │ │ │ │ │ └─ [equals]: integer #26 - │ │ │ │ │ ├─ variant_2: struct #30 - │ │ │ │ │ │ └─ [not]: integer #26 - │ │ │ │ │ ├─ variant_3: struct #31 - │ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ ├─ variant_4: struct #32 - │ │ │ │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ └─ variant_5: struct #33 - │ │ │ │ │ └─ [notIn]: list 'list_28' #28 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ └─ variant_1: struct #35 - │ │ │ │ └─ [not]: either '_prisma_integer_filter' #34 - │ │ │ │ ├─ variant_0: integer #26 - │ │ │ │ ├─ variant_1: struct #29 - │ │ │ │ │ └─ [equals]: integer #26 - │ │ │ │ ├─ variant_2: struct #30 - │ │ │ │ │ └─ [not]: integer #26 - │ │ │ │ ├─ variant_3: struct #31 - │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ variant_4: struct #32 - │ │ │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ └─ variant_5: struct #33 - │ │ │ │ └─ [notIn]: list 'list_28' #28 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [name]: optional 'optional_57' #57 - │ │ │ │ └─ item: optional '_prisma_string_filter_ex' #54 - │ │ │ │ └─ item: union #53 - │ │ │ │ ├─ variant_0: union '_prisma_string_filter' #51 - │ │ │ │ │ ├─ variant_0: string #39 - │ │ │ │ │ ├─ variant_1: struct #42 - │ │ │ │ │ │ └─ [equals]: string #39 - │ │ │ │ │ ├─ variant_2: struct #43 - │ │ │ │ │ │ └─ [not]: string #39 - │ │ │ │ │ ├─ variant_3: struct #44 - │ │ │ │ │ │ └─ [in]: list 'list_41' #41 - │ │ │ │ │ │ └─ item: string #39 - │ │ │ │ │ ├─ variant_4: struct #45 - │ │ │ │ │ │ └─ [notIn]: list 'list_41' #41 - │ │ │ │ │ │ └─ item: string #39 - │ │ │ │ │ ├─ variant_5: struct #48 - │ │ │ │ │ │ ├─ [contains]: string #39 - │ │ │ │ │ │ └─ [mode]: optional 'optional_47' #47 - │ │ │ │ │ │ └─ item: string #46 enum{ '"insensitive"' } - │ │ │ │ │ ├─ variant_6: struct #49 - │ │ │ │ │ │ └─ [search]: string #39 - │ │ │ │ │ └─ variant_7: struct #50 - │ │ │ │ │ ├─ [endsWith]: optional 'optional_40' #40 - │ │ │ │ │ │ └─ item: string #39 - │ │ │ │ │ └─ [startsWith]: optional 'optional_40' #40 - │ │ │ │ │ └─ item: string #39 - │ │ │ │ └─ variant_1: struct #52 - │ │ │ │ └─ [not]: union '_prisma_string_filter' #51 - │ │ │ │ ├─ variant_0: string #39 - │ │ │ │ ├─ variant_1: struct #42 - │ │ │ │ │ └─ [equals]: string #39 - │ │ │ │ ├─ variant_2: struct #43 - │ │ │ │ │ └─ [not]: string #39 - │ │ │ │ ├─ variant_3: struct #44 - │ │ │ │ │ └─ [in]: list 'list_41' #41 - │ │ │ │ │ └─ item: string #39 - │ │ │ │ ├─ variant_4: struct #45 - │ │ │ │ │ └─ [notIn]: list 'list_41' #41 - │ │ │ │ │ └─ item: string #39 - │ │ │ │ ├─ variant_5: struct #48 - │ │ │ │ │ ├─ [contains]: string #39 - │ │ │ │ │ └─ [mode]: optional 'optional_47' #47 - │ │ │ │ │ └─ item: string #46 enum{ '"insensitive"' } - │ │ │ │ ├─ variant_6: struct #49 - │ │ │ │ │ └─ [search]: string #39 - │ │ │ │ └─ variant_7: struct #50 - │ │ │ │ ├─ [endsWith]: optional 'optional_40' #40 - │ │ │ │ │ └─ item: string #39 - │ │ │ │ └─ [startsWith]: optional 'optional_40' #40 - │ │ │ │ └─ item: string #39 - │ │ │ └─ [posts]: optional 'optional_66' #66 - │ │ │ └─ item: union #65 - │ │ │ ├─ variant_0: struct #60 - │ │ │ │ └─ [every]: optional 'optional_59' #59 - │ │ │ │ └─ item: &Post_where #58 - │ │ │ ├─ variant_1: struct #62 - │ │ │ │ └─ [some]: optional 'optional_61' #61 - │ │ │ │ └─ item: &Post_where #58 - │ │ │ └─ variant_2: struct #64 - │ │ │ └─ [none]: optional 'optional_63' #63 - │ │ │ └─ item: &Post_where #58 - │ │ ├─ [id]: optional 'optional_38' #38 - │ │ │ └─ item: optional '_prisma_integer_filter_ex' #37 - │ │ │ └─ item: union #36 - │ │ │ ├─ variant_0: either '_prisma_integer_filter' #34 - │ │ │ │ ├─ variant_0: integer #26 - │ │ │ │ ├─ variant_1: struct #29 - │ │ │ │ │ └─ [equals]: integer #26 - │ │ │ │ ├─ variant_2: struct #30 - │ │ │ │ │ └─ [not]: integer #26 - │ │ │ │ ├─ variant_3: struct #31 - │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ variant_4: struct #32 - │ │ │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ └─ variant_5: struct #33 - │ │ │ │ └─ [notIn]: list 'list_28' #28 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ variant_1: struct #35 - │ │ │ └─ [not]: either '_prisma_integer_filter' #34 - │ │ │ ├─ variant_0: integer #26 - │ │ │ ├─ variant_1: struct #29 - │ │ │ │ └─ [equals]: integer #26 - │ │ │ ├─ variant_2: struct #30 - │ │ │ │ └─ [not]: integer #26 - │ │ │ ├─ variant_3: struct #31 - │ │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ variant_4: struct #32 - │ │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ variant_5: struct #33 - │ │ │ └─ [notIn]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ └─ [title]: optional 'optional_55' #55 - │ │ └─ item: optional '_prisma_string_filter_ex' #54 - │ │ └─ item: union #53 - │ │ ├─ variant_0: union '_prisma_string_filter' #51 - │ │ │ ├─ variant_0: string #39 - │ │ │ ├─ variant_1: struct #42 - │ │ │ │ └─ [equals]: string #39 - │ │ │ ├─ variant_2: struct #43 - │ │ │ │ └─ [not]: string #39 - │ │ │ ├─ variant_3: struct #44 - │ │ │ │ └─ [in]: list 'list_41' #41 - │ │ │ │ └─ item: string #39 - │ │ │ ├─ variant_4: struct #45 - │ │ │ │ └─ [notIn]: list 'list_41' #41 - │ │ │ │ └─ item: string #39 - │ │ │ ├─ variant_5: struct #48 - │ │ │ │ ├─ [contains]: string #39 - │ │ │ │ └─ [mode]: optional 'optional_47' #47 - │ │ │ │ └─ item: string #46 enum{ '"insensitive"' } - │ │ │ ├─ variant_6: struct #49 - │ │ │ │ └─ [search]: string #39 - │ │ │ └─ variant_7: struct #50 - │ │ │ ├─ [endsWith]: optional 'optional_40' #40 - │ │ │ │ └─ item: string #39 - │ │ │ └─ [startsWith]: optional 'optional_40' #40 - │ │ │ └─ item: string #39 - │ │ └─ variant_1: struct #52 - │ │ └─ [not]: union '_prisma_string_filter' #51 - │ │ ├─ variant_0: string #39 - │ │ ├─ variant_1: struct #42 - │ │ │ └─ [equals]: string #39 - │ │ ├─ variant_2: struct #43 - │ │ │ └─ [not]: string #39 - │ │ ├─ variant_3: struct #44 - │ │ │ └─ [in]: list 'list_41' #41 - │ │ │ └─ item: string #39 - │ │ ├─ variant_4: struct #45 - │ │ │ └─ [notIn]: list 'list_41' #41 - │ │ │ └─ item: string #39 - │ │ ├─ variant_5: struct #48 - │ │ │ ├─ [contains]: string #39 - │ │ │ └─ [mode]: optional 'optional_47' #47 - │ │ │ └─ item: string #46 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #49 - │ │ │ └─ [search]: string #39 - │ │ └─ variant_7: struct #50 - │ │ ├─ [endsWith]: optional 'optional_40' #40 - │ │ │ └─ item: string #39 - │ │ └─ [startsWith]: optional 'optional_40' #40 - │ │ └─ item: string #39 - │ └─ variant_1: list 'list_70' #70 - │ └─ item: struct 'Post_where' #69 - │ ├─ [author]: optional 'optional_68' #68 - │ │ └─ item: struct 'User_where_excluding_Post' #67 - │ │ ├─ [id]: optional 'optional_56' #56 - │ │ │ └─ item: optional '_prisma_integer_filter_ex' #37 - │ │ │ └─ item: union #36 - │ │ │ ├─ variant_0: either '_prisma_integer_filter' #34 - │ │ │ │ ├─ variant_0: integer #26 - │ │ │ │ ├─ variant_1: struct #29 - │ │ │ │ │ └─ [equals]: integer #26 - │ │ │ │ ├─ variant_2: struct #30 - │ │ │ │ │ └─ [not]: integer #26 - │ │ │ │ ├─ variant_3: struct #31 - │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ │ │ └─ item: integer #26 - │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ variant_4: struct #32 - │ │ │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ └─ variant_5: struct #33 - │ │ │ │ └─ [notIn]: list 'list_28' #28 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ variant_1: struct #35 - │ │ │ └─ [not]: either '_prisma_integer_filter' #34 - │ │ │ ├─ variant_0: integer #26 - │ │ │ ├─ variant_1: struct #29 - │ │ │ │ └─ [equals]: integer #26 - │ │ │ ├─ variant_2: struct #30 - │ │ │ │ └─ [not]: integer #26 - │ │ │ ├─ variant_3: struct #31 - │ │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ variant_4: struct #32 - │ │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ variant_5: struct #33 - │ │ │ └─ [notIn]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ ├─ [name]: optional 'optional_57' #57 - │ │ │ └─ item: optional '_prisma_string_filter_ex' #54 - │ │ │ └─ item: union #53 - │ │ │ ├─ variant_0: union '_prisma_string_filter' #51 - │ │ │ │ ├─ variant_0: string #39 - │ │ │ │ ├─ variant_1: struct #42 - │ │ │ │ │ └─ [equals]: string #39 - │ │ │ │ ├─ variant_2: struct #43 - │ │ │ │ │ └─ [not]: string #39 - │ │ │ │ ├─ variant_3: struct #44 - │ │ │ │ │ └─ [in]: list 'list_41' #41 - │ │ │ │ │ └─ item: string #39 - │ │ │ │ ├─ variant_4: struct #45 - │ │ │ │ │ └─ [notIn]: list 'list_41' #41 - │ │ │ │ │ └─ item: string #39 - │ │ │ │ ├─ variant_5: struct #48 - │ │ │ │ │ ├─ [contains]: string #39 - │ │ │ │ │ └─ [mode]: optional 'optional_47' #47 - │ │ │ │ │ └─ item: string #46 enum{ '"insensitive"' } - │ │ │ │ ├─ variant_6: struct #49 - │ │ │ │ │ └─ [search]: string #39 - │ │ │ │ └─ variant_7: struct #50 - │ │ │ │ ├─ [endsWith]: optional 'optional_40' #40 - │ │ │ │ │ └─ item: string #39 - │ │ │ │ └─ [startsWith]: optional 'optional_40' #40 - │ │ │ │ └─ item: string #39 - │ │ │ └─ variant_1: struct #52 - │ │ │ └─ [not]: union '_prisma_string_filter' #51 - │ │ │ ├─ variant_0: string #39 - │ │ │ ├─ variant_1: struct #42 - │ │ │ │ └─ [equals]: string #39 - │ │ │ ├─ variant_2: struct #43 - │ │ │ │ └─ [not]: string #39 - │ │ │ ├─ variant_3: struct #44 - │ │ │ │ └─ [in]: list 'list_41' #41 - │ │ │ │ └─ item: string #39 - │ │ │ ├─ variant_4: struct #45 - │ │ │ │ └─ [notIn]: list 'list_41' #41 - │ │ │ │ └─ item: string #39 - │ │ │ ├─ variant_5: struct #48 - │ │ │ │ ├─ [contains]: string #39 - │ │ │ │ └─ [mode]: optional 'optional_47' #47 - │ │ │ │ └─ item: string #46 enum{ '"insensitive"' } - │ │ │ ├─ variant_6: struct #49 - │ │ │ │ └─ [search]: string #39 - │ │ │ └─ variant_7: struct #50 - │ │ │ ├─ [endsWith]: optional 'optional_40' #40 - │ │ │ │ └─ item: string #39 - │ │ │ └─ [startsWith]: optional 'optional_40' #40 - │ │ │ └─ item: string #39 - │ │ └─ [posts]: optional 'optional_66' #66 - │ │ └─ item: union #65 - │ │ ├─ variant_0: struct #60 - │ │ │ └─ [every]: optional 'optional_59' #59 - │ │ │ └─ item: &Post_where #58 - │ │ ├─ variant_1: struct #62 - │ │ │ └─ [some]: optional 'optional_61' #61 - │ │ │ └─ item: &Post_where #58 - │ │ └─ variant_2: struct #64 - │ │ └─ [none]: optional 'optional_63' #63 - │ │ └─ item: &Post_where #58 - │ ├─ [id]: optional 'optional_38' #38 - │ │ └─ item: optional '_prisma_integer_filter_ex' #37 - │ │ └─ item: union #36 - │ │ ├─ variant_0: either '_prisma_integer_filter' #34 - │ │ │ ├─ variant_0: integer #26 - │ │ │ ├─ variant_1: struct #29 - │ │ │ │ └─ [equals]: integer #26 - │ │ │ ├─ variant_2: struct #30 - │ │ │ │ └─ [not]: integer #26 - │ │ │ ├─ variant_3: struct #31 - │ │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ variant_4: struct #32 - │ │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ variant_5: struct #33 - │ │ │ └─ [notIn]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ └─ variant_1: struct #35 - │ │ └─ [not]: either '_prisma_integer_filter' #34 - │ │ ├─ variant_0: integer #26 - │ │ ├─ variant_1: struct #29 - │ │ │ └─ [equals]: integer #26 - │ │ ├─ variant_2: struct #30 - │ │ │ └─ [not]: integer #26 - │ │ ├─ variant_3: struct #31 - │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ variant_4: struct #32 - │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ └─ variant_5: struct #33 - │ │ └─ [notIn]: list 'list_28' #28 - │ │ └─ item: integer #26 - │ └─ [title]: optional 'optional_55' #55 - │ └─ item: optional '_prisma_string_filter_ex' #54 - │ └─ item: union #53 - │ ├─ variant_0: union '_prisma_string_filter' #51 - │ │ ├─ variant_0: string #39 - │ │ ├─ variant_1: struct #42 - │ │ │ └─ [equals]: string #39 - │ │ ├─ variant_2: struct #43 - │ │ │ └─ [not]: string #39 - │ │ ├─ variant_3: struct #44 - │ │ │ └─ [in]: list 'list_41' #41 - │ │ │ └─ item: string #39 - │ │ ├─ variant_4: struct #45 - │ │ │ └─ [notIn]: list 'list_41' #41 - │ │ │ └─ item: string #39 - │ │ ├─ variant_5: struct #48 - │ │ │ ├─ [contains]: string #39 - │ │ │ └─ [mode]: optional 'optional_47' #47 - │ │ │ └─ item: string #46 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #49 - │ │ │ └─ [search]: string #39 - │ │ └─ variant_7: struct #50 - │ │ ├─ [endsWith]: optional 'optional_40' #40 - │ │ │ └─ item: string #39 - │ │ └─ [startsWith]: optional 'optional_40' #40 - │ │ └─ item: string #39 - │ └─ variant_1: struct #52 - │ └─ [not]: union '_prisma_string_filter' #51 - │ ├─ variant_0: string #39 - │ ├─ variant_1: struct #42 - │ │ └─ [equals]: string #39 - │ ├─ variant_2: struct #43 - │ │ └─ [not]: string #39 - │ ├─ variant_3: struct #44 - │ │ └─ [in]: list 'list_41' #41 - │ │ └─ item: string #39 - │ ├─ variant_4: struct #45 - │ │ └─ [notIn]: list 'list_41' #41 - │ │ └─ item: string #39 - │ ├─ variant_5: struct #48 - │ │ ├─ [contains]: string #39 - │ │ └─ [mode]: optional 'optional_47' #47 - │ │ └─ item: string #46 enum{ '"insensitive"' } - │ ├─ variant_6: struct #49 - │ │ └─ [search]: string #39 - │ └─ variant_7: struct #50 - │ ├─ [endsWith]: optional 'optional_40' #40 - │ │ └─ item: string #39 - │ └─ [startsWith]: optional 'optional_40' #40 - │ └─ item: string #39 - └─ variant_3: struct #79 - └─ [createMany]: optional 'optional_78' #78 - └─ item: struct #77 - └─ [data]: list 'list_76' #76 - └─ item: union #25 - ├─ variant_0: struct 'Post_create_input_excluding_rel_Post_User' #23 - │ ├─ [id]: optional 'optional_22' #22 - │ │ └─ item: integer #17 - │ └─ [title]: string #19 - └─ variant_1: list 'list_24' #24 - └─ item: struct 'Post_create_input_excluding_rel_Post_User' #23 - ├─ [id]: optional 'optional_22' #22 - │ └─ item: integer #17 - └─ [title]: string #19 +root: struct #122 +└─ [data]: struct 'User_create_input' #121 + ├─ [id]: integer #17 + ├─ [name]: string #18 + └─ [posts]: optional 'optional_118' #119 + └─ item: union #117 + ├─ variant_0: struct #108 + │ └─ [create]: union #37 + │ ├─ variant_0: struct 'Post_create_input_excluding_rel_Post_User' #34 + │ │ ├─ [id]: optional 'optional_31' #32 + │ │ │ └─ item: integer #26 + │ │ └─ [title]: string #27 + │ └─ variant_1: list 'list_35' #36 + │ └─ item: struct 'Post_create_input_excluding_rel_Post_User' #34 + │ ├─ [id]: optional 'optional_31' #32 + │ │ └─ item: integer #26 + │ └─ [title]: string #27 + ├─ variant_1: struct #109 + │ └─ [connect]: union #106 + │ ├─ variant_0: struct 'Post_where' #103 + │ │ ├─ [author]: optional 'optional_100' #101 + │ │ │ └─ item: struct 'User_where_excluding_Post' #99 + │ │ │ ├─ [id]: optional 'optional_81' #82 + │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #54 + │ │ │ │ └─ item: union #51 + │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #49 + │ │ │ │ │ ├─ variant_0: integer #38 + │ │ │ │ │ ├─ variant_1: struct #43 + │ │ │ │ │ │ └─ [equals]: integer #38 + │ │ │ │ │ ├─ variant_2: struct #44 + │ │ │ │ │ │ └─ [not]: integer #38 + │ │ │ │ │ ├─ variant_3: struct #45 + │ │ │ │ │ │ ├─ [gt]: optional 'optional_39' #40 + │ │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ │ ├─ [gte]: optional 'optional_39' #40 + │ │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ │ ├─ [lt]: optional 'optional_39' #40 + │ │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ │ └─ [lte]: optional 'optional_39' #40 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ ├─ variant_4: struct #46 + │ │ │ │ │ │ └─ [in]: list 'list_41' #42 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ └─ variant_5: struct #47 + │ │ │ │ │ └─ [notIn]: list 'list_41' #42 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ └─ variant_1: struct #50 + │ │ │ │ └─ [not]: either '_prisma_integer_filter' #49 + │ │ │ │ ├─ variant_0: integer #38 + │ │ │ │ ├─ variant_1: struct #43 + │ │ │ │ │ └─ [equals]: integer #38 + │ │ │ │ ├─ variant_2: struct #44 + │ │ │ │ │ └─ [not]: integer #38 + │ │ │ │ ├─ variant_3: struct #45 + │ │ │ │ │ ├─ [gt]: optional 'optional_39' #40 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ ├─ [gte]: optional 'optional_39' #40 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ ├─ [lt]: optional 'optional_39' #40 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ └─ [lte]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ ├─ variant_4: struct #46 + │ │ │ │ │ └─ [in]: list 'list_41' #42 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ └─ variant_5: struct #47 + │ │ │ │ └─ [notIn]: list 'list_41' #42 + │ │ │ │ └─ item: integer #38 + │ │ │ ├─ [name]: optional 'optional_83' #84 + │ │ │ │ └─ item: optional '_prisma_string_filter_ex' #78 + │ │ │ │ └─ item: union #75 + │ │ │ │ ├─ variant_0: union '_prisma_string_filter' #73 + │ │ │ │ │ ├─ variant_0: string #57 + │ │ │ │ │ ├─ variant_1: struct #62 + │ │ │ │ │ │ └─ [equals]: string #57 + │ │ │ │ │ ├─ variant_2: struct #63 + │ │ │ │ │ │ └─ [not]: string #57 + │ │ │ │ │ ├─ variant_3: struct #64 + │ │ │ │ │ │ └─ [in]: list 'list_60' #61 + │ │ │ │ │ │ └─ item: string #57 + │ │ │ │ │ ├─ variant_4: struct #65 + │ │ │ │ │ │ └─ [notIn]: list 'list_60' #61 + │ │ │ │ │ │ └─ item: string #57 + │ │ │ │ │ ├─ variant_5: struct #69 + │ │ │ │ │ │ ├─ [contains]: string #57 + │ │ │ │ │ │ └─ [mode]: optional 'optional_67' #68 + │ │ │ │ │ │ └─ item: string #66 enum{ '"insensitive"' } + │ │ │ │ │ ├─ variant_6: struct #70 + │ │ │ │ │ │ └─ [search]: string #57 + │ │ │ │ │ └─ variant_7: struct #71 + │ │ │ │ │ ├─ [endsWith]: optional 'optional_58' #59 + │ │ │ │ │ │ └─ item: string #57 + │ │ │ │ │ └─ [startsWith]: optional 'optional_58' #59 + │ │ │ │ │ └─ item: string #57 + │ │ │ │ └─ variant_1: struct #74 + │ │ │ │ └─ [not]: union '_prisma_string_filter' #73 + │ │ │ │ ├─ variant_0: string #57 + │ │ │ │ ├─ variant_1: struct #62 + │ │ │ │ │ └─ [equals]: string #57 + │ │ │ │ ├─ variant_2: struct #63 + │ │ │ │ │ └─ [not]: string #57 + │ │ │ │ ├─ variant_3: struct #64 + │ │ │ │ │ └─ [in]: list 'list_60' #61 + │ │ │ │ │ └─ item: string #57 + │ │ │ │ ├─ variant_4: struct #65 + │ │ │ │ │ └─ [notIn]: list 'list_60' #61 + │ │ │ │ │ └─ item: string #57 + │ │ │ │ ├─ variant_5: struct #69 + │ │ │ │ │ ├─ [contains]: string #57 + │ │ │ │ │ └─ [mode]: optional 'optional_67' #68 + │ │ │ │ │ └─ item: string #66 enum{ '"insensitive"' } + │ │ │ │ ├─ variant_6: struct #70 + │ │ │ │ │ └─ [search]: string #57 + │ │ │ │ └─ variant_7: struct #71 + │ │ │ │ ├─ [endsWith]: optional 'optional_58' #59 + │ │ │ │ │ └─ item: string #57 + │ │ │ │ └─ [startsWith]: optional 'optional_58' #59 + │ │ │ │ └─ item: string #57 + │ │ │ └─ [posts]: optional 'optional_96' #97 + │ │ │ └─ item: union #95 + │ │ │ ├─ variant_0: struct #88 + │ │ │ │ └─ [every]: optional 'optional_86' #87 + │ │ │ │ └─ item: &Post_where #85 + │ │ │ ├─ variant_1: struct #91 + │ │ │ │ └─ [some]: optional 'optional_89' #90 + │ │ │ │ └─ item: &Post_where #85 + │ │ │ └─ variant_2: struct #94 + │ │ │ └─ [none]: optional 'optional_92' #93 + │ │ │ └─ item: &Post_where #85 + │ │ ├─ [id]: optional 'optional_55' #56 + │ │ │ └─ item: optional '_prisma_integer_filter_ex' #54 + │ │ │ └─ item: union #51 + │ │ │ ├─ variant_0: either '_prisma_integer_filter' #49 + │ │ │ │ ├─ variant_0: integer #38 + │ │ │ │ ├─ variant_1: struct #43 + │ │ │ │ │ └─ [equals]: integer #38 + │ │ │ │ ├─ variant_2: struct #44 + │ │ │ │ │ └─ [not]: integer #38 + │ │ │ │ ├─ variant_3: struct #45 + │ │ │ │ │ ├─ [gt]: optional 'optional_39' #40 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ ├─ [gte]: optional 'optional_39' #40 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ ├─ [lt]: optional 'optional_39' #40 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ └─ [lte]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ ├─ variant_4: struct #46 + │ │ │ │ │ └─ [in]: list 'list_41' #42 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ └─ variant_5: struct #47 + │ │ │ │ └─ [notIn]: list 'list_41' #42 + │ │ │ │ └─ item: integer #38 + │ │ │ └─ variant_1: struct #50 + │ │ │ └─ [not]: either '_prisma_integer_filter' #49 + │ │ │ ├─ variant_0: integer #38 + │ │ │ ├─ variant_1: struct #43 + │ │ │ │ └─ [equals]: integer #38 + │ │ │ ├─ variant_2: struct #44 + │ │ │ │ └─ [not]: integer #38 + │ │ │ ├─ variant_3: struct #45 + │ │ │ │ ├─ [gt]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ ├─ [gte]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ ├─ [lt]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ └─ [lte]: optional 'optional_39' #40 + │ │ │ │ └─ item: integer #38 + │ │ │ ├─ variant_4: struct #46 + │ │ │ │ └─ [in]: list 'list_41' #42 + │ │ │ │ └─ item: integer #38 + │ │ │ └─ variant_5: struct #47 + │ │ │ └─ [notIn]: list 'list_41' #42 + │ │ │ └─ item: integer #38 + │ │ └─ [title]: optional 'optional_79' #80 + │ │ └─ item: optional '_prisma_string_filter_ex' #78 + │ │ └─ item: union #75 + │ │ ├─ variant_0: union '_prisma_string_filter' #73 + │ │ │ ├─ variant_0: string #57 + │ │ │ ├─ variant_1: struct #62 + │ │ │ │ └─ [equals]: string #57 + │ │ │ ├─ variant_2: struct #63 + │ │ │ │ └─ [not]: string #57 + │ │ │ ├─ variant_3: struct #64 + │ │ │ │ └─ [in]: list 'list_60' #61 + │ │ │ │ └─ item: string #57 + │ │ │ ├─ variant_4: struct #65 + │ │ │ │ └─ [notIn]: list 'list_60' #61 + │ │ │ │ └─ item: string #57 + │ │ │ ├─ variant_5: struct #69 + │ │ │ │ ├─ [contains]: string #57 + │ │ │ │ └─ [mode]: optional 'optional_67' #68 + │ │ │ │ └─ item: string #66 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #70 + │ │ │ │ └─ [search]: string #57 + │ │ │ └─ variant_7: struct #71 + │ │ │ ├─ [endsWith]: optional 'optional_58' #59 + │ │ │ │ └─ item: string #57 + │ │ │ └─ [startsWith]: optional 'optional_58' #59 + │ │ │ └─ item: string #57 + │ │ └─ variant_1: struct #74 + │ │ └─ [not]: union '_prisma_string_filter' #73 + │ │ ├─ variant_0: string #57 + │ │ ├─ variant_1: struct #62 + │ │ │ └─ [equals]: string #57 + │ │ ├─ variant_2: struct #63 + │ │ │ └─ [not]: string #57 + │ │ ├─ variant_3: struct #64 + │ │ │ └─ [in]: list 'list_60' #61 + │ │ │ └─ item: string #57 + │ │ ├─ variant_4: struct #65 + │ │ │ └─ [notIn]: list 'list_60' #61 + │ │ │ └─ item: string #57 + │ │ ├─ variant_5: struct #69 + │ │ │ ├─ [contains]: string #57 + │ │ │ └─ [mode]: optional 'optional_67' #68 + │ │ │ └─ item: string #66 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #70 + │ │ │ └─ [search]: string #57 + │ │ └─ variant_7: struct #71 + │ │ ├─ [endsWith]: optional 'optional_58' #59 + │ │ │ └─ item: string #57 + │ │ └─ [startsWith]: optional 'optional_58' #59 + │ │ └─ item: string #57 + │ └─ variant_1: list 'list_104' #105 + │ └─ item: struct 'Post_where' #103 + │ ├─ [author]: optional 'optional_100' #101 + │ │ └─ item: struct 'User_where_excluding_Post' #99 + │ │ ├─ [id]: optional 'optional_81' #82 + │ │ │ └─ item: optional '_prisma_integer_filter_ex' #54 + │ │ │ └─ item: union #51 + │ │ │ ├─ variant_0: either '_prisma_integer_filter' #49 + │ │ │ │ ├─ variant_0: integer #38 + │ │ │ │ ├─ variant_1: struct #43 + │ │ │ │ │ └─ [equals]: integer #38 + │ │ │ │ ├─ variant_2: struct #44 + │ │ │ │ │ └─ [not]: integer #38 + │ │ │ │ ├─ variant_3: struct #45 + │ │ │ │ │ ├─ [gt]: optional 'optional_39' #40 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ ├─ [gte]: optional 'optional_39' #40 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ ├─ [lt]: optional 'optional_39' #40 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ └─ [lte]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ ├─ variant_4: struct #46 + │ │ │ │ │ └─ [in]: list 'list_41' #42 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ └─ variant_5: struct #47 + │ │ │ │ └─ [notIn]: list 'list_41' #42 + │ │ │ │ └─ item: integer #38 + │ │ │ └─ variant_1: struct #50 + │ │ │ └─ [not]: either '_prisma_integer_filter' #49 + │ │ │ ├─ variant_0: integer #38 + │ │ │ ├─ variant_1: struct #43 + │ │ │ │ └─ [equals]: integer #38 + │ │ │ ├─ variant_2: struct #44 + │ │ │ │ └─ [not]: integer #38 + │ │ │ ├─ variant_3: struct #45 + │ │ │ │ ├─ [gt]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ ├─ [gte]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ ├─ [lt]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ └─ [lte]: optional 'optional_39' #40 + │ │ │ │ └─ item: integer #38 + │ │ │ ├─ variant_4: struct #46 + │ │ │ │ └─ [in]: list 'list_41' #42 + │ │ │ │ └─ item: integer #38 + │ │ │ └─ variant_5: struct #47 + │ │ │ └─ [notIn]: list 'list_41' #42 + │ │ │ └─ item: integer #38 + │ │ ├─ [name]: optional 'optional_83' #84 + │ │ │ └─ item: optional '_prisma_string_filter_ex' #78 + │ │ │ └─ item: union #75 + │ │ │ ├─ variant_0: union '_prisma_string_filter' #73 + │ │ │ │ ├─ variant_0: string #57 + │ │ │ │ ├─ variant_1: struct #62 + │ │ │ │ │ └─ [equals]: string #57 + │ │ │ │ ├─ variant_2: struct #63 + │ │ │ │ │ └─ [not]: string #57 + │ │ │ │ ├─ variant_3: struct #64 + │ │ │ │ │ └─ [in]: list 'list_60' #61 + │ │ │ │ │ └─ item: string #57 + │ │ │ │ ├─ variant_4: struct #65 + │ │ │ │ │ └─ [notIn]: list 'list_60' #61 + │ │ │ │ │ └─ item: string #57 + │ │ │ │ ├─ variant_5: struct #69 + │ │ │ │ │ ├─ [contains]: string #57 + │ │ │ │ │ └─ [mode]: optional 'optional_67' #68 + │ │ │ │ │ └─ item: string #66 enum{ '"insensitive"' } + │ │ │ │ ├─ variant_6: struct #70 + │ │ │ │ │ └─ [search]: string #57 + │ │ │ │ └─ variant_7: struct #71 + │ │ │ │ ├─ [endsWith]: optional 'optional_58' #59 + │ │ │ │ │ └─ item: string #57 + │ │ │ │ └─ [startsWith]: optional 'optional_58' #59 + │ │ │ │ └─ item: string #57 + │ │ │ └─ variant_1: struct #74 + │ │ │ └─ [not]: union '_prisma_string_filter' #73 + │ │ │ ├─ variant_0: string #57 + │ │ │ ├─ variant_1: struct #62 + │ │ │ │ └─ [equals]: string #57 + │ │ │ ├─ variant_2: struct #63 + │ │ │ │ └─ [not]: string #57 + │ │ │ ├─ variant_3: struct #64 + │ │ │ │ └─ [in]: list 'list_60' #61 + │ │ │ │ └─ item: string #57 + │ │ │ ├─ variant_4: struct #65 + │ │ │ │ └─ [notIn]: list 'list_60' #61 + │ │ │ │ └─ item: string #57 + │ │ │ ├─ variant_5: struct #69 + │ │ │ │ ├─ [contains]: string #57 + │ │ │ │ └─ [mode]: optional 'optional_67' #68 + │ │ │ │ └─ item: string #66 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #70 + │ │ │ │ └─ [search]: string #57 + │ │ │ └─ variant_7: struct #71 + │ │ │ ├─ [endsWith]: optional 'optional_58' #59 + │ │ │ │ └─ item: string #57 + │ │ │ └─ [startsWith]: optional 'optional_58' #59 + │ │ │ └─ item: string #57 + │ │ └─ [posts]: optional 'optional_96' #97 + │ │ └─ item: union #95 + │ │ ├─ variant_0: struct #88 + │ │ │ └─ [every]: optional 'optional_86' #87 + │ │ │ └─ item: &Post_where #85 + │ │ ├─ variant_1: struct #91 + │ │ │ └─ [some]: optional 'optional_89' #90 + │ │ │ └─ item: &Post_where #85 + │ │ └─ variant_2: struct #94 + │ │ └─ [none]: optional 'optional_92' #93 + │ │ └─ item: &Post_where #85 + │ ├─ [id]: optional 'optional_55' #56 + │ │ └─ item: optional '_prisma_integer_filter_ex' #54 + │ │ └─ item: union #51 + │ │ ├─ variant_0: either '_prisma_integer_filter' #49 + │ │ │ ├─ variant_0: integer #38 + │ │ │ ├─ variant_1: struct #43 + │ │ │ │ └─ [equals]: integer #38 + │ │ │ ├─ variant_2: struct #44 + │ │ │ │ └─ [not]: integer #38 + │ │ │ ├─ variant_3: struct #45 + │ │ │ │ ├─ [gt]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ ├─ [gte]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ ├─ [lt]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ └─ [lte]: optional 'optional_39' #40 + │ │ │ │ └─ item: integer #38 + │ │ │ ├─ variant_4: struct #46 + │ │ │ │ └─ [in]: list 'list_41' #42 + │ │ │ │ └─ item: integer #38 + │ │ │ └─ variant_5: struct #47 + │ │ │ └─ [notIn]: list 'list_41' #42 + │ │ │ └─ item: integer #38 + │ │ └─ variant_1: struct #50 + │ │ └─ [not]: either '_prisma_integer_filter' #49 + │ │ ├─ variant_0: integer #38 + │ │ ├─ variant_1: struct #43 + │ │ │ └─ [equals]: integer #38 + │ │ ├─ variant_2: struct #44 + │ │ │ └─ [not]: integer #38 + │ │ ├─ variant_3: struct #45 + │ │ │ ├─ [gt]: optional 'optional_39' #40 + │ │ │ │ └─ item: integer #38 + │ │ │ ├─ [gte]: optional 'optional_39' #40 + │ │ │ │ └─ item: integer #38 + │ │ │ ├─ [lt]: optional 'optional_39' #40 + │ │ │ │ └─ item: integer #38 + │ │ │ └─ [lte]: optional 'optional_39' #40 + │ │ │ └─ item: integer #38 + │ │ ├─ variant_4: struct #46 + │ │ │ └─ [in]: list 'list_41' #42 + │ │ │ └─ item: integer #38 + │ │ └─ variant_5: struct #47 + │ │ └─ [notIn]: list 'list_41' #42 + │ │ └─ item: integer #38 + │ └─ [title]: optional 'optional_79' #80 + │ └─ item: optional '_prisma_string_filter_ex' #78 + │ └─ item: union #75 + │ ├─ variant_0: union '_prisma_string_filter' #73 + │ │ ├─ variant_0: string #57 + │ │ ├─ variant_1: struct #62 + │ │ │ └─ [equals]: string #57 + │ │ ├─ variant_2: struct #63 + │ │ │ └─ [not]: string #57 + │ │ ├─ variant_3: struct #64 + │ │ │ └─ [in]: list 'list_60' #61 + │ │ │ └─ item: string #57 + │ │ ├─ variant_4: struct #65 + │ │ │ └─ [notIn]: list 'list_60' #61 + │ │ │ └─ item: string #57 + │ │ ├─ variant_5: struct #69 + │ │ │ ├─ [contains]: string #57 + │ │ │ └─ [mode]: optional 'optional_67' #68 + │ │ │ └─ item: string #66 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #70 + │ │ │ └─ [search]: string #57 + │ │ └─ variant_7: struct #71 + │ │ ├─ [endsWith]: optional 'optional_58' #59 + │ │ │ └─ item: string #57 + │ │ └─ [startsWith]: optional 'optional_58' #59 + │ │ └─ item: string #57 + │ └─ variant_1: struct #74 + │ └─ [not]: union '_prisma_string_filter' #73 + │ ├─ variant_0: string #57 + │ ├─ variant_1: struct #62 + │ │ └─ [equals]: string #57 + │ ├─ variant_2: struct #63 + │ │ └─ [not]: string #57 + │ ├─ variant_3: struct #64 + │ │ └─ [in]: list 'list_60' #61 + │ │ └─ item: string #57 + │ ├─ variant_4: struct #65 + │ │ └─ [notIn]: list 'list_60' #61 + │ │ └─ item: string #57 + │ ├─ variant_5: struct #69 + │ │ ├─ [contains]: string #57 + │ │ └─ [mode]: optional 'optional_67' #68 + │ │ └─ item: string #66 enum{ '"insensitive"' } + │ ├─ variant_6: struct #70 + │ │ └─ [search]: string #57 + │ └─ variant_7: struct #71 + │ ├─ [endsWith]: optional 'optional_58' #59 + │ │ └─ item: string #57 + │ └─ [startsWith]: optional 'optional_58' #59 + │ └─ item: string #57 + ├─ variant_2: struct #110 + │ └─ [connectOrCreate]: struct #107 + │ ├─ [create]: union #37 + │ │ ├─ variant_0: struct 'Post_create_input_excluding_rel_Post_User' #34 + │ │ │ ├─ [id]: optional 'optional_31' #32 + │ │ │ │ └─ item: integer #26 + │ │ │ └─ [title]: string #27 + │ │ └─ variant_1: list 'list_35' #36 + │ │ └─ item: struct 'Post_create_input_excluding_rel_Post_User' #34 + │ │ ├─ [id]: optional 'optional_31' #32 + │ │ │ └─ item: integer #26 + │ │ └─ [title]: string #27 + │ └─ [where]: union #106 + │ ├─ variant_0: struct 'Post_where' #103 + │ │ ├─ [author]: optional 'optional_100' #101 + │ │ │ └─ item: struct 'User_where_excluding_Post' #99 + │ │ │ ├─ [id]: optional 'optional_81' #82 + │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #54 + │ │ │ │ └─ item: union #51 + │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #49 + │ │ │ │ │ ├─ variant_0: integer #38 + │ │ │ │ │ ├─ variant_1: struct #43 + │ │ │ │ │ │ └─ [equals]: integer #38 + │ │ │ │ │ ├─ variant_2: struct #44 + │ │ │ │ │ │ └─ [not]: integer #38 + │ │ │ │ │ ├─ variant_3: struct #45 + │ │ │ │ │ │ ├─ [gt]: optional 'optional_39' #40 + │ │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ │ ├─ [gte]: optional 'optional_39' #40 + │ │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ │ ├─ [lt]: optional 'optional_39' #40 + │ │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ │ └─ [lte]: optional 'optional_39' #40 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ ├─ variant_4: struct #46 + │ │ │ │ │ │ └─ [in]: list 'list_41' #42 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ └─ variant_5: struct #47 + │ │ │ │ │ └─ [notIn]: list 'list_41' #42 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ └─ variant_1: struct #50 + │ │ │ │ └─ [not]: either '_prisma_integer_filter' #49 + │ │ │ │ ├─ variant_0: integer #38 + │ │ │ │ ├─ variant_1: struct #43 + │ │ │ │ │ └─ [equals]: integer #38 + │ │ │ │ ├─ variant_2: struct #44 + │ │ │ │ │ └─ [not]: integer #38 + │ │ │ │ ├─ variant_3: struct #45 + │ │ │ │ │ ├─ [gt]: optional 'optional_39' #40 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ ├─ [gte]: optional 'optional_39' #40 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ ├─ [lt]: optional 'optional_39' #40 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ └─ [lte]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ ├─ variant_4: struct #46 + │ │ │ │ │ └─ [in]: list 'list_41' #42 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ └─ variant_5: struct #47 + │ │ │ │ └─ [notIn]: list 'list_41' #42 + │ │ │ │ └─ item: integer #38 + │ │ │ ├─ [name]: optional 'optional_83' #84 + │ │ │ │ └─ item: optional '_prisma_string_filter_ex' #78 + │ │ │ │ └─ item: union #75 + │ │ │ │ ├─ variant_0: union '_prisma_string_filter' #73 + │ │ │ │ │ ├─ variant_0: string #57 + │ │ │ │ │ ├─ variant_1: struct #62 + │ │ │ │ │ │ └─ [equals]: string #57 + │ │ │ │ │ ├─ variant_2: struct #63 + │ │ │ │ │ │ └─ [not]: string #57 + │ │ │ │ │ ├─ variant_3: struct #64 + │ │ │ │ │ │ └─ [in]: list 'list_60' #61 + │ │ │ │ │ │ └─ item: string #57 + │ │ │ │ │ ├─ variant_4: struct #65 + │ │ │ │ │ │ └─ [notIn]: list 'list_60' #61 + │ │ │ │ │ │ └─ item: string #57 + │ │ │ │ │ ├─ variant_5: struct #69 + │ │ │ │ │ │ ├─ [contains]: string #57 + │ │ │ │ │ │ └─ [mode]: optional 'optional_67' #68 + │ │ │ │ │ │ └─ item: string #66 enum{ '"insensitive"' } + │ │ │ │ │ ├─ variant_6: struct #70 + │ │ │ │ │ │ └─ [search]: string #57 + │ │ │ │ │ └─ variant_7: struct #71 + │ │ │ │ │ ├─ [endsWith]: optional 'optional_58' #59 + │ │ │ │ │ │ └─ item: string #57 + │ │ │ │ │ └─ [startsWith]: optional 'optional_58' #59 + │ │ │ │ │ └─ item: string #57 + │ │ │ │ └─ variant_1: struct #74 + │ │ │ │ └─ [not]: union '_prisma_string_filter' #73 + │ │ │ │ ├─ variant_0: string #57 + │ │ │ │ ├─ variant_1: struct #62 + │ │ │ │ │ └─ [equals]: string #57 + │ │ │ │ ├─ variant_2: struct #63 + │ │ │ │ │ └─ [not]: string #57 + │ │ │ │ ├─ variant_3: struct #64 + │ │ │ │ │ └─ [in]: list 'list_60' #61 + │ │ │ │ │ └─ item: string #57 + │ │ │ │ ├─ variant_4: struct #65 + │ │ │ │ │ └─ [notIn]: list 'list_60' #61 + │ │ │ │ │ └─ item: string #57 + │ │ │ │ ├─ variant_5: struct #69 + │ │ │ │ │ ├─ [contains]: string #57 + │ │ │ │ │ └─ [mode]: optional 'optional_67' #68 + │ │ │ │ │ └─ item: string #66 enum{ '"insensitive"' } + │ │ │ │ ├─ variant_6: struct #70 + │ │ │ │ │ └─ [search]: string #57 + │ │ │ │ └─ variant_7: struct #71 + │ │ │ │ ├─ [endsWith]: optional 'optional_58' #59 + │ │ │ │ │ └─ item: string #57 + │ │ │ │ └─ [startsWith]: optional 'optional_58' #59 + │ │ │ │ └─ item: string #57 + │ │ │ └─ [posts]: optional 'optional_96' #97 + │ │ │ └─ item: union #95 + │ │ │ ├─ variant_0: struct #88 + │ │ │ │ └─ [every]: optional 'optional_86' #87 + │ │ │ │ └─ item: &Post_where #85 + │ │ │ ├─ variant_1: struct #91 + │ │ │ │ └─ [some]: optional 'optional_89' #90 + │ │ │ │ └─ item: &Post_where #85 + │ │ │ └─ variant_2: struct #94 + │ │ │ └─ [none]: optional 'optional_92' #93 + │ │ │ └─ item: &Post_where #85 + │ │ ├─ [id]: optional 'optional_55' #56 + │ │ │ └─ item: optional '_prisma_integer_filter_ex' #54 + │ │ │ └─ item: union #51 + │ │ │ ├─ variant_0: either '_prisma_integer_filter' #49 + │ │ │ │ ├─ variant_0: integer #38 + │ │ │ │ ├─ variant_1: struct #43 + │ │ │ │ │ └─ [equals]: integer #38 + │ │ │ │ ├─ variant_2: struct #44 + │ │ │ │ │ └─ [not]: integer #38 + │ │ │ │ ├─ variant_3: struct #45 + │ │ │ │ │ ├─ [gt]: optional 'optional_39' #40 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ ├─ [gte]: optional 'optional_39' #40 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ ├─ [lt]: optional 'optional_39' #40 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ └─ [lte]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ ├─ variant_4: struct #46 + │ │ │ │ │ └─ [in]: list 'list_41' #42 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ └─ variant_5: struct #47 + │ │ │ │ └─ [notIn]: list 'list_41' #42 + │ │ │ │ └─ item: integer #38 + │ │ │ └─ variant_1: struct #50 + │ │ │ └─ [not]: either '_prisma_integer_filter' #49 + │ │ │ ├─ variant_0: integer #38 + │ │ │ ├─ variant_1: struct #43 + │ │ │ │ └─ [equals]: integer #38 + │ │ │ ├─ variant_2: struct #44 + │ │ │ │ └─ [not]: integer #38 + │ │ │ ├─ variant_3: struct #45 + │ │ │ │ ├─ [gt]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ ├─ [gte]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ ├─ [lt]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ └─ [lte]: optional 'optional_39' #40 + │ │ │ │ └─ item: integer #38 + │ │ │ ├─ variant_4: struct #46 + │ │ │ │ └─ [in]: list 'list_41' #42 + │ │ │ │ └─ item: integer #38 + │ │ │ └─ variant_5: struct #47 + │ │ │ └─ [notIn]: list 'list_41' #42 + │ │ │ └─ item: integer #38 + │ │ └─ [title]: optional 'optional_79' #80 + │ │ └─ item: optional '_prisma_string_filter_ex' #78 + │ │ └─ item: union #75 + │ │ ├─ variant_0: union '_prisma_string_filter' #73 + │ │ │ ├─ variant_0: string #57 + │ │ │ ├─ variant_1: struct #62 + │ │ │ │ └─ [equals]: string #57 + │ │ │ ├─ variant_2: struct #63 + │ │ │ │ └─ [not]: string #57 + │ │ │ ├─ variant_3: struct #64 + │ │ │ │ └─ [in]: list 'list_60' #61 + │ │ │ │ └─ item: string #57 + │ │ │ ├─ variant_4: struct #65 + │ │ │ │ └─ [notIn]: list 'list_60' #61 + │ │ │ │ └─ item: string #57 + │ │ │ ├─ variant_5: struct #69 + │ │ │ │ ├─ [contains]: string #57 + │ │ │ │ └─ [mode]: optional 'optional_67' #68 + │ │ │ │ └─ item: string #66 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #70 + │ │ │ │ └─ [search]: string #57 + │ │ │ └─ variant_7: struct #71 + │ │ │ ├─ [endsWith]: optional 'optional_58' #59 + │ │ │ │ └─ item: string #57 + │ │ │ └─ [startsWith]: optional 'optional_58' #59 + │ │ │ └─ item: string #57 + │ │ └─ variant_1: struct #74 + │ │ └─ [not]: union '_prisma_string_filter' #73 + │ │ ├─ variant_0: string #57 + │ │ ├─ variant_1: struct #62 + │ │ │ └─ [equals]: string #57 + │ │ ├─ variant_2: struct #63 + │ │ │ └─ [not]: string #57 + │ │ ├─ variant_3: struct #64 + │ │ │ └─ [in]: list 'list_60' #61 + │ │ │ └─ item: string #57 + │ │ ├─ variant_4: struct #65 + │ │ │ └─ [notIn]: list 'list_60' #61 + │ │ │ └─ item: string #57 + │ │ ├─ variant_5: struct #69 + │ │ │ ├─ [contains]: string #57 + │ │ │ └─ [mode]: optional 'optional_67' #68 + │ │ │ └─ item: string #66 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #70 + │ │ │ └─ [search]: string #57 + │ │ └─ variant_7: struct #71 + │ │ ├─ [endsWith]: optional 'optional_58' #59 + │ │ │ └─ item: string #57 + │ │ └─ [startsWith]: optional 'optional_58' #59 + │ │ └─ item: string #57 + │ └─ variant_1: list 'list_104' #105 + │ └─ item: struct 'Post_where' #103 + │ ├─ [author]: optional 'optional_100' #101 + │ │ └─ item: struct 'User_where_excluding_Post' #99 + │ │ ├─ [id]: optional 'optional_81' #82 + │ │ │ └─ item: optional '_prisma_integer_filter_ex' #54 + │ │ │ └─ item: union #51 + │ │ │ ├─ variant_0: either '_prisma_integer_filter' #49 + │ │ │ │ ├─ variant_0: integer #38 + │ │ │ │ ├─ variant_1: struct #43 + │ │ │ │ │ └─ [equals]: integer #38 + │ │ │ │ ├─ variant_2: struct #44 + │ │ │ │ │ └─ [not]: integer #38 + │ │ │ │ ├─ variant_3: struct #45 + │ │ │ │ │ ├─ [gt]: optional 'optional_39' #40 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ ├─ [gte]: optional 'optional_39' #40 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ ├─ [lt]: optional 'optional_39' #40 + │ │ │ │ │ │ └─ item: integer #38 + │ │ │ │ │ └─ [lte]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ ├─ variant_4: struct #46 + │ │ │ │ │ └─ [in]: list 'list_41' #42 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ └─ variant_5: struct #47 + │ │ │ │ └─ [notIn]: list 'list_41' #42 + │ │ │ │ └─ item: integer #38 + │ │ │ └─ variant_1: struct #50 + │ │ │ └─ [not]: either '_prisma_integer_filter' #49 + │ │ │ ├─ variant_0: integer #38 + │ │ │ ├─ variant_1: struct #43 + │ │ │ │ └─ [equals]: integer #38 + │ │ │ ├─ variant_2: struct #44 + │ │ │ │ └─ [not]: integer #38 + │ │ │ ├─ variant_3: struct #45 + │ │ │ │ ├─ [gt]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ ├─ [gte]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ ├─ [lt]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ └─ [lte]: optional 'optional_39' #40 + │ │ │ │ └─ item: integer #38 + │ │ │ ├─ variant_4: struct #46 + │ │ │ │ └─ [in]: list 'list_41' #42 + │ │ │ │ └─ item: integer #38 + │ │ │ └─ variant_5: struct #47 + │ │ │ └─ [notIn]: list 'list_41' #42 + │ │ │ └─ item: integer #38 + │ │ ├─ [name]: optional 'optional_83' #84 + │ │ │ └─ item: optional '_prisma_string_filter_ex' #78 + │ │ │ └─ item: union #75 + │ │ │ ├─ variant_0: union '_prisma_string_filter' #73 + │ │ │ │ ├─ variant_0: string #57 + │ │ │ │ ├─ variant_1: struct #62 + │ │ │ │ │ └─ [equals]: string #57 + │ │ │ │ ├─ variant_2: struct #63 + │ │ │ │ │ └─ [not]: string #57 + │ │ │ │ ├─ variant_3: struct #64 + │ │ │ │ │ └─ [in]: list 'list_60' #61 + │ │ │ │ │ └─ item: string #57 + │ │ │ │ ├─ variant_4: struct #65 + │ │ │ │ │ └─ [notIn]: list 'list_60' #61 + │ │ │ │ │ └─ item: string #57 + │ │ │ │ ├─ variant_5: struct #69 + │ │ │ │ │ ├─ [contains]: string #57 + │ │ │ │ │ └─ [mode]: optional 'optional_67' #68 + │ │ │ │ │ └─ item: string #66 enum{ '"insensitive"' } + │ │ │ │ ├─ variant_6: struct #70 + │ │ │ │ │ └─ [search]: string #57 + │ │ │ │ └─ variant_7: struct #71 + │ │ │ │ ├─ [endsWith]: optional 'optional_58' #59 + │ │ │ │ │ └─ item: string #57 + │ │ │ │ └─ [startsWith]: optional 'optional_58' #59 + │ │ │ │ └─ item: string #57 + │ │ │ └─ variant_1: struct #74 + │ │ │ └─ [not]: union '_prisma_string_filter' #73 + │ │ │ ├─ variant_0: string #57 + │ │ │ ├─ variant_1: struct #62 + │ │ │ │ └─ [equals]: string #57 + │ │ │ ├─ variant_2: struct #63 + │ │ │ │ └─ [not]: string #57 + │ │ │ ├─ variant_3: struct #64 + │ │ │ │ └─ [in]: list 'list_60' #61 + │ │ │ │ └─ item: string #57 + │ │ │ ├─ variant_4: struct #65 + │ │ │ │ └─ [notIn]: list 'list_60' #61 + │ │ │ │ └─ item: string #57 + │ │ │ ├─ variant_5: struct #69 + │ │ │ │ ├─ [contains]: string #57 + │ │ │ │ └─ [mode]: optional 'optional_67' #68 + │ │ │ │ └─ item: string #66 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #70 + │ │ │ │ └─ [search]: string #57 + │ │ │ └─ variant_7: struct #71 + │ │ │ ├─ [endsWith]: optional 'optional_58' #59 + │ │ │ │ └─ item: string #57 + │ │ │ └─ [startsWith]: optional 'optional_58' #59 + │ │ │ └─ item: string #57 + │ │ └─ [posts]: optional 'optional_96' #97 + │ │ └─ item: union #95 + │ │ ├─ variant_0: struct #88 + │ │ │ └─ [every]: optional 'optional_86' #87 + │ │ │ └─ item: &Post_where #85 + │ │ ├─ variant_1: struct #91 + │ │ │ └─ [some]: optional 'optional_89' #90 + │ │ │ └─ item: &Post_where #85 + │ │ └─ variant_2: struct #94 + │ │ └─ [none]: optional 'optional_92' #93 + │ │ └─ item: &Post_where #85 + │ ├─ [id]: optional 'optional_55' #56 + │ │ └─ item: optional '_prisma_integer_filter_ex' #54 + │ │ └─ item: union #51 + │ │ ├─ variant_0: either '_prisma_integer_filter' #49 + │ │ │ ├─ variant_0: integer #38 + │ │ │ ├─ variant_1: struct #43 + │ │ │ │ └─ [equals]: integer #38 + │ │ │ ├─ variant_2: struct #44 + │ │ │ │ └─ [not]: integer #38 + │ │ │ ├─ variant_3: struct #45 + │ │ │ │ ├─ [gt]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ ├─ [gte]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ ├─ [lt]: optional 'optional_39' #40 + │ │ │ │ │ └─ item: integer #38 + │ │ │ │ └─ [lte]: optional 'optional_39' #40 + │ │ │ │ └─ item: integer #38 + │ │ │ ├─ variant_4: struct #46 + │ │ │ │ └─ [in]: list 'list_41' #42 + │ │ │ │ └─ item: integer #38 + │ │ │ └─ variant_5: struct #47 + │ │ │ └─ [notIn]: list 'list_41' #42 + │ │ │ └─ item: integer #38 + │ │ └─ variant_1: struct #50 + │ │ └─ [not]: either '_prisma_integer_filter' #49 + │ │ ├─ variant_0: integer #38 + │ │ ├─ variant_1: struct #43 + │ │ │ └─ [equals]: integer #38 + │ │ ├─ variant_2: struct #44 + │ │ │ └─ [not]: integer #38 + │ │ ├─ variant_3: struct #45 + │ │ │ ├─ [gt]: optional 'optional_39' #40 + │ │ │ │ └─ item: integer #38 + │ │ │ ├─ [gte]: optional 'optional_39' #40 + │ │ │ │ └─ item: integer #38 + │ │ │ ├─ [lt]: optional 'optional_39' #40 + │ │ │ │ └─ item: integer #38 + │ │ │ └─ [lte]: optional 'optional_39' #40 + │ │ │ └─ item: integer #38 + │ │ ├─ variant_4: struct #46 + │ │ │ └─ [in]: list 'list_41' #42 + │ │ │ └─ item: integer #38 + │ │ └─ variant_5: struct #47 + │ │ └─ [notIn]: list 'list_41' #42 + │ │ └─ item: integer #38 + │ └─ [title]: optional 'optional_79' #80 + │ └─ item: optional '_prisma_string_filter_ex' #78 + │ └─ item: union #75 + │ ├─ variant_0: union '_prisma_string_filter' #73 + │ │ ├─ variant_0: string #57 + │ │ ├─ variant_1: struct #62 + │ │ │ └─ [equals]: string #57 + │ │ ├─ variant_2: struct #63 + │ │ │ └─ [not]: string #57 + │ │ ├─ variant_3: struct #64 + │ │ │ └─ [in]: list 'list_60' #61 + │ │ │ └─ item: string #57 + │ │ ├─ variant_4: struct #65 + │ │ │ └─ [notIn]: list 'list_60' #61 + │ │ │ └─ item: string #57 + │ │ ├─ variant_5: struct #69 + │ │ │ ├─ [contains]: string #57 + │ │ │ └─ [mode]: optional 'optional_67' #68 + │ │ │ └─ item: string #66 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #70 + │ │ │ └─ [search]: string #57 + │ │ └─ variant_7: struct #71 + │ │ ├─ [endsWith]: optional 'optional_58' #59 + │ │ │ └─ item: string #57 + │ │ └─ [startsWith]: optional 'optional_58' #59 + │ │ └─ item: string #57 + │ └─ variant_1: struct #74 + │ └─ [not]: union '_prisma_string_filter' #73 + │ ├─ variant_0: string #57 + │ ├─ variant_1: struct #62 + │ │ └─ [equals]: string #57 + │ ├─ variant_2: struct #63 + │ │ └─ [not]: string #57 + │ ├─ variant_3: struct #64 + │ │ └─ [in]: list 'list_60' #61 + │ │ └─ item: string #57 + │ ├─ variant_4: struct #65 + │ │ └─ [notIn]: list 'list_60' #61 + │ │ └─ item: string #57 + │ ├─ variant_5: struct #69 + │ │ ├─ [contains]: string #57 + │ │ └─ [mode]: optional 'optional_67' #68 + │ │ └─ item: string #66 enum{ '"insensitive"' } + │ ├─ variant_6: struct #70 + │ │ └─ [search]: string #57 + │ └─ variant_7: struct #71 + │ ├─ [endsWith]: optional 'optional_58' #59 + │ │ └─ item: string #57 + │ └─ [startsWith]: optional 'optional_58' #59 + │ └─ item: string #57 + └─ variant_3: struct #116 + └─ [createMany]: optional 'optional_114' #115 + └─ item: struct #113 + └─ [data]: list 'list_111' #112 + └─ item: union #37 + ├─ variant_0: struct 'Post_create_input_excluding_rel_Post_User' #34 + │ ├─ [id]: optional 'optional_31' #32 + │ │ └─ item: integer #26 + │ └─ [title]: string #27 + └─ variant_1: list 'list_35' #36 + └─ item: struct 'Post_create_input_excluding_rel_Post_User' #34 + ├─ [id]: optional 'optional_31' #32 + │ └─ item: integer #26 + └─ [title]: string #27 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_first Post out.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_first Post out.snap index 892c2f9e55..1fb41d0fce 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_first Post out.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_first Post out.snap @@ -2,10 +2,10 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs expression: tp.print(out) --- -root: optional 'optional_27' #27 -└─ item: struct 'Post_output' #26 - ├─ [author]: struct 'User_output_excluding_rel_Post_User' #25 - │ ├─ [id]: integer #11 - │ └─ [name]: string #12 - ├─ [id]: integer #17 - └─ [title]: string #18 +root: optional 'optional_42' #43 +└─ item: struct 'Post_output' #41 + ├─ [author]: struct 'User_output_excluding_rel_Post_User' #39 + │ ├─ [id]: integer #16 + │ └─ [name]: string #17 + ├─ [id]: integer #25 + └─ [title]: string #26 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_first Record out.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_first Record out.snap index b35c210fa6..5129bf60cc 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_first Record out.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_first Record out.snap @@ -2,10 +2,10 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs expression: tp.print(out) --- -root: optional 'optional_9' #9 -└─ item: struct 'Record_output' #8 - ├─ [age]: optional 'optional_6' #6 - │ └─ item: integer #5 +root: optional 'optional_13' #14 +└─ item: struct 'Record_output' #12 + ├─ [age]: optional 'optional_7' #8 + │ └─ item: integer #6 ├─ [created_at]: string #1 - ├─ [id]: string #3 - └─ [name]: string #4 + ├─ [id]: string #4 + └─ [name]: string #5 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_first User out.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_first User out.snap index 82cf4dda18..822632aca4 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_first User out.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_first User out.snap @@ -2,11 +2,11 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs expression: tp.print(out) --- -root: optional 'optional_24' #24 -└─ item: struct 'User_output' #23 - ├─ [id]: integer #11 - ├─ [name]: string #12 - └─ [posts]: list 'list_22' #22 - └─ item: struct 'Post_output_excluding_rel_Post_User' #21 - ├─ [id]: integer #17 - └─ [title]: string #18 +root: optional 'optional_36' #37 +└─ item: struct 'User_output' #35 + ├─ [id]: integer #16 + ├─ [name]: string #17 + └─ [posts]: list 'list_32' #33 + └─ item: struct 'Post_output_excluding_rel_Post_User' #31 + ├─ [id]: integer #25 + └─ [title]: string #26 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_many Post inp.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_many Post inp.snap index 3f90b0bf29..211b99b45f 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_many Post inp.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_many Post inp.snap @@ -2,258 +2,552 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs expression: tp.print(inp) --- -root: struct 'Post_query_input' #166 -├─ [cursor]: optional 'optional_162' #162 -│ └─ item: union 'Post_cursor' #161 -│ ├─ variant_0: struct #159 -│ │ └─ [id]: integer #80 -│ └─ variant_1: struct #160 -│ └─ [title]: string #82 -├─ [distinct]: optional 'optional_165' #165 -│ └─ item: list 'Post_keys_union' #164 -│ └─ item: string #163 enum{ '"id"', '"title"', '"author"' } -├─ [orderBy]: optional 'optional_156' #156 -│ └─ item: list 'Post_order_by' #155 -│ └─ item: struct #154 -│ ├─ [author]: optional 'optional_153' #153 -│ │ └─ item: list 'User_order_by_withoutrel_Post_User' #152 -│ │ └─ item: struct #151 -│ │ ├─ [id]: optional '_prisma_sort' #51 -│ │ │ └─ item: union #50 -│ │ │ ├─ variant_0: struct #49 -│ │ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ └─ [name]: optional '_prisma_sort' #51 -│ │ └─ item: union #50 -│ │ ├─ variant_0: struct #49 -│ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ ├─ [id]: optional '_prisma_sort' #51 -│ │ └─ item: union #50 -│ │ ├─ variant_0: struct #49 -│ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ └─ [title]: optional '_prisma_sort' #51 -│ └─ item: union #50 -│ ├─ variant_0: struct #49 -│ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -├─ [skip]: optional 'optional_158' #158 -│ └─ item: integer '_skip' #60 -├─ [take]: optional 'optional_157' #157 -│ └─ item: integer '_take' #58 -└─ [where]: optional 'optional_150' #150 - └─ item: struct 'Post_query_where_input' #149 - ├─ [AND]: optional 'optional_147' #147 - │ └─ item: list 'list_146' #146 - │ └─ item: &Post_query_where_input #145 - ├─ [NOT]: optional 'optional_148' #148 - │ └─ item: &Post_query_where_input #145 - ├─ [OR]: optional 'optional_147' #147 - │ └─ item: list 'list_146' #146 - │ └─ item: &Post_query_where_input #145 - ├─ [author]: optional 'optional_143' #143 - │ └─ item: struct 'User_where_excluding_Post' #142 - │ ├─ [id]: optional 'optional_131' #131 - │ │ └─ item: optional '_prisma_integer_filter_ex' #37 - │ │ └─ item: union #36 - │ │ ├─ variant_0: either '_prisma_integer_filter' #34 - │ │ │ ├─ variant_0: integer #26 - │ │ │ ├─ variant_1: struct #29 - │ │ │ │ └─ [equals]: integer #26 - │ │ │ ├─ variant_2: struct #30 - │ │ │ │ └─ [not]: integer #26 - │ │ │ ├─ variant_3: struct #31 - │ │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ variant_4: struct #32 - │ │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ variant_5: struct #33 - │ │ │ └─ [notIn]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ └─ variant_1: struct #35 - │ │ └─ [not]: either '_prisma_integer_filter' #34 - │ │ ├─ variant_0: integer #26 - │ │ ├─ variant_1: struct #29 - │ │ │ └─ [equals]: integer #26 - │ │ ├─ variant_2: struct #30 - │ │ │ └─ [not]: integer #26 - │ │ ├─ variant_3: struct #31 - │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ variant_4: struct #32 - │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ └─ variant_5: struct #33 - │ │ └─ [notIn]: list 'list_28' #28 - │ │ └─ item: integer #26 - │ ├─ [name]: optional 'optional_132' #132 - │ │ └─ item: optional '_prisma_string_filter_ex' #23 - │ │ └─ item: union #22 - │ │ ├─ variant_0: union '_prisma_string_filter' #20 - │ │ │ ├─ variant_0: string #8 - │ │ │ ├─ variant_1: struct #11 - │ │ │ │ └─ [equals]: string #8 - │ │ │ ├─ variant_2: struct #12 - │ │ │ │ └─ [not]: string #8 - │ │ │ ├─ variant_3: struct #13 - │ │ │ │ └─ [in]: list 'list_10' #10 - │ │ │ │ └─ item: string #8 - │ │ │ ├─ variant_4: struct #14 - │ │ │ │ └─ [notIn]: list 'list_10' #10 - │ │ │ │ └─ item: string #8 - │ │ │ ├─ variant_5: struct #17 - │ │ │ │ ├─ [contains]: string #8 - │ │ │ │ └─ [mode]: optional 'optional_16' #16 - │ │ │ │ └─ item: string #15 enum{ '"insensitive"' } - │ │ │ ├─ variant_6: struct #18 - │ │ │ │ └─ [search]: string #8 - │ │ │ └─ variant_7: struct #19 - │ │ │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ │ │ └─ item: string #8 - │ │ │ └─ [startsWith]: optional 'optional_9' #9 - │ │ │ └─ item: string #8 - │ │ └─ variant_1: struct #21 - │ │ └─ [not]: union '_prisma_string_filter' #20 - │ │ ├─ variant_0: string #8 - │ │ ├─ variant_1: struct #11 - │ │ │ └─ [equals]: string #8 - │ │ ├─ variant_2: struct #12 - │ │ │ └─ [not]: string #8 - │ │ ├─ variant_3: struct #13 - │ │ │ └─ [in]: list 'list_10' #10 - │ │ │ └─ item: string #8 - │ │ ├─ variant_4: struct #14 - │ │ │ └─ [notIn]: list 'list_10' #10 - │ │ │ └─ item: string #8 - │ │ ├─ variant_5: struct #17 - │ │ │ ├─ [contains]: string #8 - │ │ │ └─ [mode]: optional 'optional_16' #16 - │ │ │ └─ item: string #15 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #18 - │ │ │ └─ [search]: string #8 - │ │ └─ variant_7: struct #19 - │ │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ │ └─ item: string #8 - │ │ └─ [startsWith]: optional 'optional_9' #9 - │ │ └─ item: string #8 - │ └─ [posts]: optional 'optional_141' #141 - │ └─ item: union #140 - │ ├─ variant_0: struct #135 - │ │ └─ [every]: optional 'optional_134' #134 - │ │ └─ item: &Post_where #133 - │ ├─ variant_1: struct #137 - │ │ └─ [some]: optional 'optional_136' #136 - │ │ └─ item: &Post_where #133 - │ └─ variant_2: struct #139 - │ └─ [none]: optional 'optional_138' #138 - │ └─ item: &Post_where #133 - ├─ [id]: optional 'optional_129' #129 - │ └─ item: optional '_prisma_integer_filter_ex' #37 - │ └─ item: union #36 - │ ├─ variant_0: either '_prisma_integer_filter' #34 - │ │ ├─ variant_0: integer #26 - │ │ ├─ variant_1: struct #29 - │ │ │ └─ [equals]: integer #26 - │ │ ├─ variant_2: struct #30 - │ │ │ └─ [not]: integer #26 - │ │ ├─ variant_3: struct #31 - │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ variant_4: struct #32 - │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ └─ variant_5: struct #33 - │ │ └─ [notIn]: list 'list_28' #28 - │ │ └─ item: integer #26 - │ └─ variant_1: struct #35 - │ └─ [not]: either '_prisma_integer_filter' #34 - │ ├─ variant_0: integer #26 - │ ├─ variant_1: struct #29 - │ │ └─ [equals]: integer #26 - │ ├─ variant_2: struct #30 - │ │ └─ [not]: integer #26 - │ ├─ variant_3: struct #31 - │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ └─ [lte]: optional 'optional_27' #27 - │ │ └─ item: integer #26 - │ ├─ variant_4: struct #32 - │ │ └─ [in]: list 'list_28' #28 - │ │ └─ item: integer #26 - │ └─ variant_5: struct #33 - │ └─ [notIn]: list 'list_28' #28 - │ └─ item: integer #26 - └─ [title]: optional 'optional_130' #130 - └─ item: optional '_prisma_string_filter_ex' #23 - └─ item: union #22 - ├─ variant_0: union '_prisma_string_filter' #20 - │ ├─ variant_0: string #8 - │ ├─ variant_1: struct #11 - │ │ └─ [equals]: string #8 - │ ├─ variant_2: struct #12 - │ │ └─ [not]: string #8 - │ ├─ variant_3: struct #13 - │ │ └─ [in]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_4: struct #14 - │ │ └─ [notIn]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_5: struct #17 - │ │ ├─ [contains]: string #8 - │ │ └─ [mode]: optional 'optional_16' #16 - │ │ └─ item: string #15 enum{ '"insensitive"' } - │ ├─ variant_6: struct #18 - │ │ └─ [search]: string #8 - │ └─ variant_7: struct #19 - │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ └─ item: string #8 - │ └─ [startsWith]: optional 'optional_9' #9 - │ └─ item: string #8 - └─ variant_1: struct #21 - └─ [not]: union '_prisma_string_filter' #20 - ├─ variant_0: string #8 - ├─ variant_1: struct #11 - │ └─ [equals]: string #8 - ├─ variant_2: struct #12 - │ └─ [not]: string #8 - ├─ variant_3: struct #13 - │ └─ [in]: list 'list_10' #10 - │ └─ item: string #8 - ├─ variant_4: struct #14 - │ └─ [notIn]: list 'list_10' #10 - │ └─ item: string #8 - ├─ variant_5: struct #17 - │ ├─ [contains]: string #8 - │ └─ [mode]: optional 'optional_16' #16 - │ └─ item: string #15 enum{ '"insensitive"' } - ├─ variant_6: struct #18 - │ └─ [search]: string #8 - └─ variant_7: struct #19 - ├─ [endsWith]: optional 'optional_9' #9 - │ └─ item: string #8 - └─ [startsWith]: optional 'optional_9' #9 - └─ item: string #8 +root: struct 'Post_query_input' #306 +├─ [cursor]: optional 'optional_297' #298 +│ └─ item: union 'Post_cursor' #296 +│ ├─ variant_0: struct #293 +│ │ └─ [id]: integer #129 +│ └─ variant_1: struct #294 +│ └─ [title]: string #130 +├─ [distinct]: optional 'optional_303' #304 +│ └─ item: list 'Post_keys_union' #302 +│ └─ item: string #299 enum{ '"id"', '"title"', '"author"' } +├─ [orderBy]: optional 'optional_287' #288 +│ └─ item: list 'Post_order_by' #286 +│ └─ item: struct #283 +│ ├─ [author]: optional 'optional_281' #282 +│ │ └─ item: list 'User_order_by_withoutrel_Post_User' #280 +│ │ └─ item: struct #277 +│ │ ├─ [id]: optional '_prisma_sort' #79 +│ │ │ └─ item: union #76 +│ │ │ ├─ variant_0: struct #75 +│ │ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ │ └─ variant_1: string '_prisma_sort_order' #72 +│ │ └─ [name]: optional '_prisma_sort' #79 +│ │ └─ item: union #76 +│ │ ├─ variant_0: struct #75 +│ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ └─ variant_1: string '_prisma_sort_order' #72 +│ ├─ [id]: optional '_prisma_sort' #79 +│ │ └─ item: union #76 +│ │ ├─ variant_0: struct #75 +│ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ └─ variant_1: string '_prisma_sort_order' #72 +│ └─ [title]: optional '_prisma_sort' #79 +│ └─ item: union #76 +│ ├─ variant_0: struct #75 +│ │ └─ [sort]: string '_prisma_sort_order' #72 +│ └─ variant_1: string '_prisma_sort_order' #72 +├─ [skip]: optional 'optional_291' #292 +│ └─ item: integer '_skip' #96 +├─ [take]: optional 'optional_289' #290 +│ └─ item: integer '_take' #92 +└─ [where]: optional 'optional_275' #276 + └─ item: struct 'Post_query_where_input' #274 + ├─ [AND]: optional 'optional_269' #270 + │ └─ item: list 'list_267' #268 + │ └─ item: &Post_query_where_input #266 + ├─ [NOT]: optional 'optional_271' #272 + │ └─ item: &Post_query_where_input #266 + ├─ [OR]: optional 'optional_269' #270 + │ └─ item: list 'list_267' #268 + │ └─ item: &Post_query_where_input #266 + ├─ [author]: optional 'optional_262' #263 + │ └─ item: struct 'User_where_excluding_Post' #261 + │ ├─ [id]: optional 'optional_235' #236 + │ │ └─ item: optional '_prisma_integer_filter_ex' #53 + │ │ └─ item: union #50 + │ │ ├─ variant_0: either '_prisma_integer_filter' #48 + │ │ │ ├─ variant_0: integer #37 + │ │ │ ├─ variant_1: struct #42 + │ │ │ │ └─ [equals]: integer #37 + │ │ │ ├─ variant_2: struct #43 + │ │ │ │ └─ [not]: integer #37 + │ │ │ ├─ variant_3: struct #44 + │ │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ variant_4: struct #45 + │ │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ variant_5: struct #46 + │ │ │ └─ [notIn]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ variant_1: struct #49 + │ │ └─ [not]: either '_prisma_integer_filter' #48 + │ │ ├─ variant_0: integer #37 + │ │ ├─ variant_1: struct #42 + │ │ │ └─ [equals]: integer #37 + │ │ ├─ variant_2: struct #43 + │ │ │ └─ [not]: integer #37 + │ │ ├─ variant_3: struct #44 + │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ variant_4: struct #45 + │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ variant_5: struct #46 + │ │ └─ [notIn]: list 'list_40' #41 + │ │ └─ item: integer #37 + │ ├─ [name]: optional 'optional_237' #238 + │ │ └─ item: optional '_prisma_string_filter_ex' #32 + │ │ └─ item: union #29 + │ │ ├─ variant_0: union '_prisma_string_filter' #27 + │ │ │ ├─ variant_0: string #11 + │ │ │ ├─ variant_1: struct #16 + │ │ │ │ └─ [equals]: string #11 + │ │ │ ├─ variant_2: struct #17 + │ │ │ │ └─ [not]: string #11 + │ │ │ ├─ variant_3: struct #18 + │ │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ │ └─ item: string #11 + │ │ │ ├─ variant_4: struct #19 + │ │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ │ └─ item: string #11 + │ │ │ ├─ variant_5: struct #23 + │ │ │ │ ├─ [contains]: string #11 + │ │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #24 + │ │ │ │ └─ [search]: string #11 + │ │ │ └─ variant_7: struct #25 + │ │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ │ └─ item: string #11 + │ │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ variant_1: struct #28 + │ │ └─ [not]: union '_prisma_string_filter' #27 + │ │ ├─ variant_0: string #11 + │ │ ├─ variant_1: struct #16 + │ │ │ └─ [equals]: string #11 + │ │ ├─ variant_2: struct #17 + │ │ │ └─ [not]: string #11 + │ │ ├─ variant_3: struct #18 + │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_4: struct #19 + │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_5: struct #23 + │ │ │ ├─ [contains]: string #11 + │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #24 + │ │ │ └─ [search]: string #11 + │ │ └─ variant_7: struct #25 + │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ [posts]: optional 'optional_258' #259 + │ └─ item: union #257 + │ ├─ variant_0: struct #250 + │ │ └─ [every]: optional 'optional_248' #249 + │ │ └─ item: struct 'Post_where_excluding_Post_and_User_where_excluding_Post' #247 + │ │ ├─ [author]: optional 'optional_244' #245 + │ │ │ └─ item: &User_where_excluding_Post #243 + │ │ ├─ [id]: optional 'optional_239' #240 + │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 + │ │ │ └─ item: union #50 + │ │ │ ├─ variant_0: either '_prisma_integer_filter' #48 + │ │ │ │ ├─ variant_0: integer #37 + │ │ │ │ ├─ variant_1: struct #42 + │ │ │ │ │ └─ [equals]: integer #37 + │ │ │ │ ├─ variant_2: struct #43 + │ │ │ │ │ └─ [not]: integer #37 + │ │ │ │ ├─ variant_3: struct #44 + │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ │ │ └─ item: integer #37 + │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ │ │ └─ item: integer #37 + │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ │ │ └─ item: integer #37 + │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ variant_4: struct #45 + │ │ │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ └─ variant_5: struct #46 + │ │ │ │ └─ [notIn]: list 'list_40' #41 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ variant_1: struct #49 + │ │ │ └─ [not]: either '_prisma_integer_filter' #48 + │ │ │ ├─ variant_0: integer #37 + │ │ │ ├─ variant_1: struct #42 + │ │ │ │ └─ [equals]: integer #37 + │ │ │ ├─ variant_2: struct #43 + │ │ │ │ └─ [not]: integer #37 + │ │ │ ├─ variant_3: struct #44 + │ │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ variant_4: struct #45 + │ │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ variant_5: struct #46 + │ │ │ └─ [notIn]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ [title]: optional 'optional_241' #242 + │ │ └─ item: optional '_prisma_string_filter_ex' #32 + │ │ └─ item: union #29 + │ │ ├─ variant_0: union '_prisma_string_filter' #27 + │ │ │ ├─ variant_0: string #11 + │ │ │ ├─ variant_1: struct #16 + │ │ │ │ └─ [equals]: string #11 + │ │ │ ├─ variant_2: struct #17 + │ │ │ │ └─ [not]: string #11 + │ │ │ ├─ variant_3: struct #18 + │ │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ │ └─ item: string #11 + │ │ │ ├─ variant_4: struct #19 + │ │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ │ └─ item: string #11 + │ │ │ ├─ variant_5: struct #23 + │ │ │ │ ├─ [contains]: string #11 + │ │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #24 + │ │ │ │ └─ [search]: string #11 + │ │ │ └─ variant_7: struct #25 + │ │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ │ └─ item: string #11 + │ │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ variant_1: struct #28 + │ │ └─ [not]: union '_prisma_string_filter' #27 + │ │ ├─ variant_0: string #11 + │ │ ├─ variant_1: struct #16 + │ │ │ └─ [equals]: string #11 + │ │ ├─ variant_2: struct #17 + │ │ │ └─ [not]: string #11 + │ │ ├─ variant_3: struct #18 + │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_4: struct #19 + │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_5: struct #23 + │ │ │ ├─ [contains]: string #11 + │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #24 + │ │ │ └─ [search]: string #11 + │ │ └─ variant_7: struct #25 + │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ ├─ variant_1: struct #253 + │ │ └─ [some]: optional 'optional_251' #252 + │ │ └─ item: struct 'Post_where_excluding_Post_and_User_where_excluding_Post' #247 + │ │ ├─ [author]: optional 'optional_244' #245 + │ │ │ └─ item: &User_where_excluding_Post #243 + │ │ ├─ [id]: optional 'optional_239' #240 + │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 + │ │ │ └─ item: union #50 + │ │ │ ├─ variant_0: either '_prisma_integer_filter' #48 + │ │ │ │ ├─ variant_0: integer #37 + │ │ │ │ ├─ variant_1: struct #42 + │ │ │ │ │ └─ [equals]: integer #37 + │ │ │ │ ├─ variant_2: struct #43 + │ │ │ │ │ └─ [not]: integer #37 + │ │ │ │ ├─ variant_3: struct #44 + │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ │ │ └─ item: integer #37 + │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ │ │ └─ item: integer #37 + │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ │ │ └─ item: integer #37 + │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ variant_4: struct #45 + │ │ │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ └─ variant_5: struct #46 + │ │ │ │ └─ [notIn]: list 'list_40' #41 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ variant_1: struct #49 + │ │ │ └─ [not]: either '_prisma_integer_filter' #48 + │ │ │ ├─ variant_0: integer #37 + │ │ │ ├─ variant_1: struct #42 + │ │ │ │ └─ [equals]: integer #37 + │ │ │ ├─ variant_2: struct #43 + │ │ │ │ └─ [not]: integer #37 + │ │ │ ├─ variant_3: struct #44 + │ │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ variant_4: struct #45 + │ │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ variant_5: struct #46 + │ │ │ └─ [notIn]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ [title]: optional 'optional_241' #242 + │ │ └─ item: optional '_prisma_string_filter_ex' #32 + │ │ └─ item: union #29 + │ │ ├─ variant_0: union '_prisma_string_filter' #27 + │ │ │ ├─ variant_0: string #11 + │ │ │ ├─ variant_1: struct #16 + │ │ │ │ └─ [equals]: string #11 + │ │ │ ├─ variant_2: struct #17 + │ │ │ │ └─ [not]: string #11 + │ │ │ ├─ variant_3: struct #18 + │ │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ │ └─ item: string #11 + │ │ │ ├─ variant_4: struct #19 + │ │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ │ └─ item: string #11 + │ │ │ ├─ variant_5: struct #23 + │ │ │ │ ├─ [contains]: string #11 + │ │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #24 + │ │ │ │ └─ [search]: string #11 + │ │ │ └─ variant_7: struct #25 + │ │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ │ └─ item: string #11 + │ │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ variant_1: struct #28 + │ │ └─ [not]: union '_prisma_string_filter' #27 + │ │ ├─ variant_0: string #11 + │ │ ├─ variant_1: struct #16 + │ │ │ └─ [equals]: string #11 + │ │ ├─ variant_2: struct #17 + │ │ │ └─ [not]: string #11 + │ │ ├─ variant_3: struct #18 + │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_4: struct #19 + │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_5: struct #23 + │ │ │ ├─ [contains]: string #11 + │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #24 + │ │ │ └─ [search]: string #11 + │ │ └─ variant_7: struct #25 + │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ variant_2: struct #256 + │ └─ [none]: optional 'optional_254' #255 + │ └─ item: struct 'Post_where_excluding_Post_and_User_where_excluding_Post' #247 + │ ├─ [author]: optional 'optional_244' #245 + │ │ └─ item: &User_where_excluding_Post #243 + │ ├─ [id]: optional 'optional_239' #240 + │ │ └─ item: optional '_prisma_integer_filter_ex' #53 + │ │ └─ item: union #50 + │ │ ├─ variant_0: either '_prisma_integer_filter' #48 + │ │ │ ├─ variant_0: integer #37 + │ │ │ ├─ variant_1: struct #42 + │ │ │ │ └─ [equals]: integer #37 + │ │ │ ├─ variant_2: struct #43 + │ │ │ │ └─ [not]: integer #37 + │ │ │ ├─ variant_3: struct #44 + │ │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ variant_4: struct #45 + │ │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ variant_5: struct #46 + │ │ │ └─ [notIn]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ variant_1: struct #49 + │ │ └─ [not]: either '_prisma_integer_filter' #48 + │ │ ├─ variant_0: integer #37 + │ │ ├─ variant_1: struct #42 + │ │ │ └─ [equals]: integer #37 + │ │ ├─ variant_2: struct #43 + │ │ │ └─ [not]: integer #37 + │ │ ├─ variant_3: struct #44 + │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ variant_4: struct #45 + │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ variant_5: struct #46 + │ │ └─ [notIn]: list 'list_40' #41 + │ │ └─ item: integer #37 + │ └─ [title]: optional 'optional_241' #242 + │ └─ item: optional '_prisma_string_filter_ex' #32 + │ └─ item: union #29 + │ ├─ variant_0: union '_prisma_string_filter' #27 + │ │ ├─ variant_0: string #11 + │ │ ├─ variant_1: struct #16 + │ │ │ └─ [equals]: string #11 + │ │ ├─ variant_2: struct #17 + │ │ │ └─ [not]: string #11 + │ │ ├─ variant_3: struct #18 + │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_4: struct #19 + │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_5: struct #23 + │ │ │ ├─ [contains]: string #11 + │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #24 + │ │ │ └─ [search]: string #11 + │ │ └─ variant_7: struct #25 + │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ variant_1: struct #28 + │ └─ [not]: union '_prisma_string_filter' #27 + │ ├─ variant_0: string #11 + │ ├─ variant_1: struct #16 + │ │ └─ [equals]: string #11 + │ ├─ variant_2: struct #17 + │ │ └─ [not]: string #11 + │ ├─ variant_3: struct #18 + │ │ └─ [in]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_4: struct #19 + │ │ └─ [notIn]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_5: struct #23 + │ │ ├─ [contains]: string #11 + │ │ └─ [mode]: optional 'optional_21' #22 + │ │ └─ item: string #20 enum{ '"insensitive"' } + │ ├─ variant_6: struct #24 + │ │ └─ [search]: string #11 + │ └─ variant_7: struct #25 + │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ [startsWith]: optional 'optional_12' #13 + │ └─ item: string #11 + ├─ [id]: optional 'optional_231' #232 + │ └─ item: optional '_prisma_integer_filter_ex' #53 + │ └─ item: union #50 + │ ├─ variant_0: either '_prisma_integer_filter' #48 + │ │ ├─ variant_0: integer #37 + │ │ ├─ variant_1: struct #42 + │ │ │ └─ [equals]: integer #37 + │ │ ├─ variant_2: struct #43 + │ │ │ └─ [not]: integer #37 + │ │ ├─ variant_3: struct #44 + │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ variant_4: struct #45 + │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ variant_5: struct #46 + │ │ └─ [notIn]: list 'list_40' #41 + │ │ └─ item: integer #37 + │ └─ variant_1: struct #49 + │ └─ [not]: either '_prisma_integer_filter' #48 + │ ├─ variant_0: integer #37 + │ ├─ variant_1: struct #42 + │ │ └─ [equals]: integer #37 + │ ├─ variant_2: struct #43 + │ │ └─ [not]: integer #37 + │ ├─ variant_3: struct #44 + │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ └─ [lte]: optional 'optional_38' #39 + │ │ └─ item: integer #37 + │ ├─ variant_4: struct #45 + │ │ └─ [in]: list 'list_40' #41 + │ │ └─ item: integer #37 + │ └─ variant_5: struct #46 + │ └─ [notIn]: list 'list_40' #41 + │ └─ item: integer #37 + └─ [title]: optional 'optional_233' #234 + └─ item: optional '_prisma_string_filter_ex' #32 + └─ item: union #29 + ├─ variant_0: union '_prisma_string_filter' #27 + │ ├─ variant_0: string #11 + │ ├─ variant_1: struct #16 + │ │ └─ [equals]: string #11 + │ ├─ variant_2: struct #17 + │ │ └─ [not]: string #11 + │ ├─ variant_3: struct #18 + │ │ └─ [in]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_4: struct #19 + │ │ └─ [notIn]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_5: struct #23 + │ │ ├─ [contains]: string #11 + │ │ └─ [mode]: optional 'optional_21' #22 + │ │ └─ item: string #20 enum{ '"insensitive"' } + │ ├─ variant_6: struct #24 + │ │ └─ [search]: string #11 + │ └─ variant_7: struct #25 + │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ [startsWith]: optional 'optional_12' #13 + │ └─ item: string #11 + └─ variant_1: struct #28 + └─ [not]: union '_prisma_string_filter' #27 + ├─ variant_0: string #11 + ├─ variant_1: struct #16 + │ └─ [equals]: string #11 + ├─ variant_2: struct #17 + │ └─ [not]: string #11 + ├─ variant_3: struct #18 + │ └─ [in]: list 'list_14' #15 + │ └─ item: string #11 + ├─ variant_4: struct #19 + │ └─ [notIn]: list 'list_14' #15 + │ └─ item: string #11 + ├─ variant_5: struct #23 + │ ├─ [contains]: string #11 + │ └─ [mode]: optional 'optional_21' #22 + │ └─ item: string #20 enum{ '"insensitive"' } + ├─ variant_6: struct #24 + │ └─ [search]: string #11 + └─ variant_7: struct #25 + ├─ [endsWith]: optional 'optional_12' #13 + │ └─ item: string #11 + └─ [startsWith]: optional 'optional_12' #13 + └─ item: string #11 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_many Post out.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_many Post out.snap index 65c94235e2..08547cd32a 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_many Post out.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_many Post out.snap @@ -2,12 +2,8 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs expression: tp.print(out) --- -root: list 'list_168' #168 -└─ item: struct 'Post_with_nested_count' #167 - ├─ [author]: struct 'User' #79 - │ ├─ [id]: integer #75 - │ ├─ [name]: string #76 - │ └─ [posts]: list 'list_78' #78 - │ └─ item: &Post #77 - ├─ [id]: integer #80 - └─ [title]: string #82 +root: list 'list_309' #310 +└─ item: struct 'Post_with_nested_count' #308 + ├─ [author]: &User #131 + ├─ [id]: integer #127 + └─ [title]: string #130 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_many Record inp.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_many Record inp.snap index 22118a8f52..3e46b02dab 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_many Record inp.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_many Record inp.snap @@ -2,251 +2,251 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs expression: tp.print(inp) --- -root: struct 'Record_query_input' #71 -├─ [cursor]: optional 'optional_67' #67 -│ └─ item: union 'Record_cursor' #66 -│ ├─ variant_0: struct #62 -│ │ └─ [id]: string #2 -│ ├─ variant_1: struct #63 -│ │ └─ [name]: string #4 -│ ├─ variant_2: struct #64 -│ │ └─ [age]: integer #5 -│ └─ variant_3: struct #65 -│ └─ [created_at]: string #0 -├─ [distinct]: optional 'optional_70' #70 -│ └─ item: list 'Record_keys_union' #69 -│ └─ item: string #68 enum{ '"id"', '"name"', '"age"', '"created_at"' } -├─ [orderBy]: optional 'optional_57' #57 -│ └─ item: list 'Record_order_by' #56 -│ └─ item: struct #55 -│ ├─ [age]: optional '_prisma_sort_nullable' #54 -│ │ └─ item: union #53 -│ │ ├─ variant_0: struct #52 -│ │ │ ├─ [nulls]: string '_prisma_nulls_order' #48 enum{ '"first"', '"last"' } -│ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ ├─ [created_at]: optional '_prisma_sort' #51 -│ │ └─ item: union #50 -│ │ ├─ variant_0: struct #49 -│ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ ├─ [id]: optional '_prisma_sort' #51 -│ │ └─ item: union #50 -│ │ ├─ variant_0: struct #49 -│ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ └─ [name]: optional '_prisma_sort' #51 -│ └─ item: union #50 -│ ├─ variant_0: struct #49 -│ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -├─ [skip]: optional 'optional_61' #61 -│ └─ item: integer '_skip' #60 -├─ [take]: optional 'optional_59' #59 -│ └─ item: integer '_take' #58 -└─ [where]: optional 'optional_46' #46 - └─ item: struct 'Record_query_where_input' #45 - ├─ [AND]: optional 'optional_43' #43 - │ └─ item: list 'list_42' #42 - │ └─ item: &Record_query_where_input #41 - ├─ [NOT]: optional 'optional_44' #44 - │ └─ item: &Record_query_where_input #41 - ├─ [OR]: optional 'optional_43' #43 - │ └─ item: list 'list_42' #42 - │ └─ item: &Record_query_where_input #41 - ├─ [age]: optional 'optional_38' #38 - │ └─ item: optional '_prisma_integer_filter_ex' #37 - │ └─ item: union #36 - │ ├─ variant_0: either '_prisma_integer_filter' #34 - │ │ ├─ variant_0: integer #26 - │ │ ├─ variant_1: struct #29 - │ │ │ └─ [equals]: integer #26 - │ │ ├─ variant_2: struct #30 - │ │ │ └─ [not]: integer #26 - │ │ ├─ variant_3: struct #31 - │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ variant_4: struct #32 - │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ └─ variant_5: struct #33 - │ │ └─ [notIn]: list 'list_28' #28 - │ │ └─ item: integer #26 - │ └─ variant_1: struct #35 - │ └─ [not]: either '_prisma_integer_filter' #34 - │ ├─ variant_0: integer #26 - │ ├─ variant_1: struct #29 - │ │ └─ [equals]: integer #26 - │ ├─ variant_2: struct #30 - │ │ └─ [not]: integer #26 - │ ├─ variant_3: struct #31 - │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ └─ [lte]: optional 'optional_27' #27 - │ │ └─ item: integer #26 - │ ├─ variant_4: struct #32 - │ │ └─ [in]: list 'list_28' #28 - │ │ └─ item: integer #26 - │ └─ variant_5: struct #33 - │ └─ [notIn]: list 'list_28' #28 - │ └─ item: integer #26 - ├─ [created_at]: optional 'optional_39' #39 - │ └─ item: optional '_prisma_string_filter_ex' #23 - │ └─ item: union #22 - │ ├─ variant_0: union '_prisma_string_filter' #20 - │ │ ├─ variant_0: string #8 - │ │ ├─ variant_1: struct #11 - │ │ │ └─ [equals]: string #8 - │ │ ├─ variant_2: struct #12 - │ │ │ └─ [not]: string #8 - │ │ ├─ variant_3: struct #13 - │ │ │ └─ [in]: list 'list_10' #10 - │ │ │ └─ item: string #8 - │ │ ├─ variant_4: struct #14 - │ │ │ └─ [notIn]: list 'list_10' #10 - │ │ │ └─ item: string #8 - │ │ ├─ variant_5: struct #17 - │ │ │ ├─ [contains]: string #8 - │ │ │ └─ [mode]: optional 'optional_16' #16 - │ │ │ └─ item: string #15 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #18 - │ │ │ └─ [search]: string #8 - │ │ └─ variant_7: struct #19 - │ │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ │ └─ item: string #8 - │ │ └─ [startsWith]: optional 'optional_9' #9 - │ │ └─ item: string #8 - │ └─ variant_1: struct #21 - │ └─ [not]: union '_prisma_string_filter' #20 - │ ├─ variant_0: string #8 - │ ├─ variant_1: struct #11 - │ │ └─ [equals]: string #8 - │ ├─ variant_2: struct #12 - │ │ └─ [not]: string #8 - │ ├─ variant_3: struct #13 - │ │ └─ [in]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_4: struct #14 - │ │ └─ [notIn]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_5: struct #17 - │ │ ├─ [contains]: string #8 - │ │ └─ [mode]: optional 'optional_16' #16 - │ │ └─ item: string #15 enum{ '"insensitive"' } - │ ├─ variant_6: struct #18 - │ │ └─ [search]: string #8 - │ └─ variant_7: struct #19 - │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ └─ item: string #8 - │ └─ [startsWith]: optional 'optional_9' #9 - │ └─ item: string #8 - ├─ [id]: optional 'optional_24' #24 - │ └─ item: optional '_prisma_string_filter_ex' #23 - │ └─ item: union #22 - │ ├─ variant_0: union '_prisma_string_filter' #20 - │ │ ├─ variant_0: string #8 - │ │ ├─ variant_1: struct #11 - │ │ │ └─ [equals]: string #8 - │ │ ├─ variant_2: struct #12 - │ │ │ └─ [not]: string #8 - │ │ ├─ variant_3: struct #13 - │ │ │ └─ [in]: list 'list_10' #10 - │ │ │ └─ item: string #8 - │ │ ├─ variant_4: struct #14 - │ │ │ └─ [notIn]: list 'list_10' #10 - │ │ │ └─ item: string #8 - │ │ ├─ variant_5: struct #17 - │ │ │ ├─ [contains]: string #8 - │ │ │ └─ [mode]: optional 'optional_16' #16 - │ │ │ └─ item: string #15 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #18 - │ │ │ └─ [search]: string #8 - │ │ └─ variant_7: struct #19 - │ │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ │ └─ item: string #8 - │ │ └─ [startsWith]: optional 'optional_9' #9 - │ │ └─ item: string #8 - │ └─ variant_1: struct #21 - │ └─ [not]: union '_prisma_string_filter' #20 - │ ├─ variant_0: string #8 - │ ├─ variant_1: struct #11 - │ │ └─ [equals]: string #8 - │ ├─ variant_2: struct #12 - │ │ └─ [not]: string #8 - │ ├─ variant_3: struct #13 - │ │ └─ [in]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_4: struct #14 - │ │ └─ [notIn]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_5: struct #17 - │ │ ├─ [contains]: string #8 - │ │ └─ [mode]: optional 'optional_16' #16 - │ │ └─ item: string #15 enum{ '"insensitive"' } - │ ├─ variant_6: struct #18 - │ │ └─ [search]: string #8 - │ └─ variant_7: struct #19 - │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ └─ item: string #8 - │ └─ [startsWith]: optional 'optional_9' #9 - │ └─ item: string #8 - └─ [name]: optional 'optional_25' #25 - └─ item: optional '_prisma_string_filter_ex' #23 - └─ item: union #22 - ├─ variant_0: union '_prisma_string_filter' #20 - │ ├─ variant_0: string #8 - │ ├─ variant_1: struct #11 - │ │ └─ [equals]: string #8 - │ ├─ variant_2: struct #12 - │ │ └─ [not]: string #8 - │ ├─ variant_3: struct #13 - │ │ └─ [in]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_4: struct #14 - │ │ └─ [notIn]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_5: struct #17 - │ │ ├─ [contains]: string #8 - │ │ └─ [mode]: optional 'optional_16' #16 - │ │ └─ item: string #15 enum{ '"insensitive"' } - │ ├─ variant_6: struct #18 - │ │ └─ [search]: string #8 - │ └─ variant_7: struct #19 - │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ └─ item: string #8 - │ └─ [startsWith]: optional 'optional_9' #9 - │ └─ item: string #8 - └─ variant_1: struct #21 - └─ [not]: union '_prisma_string_filter' #20 - ├─ variant_0: string #8 - ├─ variant_1: struct #11 - │ └─ [equals]: string #8 - ├─ variant_2: struct #12 - │ └─ [not]: string #8 - ├─ variant_3: struct #13 - │ └─ [in]: list 'list_10' #10 - │ └─ item: string #8 - ├─ variant_4: struct #14 - │ └─ [notIn]: list 'list_10' #10 - │ └─ item: string #8 - ├─ variant_5: struct #17 - │ ├─ [contains]: string #8 - │ └─ [mode]: optional 'optional_16' #16 - │ └─ item: string #15 enum{ '"insensitive"' } - ├─ variant_6: struct #18 - │ └─ [search]: string #8 - └─ variant_7: struct #19 - ├─ [endsWith]: optional 'optional_9' #9 - │ └─ item: string #8 - └─ [startsWith]: optional 'optional_9' #9 - └─ item: string #8 +root: struct 'Record_query_input' #114 +├─ [cursor]: optional 'optional_105' #106 +│ └─ item: union 'Record_cursor' #104 +│ ├─ variant_0: struct #99 +│ │ └─ [id]: string #4 +│ ├─ variant_1: struct #100 +│ │ └─ [name]: string #5 +│ ├─ variant_2: struct #101 +│ │ └─ [age]: integer #6 +│ └─ variant_3: struct #102 +│ └─ [created_at]: string #1 +├─ [distinct]: optional 'optional_111' #112 +│ └─ item: list 'Record_keys_union' #110 +│ └─ item: string #107 enum{ '"id"', '"name"', '"age"', '"created_at"' } +├─ [orderBy]: optional 'optional_89' #90 +│ └─ item: list 'Record_order_by' #88 +│ └─ item: struct #85 +│ ├─ [age]: optional '_prisma_sort_nullable' #84 +│ │ └─ item: union #81 +│ │ ├─ variant_0: struct #80 +│ │ │ ├─ [nulls]: string '_prisma_nulls_order' #74 +│ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ └─ variant_1: string '_prisma_sort_order' #72 +│ ├─ [created_at]: optional '_prisma_sort' #79 +│ │ └─ item: union #76 +│ │ ├─ variant_0: struct #75 +│ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ └─ variant_1: string '_prisma_sort_order' #72 +│ ├─ [id]: optional '_prisma_sort' #79 +│ │ └─ item: union #76 +│ │ ├─ variant_0: struct #75 +│ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ └─ variant_1: string '_prisma_sort_order' #72 +│ └─ [name]: optional '_prisma_sort' #79 +│ └─ item: union #76 +│ ├─ variant_0: struct #75 +│ │ └─ [sort]: string '_prisma_sort_order' #72 +│ └─ variant_1: string '_prisma_sort_order' #72 +├─ [skip]: optional 'optional_97' #98 +│ └─ item: integer '_skip' #96 +├─ [take]: optional 'optional_93' #94 +│ └─ item: integer '_take' #92 +└─ [where]: optional 'optional_69' #70 + └─ item: struct 'Record_query_where_input' #68 + ├─ [AND]: optional 'optional_63' #64 + │ └─ item: list 'list_61' #62 + │ └─ item: &Record_query_where_input #60 + ├─ [NOT]: optional 'optional_65' #66 + │ └─ item: &Record_query_where_input #60 + ├─ [OR]: optional 'optional_63' #64 + │ └─ item: list 'list_61' #62 + │ └─ item: &Record_query_where_input #60 + ├─ [age]: optional 'optional_54' #55 + │ └─ item: optional '_prisma_integer_filter_ex' #53 + │ └─ item: union #50 + │ ├─ variant_0: either '_prisma_integer_filter' #48 + │ │ ├─ variant_0: integer #37 + │ │ ├─ variant_1: struct #42 + │ │ │ └─ [equals]: integer #37 + │ │ ├─ variant_2: struct #43 + │ │ │ └─ [not]: integer #37 + │ │ ├─ variant_3: struct #44 + │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ variant_4: struct #45 + │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ variant_5: struct #46 + │ │ └─ [notIn]: list 'list_40' #41 + │ │ └─ item: integer #37 + │ └─ variant_1: struct #49 + │ └─ [not]: either '_prisma_integer_filter' #48 + │ ├─ variant_0: integer #37 + │ ├─ variant_1: struct #42 + │ │ └─ [equals]: integer #37 + │ ├─ variant_2: struct #43 + │ │ └─ [not]: integer #37 + │ ├─ variant_3: struct #44 + │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ └─ [lte]: optional 'optional_38' #39 + │ │ └─ item: integer #37 + │ ├─ variant_4: struct #45 + │ │ └─ [in]: list 'list_40' #41 + │ │ └─ item: integer #37 + │ └─ variant_5: struct #46 + │ └─ [notIn]: list 'list_40' #41 + │ └─ item: integer #37 + ├─ [created_at]: optional 'optional_56' #57 + │ └─ item: optional '_prisma_string_filter_ex' #32 + │ └─ item: union #29 + │ ├─ variant_0: union '_prisma_string_filter' #27 + │ │ ├─ variant_0: string #11 + │ │ ├─ variant_1: struct #16 + │ │ │ └─ [equals]: string #11 + │ │ ├─ variant_2: struct #17 + │ │ │ └─ [not]: string #11 + │ │ ├─ variant_3: struct #18 + │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_4: struct #19 + │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_5: struct #23 + │ │ │ ├─ [contains]: string #11 + │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #24 + │ │ │ └─ [search]: string #11 + │ │ └─ variant_7: struct #25 + │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ variant_1: struct #28 + │ └─ [not]: union '_prisma_string_filter' #27 + │ ├─ variant_0: string #11 + │ ├─ variant_1: struct #16 + │ │ └─ [equals]: string #11 + │ ├─ variant_2: struct #17 + │ │ └─ [not]: string #11 + │ ├─ variant_3: struct #18 + │ │ └─ [in]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_4: struct #19 + │ │ └─ [notIn]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_5: struct #23 + │ │ ├─ [contains]: string #11 + │ │ └─ [mode]: optional 'optional_21' #22 + │ │ └─ item: string #20 enum{ '"insensitive"' } + │ ├─ variant_6: struct #24 + │ │ └─ [search]: string #11 + │ └─ variant_7: struct #25 + │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ [startsWith]: optional 'optional_12' #13 + │ └─ item: string #11 + ├─ [id]: optional 'optional_33' #34 + │ └─ item: optional '_prisma_string_filter_ex' #32 + │ └─ item: union #29 + │ ├─ variant_0: union '_prisma_string_filter' #27 + │ │ ├─ variant_0: string #11 + │ │ ├─ variant_1: struct #16 + │ │ │ └─ [equals]: string #11 + │ │ ├─ variant_2: struct #17 + │ │ │ └─ [not]: string #11 + │ │ ├─ variant_3: struct #18 + │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_4: struct #19 + │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_5: struct #23 + │ │ │ ├─ [contains]: string #11 + │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #24 + │ │ │ └─ [search]: string #11 + │ │ └─ variant_7: struct #25 + │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ variant_1: struct #28 + │ └─ [not]: union '_prisma_string_filter' #27 + │ ├─ variant_0: string #11 + │ ├─ variant_1: struct #16 + │ │ └─ [equals]: string #11 + │ ├─ variant_2: struct #17 + │ │ └─ [not]: string #11 + │ ├─ variant_3: struct #18 + │ │ └─ [in]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_4: struct #19 + │ │ └─ [notIn]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_5: struct #23 + │ │ ├─ [contains]: string #11 + │ │ └─ [mode]: optional 'optional_21' #22 + │ │ └─ item: string #20 enum{ '"insensitive"' } + │ ├─ variant_6: struct #24 + │ │ └─ [search]: string #11 + │ └─ variant_7: struct #25 + │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ [startsWith]: optional 'optional_12' #13 + │ └─ item: string #11 + └─ [name]: optional 'optional_35' #36 + └─ item: optional '_prisma_string_filter_ex' #32 + └─ item: union #29 + ├─ variant_0: union '_prisma_string_filter' #27 + │ ├─ variant_0: string #11 + │ ├─ variant_1: struct #16 + │ │ └─ [equals]: string #11 + │ ├─ variant_2: struct #17 + │ │ └─ [not]: string #11 + │ ├─ variant_3: struct #18 + │ │ └─ [in]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_4: struct #19 + │ │ └─ [notIn]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_5: struct #23 + │ │ ├─ [contains]: string #11 + │ │ └─ [mode]: optional 'optional_21' #22 + │ │ └─ item: string #20 enum{ '"insensitive"' } + │ ├─ variant_6: struct #24 + │ │ └─ [search]: string #11 + │ └─ variant_7: struct #25 + │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ [startsWith]: optional 'optional_12' #13 + │ └─ item: string #11 + └─ variant_1: struct #28 + └─ [not]: union '_prisma_string_filter' #27 + ├─ variant_0: string #11 + ├─ variant_1: struct #16 + │ └─ [equals]: string #11 + ├─ variant_2: struct #17 + │ └─ [not]: string #11 + ├─ variant_3: struct #18 + │ └─ [in]: list 'list_14' #15 + │ └─ item: string #11 + ├─ variant_4: struct #19 + │ └─ [notIn]: list 'list_14' #15 + │ └─ item: string #11 + ├─ variant_5: struct #23 + │ ├─ [contains]: string #11 + │ └─ [mode]: optional 'optional_21' #22 + │ └─ item: string #20 enum{ '"insensitive"' } + ├─ variant_6: struct #24 + │ └─ [search]: string #11 + └─ variant_7: struct #25 + ├─ [endsWith]: optional 'optional_12' #13 + │ └─ item: string #11 + └─ [startsWith]: optional 'optional_12' #13 + └─ item: string #11 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_many Record out.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_many Record out.snap index 98ae8db6bf..985b48897e 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_many Record out.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_many Record out.snap @@ -2,10 +2,10 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs expression: tp.print(out) --- -root: list 'list_73' #73 -└─ item: struct 'Record_with_nested_count' #72 - ├─ [age]: optional 'optional_6' #6 - │ └─ item: integer #5 +root: list 'list_117' #118 +└─ item: struct 'Record_with_nested_count' #116 + ├─ [age]: optional #7 + │ └─ item: integer #6 ├─ [created_at]: string #0 ├─ [id]: string #2 - └─ [name]: string #4 + └─ [name]: string #5 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_many User inp.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_many User inp.snap index 80a0ef685c..61009fc2c3 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_many User inp.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_many User inp.snap @@ -2,468 +2,789 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs expression: tp.print(inp) --- -root: struct 'User_query_input' #121 -├─ [cursor]: optional 'optional_117' #117 -│ └─ item: union 'User_cursor' #116 -│ ├─ variant_0: struct #114 -│ │ └─ [id]: integer #74 -│ └─ variant_1: struct #115 -│ └─ [name]: string #76 -├─ [distinct]: optional 'optional_120' #120 -│ └─ item: list 'User_keys_union' #119 -│ └─ item: string #118 enum{ '"id"', '"name"', '"posts"' } -├─ [orderBy]: optional 'optional_111' #111 -│ └─ item: list 'User_order_by' #110 -│ └─ item: struct #109 -│ ├─ [id]: optional '_prisma_sort' #51 -│ │ └─ item: union #50 -│ │ ├─ variant_0: struct #49 -│ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ ├─ [name]: optional '_prisma_sort' #51 -│ │ └─ item: union #50 -│ │ ├─ variant_0: struct #49 -│ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ └─ [posts]: optional '_prisma_sort_by_aggregates' #108 -│ └─ item: struct #107 -│ ├─ [_avg]: optional '_prisma_sort' #51 -│ │ └─ item: union #50 -│ │ ├─ variant_0: struct #49 -│ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ ├─ [_count]: optional '_prisma_sort' #51 -│ │ └─ item: union #50 -│ │ ├─ variant_0: struct #49 -│ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ ├─ [_max]: optional '_prisma_sort' #51 -│ │ └─ item: union #50 -│ │ ├─ variant_0: struct #49 -│ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ ├─ [_min]: optional '_prisma_sort' #51 -│ │ └─ item: union #50 -│ │ ├─ variant_0: struct #49 -│ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ └─ [_sum]: optional '_prisma_sort' #51 -│ └─ item: union #50 -│ ├─ variant_0: struct #49 -│ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -├─ [skip]: optional 'optional_113' #113 -│ └─ item: integer '_skip' #60 -├─ [take]: optional 'optional_112' #112 -│ └─ item: integer '_take' #58 -└─ [where]: optional 'optional_106' #106 - └─ item: struct 'User_query_where_input' #105 - ├─ [AND]: optional 'optional_103' #103 - │ └─ item: list 'list_102' #102 - │ └─ item: &User_query_where_input #101 - ├─ [NOT]: optional 'optional_104' #104 - │ └─ item: &User_query_where_input #101 - ├─ [OR]: optional 'optional_103' #103 - │ └─ item: list 'list_102' #102 - │ └─ item: &User_query_where_input #101 - ├─ [id]: optional 'optional_85' #85 - │ └─ item: optional '_prisma_integer_filter_ex' #37 - │ └─ item: union #36 - │ ├─ variant_0: either '_prisma_integer_filter' #34 - │ │ ├─ variant_0: integer #26 - │ │ ├─ variant_1: struct #29 - │ │ │ └─ [equals]: integer #26 - │ │ ├─ variant_2: struct #30 - │ │ │ └─ [not]: integer #26 - │ │ ├─ variant_3: struct #31 - │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ variant_4: struct #32 - │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ └─ variant_5: struct #33 - │ │ └─ [notIn]: list 'list_28' #28 - │ │ └─ item: integer #26 - │ └─ variant_1: struct #35 - │ └─ [not]: either '_prisma_integer_filter' #34 - │ ├─ variant_0: integer #26 - │ ├─ variant_1: struct #29 - │ │ └─ [equals]: integer #26 - │ ├─ variant_2: struct #30 - │ │ └─ [not]: integer #26 - │ ├─ variant_3: struct #31 - │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ └─ [lte]: optional 'optional_27' #27 - │ │ └─ item: integer #26 - │ ├─ variant_4: struct #32 - │ │ └─ [in]: list 'list_28' #28 - │ │ └─ item: integer #26 - │ └─ variant_5: struct #33 - │ └─ [notIn]: list 'list_28' #28 - │ └─ item: integer #26 - ├─ [name]: optional 'optional_86' #86 - │ └─ item: optional '_prisma_string_filter_ex' #23 - │ └─ item: union #22 - │ ├─ variant_0: union '_prisma_string_filter' #20 - │ │ ├─ variant_0: string #8 - │ │ ├─ variant_1: struct #11 - │ │ │ └─ [equals]: string #8 - │ │ ├─ variant_2: struct #12 - │ │ │ └─ [not]: string #8 - │ │ ├─ variant_3: struct #13 - │ │ │ └─ [in]: list 'list_10' #10 - │ │ │ └─ item: string #8 - │ │ ├─ variant_4: struct #14 - │ │ │ └─ [notIn]: list 'list_10' #10 - │ │ │ └─ item: string #8 - │ │ ├─ variant_5: struct #17 - │ │ │ ├─ [contains]: string #8 - │ │ │ └─ [mode]: optional 'optional_16' #16 - │ │ │ └─ item: string #15 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #18 - │ │ │ └─ [search]: string #8 - │ │ └─ variant_7: struct #19 - │ │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ │ └─ item: string #8 - │ │ └─ [startsWith]: optional 'optional_9' #9 - │ │ └─ item: string #8 - │ └─ variant_1: struct #21 - │ └─ [not]: union '_prisma_string_filter' #20 - │ ├─ variant_0: string #8 - │ ├─ variant_1: struct #11 - │ │ └─ [equals]: string #8 - │ ├─ variant_2: struct #12 - │ │ └─ [not]: string #8 - │ ├─ variant_3: struct #13 - │ │ └─ [in]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_4: struct #14 - │ │ └─ [notIn]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_5: struct #17 - │ │ ├─ [contains]: string #8 - │ │ └─ [mode]: optional 'optional_16' #16 - │ │ └─ item: string #15 enum{ '"insensitive"' } - │ ├─ variant_6: struct #18 - │ │ └─ [search]: string #8 - │ └─ variant_7: struct #19 - │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ └─ item: string #8 - │ └─ [startsWith]: optional 'optional_9' #9 - │ └─ item: string #8 - └─ [posts]: optional 'optional_99' #99 - └─ item: union #98 - ├─ variant_0: struct #93 - │ └─ [every]: optional 'optional_92' #92 - │ └─ item: struct 'Post_where_excluding_User' #91 - │ ├─ [author]: optional 'optional_90' #90 - │ │ └─ item: &User_where #89 - │ ├─ [id]: optional 'optional_87' #87 - │ │ └─ item: optional '_prisma_integer_filter_ex' #37 - │ │ └─ item: union #36 - │ │ ├─ variant_0: either '_prisma_integer_filter' #34 - │ │ │ ├─ variant_0: integer #26 - │ │ │ ├─ variant_1: struct #29 - │ │ │ │ └─ [equals]: integer #26 - │ │ │ ├─ variant_2: struct #30 - │ │ │ │ └─ [not]: integer #26 - │ │ │ ├─ variant_3: struct #31 - │ │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ variant_4: struct #32 - │ │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ variant_5: struct #33 - │ │ │ └─ [notIn]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ └─ variant_1: struct #35 - │ │ └─ [not]: either '_prisma_integer_filter' #34 - │ │ ├─ variant_0: integer #26 - │ │ ├─ variant_1: struct #29 - │ │ │ └─ [equals]: integer #26 - │ │ ├─ variant_2: struct #30 - │ │ │ └─ [not]: integer #26 - │ │ ├─ variant_3: struct #31 - │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ variant_4: struct #32 - │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ └─ variant_5: struct #33 - │ │ └─ [notIn]: list 'list_28' #28 - │ │ └─ item: integer #26 - │ └─ [title]: optional 'optional_88' #88 - │ └─ item: optional '_prisma_string_filter_ex' #23 - │ └─ item: union #22 - │ ├─ variant_0: union '_prisma_string_filter' #20 - │ │ ├─ variant_0: string #8 - │ │ ├─ variant_1: struct #11 - │ │ │ └─ [equals]: string #8 - │ │ ├─ variant_2: struct #12 - │ │ │ └─ [not]: string #8 - │ │ ├─ variant_3: struct #13 - │ │ │ └─ [in]: list 'list_10' #10 - │ │ │ └─ item: string #8 - │ │ ├─ variant_4: struct #14 - │ │ │ └─ [notIn]: list 'list_10' #10 - │ │ │ └─ item: string #8 - │ │ ├─ variant_5: struct #17 - │ │ │ ├─ [contains]: string #8 - │ │ │ └─ [mode]: optional 'optional_16' #16 - │ │ │ └─ item: string #15 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #18 - │ │ │ └─ [search]: string #8 - │ │ └─ variant_7: struct #19 - │ │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ │ └─ item: string #8 - │ │ └─ [startsWith]: optional 'optional_9' #9 - │ │ └─ item: string #8 - │ └─ variant_1: struct #21 - │ └─ [not]: union '_prisma_string_filter' #20 - │ ├─ variant_0: string #8 - │ ├─ variant_1: struct #11 - │ │ └─ [equals]: string #8 - │ ├─ variant_2: struct #12 - │ │ └─ [not]: string #8 - │ ├─ variant_3: struct #13 - │ │ └─ [in]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_4: struct #14 - │ │ └─ [notIn]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_5: struct #17 - │ │ ├─ [contains]: string #8 - │ │ └─ [mode]: optional 'optional_16' #16 - │ │ └─ item: string #15 enum{ '"insensitive"' } - │ ├─ variant_6: struct #18 - │ │ └─ [search]: string #8 - │ └─ variant_7: struct #19 - │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ └─ item: string #8 - │ └─ [startsWith]: optional 'optional_9' #9 - │ └─ item: string #8 - ├─ variant_1: struct #95 - │ └─ [some]: optional 'optional_94' #94 - │ └─ item: struct 'Post_where_excluding_User' #91 - │ ├─ [author]: optional 'optional_90' #90 - │ │ └─ item: &User_where #89 - │ ├─ [id]: optional 'optional_87' #87 - │ │ └─ item: optional '_prisma_integer_filter_ex' #37 - │ │ └─ item: union #36 - │ │ ├─ variant_0: either '_prisma_integer_filter' #34 - │ │ │ ├─ variant_0: integer #26 - │ │ │ ├─ variant_1: struct #29 - │ │ │ │ └─ [equals]: integer #26 - │ │ │ ├─ variant_2: struct #30 - │ │ │ │ └─ [not]: integer #26 - │ │ │ ├─ variant_3: struct #31 - │ │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ variant_4: struct #32 - │ │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ variant_5: struct #33 - │ │ │ └─ [notIn]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ └─ variant_1: struct #35 - │ │ └─ [not]: either '_prisma_integer_filter' #34 - │ │ ├─ variant_0: integer #26 - │ │ ├─ variant_1: struct #29 - │ │ │ └─ [equals]: integer #26 - │ │ ├─ variant_2: struct #30 - │ │ │ └─ [not]: integer #26 - │ │ ├─ variant_3: struct #31 - │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ variant_4: struct #32 - │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ └─ variant_5: struct #33 - │ │ └─ [notIn]: list 'list_28' #28 - │ │ └─ item: integer #26 - │ └─ [title]: optional 'optional_88' #88 - │ └─ item: optional '_prisma_string_filter_ex' #23 - │ └─ item: union #22 - │ ├─ variant_0: union '_prisma_string_filter' #20 - │ │ ├─ variant_0: string #8 - │ │ ├─ variant_1: struct #11 - │ │ │ └─ [equals]: string #8 - │ │ ├─ variant_2: struct #12 - │ │ │ └─ [not]: string #8 - │ │ ├─ variant_3: struct #13 - │ │ │ └─ [in]: list 'list_10' #10 - │ │ │ └─ item: string #8 - │ │ ├─ variant_4: struct #14 - │ │ │ └─ [notIn]: list 'list_10' #10 - │ │ │ └─ item: string #8 - │ │ ├─ variant_5: struct #17 - │ │ │ ├─ [contains]: string #8 - │ │ │ └─ [mode]: optional 'optional_16' #16 - │ │ │ └─ item: string #15 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #18 - │ │ │ └─ [search]: string #8 - │ │ └─ variant_7: struct #19 - │ │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ │ └─ item: string #8 - │ │ └─ [startsWith]: optional 'optional_9' #9 - │ │ └─ item: string #8 - │ └─ variant_1: struct #21 - │ └─ [not]: union '_prisma_string_filter' #20 - │ ├─ variant_0: string #8 - │ ├─ variant_1: struct #11 - │ │ └─ [equals]: string #8 - │ ├─ variant_2: struct #12 - │ │ └─ [not]: string #8 - │ ├─ variant_3: struct #13 - │ │ └─ [in]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_4: struct #14 - │ │ └─ [notIn]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_5: struct #17 - │ │ ├─ [contains]: string #8 - │ │ └─ [mode]: optional 'optional_16' #16 - │ │ └─ item: string #15 enum{ '"insensitive"' } - │ ├─ variant_6: struct #18 - │ │ └─ [search]: string #8 - │ └─ variant_7: struct #19 - │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ └─ item: string #8 - │ └─ [startsWith]: optional 'optional_9' #9 - │ └─ item: string #8 - └─ variant_2: struct #97 - └─ [none]: optional 'optional_96' #96 - └─ item: struct 'Post_where_excluding_User' #91 - ├─ [author]: optional 'optional_90' #90 - │ └─ item: &User_where #89 - ├─ [id]: optional 'optional_87' #87 - │ └─ item: optional '_prisma_integer_filter_ex' #37 - │ └─ item: union #36 - │ ├─ variant_0: either '_prisma_integer_filter' #34 - │ │ ├─ variant_0: integer #26 - │ │ ├─ variant_1: struct #29 - │ │ │ └─ [equals]: integer #26 - │ │ ├─ variant_2: struct #30 - │ │ │ └─ [not]: integer #26 - │ │ ├─ variant_3: struct #31 - │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ variant_4: struct #32 - │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ └─ variant_5: struct #33 - │ │ └─ [notIn]: list 'list_28' #28 - │ │ └─ item: integer #26 - │ └─ variant_1: struct #35 - │ └─ [not]: either '_prisma_integer_filter' #34 - │ ├─ variant_0: integer #26 - │ ├─ variant_1: struct #29 - │ │ └─ [equals]: integer #26 - │ ├─ variant_2: struct #30 - │ │ └─ [not]: integer #26 - │ ├─ variant_3: struct #31 - │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ └─ [lte]: optional 'optional_27' #27 - │ │ └─ item: integer #26 - │ ├─ variant_4: struct #32 - │ │ └─ [in]: list 'list_28' #28 - │ │ └─ item: integer #26 - │ └─ variant_5: struct #33 - │ └─ [notIn]: list 'list_28' #28 - │ └─ item: integer #26 - └─ [title]: optional 'optional_88' #88 - └─ item: optional '_prisma_string_filter_ex' #23 - └─ item: union #22 - ├─ variant_0: union '_prisma_string_filter' #20 - │ ├─ variant_0: string #8 - │ ├─ variant_1: struct #11 - │ │ └─ [equals]: string #8 - │ ├─ variant_2: struct #12 - │ │ └─ [not]: string #8 - │ ├─ variant_3: struct #13 - │ │ └─ [in]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_4: struct #14 - │ │ └─ [notIn]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_5: struct #17 - │ │ ├─ [contains]: string #8 - │ │ └─ [mode]: optional 'optional_16' #16 - │ │ └─ item: string #15 enum{ '"insensitive"' } - │ ├─ variant_6: struct #18 - │ │ └─ [search]: string #8 - │ └─ variant_7: struct #19 - │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ └─ item: string #8 - │ └─ [startsWith]: optional 'optional_9' #9 - │ └─ item: string #8 - └─ variant_1: struct #21 - └─ [not]: union '_prisma_string_filter' #20 - ├─ variant_0: string #8 - ├─ variant_1: struct #11 - │ └─ [equals]: string #8 - ├─ variant_2: struct #12 - │ └─ [not]: string #8 - ├─ variant_3: struct #13 - │ └─ [in]: list 'list_10' #10 - │ └─ item: string #8 - ├─ variant_4: struct #14 - │ └─ [notIn]: list 'list_10' #10 - │ └─ item: string #8 - ├─ variant_5: struct #17 - │ ├─ [contains]: string #8 - │ └─ [mode]: optional 'optional_16' #16 - │ └─ item: string #15 enum{ '"insensitive"' } - ├─ variant_6: struct #18 - │ └─ [search]: string #8 - └─ variant_7: struct #19 - ├─ [endsWith]: optional 'optional_9' #9 - │ └─ item: string #8 - └─ [startsWith]: optional 'optional_9' #9 - └─ item: string #8 +root: struct 'User_query_input' #217 +├─ [cursor]: optional 'optional_208' #209 +│ └─ item: union 'User_cursor' #207 +│ ├─ variant_0: struct #204 +│ │ └─ [id]: integer #120 +│ └─ variant_1: struct #205 +│ └─ [name]: string #121 +├─ [distinct]: optional 'optional_214' #215 +│ └─ item: list 'User_keys_union' #213 +│ └─ item: string #210 enum{ '"id"', '"name"', '"posts"' } +├─ [orderBy]: optional 'optional_198' #199 +│ └─ item: list 'User_order_by' #197 +│ └─ item: struct #194 +│ ├─ [id]: optional '_prisma_sort' #79 +│ │ └─ item: union #76 +│ │ ├─ variant_0: struct #75 +│ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ └─ variant_1: string '_prisma_sort_order' #72 +│ ├─ [name]: optional '_prisma_sort' #79 +│ │ └─ item: union #76 +│ │ ├─ variant_0: struct #75 +│ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ └─ variant_1: string '_prisma_sort_order' #72 +│ └─ [posts]: optional '_prisma_sort_by_aggregates' #193 +│ └─ item: struct #190 +│ ├─ [_avg]: optional '_prisma_sort' #79 +│ │ └─ item: union #76 +│ │ ├─ variant_0: struct #75 +│ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ └─ variant_1: string '_prisma_sort_order' #72 +│ ├─ [_count]: optional '_prisma_sort' #79 +│ │ └─ item: union #76 +│ │ ├─ variant_0: struct #75 +│ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ └─ variant_1: string '_prisma_sort_order' #72 +│ ├─ [_max]: optional '_prisma_sort' #79 +│ │ └─ item: union #76 +│ │ ├─ variant_0: struct #75 +│ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ └─ variant_1: string '_prisma_sort_order' #72 +│ ├─ [_min]: optional '_prisma_sort' #79 +│ │ └─ item: union #76 +│ │ ├─ variant_0: struct #75 +│ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ └─ variant_1: string '_prisma_sort_order' #72 +│ └─ [_sum]: optional '_prisma_sort' #79 +│ └─ item: union #76 +│ ├─ variant_0: struct #75 +│ │ └─ [sort]: string '_prisma_sort_order' #72 +│ └─ variant_1: string '_prisma_sort_order' #72 +├─ [skip]: optional 'optional_202' #203 +│ └─ item: integer '_skip' #96 +├─ [take]: optional 'optional_200' #201 +│ └─ item: integer '_take' #92 +└─ [where]: optional 'optional_188' #189 + └─ item: struct 'User_query_where_input' #187 + ├─ [AND]: optional 'optional_182' #183 + │ └─ item: list 'list_180' #181 + │ └─ item: &User_query_where_input #179 + ├─ [NOT]: optional 'optional_184' #185 + │ └─ item: &User_query_where_input #179 + ├─ [OR]: optional 'optional_182' #183 + │ └─ item: list 'list_180' #181 + │ └─ item: &User_query_where_input #179 + ├─ [id]: optional 'optional_134' #135 + │ └─ item: optional '_prisma_integer_filter_ex' #53 + │ └─ item: union #50 + │ ├─ variant_0: either '_prisma_integer_filter' #48 + │ │ ├─ variant_0: integer #37 + │ │ ├─ variant_1: struct #42 + │ │ │ └─ [equals]: integer #37 + │ │ ├─ variant_2: struct #43 + │ │ │ └─ [not]: integer #37 + │ │ ├─ variant_3: struct #44 + │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ variant_4: struct #45 + │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ variant_5: struct #46 + │ │ └─ [notIn]: list 'list_40' #41 + │ │ └─ item: integer #37 + │ └─ variant_1: struct #49 + │ └─ [not]: either '_prisma_integer_filter' #48 + │ ├─ variant_0: integer #37 + │ ├─ variant_1: struct #42 + │ │ └─ [equals]: integer #37 + │ ├─ variant_2: struct #43 + │ │ └─ [not]: integer #37 + │ ├─ variant_3: struct #44 + │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ └─ [lte]: optional 'optional_38' #39 + │ │ └─ item: integer #37 + │ ├─ variant_4: struct #45 + │ │ └─ [in]: list 'list_40' #41 + │ │ └─ item: integer #37 + │ └─ variant_5: struct #46 + │ └─ [notIn]: list 'list_40' #41 + │ └─ item: integer #37 + ├─ [name]: optional 'optional_136' #137 + │ └─ item: optional '_prisma_string_filter_ex' #32 + │ └─ item: union #29 + │ ├─ variant_0: union '_prisma_string_filter' #27 + │ │ ├─ variant_0: string #11 + │ │ ├─ variant_1: struct #16 + │ │ │ └─ [equals]: string #11 + │ │ ├─ variant_2: struct #17 + │ │ │ └─ [not]: string #11 + │ │ ├─ variant_3: struct #18 + │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_4: struct #19 + │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_5: struct #23 + │ │ │ ├─ [contains]: string #11 + │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #24 + │ │ │ └─ [search]: string #11 + │ │ └─ variant_7: struct #25 + │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ variant_1: struct #28 + │ └─ [not]: union '_prisma_string_filter' #27 + │ ├─ variant_0: string #11 + │ ├─ variant_1: struct #16 + │ │ └─ [equals]: string #11 + │ ├─ variant_2: struct #17 + │ │ └─ [not]: string #11 + │ ├─ variant_3: struct #18 + │ │ └─ [in]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_4: struct #19 + │ │ └─ [notIn]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_5: struct #23 + │ │ ├─ [contains]: string #11 + │ │ └─ [mode]: optional 'optional_21' #22 + │ │ └─ item: string #20 enum{ '"insensitive"' } + │ ├─ variant_6: struct #24 + │ │ └─ [search]: string #11 + │ └─ variant_7: struct #25 + │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ [startsWith]: optional 'optional_12' #13 + │ └─ item: string #11 + └─ [posts]: optional 'optional_175' #176 + └─ item: union #174 + ├─ variant_0: struct #167 + │ └─ [every]: optional 'optional_165' #166 + │ └─ item: struct 'Post_where_excluding_User' #164 + │ ├─ [author]: optional 'optional_161' #162 + │ │ └─ item: struct 'User_where_excluding_User_and_Post_where_excluding_User' #160 + │ │ ├─ [id]: optional 'optional_142' #143 + │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 + │ │ │ └─ item: union #50 + │ │ │ ├─ variant_0: either '_prisma_integer_filter' #48 + │ │ │ │ ├─ variant_0: integer #37 + │ │ │ │ ├─ variant_1: struct #42 + │ │ │ │ │ └─ [equals]: integer #37 + │ │ │ │ ├─ variant_2: struct #43 + │ │ │ │ │ └─ [not]: integer #37 + │ │ │ │ ├─ variant_3: struct #44 + │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ │ │ └─ item: integer #37 + │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ │ │ └─ item: integer #37 + │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ │ │ └─ item: integer #37 + │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ variant_4: struct #45 + │ │ │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ └─ variant_5: struct #46 + │ │ │ │ └─ [notIn]: list 'list_40' #41 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ variant_1: struct #49 + │ │ │ └─ [not]: either '_prisma_integer_filter' #48 + │ │ │ ├─ variant_0: integer #37 + │ │ │ ├─ variant_1: struct #42 + │ │ │ │ └─ [equals]: integer #37 + │ │ │ ├─ variant_2: struct #43 + │ │ │ │ └─ [not]: integer #37 + │ │ │ ├─ variant_3: struct #44 + │ │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ variant_4: struct #45 + │ │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ variant_5: struct #46 + │ │ │ └─ [notIn]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ ├─ [name]: optional 'optional_144' #145 + │ │ │ └─ item: optional '_prisma_string_filter_ex' #32 + │ │ │ └─ item: union #29 + │ │ │ ├─ variant_0: union '_prisma_string_filter' #27 + │ │ │ │ ├─ variant_0: string #11 + │ │ │ │ ├─ variant_1: struct #16 + │ │ │ │ │ └─ [equals]: string #11 + │ │ │ │ ├─ variant_2: struct #17 + │ │ │ │ │ └─ [not]: string #11 + │ │ │ │ ├─ variant_3: struct #18 + │ │ │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ │ │ └─ item: string #11 + │ │ │ │ ├─ variant_4: struct #19 + │ │ │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ │ │ └─ item: string #11 + │ │ │ │ ├─ variant_5: struct #23 + │ │ │ │ │ ├─ [contains]: string #11 + │ │ │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ │ │ ├─ variant_6: struct #24 + │ │ │ │ │ └─ [search]: string #11 + │ │ │ │ └─ variant_7: struct #25 + │ │ │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ │ │ └─ item: string #11 + │ │ │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ │ │ └─ item: string #11 + │ │ │ └─ variant_1: struct #28 + │ │ │ └─ [not]: union '_prisma_string_filter' #27 + │ │ │ ├─ variant_0: string #11 + │ │ │ ├─ variant_1: struct #16 + │ │ │ │ └─ [equals]: string #11 + │ │ │ ├─ variant_2: struct #17 + │ │ │ │ └─ [not]: string #11 + │ │ │ ├─ variant_3: struct #18 + │ │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ │ └─ item: string #11 + │ │ │ ├─ variant_4: struct #19 + │ │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ │ └─ item: string #11 + │ │ │ ├─ variant_5: struct #23 + │ │ │ │ ├─ [contains]: string #11 + │ │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #24 + │ │ │ │ └─ [search]: string #11 + │ │ │ └─ variant_7: struct #25 + │ │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ │ └─ item: string #11 + │ │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ [posts]: optional 'optional_157' #158 + │ │ └─ item: union #156 + │ │ ├─ variant_0: struct #149 + │ │ │ └─ [every]: optional 'optional_147' #148 + │ │ │ └─ item: &Post_where_excluding_User #146 + │ │ ├─ variant_1: struct #152 + │ │ │ └─ [some]: optional 'optional_150' #151 + │ │ │ └─ item: &Post_where_excluding_User #146 + │ │ └─ variant_2: struct #155 + │ │ └─ [none]: optional 'optional_153' #154 + │ │ └─ item: &Post_where_excluding_User #146 + │ ├─ [id]: optional 'optional_138' #139 + │ │ └─ item: optional '_prisma_integer_filter_ex' #53 + │ │ └─ item: union #50 + │ │ ├─ variant_0: either '_prisma_integer_filter' #48 + │ │ │ ├─ variant_0: integer #37 + │ │ │ ├─ variant_1: struct #42 + │ │ │ │ └─ [equals]: integer #37 + │ │ │ ├─ variant_2: struct #43 + │ │ │ │ └─ [not]: integer #37 + │ │ │ ├─ variant_3: struct #44 + │ │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ variant_4: struct #45 + │ │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ variant_5: struct #46 + │ │ │ └─ [notIn]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ variant_1: struct #49 + │ │ └─ [not]: either '_prisma_integer_filter' #48 + │ │ ├─ variant_0: integer #37 + │ │ ├─ variant_1: struct #42 + │ │ │ └─ [equals]: integer #37 + │ │ ├─ variant_2: struct #43 + │ │ │ └─ [not]: integer #37 + │ │ ├─ variant_3: struct #44 + │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ variant_4: struct #45 + │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ variant_5: struct #46 + │ │ └─ [notIn]: list 'list_40' #41 + │ │ └─ item: integer #37 + │ └─ [title]: optional 'optional_140' #141 + │ └─ item: optional '_prisma_string_filter_ex' #32 + │ └─ item: union #29 + │ ├─ variant_0: union '_prisma_string_filter' #27 + │ │ ├─ variant_0: string #11 + │ │ ├─ variant_1: struct #16 + │ │ │ └─ [equals]: string #11 + │ │ ├─ variant_2: struct #17 + │ │ │ └─ [not]: string #11 + │ │ ├─ variant_3: struct #18 + │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_4: struct #19 + │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_5: struct #23 + │ │ │ ├─ [contains]: string #11 + │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #24 + │ │ │ └─ [search]: string #11 + │ │ └─ variant_7: struct #25 + │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ variant_1: struct #28 + │ └─ [not]: union '_prisma_string_filter' #27 + │ ├─ variant_0: string #11 + │ ├─ variant_1: struct #16 + │ │ └─ [equals]: string #11 + │ ├─ variant_2: struct #17 + │ │ └─ [not]: string #11 + │ ├─ variant_3: struct #18 + │ │ └─ [in]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_4: struct #19 + │ │ └─ [notIn]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_5: struct #23 + │ │ ├─ [contains]: string #11 + │ │ └─ [mode]: optional 'optional_21' #22 + │ │ └─ item: string #20 enum{ '"insensitive"' } + │ ├─ variant_6: struct #24 + │ │ └─ [search]: string #11 + │ └─ variant_7: struct #25 + │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ [startsWith]: optional 'optional_12' #13 + │ └─ item: string #11 + ├─ variant_1: struct #170 + │ └─ [some]: optional 'optional_168' #169 + │ └─ item: struct 'Post_where_excluding_User' #164 + │ ├─ [author]: optional 'optional_161' #162 + │ │ └─ item: struct 'User_where_excluding_User_and_Post_where_excluding_User' #160 + │ │ ├─ [id]: optional 'optional_142' #143 + │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 + │ │ │ └─ item: union #50 + │ │ │ ├─ variant_0: either '_prisma_integer_filter' #48 + │ │ │ │ ├─ variant_0: integer #37 + │ │ │ │ ├─ variant_1: struct #42 + │ │ │ │ │ └─ [equals]: integer #37 + │ │ │ │ ├─ variant_2: struct #43 + │ │ │ │ │ └─ [not]: integer #37 + │ │ │ │ ├─ variant_3: struct #44 + │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ │ │ └─ item: integer #37 + │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ │ │ └─ item: integer #37 + │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ │ │ └─ item: integer #37 + │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ variant_4: struct #45 + │ │ │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ └─ variant_5: struct #46 + │ │ │ │ └─ [notIn]: list 'list_40' #41 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ variant_1: struct #49 + │ │ │ └─ [not]: either '_prisma_integer_filter' #48 + │ │ │ ├─ variant_0: integer #37 + │ │ │ ├─ variant_1: struct #42 + │ │ │ │ └─ [equals]: integer #37 + │ │ │ ├─ variant_2: struct #43 + │ │ │ │ └─ [not]: integer #37 + │ │ │ ├─ variant_3: struct #44 + │ │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ variant_4: struct #45 + │ │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ variant_5: struct #46 + │ │ │ └─ [notIn]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ ├─ [name]: optional 'optional_144' #145 + │ │ │ └─ item: optional '_prisma_string_filter_ex' #32 + │ │ │ └─ item: union #29 + │ │ │ ├─ variant_0: union '_prisma_string_filter' #27 + │ │ │ │ ├─ variant_0: string #11 + │ │ │ │ ├─ variant_1: struct #16 + │ │ │ │ │ └─ [equals]: string #11 + │ │ │ │ ├─ variant_2: struct #17 + │ │ │ │ │ └─ [not]: string #11 + │ │ │ │ ├─ variant_3: struct #18 + │ │ │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ │ │ └─ item: string #11 + │ │ │ │ ├─ variant_4: struct #19 + │ │ │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ │ │ └─ item: string #11 + │ │ │ │ ├─ variant_5: struct #23 + │ │ │ │ │ ├─ [contains]: string #11 + │ │ │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ │ │ ├─ variant_6: struct #24 + │ │ │ │ │ └─ [search]: string #11 + │ │ │ │ └─ variant_7: struct #25 + │ │ │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ │ │ └─ item: string #11 + │ │ │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ │ │ └─ item: string #11 + │ │ │ └─ variant_1: struct #28 + │ │ │ └─ [not]: union '_prisma_string_filter' #27 + │ │ │ ├─ variant_0: string #11 + │ │ │ ├─ variant_1: struct #16 + │ │ │ │ └─ [equals]: string #11 + │ │ │ ├─ variant_2: struct #17 + │ │ │ │ └─ [not]: string #11 + │ │ │ ├─ variant_3: struct #18 + │ │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ │ └─ item: string #11 + │ │ │ ├─ variant_4: struct #19 + │ │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ │ └─ item: string #11 + │ │ │ ├─ variant_5: struct #23 + │ │ │ │ ├─ [contains]: string #11 + │ │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #24 + │ │ │ │ └─ [search]: string #11 + │ │ │ └─ variant_7: struct #25 + │ │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ │ └─ item: string #11 + │ │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ [posts]: optional 'optional_157' #158 + │ │ └─ item: union #156 + │ │ ├─ variant_0: struct #149 + │ │ │ └─ [every]: optional 'optional_147' #148 + │ │ │ └─ item: &Post_where_excluding_User #146 + │ │ ├─ variant_1: struct #152 + │ │ │ └─ [some]: optional 'optional_150' #151 + │ │ │ └─ item: &Post_where_excluding_User #146 + │ │ └─ variant_2: struct #155 + │ │ └─ [none]: optional 'optional_153' #154 + │ │ └─ item: &Post_where_excluding_User #146 + │ ├─ [id]: optional 'optional_138' #139 + │ │ └─ item: optional '_prisma_integer_filter_ex' #53 + │ │ └─ item: union #50 + │ │ ├─ variant_0: either '_prisma_integer_filter' #48 + │ │ │ ├─ variant_0: integer #37 + │ │ │ ├─ variant_1: struct #42 + │ │ │ │ └─ [equals]: integer #37 + │ │ │ ├─ variant_2: struct #43 + │ │ │ │ └─ [not]: integer #37 + │ │ │ ├─ variant_3: struct #44 + │ │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ variant_4: struct #45 + │ │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ variant_5: struct #46 + │ │ │ └─ [notIn]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ variant_1: struct #49 + │ │ └─ [not]: either '_prisma_integer_filter' #48 + │ │ ├─ variant_0: integer #37 + │ │ ├─ variant_1: struct #42 + │ │ │ └─ [equals]: integer #37 + │ │ ├─ variant_2: struct #43 + │ │ │ └─ [not]: integer #37 + │ │ ├─ variant_3: struct #44 + │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ variant_4: struct #45 + │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ variant_5: struct #46 + │ │ └─ [notIn]: list 'list_40' #41 + │ │ └─ item: integer #37 + │ └─ [title]: optional 'optional_140' #141 + │ └─ item: optional '_prisma_string_filter_ex' #32 + │ └─ item: union #29 + │ ├─ variant_0: union '_prisma_string_filter' #27 + │ │ ├─ variant_0: string #11 + │ │ ├─ variant_1: struct #16 + │ │ │ └─ [equals]: string #11 + │ │ ├─ variant_2: struct #17 + │ │ │ └─ [not]: string #11 + │ │ ├─ variant_3: struct #18 + │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_4: struct #19 + │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_5: struct #23 + │ │ │ ├─ [contains]: string #11 + │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #24 + │ │ │ └─ [search]: string #11 + │ │ └─ variant_7: struct #25 + │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ variant_1: struct #28 + │ └─ [not]: union '_prisma_string_filter' #27 + │ ├─ variant_0: string #11 + │ ├─ variant_1: struct #16 + │ │ └─ [equals]: string #11 + │ ├─ variant_2: struct #17 + │ │ └─ [not]: string #11 + │ ├─ variant_3: struct #18 + │ │ └─ [in]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_4: struct #19 + │ │ └─ [notIn]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_5: struct #23 + │ │ ├─ [contains]: string #11 + │ │ └─ [mode]: optional 'optional_21' #22 + │ │ └─ item: string #20 enum{ '"insensitive"' } + │ ├─ variant_6: struct #24 + │ │ └─ [search]: string #11 + │ └─ variant_7: struct #25 + │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ [startsWith]: optional 'optional_12' #13 + │ └─ item: string #11 + └─ variant_2: struct #173 + └─ [none]: optional 'optional_171' #172 + └─ item: struct 'Post_where_excluding_User' #164 + ├─ [author]: optional 'optional_161' #162 + │ └─ item: struct 'User_where_excluding_User_and_Post_where_excluding_User' #160 + │ ├─ [id]: optional 'optional_142' #143 + │ │ └─ item: optional '_prisma_integer_filter_ex' #53 + │ │ └─ item: union #50 + │ │ ├─ variant_0: either '_prisma_integer_filter' #48 + │ │ │ ├─ variant_0: integer #37 + │ │ │ ├─ variant_1: struct #42 + │ │ │ │ └─ [equals]: integer #37 + │ │ │ ├─ variant_2: struct #43 + │ │ │ │ └─ [not]: integer #37 + │ │ │ ├─ variant_3: struct #44 + │ │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ variant_4: struct #45 + │ │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ variant_5: struct #46 + │ │ │ └─ [notIn]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ variant_1: struct #49 + │ │ └─ [not]: either '_prisma_integer_filter' #48 + │ │ ├─ variant_0: integer #37 + │ │ ├─ variant_1: struct #42 + │ │ │ └─ [equals]: integer #37 + │ │ ├─ variant_2: struct #43 + │ │ │ └─ [not]: integer #37 + │ │ ├─ variant_3: struct #44 + │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ variant_4: struct #45 + │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ variant_5: struct #46 + │ │ └─ [notIn]: list 'list_40' #41 + │ │ └─ item: integer #37 + │ ├─ [name]: optional 'optional_144' #145 + │ │ └─ item: optional '_prisma_string_filter_ex' #32 + │ │ └─ item: union #29 + │ │ ├─ variant_0: union '_prisma_string_filter' #27 + │ │ │ ├─ variant_0: string #11 + │ │ │ ├─ variant_1: struct #16 + │ │ │ │ └─ [equals]: string #11 + │ │ │ ├─ variant_2: struct #17 + │ │ │ │ └─ [not]: string #11 + │ │ │ ├─ variant_3: struct #18 + │ │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ │ └─ item: string #11 + │ │ │ ├─ variant_4: struct #19 + │ │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ │ └─ item: string #11 + │ │ │ ├─ variant_5: struct #23 + │ │ │ │ ├─ [contains]: string #11 + │ │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #24 + │ │ │ │ └─ [search]: string #11 + │ │ │ └─ variant_7: struct #25 + │ │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ │ └─ item: string #11 + │ │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ variant_1: struct #28 + │ │ └─ [not]: union '_prisma_string_filter' #27 + │ │ ├─ variant_0: string #11 + │ │ ├─ variant_1: struct #16 + │ │ │ └─ [equals]: string #11 + │ │ ├─ variant_2: struct #17 + │ │ │ └─ [not]: string #11 + │ │ ├─ variant_3: struct #18 + │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_4: struct #19 + │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_5: struct #23 + │ │ │ ├─ [contains]: string #11 + │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #24 + │ │ │ └─ [search]: string #11 + │ │ └─ variant_7: struct #25 + │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ [posts]: optional 'optional_157' #158 + │ └─ item: union #156 + │ ├─ variant_0: struct #149 + │ │ └─ [every]: optional 'optional_147' #148 + │ │ └─ item: &Post_where_excluding_User #146 + │ ├─ variant_1: struct #152 + │ │ └─ [some]: optional 'optional_150' #151 + │ │ └─ item: &Post_where_excluding_User #146 + │ └─ variant_2: struct #155 + │ └─ [none]: optional 'optional_153' #154 + │ └─ item: &Post_where_excluding_User #146 + ├─ [id]: optional 'optional_138' #139 + │ └─ item: optional '_prisma_integer_filter_ex' #53 + │ └─ item: union #50 + │ ├─ variant_0: either '_prisma_integer_filter' #48 + │ │ ├─ variant_0: integer #37 + │ │ ├─ variant_1: struct #42 + │ │ │ └─ [equals]: integer #37 + │ │ ├─ variant_2: struct #43 + │ │ │ └─ [not]: integer #37 + │ │ ├─ variant_3: struct #44 + │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ variant_4: struct #45 + │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ variant_5: struct #46 + │ │ └─ [notIn]: list 'list_40' #41 + │ │ └─ item: integer #37 + │ └─ variant_1: struct #49 + │ └─ [not]: either '_prisma_integer_filter' #48 + │ ├─ variant_0: integer #37 + │ ├─ variant_1: struct #42 + │ │ └─ [equals]: integer #37 + │ ├─ variant_2: struct #43 + │ │ └─ [not]: integer #37 + │ ├─ variant_3: struct #44 + │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ └─ [lte]: optional 'optional_38' #39 + │ │ └─ item: integer #37 + │ ├─ variant_4: struct #45 + │ │ └─ [in]: list 'list_40' #41 + │ │ └─ item: integer #37 + │ └─ variant_5: struct #46 + │ └─ [notIn]: list 'list_40' #41 + │ └─ item: integer #37 + └─ [title]: optional 'optional_140' #141 + └─ item: optional '_prisma_string_filter_ex' #32 + └─ item: union #29 + ├─ variant_0: union '_prisma_string_filter' #27 + │ ├─ variant_0: string #11 + │ ├─ variant_1: struct #16 + │ │ └─ [equals]: string #11 + │ ├─ variant_2: struct #17 + │ │ └─ [not]: string #11 + │ ├─ variant_3: struct #18 + │ │ └─ [in]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_4: struct #19 + │ │ └─ [notIn]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_5: struct #23 + │ │ ├─ [contains]: string #11 + │ │ └─ [mode]: optional 'optional_21' #22 + │ │ └─ item: string #20 enum{ '"insensitive"' } + │ ├─ variant_6: struct #24 + │ │ └─ [search]: string #11 + │ └─ variant_7: struct #25 + │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ [startsWith]: optional 'optional_12' #13 + │ └─ item: string #11 + └─ variant_1: struct #28 + └─ [not]: union '_prisma_string_filter' #27 + ├─ variant_0: string #11 + ├─ variant_1: struct #16 + │ └─ [equals]: string #11 + ├─ variant_2: struct #17 + │ └─ [not]: string #11 + ├─ variant_3: struct #18 + │ └─ [in]: list 'list_14' #15 + │ └─ item: string #11 + ├─ variant_4: struct #19 + │ └─ [notIn]: list 'list_14' #15 + │ └─ item: string #11 + ├─ variant_5: struct #23 + │ ├─ [contains]: string #11 + │ └─ [mode]: optional 'optional_21' #22 + │ └─ item: string #20 enum{ '"insensitive"' } + ├─ variant_6: struct #24 + │ └─ [search]: string #11 + └─ variant_7: struct #25 + ├─ [endsWith]: optional 'optional_12' #13 + │ └─ item: string #11 + └─ [startsWith]: optional 'optional_12' #13 + └─ item: string #11 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_many User out.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_many User out.snap index ef25719d16..1ee2632751 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_many User out.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_many User out.snap @@ -2,14 +2,14 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs expression: tp.print(out) --- -root: list 'list_128' #128 -└─ item: struct 'User_with_nested_count' #127 - ├─ [_count]: struct #126 - │ └─ [posts]: optional '_count' #125 - │ └─ item: integer #124 - ├─ [id]: integer #74 - ├─ [name]: string #76 - └─ [posts]: list 'list_123' #123 - └─ item: struct 'Post_with_nested_count_excluding_rel_Post_User' #122 - ├─ [id]: integer #80 - └─ [title]: string #82 +root: list 'list_229' #230 +└─ item: struct 'User_with_nested_count' #228 + ├─ [_count]: struct #226 + │ └─ [posts]: optional '_count' #225 + │ └─ item: integer #222 + ├─ [id]: integer #119 + ├─ [name]: string #121 + └─ [posts]: list 'list_220' #221 + └─ item: struct 'Post_with_nested_count_excluding_rel_Post_User' #219 + ├─ [id]: integer #127 + └─ [title]: string #130 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_unique Post inp.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_unique Post inp.snap index 2f9a8dfe23..ace0adaeff 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_unique Post inp.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_unique Post inp.snap @@ -2,219 +2,513 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs expression: tp.print(inp) --- -root: struct #113 -└─ [where]: optional 'optional_112' #112 - └─ item: struct 'Post_query_where_unique_input' #111 - ├─ [AND]: optional 'optional_109' #109 - │ └─ item: list 'list_108' #108 - │ └─ item: &Post_query_where_unique_input #107 - ├─ [NOT]: optional 'optional_110' #110 - │ └─ item: &Post_query_where_unique_input #107 - ├─ [OR]: optional 'optional_109' #109 - │ └─ item: list 'list_108' #108 - │ └─ item: &Post_query_where_unique_input #107 - ├─ [author]: optional 'optional_105' #105 - │ └─ item: struct 'User_where_excluding_Post' #104 - │ ├─ [id]: optional 'optional_93' #93 - │ │ └─ item: optional '_prisma_integer_filter_ex' #37 - │ │ └─ item: union #36 - │ │ ├─ variant_0: either '_prisma_integer_filter' #34 - │ │ │ ├─ variant_0: integer #26 - │ │ │ ├─ variant_1: struct #29 - │ │ │ │ └─ [equals]: integer #26 - │ │ │ ├─ variant_2: struct #30 - │ │ │ │ └─ [not]: integer #26 - │ │ │ ├─ variant_3: struct #31 - │ │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ variant_4: struct #32 - │ │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ variant_5: struct #33 - │ │ │ └─ [notIn]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ └─ variant_1: struct #35 - │ │ └─ [not]: either '_prisma_integer_filter' #34 - │ │ ├─ variant_0: integer #26 - │ │ ├─ variant_1: struct #29 - │ │ │ └─ [equals]: integer #26 - │ │ ├─ variant_2: struct #30 - │ │ │ └─ [not]: integer #26 - │ │ ├─ variant_3: struct #31 - │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ variant_4: struct #32 - │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ └─ variant_5: struct #33 - │ │ └─ [notIn]: list 'list_28' #28 - │ │ └─ item: integer #26 - │ ├─ [name]: optional 'optional_94' #94 - │ │ └─ item: optional '_prisma_string_filter_ex' #23 - │ │ └─ item: union #22 - │ │ ├─ variant_0: union '_prisma_string_filter' #20 - │ │ │ ├─ variant_0: string #8 - │ │ │ ├─ variant_1: struct #11 - │ │ │ │ └─ [equals]: string #8 - │ │ │ ├─ variant_2: struct #12 - │ │ │ │ └─ [not]: string #8 - │ │ │ ├─ variant_3: struct #13 - │ │ │ │ └─ [in]: list 'list_10' #10 - │ │ │ │ └─ item: string #8 - │ │ │ ├─ variant_4: struct #14 - │ │ │ │ └─ [notIn]: list 'list_10' #10 - │ │ │ │ └─ item: string #8 - │ │ │ ├─ variant_5: struct #17 - │ │ │ │ ├─ [contains]: string #8 - │ │ │ │ └─ [mode]: optional 'optional_16' #16 - │ │ │ │ └─ item: string #15 enum{ '"insensitive"' } - │ │ │ ├─ variant_6: struct #18 - │ │ │ │ └─ [search]: string #8 - │ │ │ └─ variant_7: struct #19 - │ │ │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ │ │ └─ item: string #8 - │ │ │ └─ [startsWith]: optional 'optional_9' #9 - │ │ │ └─ item: string #8 - │ │ └─ variant_1: struct #21 - │ │ └─ [not]: union '_prisma_string_filter' #20 - │ │ ├─ variant_0: string #8 - │ │ ├─ variant_1: struct #11 - │ │ │ └─ [equals]: string #8 - │ │ ├─ variant_2: struct #12 - │ │ │ └─ [not]: string #8 - │ │ ├─ variant_3: struct #13 - │ │ │ └─ [in]: list 'list_10' #10 - │ │ │ └─ item: string #8 - │ │ ├─ variant_4: struct #14 - │ │ │ └─ [notIn]: list 'list_10' #10 - │ │ │ └─ item: string #8 - │ │ ├─ variant_5: struct #17 - │ │ │ ├─ [contains]: string #8 - │ │ │ └─ [mode]: optional 'optional_16' #16 - │ │ │ └─ item: string #15 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #18 - │ │ │ └─ [search]: string #8 - │ │ └─ variant_7: struct #19 - │ │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ │ └─ item: string #8 - │ │ └─ [startsWith]: optional 'optional_9' #9 - │ │ └─ item: string #8 - │ └─ [posts]: optional 'optional_103' #103 - │ └─ item: union #102 - │ ├─ variant_0: struct #97 - │ │ └─ [every]: optional 'optional_96' #96 - │ │ └─ item: &Post_where #95 - │ ├─ variant_1: struct #99 - │ │ └─ [some]: optional 'optional_98' #98 - │ │ └─ item: &Post_where #95 - │ └─ variant_2: struct #101 - │ └─ [none]: optional 'optional_100' #100 - │ └─ item: &Post_where #95 - ├─ [id]: optional 'optional_91' #91 - │ └─ item: optional '_prisma_integer_filter_ex' #37 - │ └─ item: union #36 - │ ├─ variant_0: either '_prisma_integer_filter' #34 - │ │ ├─ variant_0: integer #26 - │ │ ├─ variant_1: struct #29 - │ │ │ └─ [equals]: integer #26 - │ │ ├─ variant_2: struct #30 - │ │ │ └─ [not]: integer #26 - │ │ ├─ variant_3: struct #31 - │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ variant_4: struct #32 - │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ └─ variant_5: struct #33 - │ │ └─ [notIn]: list 'list_28' #28 - │ │ └─ item: integer #26 - │ └─ variant_1: struct #35 - │ └─ [not]: either '_prisma_integer_filter' #34 - │ ├─ variant_0: integer #26 - │ ├─ variant_1: struct #29 - │ │ └─ [equals]: integer #26 - │ ├─ variant_2: struct #30 - │ │ └─ [not]: integer #26 - │ ├─ variant_3: struct #31 - │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ └─ [lte]: optional 'optional_27' #27 - │ │ └─ item: integer #26 - │ ├─ variant_4: struct #32 - │ │ └─ [in]: list 'list_28' #28 - │ │ └─ item: integer #26 - │ └─ variant_5: struct #33 - │ └─ [notIn]: list 'list_28' #28 - │ └─ item: integer #26 - └─ [title]: optional 'optional_92' #92 - └─ item: optional '_prisma_string_filter_ex' #23 - └─ item: union #22 - ├─ variant_0: union '_prisma_string_filter' #20 - │ ├─ variant_0: string #8 - │ ├─ variant_1: struct #11 - │ │ └─ [equals]: string #8 - │ ├─ variant_2: struct #12 - │ │ └─ [not]: string #8 - │ ├─ variant_3: struct #13 - │ │ └─ [in]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_4: struct #14 - │ │ └─ [notIn]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_5: struct #17 - │ │ ├─ [contains]: string #8 - │ │ └─ [mode]: optional 'optional_16' #16 - │ │ └─ item: string #15 enum{ '"insensitive"' } - │ ├─ variant_6: struct #18 - │ │ └─ [search]: string #8 - │ └─ variant_7: struct #19 - │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ └─ item: string #8 - │ └─ [startsWith]: optional 'optional_9' #9 - │ └─ item: string #8 - └─ variant_1: struct #21 - └─ [not]: union '_prisma_string_filter' #20 - ├─ variant_0: string #8 - ├─ variant_1: struct #11 - │ └─ [equals]: string #8 - ├─ variant_2: struct #12 - │ └─ [not]: string #8 - ├─ variant_3: struct #13 - │ └─ [in]: list 'list_10' #10 - │ └─ item: string #8 - ├─ variant_4: struct #14 - │ └─ [notIn]: list 'list_10' #10 - │ └─ item: string #8 - ├─ variant_5: struct #17 - │ ├─ [contains]: string #8 - │ └─ [mode]: optional 'optional_16' #16 - │ └─ item: string #15 enum{ '"insensitive"' } - ├─ variant_6: struct #18 - │ └─ [search]: string #8 - └─ variant_7: struct #19 - ├─ [endsWith]: optional 'optional_9' #9 - │ └─ item: string #8 - └─ [startsWith]: optional 'optional_9' #9 - └─ item: string #8 +root: struct #207 +└─ [where]: optional 'optional_205' #206 + └─ item: struct 'Post_query_where_unique_input' #204 + ├─ [AND]: optional 'optional_199' #200 + │ └─ item: list 'list_197' #198 + │ └─ item: &Post_query_where_unique_input #196 + ├─ [NOT]: optional 'optional_201' #202 + │ └─ item: &Post_query_where_unique_input #196 + ├─ [OR]: optional 'optional_199' #200 + │ └─ item: list 'list_197' #198 + │ └─ item: &Post_query_where_unique_input #196 + ├─ [author]: optional 'optional_192' #193 + │ └─ item: struct 'User_where_excluding_Post' #191 + │ ├─ [id]: optional 'optional_165' #166 + │ │ └─ item: optional '_prisma_integer_filter_ex' #53 + │ │ └─ item: union #50 + │ │ ├─ variant_0: either '_prisma_integer_filter' #48 + │ │ │ ├─ variant_0: integer #37 + │ │ │ ├─ variant_1: struct #42 + │ │ │ │ └─ [equals]: integer #37 + │ │ │ ├─ variant_2: struct #43 + │ │ │ │ └─ [not]: integer #37 + │ │ │ ├─ variant_3: struct #44 + │ │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ variant_4: struct #45 + │ │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ variant_5: struct #46 + │ │ │ └─ [notIn]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ variant_1: struct #49 + │ │ └─ [not]: either '_prisma_integer_filter' #48 + │ │ ├─ variant_0: integer #37 + │ │ ├─ variant_1: struct #42 + │ │ │ └─ [equals]: integer #37 + │ │ ├─ variant_2: struct #43 + │ │ │ └─ [not]: integer #37 + │ │ ├─ variant_3: struct #44 + │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ variant_4: struct #45 + │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ variant_5: struct #46 + │ │ └─ [notIn]: list 'list_40' #41 + │ │ └─ item: integer #37 + │ ├─ [name]: optional 'optional_167' #168 + │ │ └─ item: optional '_prisma_string_filter_ex' #32 + │ │ └─ item: union #29 + │ │ ├─ variant_0: union '_prisma_string_filter' #27 + │ │ │ ├─ variant_0: string #11 + │ │ │ ├─ variant_1: struct #16 + │ │ │ │ └─ [equals]: string #11 + │ │ │ ├─ variant_2: struct #17 + │ │ │ │ └─ [not]: string #11 + │ │ │ ├─ variant_3: struct #18 + │ │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ │ └─ item: string #11 + │ │ │ ├─ variant_4: struct #19 + │ │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ │ └─ item: string #11 + │ │ │ ├─ variant_5: struct #23 + │ │ │ │ ├─ [contains]: string #11 + │ │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #24 + │ │ │ │ └─ [search]: string #11 + │ │ │ └─ variant_7: struct #25 + │ │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ │ └─ item: string #11 + │ │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ variant_1: struct #28 + │ │ └─ [not]: union '_prisma_string_filter' #27 + │ │ ├─ variant_0: string #11 + │ │ ├─ variant_1: struct #16 + │ │ │ └─ [equals]: string #11 + │ │ ├─ variant_2: struct #17 + │ │ │ └─ [not]: string #11 + │ │ ├─ variant_3: struct #18 + │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_4: struct #19 + │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_5: struct #23 + │ │ │ ├─ [contains]: string #11 + │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #24 + │ │ │ └─ [search]: string #11 + │ │ └─ variant_7: struct #25 + │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ [posts]: optional 'optional_188' #189 + │ └─ item: union #187 + │ ├─ variant_0: struct #180 + │ │ └─ [every]: optional 'optional_178' #179 + │ │ └─ item: struct 'Post_where_excluding_Post_and_User_where_excluding_Post' #177 + │ │ ├─ [author]: optional 'optional_174' #175 + │ │ │ └─ item: &User_where_excluding_Post #173 + │ │ ├─ [id]: optional 'optional_169' #170 + │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 + │ │ │ └─ item: union #50 + │ │ │ ├─ variant_0: either '_prisma_integer_filter' #48 + │ │ │ │ ├─ variant_0: integer #37 + │ │ │ │ ├─ variant_1: struct #42 + │ │ │ │ │ └─ [equals]: integer #37 + │ │ │ │ ├─ variant_2: struct #43 + │ │ │ │ │ └─ [not]: integer #37 + │ │ │ │ ├─ variant_3: struct #44 + │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ │ │ └─ item: integer #37 + │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ │ │ └─ item: integer #37 + │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ │ │ └─ item: integer #37 + │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ variant_4: struct #45 + │ │ │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ └─ variant_5: struct #46 + │ │ │ │ └─ [notIn]: list 'list_40' #41 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ variant_1: struct #49 + │ │ │ └─ [not]: either '_prisma_integer_filter' #48 + │ │ │ ├─ variant_0: integer #37 + │ │ │ ├─ variant_1: struct #42 + │ │ │ │ └─ [equals]: integer #37 + │ │ │ ├─ variant_2: struct #43 + │ │ │ │ └─ [not]: integer #37 + │ │ │ ├─ variant_3: struct #44 + │ │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ variant_4: struct #45 + │ │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ variant_5: struct #46 + │ │ │ └─ [notIn]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ [title]: optional 'optional_171' #172 + │ │ └─ item: optional '_prisma_string_filter_ex' #32 + │ │ └─ item: union #29 + │ │ ├─ variant_0: union '_prisma_string_filter' #27 + │ │ │ ├─ variant_0: string #11 + │ │ │ ├─ variant_1: struct #16 + │ │ │ │ └─ [equals]: string #11 + │ │ │ ├─ variant_2: struct #17 + │ │ │ │ └─ [not]: string #11 + │ │ │ ├─ variant_3: struct #18 + │ │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ │ └─ item: string #11 + │ │ │ ├─ variant_4: struct #19 + │ │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ │ └─ item: string #11 + │ │ │ ├─ variant_5: struct #23 + │ │ │ │ ├─ [contains]: string #11 + │ │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #24 + │ │ │ │ └─ [search]: string #11 + │ │ │ └─ variant_7: struct #25 + │ │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ │ └─ item: string #11 + │ │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ variant_1: struct #28 + │ │ └─ [not]: union '_prisma_string_filter' #27 + │ │ ├─ variant_0: string #11 + │ │ ├─ variant_1: struct #16 + │ │ │ └─ [equals]: string #11 + │ │ ├─ variant_2: struct #17 + │ │ │ └─ [not]: string #11 + │ │ ├─ variant_3: struct #18 + │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_4: struct #19 + │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_5: struct #23 + │ │ │ ├─ [contains]: string #11 + │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #24 + │ │ │ └─ [search]: string #11 + │ │ └─ variant_7: struct #25 + │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ ├─ variant_1: struct #183 + │ │ └─ [some]: optional 'optional_181' #182 + │ │ └─ item: struct 'Post_where_excluding_Post_and_User_where_excluding_Post' #177 + │ │ ├─ [author]: optional 'optional_174' #175 + │ │ │ └─ item: &User_where_excluding_Post #173 + │ │ ├─ [id]: optional 'optional_169' #170 + │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 + │ │ │ └─ item: union #50 + │ │ │ ├─ variant_0: either '_prisma_integer_filter' #48 + │ │ │ │ ├─ variant_0: integer #37 + │ │ │ │ ├─ variant_1: struct #42 + │ │ │ │ │ └─ [equals]: integer #37 + │ │ │ │ ├─ variant_2: struct #43 + │ │ │ │ │ └─ [not]: integer #37 + │ │ │ │ ├─ variant_3: struct #44 + │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ │ │ └─ item: integer #37 + │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ │ │ └─ item: integer #37 + │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ │ │ └─ item: integer #37 + │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ variant_4: struct #45 + │ │ │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ └─ variant_5: struct #46 + │ │ │ │ └─ [notIn]: list 'list_40' #41 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ variant_1: struct #49 + │ │ │ └─ [not]: either '_prisma_integer_filter' #48 + │ │ │ ├─ variant_0: integer #37 + │ │ │ ├─ variant_1: struct #42 + │ │ │ │ └─ [equals]: integer #37 + │ │ │ ├─ variant_2: struct #43 + │ │ │ │ └─ [not]: integer #37 + │ │ │ ├─ variant_3: struct #44 + │ │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ variant_4: struct #45 + │ │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ variant_5: struct #46 + │ │ │ └─ [notIn]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ [title]: optional 'optional_171' #172 + │ │ └─ item: optional '_prisma_string_filter_ex' #32 + │ │ └─ item: union #29 + │ │ ├─ variant_0: union '_prisma_string_filter' #27 + │ │ │ ├─ variant_0: string #11 + │ │ │ ├─ variant_1: struct #16 + │ │ │ │ └─ [equals]: string #11 + │ │ │ ├─ variant_2: struct #17 + │ │ │ │ └─ [not]: string #11 + │ │ │ ├─ variant_3: struct #18 + │ │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ │ └─ item: string #11 + │ │ │ ├─ variant_4: struct #19 + │ │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ │ └─ item: string #11 + │ │ │ ├─ variant_5: struct #23 + │ │ │ │ ├─ [contains]: string #11 + │ │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #24 + │ │ │ │ └─ [search]: string #11 + │ │ │ └─ variant_7: struct #25 + │ │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ │ └─ item: string #11 + │ │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ variant_1: struct #28 + │ │ └─ [not]: union '_prisma_string_filter' #27 + │ │ ├─ variant_0: string #11 + │ │ ├─ variant_1: struct #16 + │ │ │ └─ [equals]: string #11 + │ │ ├─ variant_2: struct #17 + │ │ │ └─ [not]: string #11 + │ │ ├─ variant_3: struct #18 + │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_4: struct #19 + │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_5: struct #23 + │ │ │ ├─ [contains]: string #11 + │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #24 + │ │ │ └─ [search]: string #11 + │ │ └─ variant_7: struct #25 + │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ variant_2: struct #186 + │ └─ [none]: optional 'optional_184' #185 + │ └─ item: struct 'Post_where_excluding_Post_and_User_where_excluding_Post' #177 + │ ├─ [author]: optional 'optional_174' #175 + │ │ └─ item: &User_where_excluding_Post #173 + │ ├─ [id]: optional 'optional_169' #170 + │ │ └─ item: optional '_prisma_integer_filter_ex' #53 + │ │ └─ item: union #50 + │ │ ├─ variant_0: either '_prisma_integer_filter' #48 + │ │ │ ├─ variant_0: integer #37 + │ │ │ ├─ variant_1: struct #42 + │ │ │ │ └─ [equals]: integer #37 + │ │ │ ├─ variant_2: struct #43 + │ │ │ │ └─ [not]: integer #37 + │ │ │ ├─ variant_3: struct #44 + │ │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ variant_4: struct #45 + │ │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ variant_5: struct #46 + │ │ │ └─ [notIn]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ variant_1: struct #49 + │ │ └─ [not]: either '_prisma_integer_filter' #48 + │ │ ├─ variant_0: integer #37 + │ │ ├─ variant_1: struct #42 + │ │ │ └─ [equals]: integer #37 + │ │ ├─ variant_2: struct #43 + │ │ │ └─ [not]: integer #37 + │ │ ├─ variant_3: struct #44 + │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ variant_4: struct #45 + │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ variant_5: struct #46 + │ │ └─ [notIn]: list 'list_40' #41 + │ │ └─ item: integer #37 + │ └─ [title]: optional 'optional_171' #172 + │ └─ item: optional '_prisma_string_filter_ex' #32 + │ └─ item: union #29 + │ ├─ variant_0: union '_prisma_string_filter' #27 + │ │ ├─ variant_0: string #11 + │ │ ├─ variant_1: struct #16 + │ │ │ └─ [equals]: string #11 + │ │ ├─ variant_2: struct #17 + │ │ │ └─ [not]: string #11 + │ │ ├─ variant_3: struct #18 + │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_4: struct #19 + │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_5: struct #23 + │ │ │ ├─ [contains]: string #11 + │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #24 + │ │ │ └─ [search]: string #11 + │ │ └─ variant_7: struct #25 + │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ variant_1: struct #28 + │ └─ [not]: union '_prisma_string_filter' #27 + │ ├─ variant_0: string #11 + │ ├─ variant_1: struct #16 + │ │ └─ [equals]: string #11 + │ ├─ variant_2: struct #17 + │ │ └─ [not]: string #11 + │ ├─ variant_3: struct #18 + │ │ └─ [in]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_4: struct #19 + │ │ └─ [notIn]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_5: struct #23 + │ │ ├─ [contains]: string #11 + │ │ └─ [mode]: optional 'optional_21' #22 + │ │ └─ item: string #20 enum{ '"insensitive"' } + │ ├─ variant_6: struct #24 + │ │ └─ [search]: string #11 + │ └─ variant_7: struct #25 + │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ [startsWith]: optional 'optional_12' #13 + │ └─ item: string #11 + ├─ [id]: optional 'optional_161' #162 + │ └─ item: optional '_prisma_integer_filter_ex' #53 + │ └─ item: union #50 + │ ├─ variant_0: either '_prisma_integer_filter' #48 + │ │ ├─ variant_0: integer #37 + │ │ ├─ variant_1: struct #42 + │ │ │ └─ [equals]: integer #37 + │ │ ├─ variant_2: struct #43 + │ │ │ └─ [not]: integer #37 + │ │ ├─ variant_3: struct #44 + │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ variant_4: struct #45 + │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ variant_5: struct #46 + │ │ └─ [notIn]: list 'list_40' #41 + │ │ └─ item: integer #37 + │ └─ variant_1: struct #49 + │ └─ [not]: either '_prisma_integer_filter' #48 + │ ├─ variant_0: integer #37 + │ ├─ variant_1: struct #42 + │ │ └─ [equals]: integer #37 + │ ├─ variant_2: struct #43 + │ │ └─ [not]: integer #37 + │ ├─ variant_3: struct #44 + │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ └─ [lte]: optional 'optional_38' #39 + │ │ └─ item: integer #37 + │ ├─ variant_4: struct #45 + │ │ └─ [in]: list 'list_40' #41 + │ │ └─ item: integer #37 + │ └─ variant_5: struct #46 + │ └─ [notIn]: list 'list_40' #41 + │ └─ item: integer #37 + └─ [title]: optional 'optional_163' #164 + └─ item: optional '_prisma_string_filter_ex' #32 + └─ item: union #29 + ├─ variant_0: union '_prisma_string_filter' #27 + │ ├─ variant_0: string #11 + │ ├─ variant_1: struct #16 + │ │ └─ [equals]: string #11 + │ ├─ variant_2: struct #17 + │ │ └─ [not]: string #11 + │ ├─ variant_3: struct #18 + │ │ └─ [in]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_4: struct #19 + │ │ └─ [notIn]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_5: struct #23 + │ │ ├─ [contains]: string #11 + │ │ └─ [mode]: optional 'optional_21' #22 + │ │ └─ item: string #20 enum{ '"insensitive"' } + │ ├─ variant_6: struct #24 + │ │ └─ [search]: string #11 + │ └─ variant_7: struct #25 + │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ [startsWith]: optional 'optional_12' #13 + │ └─ item: string #11 + └─ variant_1: struct #28 + └─ [not]: union '_prisma_string_filter' #27 + ├─ variant_0: string #11 + ├─ variant_1: struct #16 + │ └─ [equals]: string #11 + ├─ variant_2: struct #17 + │ └─ [not]: string #11 + ├─ variant_3: struct #18 + │ └─ [in]: list 'list_14' #15 + │ └─ item: string #11 + ├─ variant_4: struct #19 + │ └─ [notIn]: list 'list_14' #15 + │ └─ item: string #11 + ├─ variant_5: struct #23 + │ ├─ [contains]: string #11 + │ └─ [mode]: optional 'optional_21' #22 + │ └─ item: string #20 enum{ '"insensitive"' } + ├─ variant_6: struct #24 + │ └─ [search]: string #11 + └─ variant_7: struct #25 + ├─ [endsWith]: optional 'optional_12' #13 + │ └─ item: string #11 + └─ [startsWith]: optional 'optional_12' #13 + └─ item: string #11 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_unique Post out.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_unique Post out.snap index c6d285701a..833c2f8d90 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_unique Post out.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_unique Post out.snap @@ -2,12 +2,8 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs expression: tp.print(out) --- -root: optional 'optional_115' #115 -└─ item: struct 'Post_with_nested_count' #114 - ├─ [author]: struct 'User' #55 - │ ├─ [id]: integer #51 - │ ├─ [name]: string #52 - │ └─ [posts]: list 'list_54' #54 - │ └─ item: &Post #53 - ├─ [id]: integer #56 - └─ [title]: string #58 +root: optional 'optional_210' #211 +└─ item: struct 'Post_with_nested_count' #209 + ├─ [author]: &User #88 + ├─ [id]: integer #84 + └─ [title]: string #87 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_unique Record inp.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_unique Record inp.snap index 4221c0ca4b..6ecf242a4e 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_unique Record inp.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_unique Record inp.snap @@ -2,210 +2,210 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs expression: tp.print(inp) --- -root: struct #47 -└─ [where]: optional 'optional_46' #46 - └─ item: struct 'Record_query_where_unique_input' #45 - ├─ [AND]: optional 'optional_43' #43 - │ └─ item: list 'list_42' #42 - │ └─ item: &Record_query_where_unique_input #41 - ├─ [NOT]: optional 'optional_44' #44 - │ └─ item: &Record_query_where_unique_input #41 - ├─ [OR]: optional 'optional_43' #43 - │ └─ item: list 'list_42' #42 - │ └─ item: &Record_query_where_unique_input #41 - ├─ [age]: optional 'optional_38' #38 - │ └─ item: optional '_prisma_integer_filter_ex' #37 - │ └─ item: union #36 - │ ├─ variant_0: either '_prisma_integer_filter' #34 - │ │ ├─ variant_0: integer #26 - │ │ ├─ variant_1: struct #29 - │ │ │ └─ [equals]: integer #26 - │ │ ├─ variant_2: struct #30 - │ │ │ └─ [not]: integer #26 - │ │ ├─ variant_3: struct #31 - │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ variant_4: struct #32 - │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ └─ variant_5: struct #33 - │ │ └─ [notIn]: list 'list_28' #28 - │ │ └─ item: integer #26 - │ └─ variant_1: struct #35 - │ └─ [not]: either '_prisma_integer_filter' #34 - │ ├─ variant_0: integer #26 - │ ├─ variant_1: struct #29 - │ │ └─ [equals]: integer #26 - │ ├─ variant_2: struct #30 - │ │ └─ [not]: integer #26 - │ ├─ variant_3: struct #31 - │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ └─ [lte]: optional 'optional_27' #27 - │ │ └─ item: integer #26 - │ ├─ variant_4: struct #32 - │ │ └─ [in]: list 'list_28' #28 - │ │ └─ item: integer #26 - │ └─ variant_5: struct #33 - │ └─ [notIn]: list 'list_28' #28 - │ └─ item: integer #26 - ├─ [created_at]: optional 'optional_39' #39 - │ └─ item: optional '_prisma_string_filter_ex' #23 - │ └─ item: union #22 - │ ├─ variant_0: union '_prisma_string_filter' #20 - │ │ ├─ variant_0: string #8 - │ │ ├─ variant_1: struct #11 - │ │ │ └─ [equals]: string #8 - │ │ ├─ variant_2: struct #12 - │ │ │ └─ [not]: string #8 - │ │ ├─ variant_3: struct #13 - │ │ │ └─ [in]: list 'list_10' #10 - │ │ │ └─ item: string #8 - │ │ ├─ variant_4: struct #14 - │ │ │ └─ [notIn]: list 'list_10' #10 - │ │ │ └─ item: string #8 - │ │ ├─ variant_5: struct #17 - │ │ │ ├─ [contains]: string #8 - │ │ │ └─ [mode]: optional 'optional_16' #16 - │ │ │ └─ item: string #15 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #18 - │ │ │ └─ [search]: string #8 - │ │ └─ variant_7: struct #19 - │ │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ │ └─ item: string #8 - │ │ └─ [startsWith]: optional 'optional_9' #9 - │ │ └─ item: string #8 - │ └─ variant_1: struct #21 - │ └─ [not]: union '_prisma_string_filter' #20 - │ ├─ variant_0: string #8 - │ ├─ variant_1: struct #11 - │ │ └─ [equals]: string #8 - │ ├─ variant_2: struct #12 - │ │ └─ [not]: string #8 - │ ├─ variant_3: struct #13 - │ │ └─ [in]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_4: struct #14 - │ │ └─ [notIn]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_5: struct #17 - │ │ ├─ [contains]: string #8 - │ │ └─ [mode]: optional 'optional_16' #16 - │ │ └─ item: string #15 enum{ '"insensitive"' } - │ ├─ variant_6: struct #18 - │ │ └─ [search]: string #8 - │ └─ variant_7: struct #19 - │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ └─ item: string #8 - │ └─ [startsWith]: optional 'optional_9' #9 - │ └─ item: string #8 - ├─ [id]: optional 'optional_24' #24 - │ └─ item: optional '_prisma_string_filter_ex' #23 - │ └─ item: union #22 - │ ├─ variant_0: union '_prisma_string_filter' #20 - │ │ ├─ variant_0: string #8 - │ │ ├─ variant_1: struct #11 - │ │ │ └─ [equals]: string #8 - │ │ ├─ variant_2: struct #12 - │ │ │ └─ [not]: string #8 - │ │ ├─ variant_3: struct #13 - │ │ │ └─ [in]: list 'list_10' #10 - │ │ │ └─ item: string #8 - │ │ ├─ variant_4: struct #14 - │ │ │ └─ [notIn]: list 'list_10' #10 - │ │ │ └─ item: string #8 - │ │ ├─ variant_5: struct #17 - │ │ │ ├─ [contains]: string #8 - │ │ │ └─ [mode]: optional 'optional_16' #16 - │ │ │ └─ item: string #15 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #18 - │ │ │ └─ [search]: string #8 - │ │ └─ variant_7: struct #19 - │ │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ │ └─ item: string #8 - │ │ └─ [startsWith]: optional 'optional_9' #9 - │ │ └─ item: string #8 - │ └─ variant_1: struct #21 - │ └─ [not]: union '_prisma_string_filter' #20 - │ ├─ variant_0: string #8 - │ ├─ variant_1: struct #11 - │ │ └─ [equals]: string #8 - │ ├─ variant_2: struct #12 - │ │ └─ [not]: string #8 - │ ├─ variant_3: struct #13 - │ │ └─ [in]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_4: struct #14 - │ │ └─ [notIn]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_5: struct #17 - │ │ ├─ [contains]: string #8 - │ │ └─ [mode]: optional 'optional_16' #16 - │ │ └─ item: string #15 enum{ '"insensitive"' } - │ ├─ variant_6: struct #18 - │ │ └─ [search]: string #8 - │ └─ variant_7: struct #19 - │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ └─ item: string #8 - │ └─ [startsWith]: optional 'optional_9' #9 - │ └─ item: string #8 - └─ [name]: optional 'optional_25' #25 - └─ item: optional '_prisma_string_filter_ex' #23 - └─ item: union #22 - ├─ variant_0: union '_prisma_string_filter' #20 - │ ├─ variant_0: string #8 - │ ├─ variant_1: struct #11 - │ │ └─ [equals]: string #8 - │ ├─ variant_2: struct #12 - │ │ └─ [not]: string #8 - │ ├─ variant_3: struct #13 - │ │ └─ [in]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_4: struct #14 - │ │ └─ [notIn]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_5: struct #17 - │ │ ├─ [contains]: string #8 - │ │ └─ [mode]: optional 'optional_16' #16 - │ │ └─ item: string #15 enum{ '"insensitive"' } - │ ├─ variant_6: struct #18 - │ │ └─ [search]: string #8 - │ └─ variant_7: struct #19 - │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ └─ item: string #8 - │ └─ [startsWith]: optional 'optional_9' #9 - │ └─ item: string #8 - └─ variant_1: struct #21 - └─ [not]: union '_prisma_string_filter' #20 - ├─ variant_0: string #8 - ├─ variant_1: struct #11 - │ └─ [equals]: string #8 - ├─ variant_2: struct #12 - │ └─ [not]: string #8 - ├─ variant_3: struct #13 - │ └─ [in]: list 'list_10' #10 - │ └─ item: string #8 - ├─ variant_4: struct #14 - │ └─ [notIn]: list 'list_10' #10 - │ └─ item: string #8 - ├─ variant_5: struct #17 - │ ├─ [contains]: string #8 - │ └─ [mode]: optional 'optional_16' #16 - │ └─ item: string #15 enum{ '"insensitive"' } - ├─ variant_6: struct #18 - │ └─ [search]: string #8 - └─ variant_7: struct #19 - ├─ [endsWith]: optional 'optional_9' #9 - │ └─ item: string #8 - └─ [startsWith]: optional 'optional_9' #9 - └─ item: string #8 +root: struct #71 +└─ [where]: optional 'optional_69' #70 + └─ item: struct 'Record_query_where_unique_input' #68 + ├─ [AND]: optional 'optional_63' #64 + │ └─ item: list 'list_61' #62 + │ └─ item: &Record_query_where_unique_input #60 + ├─ [NOT]: optional 'optional_65' #66 + │ └─ item: &Record_query_where_unique_input #60 + ├─ [OR]: optional 'optional_63' #64 + │ └─ item: list 'list_61' #62 + │ └─ item: &Record_query_where_unique_input #60 + ├─ [age]: optional 'optional_54' #55 + │ └─ item: optional '_prisma_integer_filter_ex' #53 + │ └─ item: union #50 + │ ├─ variant_0: either '_prisma_integer_filter' #48 + │ │ ├─ variant_0: integer #37 + │ │ ├─ variant_1: struct #42 + │ │ │ └─ [equals]: integer #37 + │ │ ├─ variant_2: struct #43 + │ │ │ └─ [not]: integer #37 + │ │ ├─ variant_3: struct #44 + │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ variant_4: struct #45 + │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ variant_5: struct #46 + │ │ └─ [notIn]: list 'list_40' #41 + │ │ └─ item: integer #37 + │ └─ variant_1: struct #49 + │ └─ [not]: either '_prisma_integer_filter' #48 + │ ├─ variant_0: integer #37 + │ ├─ variant_1: struct #42 + │ │ └─ [equals]: integer #37 + │ ├─ variant_2: struct #43 + │ │ └─ [not]: integer #37 + │ ├─ variant_3: struct #44 + │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ └─ [lte]: optional 'optional_38' #39 + │ │ └─ item: integer #37 + │ ├─ variant_4: struct #45 + │ │ └─ [in]: list 'list_40' #41 + │ │ └─ item: integer #37 + │ └─ variant_5: struct #46 + │ └─ [notIn]: list 'list_40' #41 + │ └─ item: integer #37 + ├─ [created_at]: optional 'optional_56' #57 + │ └─ item: optional '_prisma_string_filter_ex' #32 + │ └─ item: union #29 + │ ├─ variant_0: union '_prisma_string_filter' #27 + │ │ ├─ variant_0: string #11 + │ │ ├─ variant_1: struct #16 + │ │ │ └─ [equals]: string #11 + │ │ ├─ variant_2: struct #17 + │ │ │ └─ [not]: string #11 + │ │ ├─ variant_3: struct #18 + │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_4: struct #19 + │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_5: struct #23 + │ │ │ ├─ [contains]: string #11 + │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #24 + │ │ │ └─ [search]: string #11 + │ │ └─ variant_7: struct #25 + │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ variant_1: struct #28 + │ └─ [not]: union '_prisma_string_filter' #27 + │ ├─ variant_0: string #11 + │ ├─ variant_1: struct #16 + │ │ └─ [equals]: string #11 + │ ├─ variant_2: struct #17 + │ │ └─ [not]: string #11 + │ ├─ variant_3: struct #18 + │ │ └─ [in]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_4: struct #19 + │ │ └─ [notIn]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_5: struct #23 + │ │ ├─ [contains]: string #11 + │ │ └─ [mode]: optional 'optional_21' #22 + │ │ └─ item: string #20 enum{ '"insensitive"' } + │ ├─ variant_6: struct #24 + │ │ └─ [search]: string #11 + │ └─ variant_7: struct #25 + │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ [startsWith]: optional 'optional_12' #13 + │ └─ item: string #11 + ├─ [id]: optional 'optional_33' #34 + │ └─ item: optional '_prisma_string_filter_ex' #32 + │ └─ item: union #29 + │ ├─ variant_0: union '_prisma_string_filter' #27 + │ │ ├─ variant_0: string #11 + │ │ ├─ variant_1: struct #16 + │ │ │ └─ [equals]: string #11 + │ │ ├─ variant_2: struct #17 + │ │ │ └─ [not]: string #11 + │ │ ├─ variant_3: struct #18 + │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_4: struct #19 + │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_5: struct #23 + │ │ │ ├─ [contains]: string #11 + │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #24 + │ │ │ └─ [search]: string #11 + │ │ └─ variant_7: struct #25 + │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ variant_1: struct #28 + │ └─ [not]: union '_prisma_string_filter' #27 + │ ├─ variant_0: string #11 + │ ├─ variant_1: struct #16 + │ │ └─ [equals]: string #11 + │ ├─ variant_2: struct #17 + │ │ └─ [not]: string #11 + │ ├─ variant_3: struct #18 + │ │ └─ [in]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_4: struct #19 + │ │ └─ [notIn]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_5: struct #23 + │ │ ├─ [contains]: string #11 + │ │ └─ [mode]: optional 'optional_21' #22 + │ │ └─ item: string #20 enum{ '"insensitive"' } + │ ├─ variant_6: struct #24 + │ │ └─ [search]: string #11 + │ └─ variant_7: struct #25 + │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ [startsWith]: optional 'optional_12' #13 + │ └─ item: string #11 + └─ [name]: optional 'optional_35' #36 + └─ item: optional '_prisma_string_filter_ex' #32 + └─ item: union #29 + ├─ variant_0: union '_prisma_string_filter' #27 + │ ├─ variant_0: string #11 + │ ├─ variant_1: struct #16 + │ │ └─ [equals]: string #11 + │ ├─ variant_2: struct #17 + │ │ └─ [not]: string #11 + │ ├─ variant_3: struct #18 + │ │ └─ [in]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_4: struct #19 + │ │ └─ [notIn]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_5: struct #23 + │ │ ├─ [contains]: string #11 + │ │ └─ [mode]: optional 'optional_21' #22 + │ │ └─ item: string #20 enum{ '"insensitive"' } + │ ├─ variant_6: struct #24 + │ │ └─ [search]: string #11 + │ └─ variant_7: struct #25 + │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ [startsWith]: optional 'optional_12' #13 + │ └─ item: string #11 + └─ variant_1: struct #28 + └─ [not]: union '_prisma_string_filter' #27 + ├─ variant_0: string #11 + ├─ variant_1: struct #16 + │ └─ [equals]: string #11 + ├─ variant_2: struct #17 + │ └─ [not]: string #11 + ├─ variant_3: struct #18 + │ └─ [in]: list 'list_14' #15 + │ └─ item: string #11 + ├─ variant_4: struct #19 + │ └─ [notIn]: list 'list_14' #15 + │ └─ item: string #11 + ├─ variant_5: struct #23 + │ ├─ [contains]: string #11 + │ └─ [mode]: optional 'optional_21' #22 + │ └─ item: string #20 enum{ '"insensitive"' } + ├─ variant_6: struct #24 + │ └─ [search]: string #11 + └─ variant_7: struct #25 + ├─ [endsWith]: optional 'optional_12' #13 + │ └─ item: string #11 + └─ [startsWith]: optional 'optional_12' #13 + └─ item: string #11 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_unique Record out.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_unique Record out.snap index c2db841930..cf6fdea085 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_unique Record out.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_unique Record out.snap @@ -2,10 +2,10 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs expression: tp.print(out) --- -root: optional 'optional_49' #49 -└─ item: struct 'Record_with_nested_count' #48 - ├─ [age]: optional 'optional_6' #6 - │ └─ item: integer #5 +root: optional 'optional_74' #75 +└─ item: struct 'Record_with_nested_count' #73 + ├─ [age]: optional #7 + │ └─ item: integer #6 ├─ [created_at]: string #0 ├─ [id]: string #2 - └─ [name]: string #4 + └─ [name]: string #5 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_unique User inp.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_unique User inp.snap index 5f3897ca53..bcb718265a 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_unique User inp.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_unique User inp.snap @@ -2,415 +2,736 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs expression: tp.print(inp) --- -root: struct #83 -└─ [where]: optional 'optional_82' #82 - └─ item: struct 'User_query_where_unique_input' #81 - ├─ [AND]: optional 'optional_79' #79 - │ └─ item: list 'list_78' #78 - │ └─ item: &User_query_where_unique_input #77 - ├─ [NOT]: optional 'optional_80' #80 - │ └─ item: &User_query_where_unique_input #77 - ├─ [OR]: optional 'optional_79' #79 - │ └─ item: list 'list_78' #78 - │ └─ item: &User_query_where_unique_input #77 - ├─ [id]: optional 'optional_61' #61 - │ └─ item: optional '_prisma_integer_filter_ex' #37 - │ └─ item: union #36 - │ ├─ variant_0: either '_prisma_integer_filter' #34 - │ │ ├─ variant_0: integer #26 - │ │ ├─ variant_1: struct #29 - │ │ │ └─ [equals]: integer #26 - │ │ ├─ variant_2: struct #30 - │ │ │ └─ [not]: integer #26 - │ │ ├─ variant_3: struct #31 - │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ variant_4: struct #32 - │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ └─ variant_5: struct #33 - │ │ └─ [notIn]: list 'list_28' #28 - │ │ └─ item: integer #26 - │ └─ variant_1: struct #35 - │ └─ [not]: either '_prisma_integer_filter' #34 - │ ├─ variant_0: integer #26 - │ ├─ variant_1: struct #29 - │ │ └─ [equals]: integer #26 - │ ├─ variant_2: struct #30 - │ │ └─ [not]: integer #26 - │ ├─ variant_3: struct #31 - │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ └─ [lte]: optional 'optional_27' #27 - │ │ └─ item: integer #26 - │ ├─ variant_4: struct #32 - │ │ └─ [in]: list 'list_28' #28 - │ │ └─ item: integer #26 - │ └─ variant_5: struct #33 - │ └─ [notIn]: list 'list_28' #28 - │ └─ item: integer #26 - ├─ [name]: optional 'optional_62' #62 - │ └─ item: optional '_prisma_string_filter_ex' #23 - │ └─ item: union #22 - │ ├─ variant_0: union '_prisma_string_filter' #20 - │ │ ├─ variant_0: string #8 - │ │ ├─ variant_1: struct #11 - │ │ │ └─ [equals]: string #8 - │ │ ├─ variant_2: struct #12 - │ │ │ └─ [not]: string #8 - │ │ ├─ variant_3: struct #13 - │ │ │ └─ [in]: list 'list_10' #10 - │ │ │ └─ item: string #8 - │ │ ├─ variant_4: struct #14 - │ │ │ └─ [notIn]: list 'list_10' #10 - │ │ │ └─ item: string #8 - │ │ ├─ variant_5: struct #17 - │ │ │ ├─ [contains]: string #8 - │ │ │ └─ [mode]: optional 'optional_16' #16 - │ │ │ └─ item: string #15 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #18 - │ │ │ └─ [search]: string #8 - │ │ └─ variant_7: struct #19 - │ │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ │ └─ item: string #8 - │ │ └─ [startsWith]: optional 'optional_9' #9 - │ │ └─ item: string #8 - │ └─ variant_1: struct #21 - │ └─ [not]: union '_prisma_string_filter' #20 - │ ├─ variant_0: string #8 - │ ├─ variant_1: struct #11 - │ │ └─ [equals]: string #8 - │ ├─ variant_2: struct #12 - │ │ └─ [not]: string #8 - │ ├─ variant_3: struct #13 - │ │ └─ [in]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_4: struct #14 - │ │ └─ [notIn]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_5: struct #17 - │ │ ├─ [contains]: string #8 - │ │ └─ [mode]: optional 'optional_16' #16 - │ │ └─ item: string #15 enum{ '"insensitive"' } - │ ├─ variant_6: struct #18 - │ │ └─ [search]: string #8 - │ └─ variant_7: struct #19 - │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ └─ item: string #8 - │ └─ [startsWith]: optional 'optional_9' #9 - │ └─ item: string #8 - └─ [posts]: optional 'optional_75' #75 - └─ item: union #74 - ├─ variant_0: struct #69 - │ └─ [every]: optional 'optional_68' #68 - │ └─ item: struct 'Post_where_excluding_User' #67 - │ ├─ [author]: optional 'optional_66' #66 - │ │ └─ item: &User_where #65 - │ ├─ [id]: optional 'optional_63' #63 - │ │ └─ item: optional '_prisma_integer_filter_ex' #37 - │ │ └─ item: union #36 - │ │ ├─ variant_0: either '_prisma_integer_filter' #34 - │ │ │ ├─ variant_0: integer #26 - │ │ │ ├─ variant_1: struct #29 - │ │ │ │ └─ [equals]: integer #26 - │ │ │ ├─ variant_2: struct #30 - │ │ │ │ └─ [not]: integer #26 - │ │ │ ├─ variant_3: struct #31 - │ │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ variant_4: struct #32 - │ │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ variant_5: struct #33 - │ │ │ └─ [notIn]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ └─ variant_1: struct #35 - │ │ └─ [not]: either '_prisma_integer_filter' #34 - │ │ ├─ variant_0: integer #26 - │ │ ├─ variant_1: struct #29 - │ │ │ └─ [equals]: integer #26 - │ │ ├─ variant_2: struct #30 - │ │ │ └─ [not]: integer #26 - │ │ ├─ variant_3: struct #31 - │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ variant_4: struct #32 - │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ └─ variant_5: struct #33 - │ │ └─ [notIn]: list 'list_28' #28 - │ │ └─ item: integer #26 - │ └─ [title]: optional 'optional_64' #64 - │ └─ item: optional '_prisma_string_filter_ex' #23 - │ └─ item: union #22 - │ ├─ variant_0: union '_prisma_string_filter' #20 - │ │ ├─ variant_0: string #8 - │ │ ├─ variant_1: struct #11 - │ │ │ └─ [equals]: string #8 - │ │ ├─ variant_2: struct #12 - │ │ │ └─ [not]: string #8 - │ │ ├─ variant_3: struct #13 - │ │ │ └─ [in]: list 'list_10' #10 - │ │ │ └─ item: string #8 - │ │ ├─ variant_4: struct #14 - │ │ │ └─ [notIn]: list 'list_10' #10 - │ │ │ └─ item: string #8 - │ │ ├─ variant_5: struct #17 - │ │ │ ├─ [contains]: string #8 - │ │ │ └─ [mode]: optional 'optional_16' #16 - │ │ │ └─ item: string #15 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #18 - │ │ │ └─ [search]: string #8 - │ │ └─ variant_7: struct #19 - │ │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ │ └─ item: string #8 - │ │ └─ [startsWith]: optional 'optional_9' #9 - │ │ └─ item: string #8 - │ └─ variant_1: struct #21 - │ └─ [not]: union '_prisma_string_filter' #20 - │ ├─ variant_0: string #8 - │ ├─ variant_1: struct #11 - │ │ └─ [equals]: string #8 - │ ├─ variant_2: struct #12 - │ │ └─ [not]: string #8 - │ ├─ variant_3: struct #13 - │ │ └─ [in]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_4: struct #14 - │ │ └─ [notIn]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_5: struct #17 - │ │ ├─ [contains]: string #8 - │ │ └─ [mode]: optional 'optional_16' #16 - │ │ └─ item: string #15 enum{ '"insensitive"' } - │ ├─ variant_6: struct #18 - │ │ └─ [search]: string #8 - │ └─ variant_7: struct #19 - │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ └─ item: string #8 - │ └─ [startsWith]: optional 'optional_9' #9 - │ └─ item: string #8 - ├─ variant_1: struct #71 - │ └─ [some]: optional 'optional_70' #70 - │ └─ item: struct 'Post_where_excluding_User' #67 - │ ├─ [author]: optional 'optional_66' #66 - │ │ └─ item: &User_where #65 - │ ├─ [id]: optional 'optional_63' #63 - │ │ └─ item: optional '_prisma_integer_filter_ex' #37 - │ │ └─ item: union #36 - │ │ ├─ variant_0: either '_prisma_integer_filter' #34 - │ │ │ ├─ variant_0: integer #26 - │ │ │ ├─ variant_1: struct #29 - │ │ │ │ └─ [equals]: integer #26 - │ │ │ ├─ variant_2: struct #30 - │ │ │ │ └─ [not]: integer #26 - │ │ │ ├─ variant_3: struct #31 - │ │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ variant_4: struct #32 - │ │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ variant_5: struct #33 - │ │ │ └─ [notIn]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ └─ variant_1: struct #35 - │ │ └─ [not]: either '_prisma_integer_filter' #34 - │ │ ├─ variant_0: integer #26 - │ │ ├─ variant_1: struct #29 - │ │ │ └─ [equals]: integer #26 - │ │ ├─ variant_2: struct #30 - │ │ │ └─ [not]: integer #26 - │ │ ├─ variant_3: struct #31 - │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ variant_4: struct #32 - │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ └─ variant_5: struct #33 - │ │ └─ [notIn]: list 'list_28' #28 - │ │ └─ item: integer #26 - │ └─ [title]: optional 'optional_64' #64 - │ └─ item: optional '_prisma_string_filter_ex' #23 - │ └─ item: union #22 - │ ├─ variant_0: union '_prisma_string_filter' #20 - │ │ ├─ variant_0: string #8 - │ │ ├─ variant_1: struct #11 - │ │ │ └─ [equals]: string #8 - │ │ ├─ variant_2: struct #12 - │ │ │ └─ [not]: string #8 - │ │ ├─ variant_3: struct #13 - │ │ │ └─ [in]: list 'list_10' #10 - │ │ │ └─ item: string #8 - │ │ ├─ variant_4: struct #14 - │ │ │ └─ [notIn]: list 'list_10' #10 - │ │ │ └─ item: string #8 - │ │ ├─ variant_5: struct #17 - │ │ │ ├─ [contains]: string #8 - │ │ │ └─ [mode]: optional 'optional_16' #16 - │ │ │ └─ item: string #15 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #18 - │ │ │ └─ [search]: string #8 - │ │ └─ variant_7: struct #19 - │ │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ │ └─ item: string #8 - │ │ └─ [startsWith]: optional 'optional_9' #9 - │ │ └─ item: string #8 - │ └─ variant_1: struct #21 - │ └─ [not]: union '_prisma_string_filter' #20 - │ ├─ variant_0: string #8 - │ ├─ variant_1: struct #11 - │ │ └─ [equals]: string #8 - │ ├─ variant_2: struct #12 - │ │ └─ [not]: string #8 - │ ├─ variant_3: struct #13 - │ │ └─ [in]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_4: struct #14 - │ │ └─ [notIn]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_5: struct #17 - │ │ ├─ [contains]: string #8 - │ │ └─ [mode]: optional 'optional_16' #16 - │ │ └─ item: string #15 enum{ '"insensitive"' } - │ ├─ variant_6: struct #18 - │ │ └─ [search]: string #8 - │ └─ variant_7: struct #19 - │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ └─ item: string #8 - │ └─ [startsWith]: optional 'optional_9' #9 - │ └─ item: string #8 - └─ variant_2: struct #73 - └─ [none]: optional 'optional_72' #72 - └─ item: struct 'Post_where_excluding_User' #67 - ├─ [author]: optional 'optional_66' #66 - │ └─ item: &User_where #65 - ├─ [id]: optional 'optional_63' #63 - │ └─ item: optional '_prisma_integer_filter_ex' #37 - │ └─ item: union #36 - │ ├─ variant_0: either '_prisma_integer_filter' #34 - │ │ ├─ variant_0: integer #26 - │ │ ├─ variant_1: struct #29 - │ │ │ └─ [equals]: integer #26 - │ │ ├─ variant_2: struct #30 - │ │ │ └─ [not]: integer #26 - │ │ ├─ variant_3: struct #31 - │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ variant_4: struct #32 - │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ └─ variant_5: struct #33 - │ │ └─ [notIn]: list 'list_28' #28 - │ │ └─ item: integer #26 - │ └─ variant_1: struct #35 - │ └─ [not]: either '_prisma_integer_filter' #34 - │ ├─ variant_0: integer #26 - │ ├─ variant_1: struct #29 - │ │ └─ [equals]: integer #26 - │ ├─ variant_2: struct #30 - │ │ └─ [not]: integer #26 - │ ├─ variant_3: struct #31 - │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ └─ [lte]: optional 'optional_27' #27 - │ │ └─ item: integer #26 - │ ├─ variant_4: struct #32 - │ │ └─ [in]: list 'list_28' #28 - │ │ └─ item: integer #26 - │ └─ variant_5: struct #33 - │ └─ [notIn]: list 'list_28' #28 - │ └─ item: integer #26 - └─ [title]: optional 'optional_64' #64 - └─ item: optional '_prisma_string_filter_ex' #23 - └─ item: union #22 - ├─ variant_0: union '_prisma_string_filter' #20 - │ ├─ variant_0: string #8 - │ ├─ variant_1: struct #11 - │ │ └─ [equals]: string #8 - │ ├─ variant_2: struct #12 - │ │ └─ [not]: string #8 - │ ├─ variant_3: struct #13 - │ │ └─ [in]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_4: struct #14 - │ │ └─ [notIn]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_5: struct #17 - │ │ ├─ [contains]: string #8 - │ │ └─ [mode]: optional 'optional_16' #16 - │ │ └─ item: string #15 enum{ '"insensitive"' } - │ ├─ variant_6: struct #18 - │ │ └─ [search]: string #8 - │ └─ variant_7: struct #19 - │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ └─ item: string #8 - │ └─ [startsWith]: optional 'optional_9' #9 - │ └─ item: string #8 - └─ variant_1: struct #21 - └─ [not]: union '_prisma_string_filter' #20 - ├─ variant_0: string #8 - ├─ variant_1: struct #11 - │ └─ [equals]: string #8 - ├─ variant_2: struct #12 - │ └─ [not]: string #8 - ├─ variant_3: struct #13 - │ └─ [in]: list 'list_10' #10 - │ └─ item: string #8 - ├─ variant_4: struct #14 - │ └─ [notIn]: list 'list_10' #10 - │ └─ item: string #8 - ├─ variant_5: struct #17 - │ ├─ [contains]: string #8 - │ └─ [mode]: optional 'optional_16' #16 - │ └─ item: string #15 enum{ '"insensitive"' } - ├─ variant_6: struct #18 - │ └─ [search]: string #8 - └─ variant_7: struct #19 - ├─ [endsWith]: optional 'optional_9' #9 - │ └─ item: string #8 - └─ [startsWith]: optional 'optional_9' #9 - └─ item: string #8 +root: struct #147 +└─ [where]: optional 'optional_145' #146 + └─ item: struct 'User_query_where_unique_input' #144 + ├─ [AND]: optional 'optional_139' #140 + │ └─ item: list 'list_137' #138 + │ └─ item: &User_query_where_unique_input #136 + ├─ [NOT]: optional 'optional_141' #142 + │ └─ item: &User_query_where_unique_input #136 + ├─ [OR]: optional 'optional_139' #140 + │ └─ item: list 'list_137' #138 + │ └─ item: &User_query_where_unique_input #136 + ├─ [id]: optional 'optional_91' #92 + │ └─ item: optional '_prisma_integer_filter_ex' #53 + │ └─ item: union #50 + │ ├─ variant_0: either '_prisma_integer_filter' #48 + │ │ ├─ variant_0: integer #37 + │ │ ├─ variant_1: struct #42 + │ │ │ └─ [equals]: integer #37 + │ │ ├─ variant_2: struct #43 + │ │ │ └─ [not]: integer #37 + │ │ ├─ variant_3: struct #44 + │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ variant_4: struct #45 + │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ variant_5: struct #46 + │ │ └─ [notIn]: list 'list_40' #41 + │ │ └─ item: integer #37 + │ └─ variant_1: struct #49 + │ └─ [not]: either '_prisma_integer_filter' #48 + │ ├─ variant_0: integer #37 + │ ├─ variant_1: struct #42 + │ │ └─ [equals]: integer #37 + │ ├─ variant_2: struct #43 + │ │ └─ [not]: integer #37 + │ ├─ variant_3: struct #44 + │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ └─ [lte]: optional 'optional_38' #39 + │ │ └─ item: integer #37 + │ ├─ variant_4: struct #45 + │ │ └─ [in]: list 'list_40' #41 + │ │ └─ item: integer #37 + │ └─ variant_5: struct #46 + │ └─ [notIn]: list 'list_40' #41 + │ └─ item: integer #37 + ├─ [name]: optional 'optional_93' #94 + │ └─ item: optional '_prisma_string_filter_ex' #32 + │ └─ item: union #29 + │ ├─ variant_0: union '_prisma_string_filter' #27 + │ │ ├─ variant_0: string #11 + │ │ ├─ variant_1: struct #16 + │ │ │ └─ [equals]: string #11 + │ │ ├─ variant_2: struct #17 + │ │ │ └─ [not]: string #11 + │ │ ├─ variant_3: struct #18 + │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_4: struct #19 + │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_5: struct #23 + │ │ │ ├─ [contains]: string #11 + │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #24 + │ │ │ └─ [search]: string #11 + │ │ └─ variant_7: struct #25 + │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ variant_1: struct #28 + │ └─ [not]: union '_prisma_string_filter' #27 + │ ├─ variant_0: string #11 + │ ├─ variant_1: struct #16 + │ │ └─ [equals]: string #11 + │ ├─ variant_2: struct #17 + │ │ └─ [not]: string #11 + │ ├─ variant_3: struct #18 + │ │ └─ [in]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_4: struct #19 + │ │ └─ [notIn]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_5: struct #23 + │ │ ├─ [contains]: string #11 + │ │ └─ [mode]: optional 'optional_21' #22 + │ │ └─ item: string #20 enum{ '"insensitive"' } + │ ├─ variant_6: struct #24 + │ │ └─ [search]: string #11 + │ └─ variant_7: struct #25 + │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ [startsWith]: optional 'optional_12' #13 + │ └─ item: string #11 + └─ [posts]: optional 'optional_132' #133 + └─ item: union #131 + ├─ variant_0: struct #124 + │ └─ [every]: optional 'optional_122' #123 + │ └─ item: struct 'Post_where_excluding_User' #121 + │ ├─ [author]: optional 'optional_118' #119 + │ │ └─ item: struct 'User_where_excluding_User_and_Post_where_excluding_User' #117 + │ │ ├─ [id]: optional 'optional_99' #100 + │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 + │ │ │ └─ item: union #50 + │ │ │ ├─ variant_0: either '_prisma_integer_filter' #48 + │ │ │ │ ├─ variant_0: integer #37 + │ │ │ │ ├─ variant_1: struct #42 + │ │ │ │ │ └─ [equals]: integer #37 + │ │ │ │ ├─ variant_2: struct #43 + │ │ │ │ │ └─ [not]: integer #37 + │ │ │ │ ├─ variant_3: struct #44 + │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ │ │ └─ item: integer #37 + │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ │ │ └─ item: integer #37 + │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ │ │ └─ item: integer #37 + │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ variant_4: struct #45 + │ │ │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ └─ variant_5: struct #46 + │ │ │ │ └─ [notIn]: list 'list_40' #41 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ variant_1: struct #49 + │ │ │ └─ [not]: either '_prisma_integer_filter' #48 + │ │ │ ├─ variant_0: integer #37 + │ │ │ ├─ variant_1: struct #42 + │ │ │ │ └─ [equals]: integer #37 + │ │ │ ├─ variant_2: struct #43 + │ │ │ │ └─ [not]: integer #37 + │ │ │ ├─ variant_3: struct #44 + │ │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ variant_4: struct #45 + │ │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ variant_5: struct #46 + │ │ │ └─ [notIn]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ ├─ [name]: optional 'optional_101' #102 + │ │ │ └─ item: optional '_prisma_string_filter_ex' #32 + │ │ │ └─ item: union #29 + │ │ │ ├─ variant_0: union '_prisma_string_filter' #27 + │ │ │ │ ├─ variant_0: string #11 + │ │ │ │ ├─ variant_1: struct #16 + │ │ │ │ │ └─ [equals]: string #11 + │ │ │ │ ├─ variant_2: struct #17 + │ │ │ │ │ └─ [not]: string #11 + │ │ │ │ ├─ variant_3: struct #18 + │ │ │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ │ │ └─ item: string #11 + │ │ │ │ ├─ variant_4: struct #19 + │ │ │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ │ │ └─ item: string #11 + │ │ │ │ ├─ variant_5: struct #23 + │ │ │ │ │ ├─ [contains]: string #11 + │ │ │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ │ │ ├─ variant_6: struct #24 + │ │ │ │ │ └─ [search]: string #11 + │ │ │ │ └─ variant_7: struct #25 + │ │ │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ │ │ └─ item: string #11 + │ │ │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ │ │ └─ item: string #11 + │ │ │ └─ variant_1: struct #28 + │ │ │ └─ [not]: union '_prisma_string_filter' #27 + │ │ │ ├─ variant_0: string #11 + │ │ │ ├─ variant_1: struct #16 + │ │ │ │ └─ [equals]: string #11 + │ │ │ ├─ variant_2: struct #17 + │ │ │ │ └─ [not]: string #11 + │ │ │ ├─ variant_3: struct #18 + │ │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ │ └─ item: string #11 + │ │ │ ├─ variant_4: struct #19 + │ │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ │ └─ item: string #11 + │ │ │ ├─ variant_5: struct #23 + │ │ │ │ ├─ [contains]: string #11 + │ │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #24 + │ │ │ │ └─ [search]: string #11 + │ │ │ └─ variant_7: struct #25 + │ │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ │ └─ item: string #11 + │ │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ [posts]: optional 'optional_114' #115 + │ │ └─ item: union #113 + │ │ ├─ variant_0: struct #106 + │ │ │ └─ [every]: optional 'optional_104' #105 + │ │ │ └─ item: &Post_where_excluding_User #103 + │ │ ├─ variant_1: struct #109 + │ │ │ └─ [some]: optional 'optional_107' #108 + │ │ │ └─ item: &Post_where_excluding_User #103 + │ │ └─ variant_2: struct #112 + │ │ └─ [none]: optional 'optional_110' #111 + │ │ └─ item: &Post_where_excluding_User #103 + │ ├─ [id]: optional 'optional_95' #96 + │ │ └─ item: optional '_prisma_integer_filter_ex' #53 + │ │ └─ item: union #50 + │ │ ├─ variant_0: either '_prisma_integer_filter' #48 + │ │ │ ├─ variant_0: integer #37 + │ │ │ ├─ variant_1: struct #42 + │ │ │ │ └─ [equals]: integer #37 + │ │ │ ├─ variant_2: struct #43 + │ │ │ │ └─ [not]: integer #37 + │ │ │ ├─ variant_3: struct #44 + │ │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ variant_4: struct #45 + │ │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ variant_5: struct #46 + │ │ │ └─ [notIn]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ variant_1: struct #49 + │ │ └─ [not]: either '_prisma_integer_filter' #48 + │ │ ├─ variant_0: integer #37 + │ │ ├─ variant_1: struct #42 + │ │ │ └─ [equals]: integer #37 + │ │ ├─ variant_2: struct #43 + │ │ │ └─ [not]: integer #37 + │ │ ├─ variant_3: struct #44 + │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ variant_4: struct #45 + │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ variant_5: struct #46 + │ │ └─ [notIn]: list 'list_40' #41 + │ │ └─ item: integer #37 + │ └─ [title]: optional 'optional_97' #98 + │ └─ item: optional '_prisma_string_filter_ex' #32 + │ └─ item: union #29 + │ ├─ variant_0: union '_prisma_string_filter' #27 + │ │ ├─ variant_0: string #11 + │ │ ├─ variant_1: struct #16 + │ │ │ └─ [equals]: string #11 + │ │ ├─ variant_2: struct #17 + │ │ │ └─ [not]: string #11 + │ │ ├─ variant_3: struct #18 + │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_4: struct #19 + │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_5: struct #23 + │ │ │ ├─ [contains]: string #11 + │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #24 + │ │ │ └─ [search]: string #11 + │ │ └─ variant_7: struct #25 + │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ variant_1: struct #28 + │ └─ [not]: union '_prisma_string_filter' #27 + │ ├─ variant_0: string #11 + │ ├─ variant_1: struct #16 + │ │ └─ [equals]: string #11 + │ ├─ variant_2: struct #17 + │ │ └─ [not]: string #11 + │ ├─ variant_3: struct #18 + │ │ └─ [in]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_4: struct #19 + │ │ └─ [notIn]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_5: struct #23 + │ │ ├─ [contains]: string #11 + │ │ └─ [mode]: optional 'optional_21' #22 + │ │ └─ item: string #20 enum{ '"insensitive"' } + │ ├─ variant_6: struct #24 + │ │ └─ [search]: string #11 + │ └─ variant_7: struct #25 + │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ [startsWith]: optional 'optional_12' #13 + │ └─ item: string #11 + ├─ variant_1: struct #127 + │ └─ [some]: optional 'optional_125' #126 + │ └─ item: struct 'Post_where_excluding_User' #121 + │ ├─ [author]: optional 'optional_118' #119 + │ │ └─ item: struct 'User_where_excluding_User_and_Post_where_excluding_User' #117 + │ │ ├─ [id]: optional 'optional_99' #100 + │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 + │ │ │ └─ item: union #50 + │ │ │ ├─ variant_0: either '_prisma_integer_filter' #48 + │ │ │ │ ├─ variant_0: integer #37 + │ │ │ │ ├─ variant_1: struct #42 + │ │ │ │ │ └─ [equals]: integer #37 + │ │ │ │ ├─ variant_2: struct #43 + │ │ │ │ │ └─ [not]: integer #37 + │ │ │ │ ├─ variant_3: struct #44 + │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ │ │ └─ item: integer #37 + │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ │ │ └─ item: integer #37 + │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ │ │ └─ item: integer #37 + │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ variant_4: struct #45 + │ │ │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ └─ variant_5: struct #46 + │ │ │ │ └─ [notIn]: list 'list_40' #41 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ variant_1: struct #49 + │ │ │ └─ [not]: either '_prisma_integer_filter' #48 + │ │ │ ├─ variant_0: integer #37 + │ │ │ ├─ variant_1: struct #42 + │ │ │ │ └─ [equals]: integer #37 + │ │ │ ├─ variant_2: struct #43 + │ │ │ │ └─ [not]: integer #37 + │ │ │ ├─ variant_3: struct #44 + │ │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ variant_4: struct #45 + │ │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ variant_5: struct #46 + │ │ │ └─ [notIn]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ ├─ [name]: optional 'optional_101' #102 + │ │ │ └─ item: optional '_prisma_string_filter_ex' #32 + │ │ │ └─ item: union #29 + │ │ │ ├─ variant_0: union '_prisma_string_filter' #27 + │ │ │ │ ├─ variant_0: string #11 + │ │ │ │ ├─ variant_1: struct #16 + │ │ │ │ │ └─ [equals]: string #11 + │ │ │ │ ├─ variant_2: struct #17 + │ │ │ │ │ └─ [not]: string #11 + │ │ │ │ ├─ variant_3: struct #18 + │ │ │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ │ │ └─ item: string #11 + │ │ │ │ ├─ variant_4: struct #19 + │ │ │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ │ │ └─ item: string #11 + │ │ │ │ ├─ variant_5: struct #23 + │ │ │ │ │ ├─ [contains]: string #11 + │ │ │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ │ │ ├─ variant_6: struct #24 + │ │ │ │ │ └─ [search]: string #11 + │ │ │ │ └─ variant_7: struct #25 + │ │ │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ │ │ └─ item: string #11 + │ │ │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ │ │ └─ item: string #11 + │ │ │ └─ variant_1: struct #28 + │ │ │ └─ [not]: union '_prisma_string_filter' #27 + │ │ │ ├─ variant_0: string #11 + │ │ │ ├─ variant_1: struct #16 + │ │ │ │ └─ [equals]: string #11 + │ │ │ ├─ variant_2: struct #17 + │ │ │ │ └─ [not]: string #11 + │ │ │ ├─ variant_3: struct #18 + │ │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ │ └─ item: string #11 + │ │ │ ├─ variant_4: struct #19 + │ │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ │ └─ item: string #11 + │ │ │ ├─ variant_5: struct #23 + │ │ │ │ ├─ [contains]: string #11 + │ │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #24 + │ │ │ │ └─ [search]: string #11 + │ │ │ └─ variant_7: struct #25 + │ │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ │ └─ item: string #11 + │ │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ [posts]: optional 'optional_114' #115 + │ │ └─ item: union #113 + │ │ ├─ variant_0: struct #106 + │ │ │ └─ [every]: optional 'optional_104' #105 + │ │ │ └─ item: &Post_where_excluding_User #103 + │ │ ├─ variant_1: struct #109 + │ │ │ └─ [some]: optional 'optional_107' #108 + │ │ │ └─ item: &Post_where_excluding_User #103 + │ │ └─ variant_2: struct #112 + │ │ └─ [none]: optional 'optional_110' #111 + │ │ └─ item: &Post_where_excluding_User #103 + │ ├─ [id]: optional 'optional_95' #96 + │ │ └─ item: optional '_prisma_integer_filter_ex' #53 + │ │ └─ item: union #50 + │ │ ├─ variant_0: either '_prisma_integer_filter' #48 + │ │ │ ├─ variant_0: integer #37 + │ │ │ ├─ variant_1: struct #42 + │ │ │ │ └─ [equals]: integer #37 + │ │ │ ├─ variant_2: struct #43 + │ │ │ │ └─ [not]: integer #37 + │ │ │ ├─ variant_3: struct #44 + │ │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ variant_4: struct #45 + │ │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ variant_5: struct #46 + │ │ │ └─ [notIn]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ variant_1: struct #49 + │ │ └─ [not]: either '_prisma_integer_filter' #48 + │ │ ├─ variant_0: integer #37 + │ │ ├─ variant_1: struct #42 + │ │ │ └─ [equals]: integer #37 + │ │ ├─ variant_2: struct #43 + │ │ │ └─ [not]: integer #37 + │ │ ├─ variant_3: struct #44 + │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ variant_4: struct #45 + │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ variant_5: struct #46 + │ │ └─ [notIn]: list 'list_40' #41 + │ │ └─ item: integer #37 + │ └─ [title]: optional 'optional_97' #98 + │ └─ item: optional '_prisma_string_filter_ex' #32 + │ └─ item: union #29 + │ ├─ variant_0: union '_prisma_string_filter' #27 + │ │ ├─ variant_0: string #11 + │ │ ├─ variant_1: struct #16 + │ │ │ └─ [equals]: string #11 + │ │ ├─ variant_2: struct #17 + │ │ │ └─ [not]: string #11 + │ │ ├─ variant_3: struct #18 + │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_4: struct #19 + │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_5: struct #23 + │ │ │ ├─ [contains]: string #11 + │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #24 + │ │ │ └─ [search]: string #11 + │ │ └─ variant_7: struct #25 + │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ variant_1: struct #28 + │ └─ [not]: union '_prisma_string_filter' #27 + │ ├─ variant_0: string #11 + │ ├─ variant_1: struct #16 + │ │ └─ [equals]: string #11 + │ ├─ variant_2: struct #17 + │ │ └─ [not]: string #11 + │ ├─ variant_3: struct #18 + │ │ └─ [in]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_4: struct #19 + │ │ └─ [notIn]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_5: struct #23 + │ │ ├─ [contains]: string #11 + │ │ └─ [mode]: optional 'optional_21' #22 + │ │ └─ item: string #20 enum{ '"insensitive"' } + │ ├─ variant_6: struct #24 + │ │ └─ [search]: string #11 + │ └─ variant_7: struct #25 + │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ [startsWith]: optional 'optional_12' #13 + │ └─ item: string #11 + └─ variant_2: struct #130 + └─ [none]: optional 'optional_128' #129 + └─ item: struct 'Post_where_excluding_User' #121 + ├─ [author]: optional 'optional_118' #119 + │ └─ item: struct 'User_where_excluding_User_and_Post_where_excluding_User' #117 + │ ├─ [id]: optional 'optional_99' #100 + │ │ └─ item: optional '_prisma_integer_filter_ex' #53 + │ │ └─ item: union #50 + │ │ ├─ variant_0: either '_prisma_integer_filter' #48 + │ │ │ ├─ variant_0: integer #37 + │ │ │ ├─ variant_1: struct #42 + │ │ │ │ └─ [equals]: integer #37 + │ │ │ ├─ variant_2: struct #43 + │ │ │ │ └─ [not]: integer #37 + │ │ │ ├─ variant_3: struct #44 + │ │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ variant_4: struct #45 + │ │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ variant_5: struct #46 + │ │ │ └─ [notIn]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ variant_1: struct #49 + │ │ └─ [not]: either '_prisma_integer_filter' #48 + │ │ ├─ variant_0: integer #37 + │ │ ├─ variant_1: struct #42 + │ │ │ └─ [equals]: integer #37 + │ │ ├─ variant_2: struct #43 + │ │ │ └─ [not]: integer #37 + │ │ ├─ variant_3: struct #44 + │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ variant_4: struct #45 + │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ variant_5: struct #46 + │ │ └─ [notIn]: list 'list_40' #41 + │ │ └─ item: integer #37 + │ ├─ [name]: optional 'optional_101' #102 + │ │ └─ item: optional '_prisma_string_filter_ex' #32 + │ │ └─ item: union #29 + │ │ ├─ variant_0: union '_prisma_string_filter' #27 + │ │ │ ├─ variant_0: string #11 + │ │ │ ├─ variant_1: struct #16 + │ │ │ │ └─ [equals]: string #11 + │ │ │ ├─ variant_2: struct #17 + │ │ │ │ └─ [not]: string #11 + │ │ │ ├─ variant_3: struct #18 + │ │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ │ └─ item: string #11 + │ │ │ ├─ variant_4: struct #19 + │ │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ │ └─ item: string #11 + │ │ │ ├─ variant_5: struct #23 + │ │ │ │ ├─ [contains]: string #11 + │ │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #24 + │ │ │ │ └─ [search]: string #11 + │ │ │ └─ variant_7: struct #25 + │ │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ │ └─ item: string #11 + │ │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ variant_1: struct #28 + │ │ └─ [not]: union '_prisma_string_filter' #27 + │ │ ├─ variant_0: string #11 + │ │ ├─ variant_1: struct #16 + │ │ │ └─ [equals]: string #11 + │ │ ├─ variant_2: struct #17 + │ │ │ └─ [not]: string #11 + │ │ ├─ variant_3: struct #18 + │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_4: struct #19 + │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_5: struct #23 + │ │ │ ├─ [contains]: string #11 + │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #24 + │ │ │ └─ [search]: string #11 + │ │ └─ variant_7: struct #25 + │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ [posts]: optional 'optional_114' #115 + │ └─ item: union #113 + │ ├─ variant_0: struct #106 + │ │ └─ [every]: optional 'optional_104' #105 + │ │ └─ item: &Post_where_excluding_User #103 + │ ├─ variant_1: struct #109 + │ │ └─ [some]: optional 'optional_107' #108 + │ │ └─ item: &Post_where_excluding_User #103 + │ └─ variant_2: struct #112 + │ └─ [none]: optional 'optional_110' #111 + │ └─ item: &Post_where_excluding_User #103 + ├─ [id]: optional 'optional_95' #96 + │ └─ item: optional '_prisma_integer_filter_ex' #53 + │ └─ item: union #50 + │ ├─ variant_0: either '_prisma_integer_filter' #48 + │ │ ├─ variant_0: integer #37 + │ │ ├─ variant_1: struct #42 + │ │ │ └─ [equals]: integer #37 + │ │ ├─ variant_2: struct #43 + │ │ │ └─ [not]: integer #37 + │ │ ├─ variant_3: struct #44 + │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ variant_4: struct #45 + │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ variant_5: struct #46 + │ │ └─ [notIn]: list 'list_40' #41 + │ │ └─ item: integer #37 + │ └─ variant_1: struct #49 + │ └─ [not]: either '_prisma_integer_filter' #48 + │ ├─ variant_0: integer #37 + │ ├─ variant_1: struct #42 + │ │ └─ [equals]: integer #37 + │ ├─ variant_2: struct #43 + │ │ └─ [not]: integer #37 + │ ├─ variant_3: struct #44 + │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ └─ [lte]: optional 'optional_38' #39 + │ │ └─ item: integer #37 + │ ├─ variant_4: struct #45 + │ │ └─ [in]: list 'list_40' #41 + │ │ └─ item: integer #37 + │ └─ variant_5: struct #46 + │ └─ [notIn]: list 'list_40' #41 + │ └─ item: integer #37 + └─ [title]: optional 'optional_97' #98 + └─ item: optional '_prisma_string_filter_ex' #32 + └─ item: union #29 + ├─ variant_0: union '_prisma_string_filter' #27 + │ ├─ variant_0: string #11 + │ ├─ variant_1: struct #16 + │ │ └─ [equals]: string #11 + │ ├─ variant_2: struct #17 + │ │ └─ [not]: string #11 + │ ├─ variant_3: struct #18 + │ │ └─ [in]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_4: struct #19 + │ │ └─ [notIn]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_5: struct #23 + │ │ ├─ [contains]: string #11 + │ │ └─ [mode]: optional 'optional_21' #22 + │ │ └─ item: string #20 enum{ '"insensitive"' } + │ ├─ variant_6: struct #24 + │ │ └─ [search]: string #11 + │ └─ variant_7: struct #25 + │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ [startsWith]: optional 'optional_12' #13 + │ └─ item: string #11 + └─ variant_1: struct #28 + └─ [not]: union '_prisma_string_filter' #27 + ├─ variant_0: string #11 + ├─ variant_1: struct #16 + │ └─ [equals]: string #11 + ├─ variant_2: struct #17 + │ └─ [not]: string #11 + ├─ variant_3: struct #18 + │ └─ [in]: list 'list_14' #15 + │ └─ item: string #11 + ├─ variant_4: struct #19 + │ └─ [notIn]: list 'list_14' #15 + │ └─ item: string #11 + ├─ variant_5: struct #23 + │ ├─ [contains]: string #11 + │ └─ [mode]: optional 'optional_21' #22 + │ └─ item: string #20 enum{ '"insensitive"' } + ├─ variant_6: struct #24 + │ └─ [search]: string #11 + └─ variant_7: struct #25 + ├─ [endsWith]: optional 'optional_12' #13 + │ └─ item: string #11 + └─ [startsWith]: optional 'optional_12' #13 + └─ item: string #11 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_unique User out.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_unique User out.snap index ba1f971e3d..c0e088d323 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_unique User out.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__find_unique User out.snap @@ -2,14 +2,14 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs expression: tp.print(out) --- -root: optional 'optional_90' #90 -└─ item: struct 'User_with_nested_count' #89 - ├─ [_count]: struct #88 - │ └─ [posts]: optional '_count' #87 - │ └─ item: integer #86 - ├─ [id]: integer #50 - ├─ [name]: string #52 - └─ [posts]: list 'list_85' #85 - └─ item: struct 'Post_with_nested_count_excluding_rel_Post_User' #84 - ├─ [id]: integer #56 - └─ [title]: string #58 +root: optional 'optional_159' #160 +└─ item: struct 'User_with_nested_count' #158 + ├─ [_count]: struct #156 + │ └─ [posts]: optional '_count' #155 + │ └─ item: integer #152 + ├─ [id]: integer #76 + ├─ [name]: string #78 + └─ [posts]: list 'list_150' #151 + └─ item: struct 'Post_with_nested_count_excluding_rel_Post_User' #149 + ├─ [id]: integer #84 + └─ [title]: string #87 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__group_by Post inp.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__group_by Post inp.snap index 73da730064..d692d18b50 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__group_by Post inp.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__group_by Post inp.snap @@ -2,962 +2,2216 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs expression: tp.print(inp) --- -root: struct 'Post_group_by_query_input' #274 -├─ [by]: list 'Post_group_by' #249 -│ └─ item: string #248 enum{ '"id"', '"title"' } -├─ [cursor]: optional 'optional_247' #247 -│ └─ item: union 'Post_cursor' #246 -│ ├─ variant_0: struct #244 -│ │ └─ [id]: integer #126 -│ └─ variant_1: struct #245 -│ └─ [title]: string #128 -├─ [having]: optional 'optional_273' #273 -│ └─ item: union 'Post_having' #272 -│ ├─ variant_0: struct 'Post_where_with_aggregates' #265 -│ │ ├─ [author]: optional 'optional_264' #264 -│ │ │ └─ item: struct 'User_where_with_aggregates_excluding_Post' #263 -│ │ │ ├─ [id]: optional 'optional_252' #252 -│ │ │ │ └─ item: optional '_prisma_integer_filter_with_aggregates_ex' #94 -│ │ │ │ └─ item: union #93 -│ │ │ │ ├─ variant_0: union '_prisma_integer_filter_with_aggregates' #91 -│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #34 -│ │ │ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ └─ variant_5: struct #33 -│ │ │ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ variant_1: struct #86 -│ │ │ │ │ │ └─ [_count]: either '_prisma_integer_filter' #34 -│ │ │ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ └─ variant_5: struct #33 -│ │ │ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ variant_2: struct #87 -│ │ │ │ │ │ └─ [_sum]: either '_prisma_integer_filter' #34 -│ │ │ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ └─ variant_5: struct #33 -│ │ │ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ variant_3: struct #88 -│ │ │ │ │ │ └─ [_avg]: either '_prisma_float_filter' #85 -│ │ │ │ │ │ ├─ variant_0: float #77 -│ │ │ │ │ │ ├─ variant_1: struct #80 -│ │ │ │ │ │ │ └─ [equals]: float #77 -│ │ │ │ │ │ ├─ variant_2: struct #81 -│ │ │ │ │ │ │ └─ [not]: float #77 -│ │ │ │ │ │ ├─ variant_3: struct #82 -│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_78' #78 -│ │ │ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_78' #78 -│ │ │ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_78' #78 -│ │ │ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ │ │ └─ [lte]: optional 'optional_78' #78 -│ │ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ │ ├─ variant_4: struct #83 -│ │ │ │ │ │ │ └─ [in]: list 'list_79' #79 -│ │ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ │ └─ variant_5: struct #84 -│ │ │ │ │ │ └─ [notIn]: list 'list_79' #79 -│ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ ├─ variant_4: struct #89 -│ │ │ │ │ │ └─ [_min]: either '_prisma_integer_filter' #34 -│ │ │ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ └─ variant_5: struct #33 -│ │ │ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ variant_5: struct #90 -│ │ │ │ │ └─ [_max]: either '_prisma_integer_filter' #34 -│ │ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ variant_5: struct #33 -│ │ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ └─ variant_1: struct #92 -│ │ │ │ └─ [not]: union '_prisma_integer_filter_with_aggregates' #91 -│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #34 -│ │ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ variant_5: struct #33 -│ │ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_1: struct #86 -│ │ │ │ │ └─ [_count]: either '_prisma_integer_filter' #34 -│ │ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ variant_5: struct #33 -│ │ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_2: struct #87 -│ │ │ │ │ └─ [_sum]: either '_prisma_integer_filter' #34 -│ │ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ variant_5: struct #33 -│ │ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_3: struct #88 -│ │ │ │ │ └─ [_avg]: either '_prisma_float_filter' #85 -│ │ │ │ │ ├─ variant_0: float #77 -│ │ │ │ │ ├─ variant_1: struct #80 -│ │ │ │ │ │ └─ [equals]: float #77 -│ │ │ │ │ ├─ variant_2: struct #81 -│ │ │ │ │ │ └─ [not]: float #77 -│ │ │ │ │ ├─ variant_3: struct #82 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_78' #78 -│ │ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_78' #78 -│ │ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_78' #78 -│ │ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ │ └─ [lte]: optional 'optional_78' #78 -│ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ ├─ variant_4: struct #83 -│ │ │ │ │ │ └─ [in]: list 'list_79' #79 -│ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ └─ variant_5: struct #84 -│ │ │ │ │ └─ [notIn]: list 'list_79' #79 -│ │ │ │ │ └─ item: float #77 -│ │ │ │ ├─ variant_4: struct #89 -│ │ │ │ │ └─ [_min]: either '_prisma_integer_filter' #34 -│ │ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ variant_5: struct #33 -│ │ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ └─ variant_5: struct #90 -│ │ │ │ └─ [_max]: either '_prisma_integer_filter' #34 -│ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ └─ variant_5: struct #33 -│ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ └─ item: integer #26 -│ │ │ ├─ [name]: optional 'optional_253' #253 -│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #23 -│ │ │ │ └─ item: union #22 -│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #20 -│ │ │ │ │ ├─ variant_0: string #8 -│ │ │ │ │ ├─ variant_1: struct #11 -│ │ │ │ │ │ └─ [equals]: string #8 -│ │ │ │ │ ├─ variant_2: struct #12 -│ │ │ │ │ │ └─ [not]: string #8 -│ │ │ │ │ ├─ variant_3: struct #13 -│ │ │ │ │ │ └─ [in]: list 'list_10' #10 -│ │ │ │ │ │ └─ item: string #8 -│ │ │ │ │ ├─ variant_4: struct #14 -│ │ │ │ │ │ └─ [notIn]: list 'list_10' #10 -│ │ │ │ │ │ └─ item: string #8 -│ │ │ │ │ ├─ variant_5: struct #17 -│ │ │ │ │ │ ├─ [contains]: string #8 -│ │ │ │ │ │ └─ [mode]: optional 'optional_16' #16 -│ │ │ │ │ │ └─ item: string #15 enum{ '"insensitive"' } -│ │ │ │ │ ├─ variant_6: struct #18 -│ │ │ │ │ │ └─ [search]: string #8 -│ │ │ │ │ └─ variant_7: struct #19 -│ │ │ │ │ ├─ [endsWith]: optional 'optional_9' #9 -│ │ │ │ │ │ └─ item: string #8 -│ │ │ │ │ └─ [startsWith]: optional 'optional_9' #9 -│ │ │ │ │ └─ item: string #8 -│ │ │ │ └─ variant_1: struct #21 -│ │ │ │ └─ [not]: union '_prisma_string_filter' #20 -│ │ │ │ ├─ variant_0: string #8 -│ │ │ │ ├─ variant_1: struct #11 -│ │ │ │ │ └─ [equals]: string #8 -│ │ │ │ ├─ variant_2: struct #12 -│ │ │ │ │ └─ [not]: string #8 -│ │ │ │ ├─ variant_3: struct #13 -│ │ │ │ │ └─ [in]: list 'list_10' #10 -│ │ │ │ │ └─ item: string #8 -│ │ │ │ ├─ variant_4: struct #14 -│ │ │ │ │ └─ [notIn]: list 'list_10' #10 -│ │ │ │ │ └─ item: string #8 -│ │ │ │ ├─ variant_5: struct #17 -│ │ │ │ │ ├─ [contains]: string #8 -│ │ │ │ │ └─ [mode]: optional 'optional_16' #16 -│ │ │ │ │ └─ item: string #15 enum{ '"insensitive"' } -│ │ │ │ ├─ variant_6: struct #18 -│ │ │ │ │ └─ [search]: string #8 -│ │ │ │ └─ variant_7: struct #19 -│ │ │ │ ├─ [endsWith]: optional 'optional_9' #9 -│ │ │ │ │ └─ item: string #8 -│ │ │ │ └─ [startsWith]: optional 'optional_9' #9 -│ │ │ │ └─ item: string #8 -│ │ │ └─ [posts]: optional 'optional_262' #262 -│ │ │ └─ item: union #261 -│ │ │ ├─ variant_0: struct #256 -│ │ │ │ └─ [every]: optional 'optional_255' #255 -│ │ │ │ └─ item: &Post_where_with_aggregates #254 -│ │ │ ├─ variant_1: struct #258 -│ │ │ │ └─ [some]: optional 'optional_257' #257 -│ │ │ │ └─ item: &Post_where_with_aggregates #254 -│ │ │ └─ variant_2: struct #260 -│ │ │ └─ [none]: optional 'optional_259' #259 -│ │ │ └─ item: &Post_where_with_aggregates #254 -│ │ ├─ [id]: optional 'optional_250' #250 -│ │ │ └─ item: optional '_prisma_integer_filter_with_aggregates_ex' #94 -│ │ │ └─ item: union #93 -│ │ │ ├─ variant_0: union '_prisma_integer_filter_with_aggregates' #91 -│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #34 -│ │ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ variant_5: struct #33 -│ │ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_1: struct #86 -│ │ │ │ │ └─ [_count]: either '_prisma_integer_filter' #34 -│ │ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ variant_5: struct #33 -│ │ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_2: struct #87 -│ │ │ │ │ └─ [_sum]: either '_prisma_integer_filter' #34 -│ │ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ variant_5: struct #33 -│ │ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_3: struct #88 -│ │ │ │ │ └─ [_avg]: either '_prisma_float_filter' #85 -│ │ │ │ │ ├─ variant_0: float #77 -│ │ │ │ │ ├─ variant_1: struct #80 -│ │ │ │ │ │ └─ [equals]: float #77 -│ │ │ │ │ ├─ variant_2: struct #81 -│ │ │ │ │ │ └─ [not]: float #77 -│ │ │ │ │ ├─ variant_3: struct #82 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_78' #78 -│ │ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_78' #78 -│ │ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_78' #78 -│ │ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ │ └─ [lte]: optional 'optional_78' #78 -│ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ ├─ variant_4: struct #83 -│ │ │ │ │ │ └─ [in]: list 'list_79' #79 -│ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ └─ variant_5: struct #84 -│ │ │ │ │ └─ [notIn]: list 'list_79' #79 -│ │ │ │ │ └─ item: float #77 -│ │ │ │ ├─ variant_4: struct #89 -│ │ │ │ │ └─ [_min]: either '_prisma_integer_filter' #34 -│ │ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ variant_5: struct #33 -│ │ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ └─ variant_5: struct #90 -│ │ │ │ └─ [_max]: either '_prisma_integer_filter' #34 -│ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ └─ variant_5: struct #33 -│ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ └─ item: integer #26 -│ │ │ └─ variant_1: struct #92 -│ │ │ └─ [not]: union '_prisma_integer_filter_with_aggregates' #91 -│ │ │ ├─ variant_0: either '_prisma_integer_filter' #34 -│ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ └─ variant_5: struct #33 -│ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ └─ item: integer #26 -│ │ │ ├─ variant_1: struct #86 -│ │ │ │ └─ [_count]: either '_prisma_integer_filter' #34 -│ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ └─ variant_5: struct #33 -│ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ └─ item: integer #26 -│ │ │ ├─ variant_2: struct #87 -│ │ │ │ └─ [_sum]: either '_prisma_integer_filter' #34 -│ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ └─ variant_5: struct #33 -│ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ └─ item: integer #26 -│ │ │ ├─ variant_3: struct #88 -│ │ │ │ └─ [_avg]: either '_prisma_float_filter' #85 -│ │ │ │ ├─ variant_0: float #77 -│ │ │ │ ├─ variant_1: struct #80 -│ │ │ │ │ └─ [equals]: float #77 -│ │ │ │ ├─ variant_2: struct #81 -│ │ │ │ │ └─ [not]: float #77 -│ │ │ │ ├─ variant_3: struct #82 -│ │ │ │ │ ├─ [gt]: optional 'optional_78' #78 -│ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ ├─ [gte]: optional 'optional_78' #78 -│ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ ├─ [lt]: optional 'optional_78' #78 -│ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ └─ [lte]: optional 'optional_78' #78 -│ │ │ │ │ └─ item: float #77 -│ │ │ │ ├─ variant_4: struct #83 -│ │ │ │ │ └─ [in]: list 'list_79' #79 -│ │ │ │ │ └─ item: float #77 -│ │ │ │ └─ variant_5: struct #84 -│ │ │ │ └─ [notIn]: list 'list_79' #79 -│ │ │ │ └─ item: float #77 -│ │ │ ├─ variant_4: struct #89 -│ │ │ │ └─ [_min]: either '_prisma_integer_filter' #34 -│ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ └─ variant_5: struct #33 -│ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ └─ item: integer #26 -│ │ │ └─ variant_5: struct #90 -│ │ │ └─ [_max]: either '_prisma_integer_filter' #34 -│ │ │ ├─ variant_0: integer #26 -│ │ │ ├─ variant_1: struct #29 -│ │ │ │ └─ [equals]: integer #26 -│ │ │ ├─ variant_2: struct #30 -│ │ │ │ └─ [not]: integer #26 -│ │ │ ├─ variant_3: struct #31 -│ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ └─ item: integer #26 -│ │ │ ├─ variant_4: struct #32 -│ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ └─ item: integer #26 -│ │ │ └─ variant_5: struct #33 -│ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ └─ item: integer #26 -│ │ └─ [title]: optional 'optional_251' #251 -│ │ └─ item: optional '_prisma_string_filter_ex' #23 -│ │ └─ item: union #22 -│ │ ├─ variant_0: union '_prisma_string_filter' #20 -│ │ │ ├─ variant_0: string #8 -│ │ │ ├─ variant_1: struct #11 -│ │ │ │ └─ [equals]: string #8 -│ │ │ ├─ variant_2: struct #12 -│ │ │ │ └─ [not]: string #8 -│ │ │ ├─ variant_3: struct #13 -│ │ │ │ └─ [in]: list 'list_10' #10 -│ │ │ │ └─ item: string #8 -│ │ │ ├─ variant_4: struct #14 -│ │ │ │ └─ [notIn]: list 'list_10' #10 -│ │ │ │ └─ item: string #8 -│ │ │ ├─ variant_5: struct #17 -│ │ │ │ ├─ [contains]: string #8 -│ │ │ │ └─ [mode]: optional 'optional_16' #16 -│ │ │ │ └─ item: string #15 enum{ '"insensitive"' } -│ │ │ ├─ variant_6: struct #18 -│ │ │ │ └─ [search]: string #8 -│ │ │ └─ variant_7: struct #19 -│ │ │ ├─ [endsWith]: optional 'optional_9' #9 -│ │ │ │ └─ item: string #8 -│ │ │ └─ [startsWith]: optional 'optional_9' #9 -│ │ │ └─ item: string #8 -│ │ └─ variant_1: struct #21 -│ │ └─ [not]: union '_prisma_string_filter' #20 -│ │ ├─ variant_0: string #8 -│ │ ├─ variant_1: struct #11 -│ │ │ └─ [equals]: string #8 -│ │ ├─ variant_2: struct #12 -│ │ │ └─ [not]: string #8 -│ │ ├─ variant_3: struct #13 -│ │ │ └─ [in]: list 'list_10' #10 -│ │ │ └─ item: string #8 -│ │ ├─ variant_4: struct #14 -│ │ │ └─ [notIn]: list 'list_10' #10 -│ │ │ └─ item: string #8 -│ │ ├─ variant_5: struct #17 -│ │ │ ├─ [contains]: string #8 -│ │ │ └─ [mode]: optional 'optional_16' #16 -│ │ │ └─ item: string #15 enum{ '"insensitive"' } -│ │ ├─ variant_6: struct #18 -│ │ │ └─ [search]: string #8 -│ │ └─ variant_7: struct #19 -│ │ ├─ [endsWith]: optional 'optional_9' #9 -│ │ │ └─ item: string #8 -│ │ └─ [startsWith]: optional 'optional_9' #9 -│ │ └─ item: string #8 -│ ├─ variant_1: struct #268 -│ │ └─ [AND]: list 'list_267' #267 -│ │ └─ item: &Post_having #266 -│ ├─ variant_2: struct #270 -│ │ └─ [OR]: list 'list_269' #269 -│ │ └─ item: &Post_having #266 -│ └─ variant_3: struct #271 -│ └─ [NOT]: &Post_having #266 -├─ [orderBy]: optional 'optional_241' #241 -│ └─ item: list 'Post_order_by_with_aggregates' #240 -│ └─ item: struct #239 -│ ├─ [_avg]: optional 'optional_234' #234 -│ │ └─ item: struct #233 -│ │ └─ [id]: optional '_prisma_sort' #51 -│ │ └─ item: union #50 -│ │ ├─ variant_0: struct #49 -│ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ ├─ [_count]: optional 'optional_232' #232 -│ │ └─ item: struct #231 -│ │ ├─ [author]: optional '_prisma_sort' #51 -│ │ │ └─ item: union #50 -│ │ │ ├─ variant_0: struct #49 -│ │ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ ├─ [id]: optional '_prisma_sort' #51 -│ │ │ └─ item: union #50 -│ │ │ ├─ variant_0: struct #49 -│ │ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ └─ [title]: optional '_prisma_sort' #51 -│ │ └─ item: union #50 -│ │ ├─ variant_0: struct #49 -│ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ ├─ [_max]: optional 'optional_234' #234 -│ │ └─ item: struct #233 -│ │ └─ [id]: optional '_prisma_sort' #51 -│ │ └─ item: union #50 -│ │ ├─ variant_0: struct #49 -│ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ ├─ [_min]: optional 'optional_234' #234 -│ │ └─ item: struct #233 -│ │ └─ [id]: optional '_prisma_sort' #51 -│ │ └─ item: union #50 -│ │ ├─ variant_0: struct #49 -│ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ ├─ [_sum]: optional 'optional_234' #234 -│ │ └─ item: struct #233 -│ │ └─ [id]: optional '_prisma_sort' #51 -│ │ └─ item: union #50 -│ │ ├─ variant_0: struct #49 -│ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ ├─ [author]: optional 'optional_238' #238 -│ │ └─ item: list 'User_order_by_withoutrel_Post_User' #237 -│ │ └─ item: struct #236 -│ │ ├─ [id]: optional '_prisma_sort' #51 -│ │ │ └─ item: union #50 -│ │ │ ├─ variant_0: struct #49 -│ │ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ └─ [name]: optional '_prisma_sort' #51 -│ │ └─ item: union #50 -│ │ ├─ variant_0: struct #49 -│ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ ├─ [id]: optional '_prisma_sort' #51 -│ │ └─ item: union #50 -│ │ ├─ variant_0: struct #49 -│ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ └─ [title]: optional '_prisma_sort' #51 -│ └─ item: union #50 -│ ├─ variant_0: struct #49 -│ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -├─ [skip]: optional 'optional_243' #243 -│ └─ item: integer '_skip' #65 -├─ [take]: optional 'optional_242' #242 -│ └─ item: integer '_take' #63 -└─ [where]: optional 'optional_230' #230 - └─ item: struct 'Post_query_where_input' #229 - ├─ [AND]: optional 'optional_227' #227 - │ └─ item: list 'list_226' #226 - │ └─ item: &Post_query_where_input #225 - ├─ [NOT]: optional 'optional_228' #228 - │ └─ item: &Post_query_where_input #225 - ├─ [OR]: optional 'optional_227' #227 - │ └─ item: list 'list_226' #226 - │ └─ item: &Post_query_where_input #225 - ├─ [author]: optional 'optional_223' #223 - │ └─ item: struct 'User_where_excluding_Post' #222 - │ ├─ [id]: optional 'optional_211' #211 - │ │ └─ item: optional '_prisma_integer_filter_ex' #37 - │ │ └─ item: union #36 - │ │ ├─ variant_0: either '_prisma_integer_filter' #34 - │ │ │ ├─ variant_0: integer #26 - │ │ │ ├─ variant_1: struct #29 - │ │ │ │ └─ [equals]: integer #26 - │ │ │ ├─ variant_2: struct #30 - │ │ │ │ └─ [not]: integer #26 - │ │ │ ├─ variant_3: struct #31 - │ │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ variant_4: struct #32 - │ │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ variant_5: struct #33 - │ │ │ └─ [notIn]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ └─ variant_1: struct #35 - │ │ └─ [not]: either '_prisma_integer_filter' #34 - │ │ ├─ variant_0: integer #26 - │ │ ├─ variant_1: struct #29 - │ │ │ └─ [equals]: integer #26 - │ │ ├─ variant_2: struct #30 - │ │ │ └─ [not]: integer #26 - │ │ ├─ variant_3: struct #31 - │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ variant_4: struct #32 - │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ └─ variant_5: struct #33 - │ │ └─ [notIn]: list 'list_28' #28 - │ │ └─ item: integer #26 - │ ├─ [name]: optional 'optional_212' #212 - │ │ └─ item: optional '_prisma_string_filter_ex' #23 - │ │ └─ item: union #22 - │ │ ├─ variant_0: union '_prisma_string_filter' #20 - │ │ │ ├─ variant_0: string #8 - │ │ │ ├─ variant_1: struct #11 - │ │ │ │ └─ [equals]: string #8 - │ │ │ ├─ variant_2: struct #12 - │ │ │ │ └─ [not]: string #8 - │ │ │ ├─ variant_3: struct #13 - │ │ │ │ └─ [in]: list 'list_10' #10 - │ │ │ │ └─ item: string #8 - │ │ │ ├─ variant_4: struct #14 - │ │ │ │ └─ [notIn]: list 'list_10' #10 - │ │ │ │ └─ item: string #8 - │ │ │ ├─ variant_5: struct #17 - │ │ │ │ ├─ [contains]: string #8 - │ │ │ │ └─ [mode]: optional 'optional_16' #16 - │ │ │ │ └─ item: string #15 enum{ '"insensitive"' } - │ │ │ ├─ variant_6: struct #18 - │ │ │ │ └─ [search]: string #8 - │ │ │ └─ variant_7: struct #19 - │ │ │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ │ │ └─ item: string #8 - │ │ │ └─ [startsWith]: optional 'optional_9' #9 - │ │ │ └─ item: string #8 - │ │ └─ variant_1: struct #21 - │ │ └─ [not]: union '_prisma_string_filter' #20 - │ │ ├─ variant_0: string #8 - │ │ ├─ variant_1: struct #11 - │ │ │ └─ [equals]: string #8 - │ │ ├─ variant_2: struct #12 - │ │ │ └─ [not]: string #8 - │ │ ├─ variant_3: struct #13 - │ │ │ └─ [in]: list 'list_10' #10 - │ │ │ └─ item: string #8 - │ │ ├─ variant_4: struct #14 - │ │ │ └─ [notIn]: list 'list_10' #10 - │ │ │ └─ item: string #8 - │ │ ├─ variant_5: struct #17 - │ │ │ ├─ [contains]: string #8 - │ │ │ └─ [mode]: optional 'optional_16' #16 - │ │ │ └─ item: string #15 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #18 - │ │ │ └─ [search]: string #8 - │ │ └─ variant_7: struct #19 - │ │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ │ └─ item: string #8 - │ │ └─ [startsWith]: optional 'optional_9' #9 - │ │ └─ item: string #8 - │ └─ [posts]: optional 'optional_221' #221 - │ └─ item: union #220 - │ ├─ variant_0: struct #215 - │ │ └─ [every]: optional 'optional_214' #214 - │ │ └─ item: &Post_where #213 - │ ├─ variant_1: struct #217 - │ │ └─ [some]: optional 'optional_216' #216 - │ │ └─ item: &Post_where #213 - │ └─ variant_2: struct #219 - │ └─ [none]: optional 'optional_218' #218 - │ └─ item: &Post_where #213 - ├─ [id]: optional 'optional_209' #209 - │ └─ item: optional '_prisma_integer_filter_ex' #37 - │ └─ item: union #36 - │ ├─ variant_0: either '_prisma_integer_filter' #34 - │ │ ├─ variant_0: integer #26 - │ │ ├─ variant_1: struct #29 - │ │ │ └─ [equals]: integer #26 - │ │ ├─ variant_2: struct #30 - │ │ │ └─ [not]: integer #26 - │ │ ├─ variant_3: struct #31 - │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ variant_4: struct #32 - │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ └─ variant_5: struct #33 - │ │ └─ [notIn]: list 'list_28' #28 - │ │ └─ item: integer #26 - │ └─ variant_1: struct #35 - │ └─ [not]: either '_prisma_integer_filter' #34 - │ ├─ variant_0: integer #26 - │ ├─ variant_1: struct #29 - │ │ └─ [equals]: integer #26 - │ ├─ variant_2: struct #30 - │ │ └─ [not]: integer #26 - │ ├─ variant_3: struct #31 - │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ └─ [lte]: optional 'optional_27' #27 - │ │ └─ item: integer #26 - │ ├─ variant_4: struct #32 - │ │ └─ [in]: list 'list_28' #28 - │ │ └─ item: integer #26 - │ └─ variant_5: struct #33 - │ └─ [notIn]: list 'list_28' #28 - │ └─ item: integer #26 - └─ [title]: optional 'optional_210' #210 - └─ item: optional '_prisma_string_filter_ex' #23 - └─ item: union #22 - ├─ variant_0: union '_prisma_string_filter' #20 - │ ├─ variant_0: string #8 - │ ├─ variant_1: struct #11 - │ │ └─ [equals]: string #8 - │ ├─ variant_2: struct #12 - │ │ └─ [not]: string #8 - │ ├─ variant_3: struct #13 - │ │ └─ [in]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_4: struct #14 - │ │ └─ [notIn]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_5: struct #17 - │ │ ├─ [contains]: string #8 - │ │ └─ [mode]: optional 'optional_16' #16 - │ │ └─ item: string #15 enum{ '"insensitive"' } - │ ├─ variant_6: struct #18 - │ │ └─ [search]: string #8 - │ └─ variant_7: struct #19 - │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ └─ item: string #8 - │ └─ [startsWith]: optional 'optional_9' #9 - │ └─ item: string #8 - └─ variant_1: struct #21 - └─ [not]: union '_prisma_string_filter' #20 - ├─ variant_0: string #8 - ├─ variant_1: struct #11 - │ └─ [equals]: string #8 - ├─ variant_2: struct #12 - │ └─ [not]: string #8 - ├─ variant_3: struct #13 - │ └─ [in]: list 'list_10' #10 - │ └─ item: string #8 - ├─ variant_4: struct #14 - │ └─ [notIn]: list 'list_10' #10 - │ └─ item: string #8 - ├─ variant_5: struct #17 - │ ├─ [contains]: string #8 - │ └─ [mode]: optional 'optional_16' #16 - │ └─ item: string #15 enum{ '"insensitive"' } - ├─ variant_6: struct #18 - │ └─ [search]: string #8 - └─ variant_7: struct #19 - ├─ [endsWith]: optional 'optional_9' #9 - │ └─ item: string #8 - └─ [startsWith]: optional 'optional_9' #9 - └─ item: string #8 +root: struct 'Post_group_by_query_input' #501 +├─ [by]: list 'Post_group_by' #452 +│ └─ item: string #449 enum{ '"id"', '"title"' } +├─ [cursor]: optional 'optional_447' #448 +│ └─ item: union 'Post_cursor' #446 +│ ├─ variant_0: struct #443 +│ │ └─ [id]: integer #199 +│ └─ variant_1: struct #444 +│ └─ [title]: string #200 +├─ [having]: optional 'optional_498' #499 +│ └─ item: union 'Post_having' #497 +│ ├─ variant_0: struct 'Post_where_with_aggregates' #487 +│ │ ├─ [author]: optional 'optional_484' #485 +│ │ │ └─ item: struct 'User_where_with_aggregates_excluding_Post' #483 +│ │ │ ├─ [id]: optional 'optional_457' #458 +│ │ │ │ └─ item: optional '_prisma_integer_filter_with_aggregates_ex' #146 +│ │ │ │ └─ item: union #143 +│ │ │ │ ├─ variant_0: union '_prisma_integer_filter_with_aggregates' #141 +│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_1: struct #135 +│ │ │ │ │ │ └─ [_count]: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_2: struct #136 +│ │ │ │ │ │ └─ [_sum]: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_3: struct #137 +│ │ │ │ │ │ └─ [_avg]: either '_prisma_float_filter' #134 +│ │ │ │ │ │ ├─ variant_0: float #123 +│ │ │ │ │ │ ├─ variant_1: struct #128 +│ │ │ │ │ │ │ └─ [equals]: float #123 +│ │ │ │ │ │ ├─ variant_2: struct #129 +│ │ │ │ │ │ │ └─ [not]: float #123 +│ │ │ │ │ │ ├─ variant_3: struct #130 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_124' #125 +│ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_124' #125 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ ├─ variant_4: struct #131 +│ │ │ │ │ │ │ └─ [in]: list 'list_126' #127 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ └─ variant_5: struct #132 +│ │ │ │ │ │ └─ [notIn]: list 'list_126' #127 +│ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ ├─ variant_4: struct #138 +│ │ │ │ │ │ └─ [_min]: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #139 +│ │ │ │ │ └─ [_max]: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ variant_1: struct #142 +│ │ │ │ └─ [not]: union '_prisma_integer_filter_with_aggregates' #141 +│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_1: struct #135 +│ │ │ │ │ └─ [_count]: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_2: struct #136 +│ │ │ │ │ └─ [_sum]: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_3: struct #137 +│ │ │ │ │ └─ [_avg]: either '_prisma_float_filter' #134 +│ │ │ │ │ ├─ variant_0: float #123 +│ │ │ │ │ ├─ variant_1: struct #128 +│ │ │ │ │ │ └─ [equals]: float #123 +│ │ │ │ │ ├─ variant_2: struct #129 +│ │ │ │ │ │ └─ [not]: float #123 +│ │ │ │ │ ├─ variant_3: struct #130 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_124' #125 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ └─ [lte]: optional 'optional_124' #125 +│ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ ├─ variant_4: struct #131 +│ │ │ │ │ │ └─ [in]: list 'list_126' #127 +│ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ └─ variant_5: struct #132 +│ │ │ │ │ └─ [notIn]: list 'list_126' #127 +│ │ │ │ │ └─ item: float #123 +│ │ │ │ ├─ variant_4: struct #138 +│ │ │ │ │ └─ [_min]: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ variant_5: struct #139 +│ │ │ │ └─ [_max]: either '_prisma_integer_filter' #48 +│ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ variant_5: struct #46 +│ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ └─ item: integer #37 +│ │ │ ├─ [name]: optional 'optional_459' #460 +│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #32 +│ │ │ │ └─ item: union #29 +│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #27 +│ │ │ │ │ ├─ variant_0: string #11 +│ │ │ │ │ ├─ variant_1: struct #16 +│ │ │ │ │ │ └─ [equals]: string #11 +│ │ │ │ │ ├─ variant_2: struct #17 +│ │ │ │ │ │ └─ [not]: string #11 +│ │ │ │ │ ├─ variant_3: struct #18 +│ │ │ │ │ │ └─ [in]: list 'list_14' #15 +│ │ │ │ │ │ └─ item: string #11 +│ │ │ │ │ ├─ variant_4: struct #19 +│ │ │ │ │ │ └─ [notIn]: list 'list_14' #15 +│ │ │ │ │ │ └─ item: string #11 +│ │ │ │ │ ├─ variant_5: struct #23 +│ │ │ │ │ │ ├─ [contains]: string #11 +│ │ │ │ │ │ └─ [mode]: optional 'optional_21' #22 +│ │ │ │ │ │ └─ item: string #20 enum{ '"insensitive"' } +│ │ │ │ │ ├─ variant_6: struct #24 +│ │ │ │ │ │ └─ [search]: string #11 +│ │ │ │ │ └─ variant_7: struct #25 +│ │ │ │ │ ├─ [endsWith]: optional 'optional_12' #13 +│ │ │ │ │ │ └─ item: string #11 +│ │ │ │ │ └─ [startsWith]: optional 'optional_12' #13 +│ │ │ │ │ └─ item: string #11 +│ │ │ │ └─ variant_1: struct #28 +│ │ │ │ └─ [not]: union '_prisma_string_filter' #27 +│ │ │ │ ├─ variant_0: string #11 +│ │ │ │ ├─ variant_1: struct #16 +│ │ │ │ │ └─ [equals]: string #11 +│ │ │ │ ├─ variant_2: struct #17 +│ │ │ │ │ └─ [not]: string #11 +│ │ │ │ ├─ variant_3: struct #18 +│ │ │ │ │ └─ [in]: list 'list_14' #15 +│ │ │ │ │ └─ item: string #11 +│ │ │ │ ├─ variant_4: struct #19 +│ │ │ │ │ └─ [notIn]: list 'list_14' #15 +│ │ │ │ │ └─ item: string #11 +│ │ │ │ ├─ variant_5: struct #23 +│ │ │ │ │ ├─ [contains]: string #11 +│ │ │ │ │ └─ [mode]: optional 'optional_21' #22 +│ │ │ │ │ └─ item: string #20 enum{ '"insensitive"' } +│ │ │ │ ├─ variant_6: struct #24 +│ │ │ │ │ └─ [search]: string #11 +│ │ │ │ └─ variant_7: struct #25 +│ │ │ │ ├─ [endsWith]: optional 'optional_12' #13 +│ │ │ │ │ └─ item: string #11 +│ │ │ │ └─ [startsWith]: optional 'optional_12' #13 +│ │ │ │ └─ item: string #11 +│ │ │ └─ [posts]: optional 'optional_480' #481 +│ │ │ └─ item: union #479 +│ │ │ ├─ variant_0: struct #472 +│ │ │ │ └─ [every]: optional 'optional_470' #471 +│ │ │ │ └─ item: struct 'Post_where_with_aggregates_excluding_Post_and_User_where_with_aggregates_excluding_Post' #469 +│ │ │ │ ├─ [author]: optional 'optional_466' #467 +│ │ │ │ │ └─ item: &User_where_with_aggregates_excluding_Post #465 +│ │ │ │ ├─ [id]: optional 'optional_461' #462 +│ │ │ │ │ └─ item: optional '_prisma_integer_filter_with_aggregates_ex' #146 +│ │ │ │ │ └─ item: union #143 +│ │ │ │ │ ├─ variant_0: union '_prisma_integer_filter_with_aggregates' #141 +│ │ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #135 +│ │ │ │ │ │ │ └─ [_count]: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #136 +│ │ │ │ │ │ │ └─ [_sum]: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #137 +│ │ │ │ │ │ │ └─ [_avg]: either '_prisma_float_filter' #134 +│ │ │ │ │ │ │ ├─ variant_0: float #123 +│ │ │ │ │ │ │ ├─ variant_1: struct #128 +│ │ │ │ │ │ │ │ └─ [equals]: float #123 +│ │ │ │ │ │ │ ├─ variant_2: struct #129 +│ │ │ │ │ │ │ │ └─ [not]: float #123 +│ │ │ │ │ │ │ ├─ variant_3: struct #130 +│ │ │ │ │ │ │ │ ├─ [gt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ │ ├─ [gte]: optional 'optional_124' #125 +│ │ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ │ ├─ [lt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ │ └─ [lte]: optional 'optional_124' #125 +│ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ ├─ variant_4: struct #131 +│ │ │ │ │ │ │ │ └─ [in]: list 'list_126' #127 +│ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ └─ variant_5: struct #132 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_126' #127 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ ├─ variant_4: struct #138 +│ │ │ │ │ │ │ └─ [_min]: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #139 +│ │ │ │ │ │ └─ [_max]: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_1: struct #142 +│ │ │ │ │ └─ [not]: union '_prisma_integer_filter_with_aggregates' #141 +│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_1: struct #135 +│ │ │ │ │ │ └─ [_count]: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_2: struct #136 +│ │ │ │ │ │ └─ [_sum]: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_3: struct #137 +│ │ │ │ │ │ └─ [_avg]: either '_prisma_float_filter' #134 +│ │ │ │ │ │ ├─ variant_0: float #123 +│ │ │ │ │ │ ├─ variant_1: struct #128 +│ │ │ │ │ │ │ └─ [equals]: float #123 +│ │ │ │ │ │ ├─ variant_2: struct #129 +│ │ │ │ │ │ │ └─ [not]: float #123 +│ │ │ │ │ │ ├─ variant_3: struct #130 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_124' #125 +│ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_124' #125 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ ├─ variant_4: struct #131 +│ │ │ │ │ │ │ └─ [in]: list 'list_126' #127 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ └─ variant_5: struct #132 +│ │ │ │ │ │ └─ [notIn]: list 'list_126' #127 +│ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ ├─ variant_4: struct #138 +│ │ │ │ │ │ └─ [_min]: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #139 +│ │ │ │ │ └─ [_max]: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ [title]: optional 'optional_463' #464 +│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #32 +│ │ │ │ └─ item: union #29 +│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #27 +│ │ │ │ │ ├─ variant_0: string #11 +│ │ │ │ │ ├─ variant_1: struct #16 +│ │ │ │ │ │ └─ [equals]: string #11 +│ │ │ │ │ ├─ variant_2: struct #17 +│ │ │ │ │ │ └─ [not]: string #11 +│ │ │ │ │ ├─ variant_3: struct #18 +│ │ │ │ │ │ └─ [in]: list 'list_14' #15 +│ │ │ │ │ │ └─ item: string #11 +│ │ │ │ │ ├─ variant_4: struct #19 +│ │ │ │ │ │ └─ [notIn]: list 'list_14' #15 +│ │ │ │ │ │ └─ item: string #11 +│ │ │ │ │ ├─ variant_5: struct #23 +│ │ │ │ │ │ ├─ [contains]: string #11 +│ │ │ │ │ │ └─ [mode]: optional 'optional_21' #22 +│ │ │ │ │ │ └─ item: string #20 enum{ '"insensitive"' } +│ │ │ │ │ ├─ variant_6: struct #24 +│ │ │ │ │ │ └─ [search]: string #11 +│ │ │ │ │ └─ variant_7: struct #25 +│ │ │ │ │ ├─ [endsWith]: optional 'optional_12' #13 +│ │ │ │ │ │ └─ item: string #11 +│ │ │ │ │ └─ [startsWith]: optional 'optional_12' #13 +│ │ │ │ │ └─ item: string #11 +│ │ │ │ └─ variant_1: struct #28 +│ │ │ │ └─ [not]: union '_prisma_string_filter' #27 +│ │ │ │ ├─ variant_0: string #11 +│ │ │ │ ├─ variant_1: struct #16 +│ │ │ │ │ └─ [equals]: string #11 +│ │ │ │ ├─ variant_2: struct #17 +│ │ │ │ │ └─ [not]: string #11 +│ │ │ │ ├─ variant_3: struct #18 +│ │ │ │ │ └─ [in]: list 'list_14' #15 +│ │ │ │ │ └─ item: string #11 +│ │ │ │ ├─ variant_4: struct #19 +│ │ │ │ │ └─ [notIn]: list 'list_14' #15 +│ │ │ │ │ └─ item: string #11 +│ │ │ │ ├─ variant_5: struct #23 +│ │ │ │ │ ├─ [contains]: string #11 +│ │ │ │ │ └─ [mode]: optional 'optional_21' #22 +│ │ │ │ │ └─ item: string #20 enum{ '"insensitive"' } +│ │ │ │ ├─ variant_6: struct #24 +│ │ │ │ │ └─ [search]: string #11 +│ │ │ │ └─ variant_7: struct #25 +│ │ │ │ ├─ [endsWith]: optional 'optional_12' #13 +│ │ │ │ │ └─ item: string #11 +│ │ │ │ └─ [startsWith]: optional 'optional_12' #13 +│ │ │ │ └─ item: string #11 +│ │ │ ├─ variant_1: struct #475 +│ │ │ │ └─ [some]: optional 'optional_473' #474 +│ │ │ │ └─ item: struct 'Post_where_with_aggregates_excluding_Post_and_User_where_with_aggregates_excluding_Post' #469 +│ │ │ │ ├─ [author]: optional 'optional_466' #467 +│ │ │ │ │ └─ item: &User_where_with_aggregates_excluding_Post #465 +│ │ │ │ ├─ [id]: optional 'optional_461' #462 +│ │ │ │ │ └─ item: optional '_prisma_integer_filter_with_aggregates_ex' #146 +│ │ │ │ │ └─ item: union #143 +│ │ │ │ │ ├─ variant_0: union '_prisma_integer_filter_with_aggregates' #141 +│ │ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #135 +│ │ │ │ │ │ │ └─ [_count]: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #136 +│ │ │ │ │ │ │ └─ [_sum]: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #137 +│ │ │ │ │ │ │ └─ [_avg]: either '_prisma_float_filter' #134 +│ │ │ │ │ │ │ ├─ variant_0: float #123 +│ │ │ │ │ │ │ ├─ variant_1: struct #128 +│ │ │ │ │ │ │ │ └─ [equals]: float #123 +│ │ │ │ │ │ │ ├─ variant_2: struct #129 +│ │ │ │ │ │ │ │ └─ [not]: float #123 +│ │ │ │ │ │ │ ├─ variant_3: struct #130 +│ │ │ │ │ │ │ │ ├─ [gt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ │ ├─ [gte]: optional 'optional_124' #125 +│ │ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ │ ├─ [lt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ │ └─ [lte]: optional 'optional_124' #125 +│ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ ├─ variant_4: struct #131 +│ │ │ │ │ │ │ │ └─ [in]: list 'list_126' #127 +│ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ └─ variant_5: struct #132 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_126' #127 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ ├─ variant_4: struct #138 +│ │ │ │ │ │ │ └─ [_min]: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #139 +│ │ │ │ │ │ └─ [_max]: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_1: struct #142 +│ │ │ │ │ └─ [not]: union '_prisma_integer_filter_with_aggregates' #141 +│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_1: struct #135 +│ │ │ │ │ │ └─ [_count]: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_2: struct #136 +│ │ │ │ │ │ └─ [_sum]: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_3: struct #137 +│ │ │ │ │ │ └─ [_avg]: either '_prisma_float_filter' #134 +│ │ │ │ │ │ ├─ variant_0: float #123 +│ │ │ │ │ │ ├─ variant_1: struct #128 +│ │ │ │ │ │ │ └─ [equals]: float #123 +│ │ │ │ │ │ ├─ variant_2: struct #129 +│ │ │ │ │ │ │ └─ [not]: float #123 +│ │ │ │ │ │ ├─ variant_3: struct #130 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_124' #125 +│ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_124' #125 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ ├─ variant_4: struct #131 +│ │ │ │ │ │ │ └─ [in]: list 'list_126' #127 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ └─ variant_5: struct #132 +│ │ │ │ │ │ └─ [notIn]: list 'list_126' #127 +│ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ ├─ variant_4: struct #138 +│ │ │ │ │ │ └─ [_min]: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #139 +│ │ │ │ │ └─ [_max]: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ [title]: optional 'optional_463' #464 +│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #32 +│ │ │ │ └─ item: union #29 +│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #27 +│ │ │ │ │ ├─ variant_0: string #11 +│ │ │ │ │ ├─ variant_1: struct #16 +│ │ │ │ │ │ └─ [equals]: string #11 +│ │ │ │ │ ├─ variant_2: struct #17 +│ │ │ │ │ │ └─ [not]: string #11 +│ │ │ │ │ ├─ variant_3: struct #18 +│ │ │ │ │ │ └─ [in]: list 'list_14' #15 +│ │ │ │ │ │ └─ item: string #11 +│ │ │ │ │ ├─ variant_4: struct #19 +│ │ │ │ │ │ └─ [notIn]: list 'list_14' #15 +│ │ │ │ │ │ └─ item: string #11 +│ │ │ │ │ ├─ variant_5: struct #23 +│ │ │ │ │ │ ├─ [contains]: string #11 +│ │ │ │ │ │ └─ [mode]: optional 'optional_21' #22 +│ │ │ │ │ │ └─ item: string #20 enum{ '"insensitive"' } +│ │ │ │ │ ├─ variant_6: struct #24 +│ │ │ │ │ │ └─ [search]: string #11 +│ │ │ │ │ └─ variant_7: struct #25 +│ │ │ │ │ ├─ [endsWith]: optional 'optional_12' #13 +│ │ │ │ │ │ └─ item: string #11 +│ │ │ │ │ └─ [startsWith]: optional 'optional_12' #13 +│ │ │ │ │ └─ item: string #11 +│ │ │ │ └─ variant_1: struct #28 +│ │ │ │ └─ [not]: union '_prisma_string_filter' #27 +│ │ │ │ ├─ variant_0: string #11 +│ │ │ │ ├─ variant_1: struct #16 +│ │ │ │ │ └─ [equals]: string #11 +│ │ │ │ ├─ variant_2: struct #17 +│ │ │ │ │ └─ [not]: string #11 +│ │ │ │ ├─ variant_3: struct #18 +│ │ │ │ │ └─ [in]: list 'list_14' #15 +│ │ │ │ │ └─ item: string #11 +│ │ │ │ ├─ variant_4: struct #19 +│ │ │ │ │ └─ [notIn]: list 'list_14' #15 +│ │ │ │ │ └─ item: string #11 +│ │ │ │ ├─ variant_5: struct #23 +│ │ │ │ │ ├─ [contains]: string #11 +│ │ │ │ │ └─ [mode]: optional 'optional_21' #22 +│ │ │ │ │ └─ item: string #20 enum{ '"insensitive"' } +│ │ │ │ ├─ variant_6: struct #24 +│ │ │ │ │ └─ [search]: string #11 +│ │ │ │ └─ variant_7: struct #25 +│ │ │ │ ├─ [endsWith]: optional 'optional_12' #13 +│ │ │ │ │ └─ item: string #11 +│ │ │ │ └─ [startsWith]: optional 'optional_12' #13 +│ │ │ │ └─ item: string #11 +│ │ │ └─ variant_2: struct #478 +│ │ │ └─ [none]: optional 'optional_476' #477 +│ │ │ └─ item: struct 'Post_where_with_aggregates_excluding_Post_and_User_where_with_aggregates_excluding_Post' #469 +│ │ │ ├─ [author]: optional 'optional_466' #467 +│ │ │ │ └─ item: &User_where_with_aggregates_excluding_Post #465 +│ │ │ ├─ [id]: optional 'optional_461' #462 +│ │ │ │ └─ item: optional '_prisma_integer_filter_with_aggregates_ex' #146 +│ │ │ │ └─ item: union #143 +│ │ │ │ ├─ variant_0: union '_prisma_integer_filter_with_aggregates' #141 +│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_1: struct #135 +│ │ │ │ │ │ └─ [_count]: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_2: struct #136 +│ │ │ │ │ │ └─ [_sum]: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_3: struct #137 +│ │ │ │ │ │ └─ [_avg]: either '_prisma_float_filter' #134 +│ │ │ │ │ │ ├─ variant_0: float #123 +│ │ │ │ │ │ ├─ variant_1: struct #128 +│ │ │ │ │ │ │ └─ [equals]: float #123 +│ │ │ │ │ │ ├─ variant_2: struct #129 +│ │ │ │ │ │ │ └─ [not]: float #123 +│ │ │ │ │ │ ├─ variant_3: struct #130 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_124' #125 +│ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_124' #125 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ ├─ variant_4: struct #131 +│ │ │ │ │ │ │ └─ [in]: list 'list_126' #127 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ └─ variant_5: struct #132 +│ │ │ │ │ │ └─ [notIn]: list 'list_126' #127 +│ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ ├─ variant_4: struct #138 +│ │ │ │ │ │ └─ [_min]: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #139 +│ │ │ │ │ └─ [_max]: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ variant_1: struct #142 +│ │ │ │ └─ [not]: union '_prisma_integer_filter_with_aggregates' #141 +│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_1: struct #135 +│ │ │ │ │ └─ [_count]: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_2: struct #136 +│ │ │ │ │ └─ [_sum]: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_3: struct #137 +│ │ │ │ │ └─ [_avg]: either '_prisma_float_filter' #134 +│ │ │ │ │ ├─ variant_0: float #123 +│ │ │ │ │ ├─ variant_1: struct #128 +│ │ │ │ │ │ └─ [equals]: float #123 +│ │ │ │ │ ├─ variant_2: struct #129 +│ │ │ │ │ │ └─ [not]: float #123 +│ │ │ │ │ ├─ variant_3: struct #130 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_124' #125 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ └─ [lte]: optional 'optional_124' #125 +│ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ ├─ variant_4: struct #131 +│ │ │ │ │ │ └─ [in]: list 'list_126' #127 +│ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ └─ variant_5: struct #132 +│ │ │ │ │ └─ [notIn]: list 'list_126' #127 +│ │ │ │ │ └─ item: float #123 +│ │ │ │ ├─ variant_4: struct #138 +│ │ │ │ │ └─ [_min]: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ variant_5: struct #139 +│ │ │ │ └─ [_max]: either '_prisma_integer_filter' #48 +│ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ variant_5: struct #46 +│ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ └─ item: integer #37 +│ │ │ └─ [title]: optional 'optional_463' #464 +│ │ │ └─ item: optional '_prisma_string_filter_ex' #32 +│ │ │ └─ item: union #29 +│ │ │ ├─ variant_0: union '_prisma_string_filter' #27 +│ │ │ │ ├─ variant_0: string #11 +│ │ │ │ ├─ variant_1: struct #16 +│ │ │ │ │ └─ [equals]: string #11 +│ │ │ │ ├─ variant_2: struct #17 +│ │ │ │ │ └─ [not]: string #11 +│ │ │ │ ├─ variant_3: struct #18 +│ │ │ │ │ └─ [in]: list 'list_14' #15 +│ │ │ │ │ └─ item: string #11 +│ │ │ │ ├─ variant_4: struct #19 +│ │ │ │ │ └─ [notIn]: list 'list_14' #15 +│ │ │ │ │ └─ item: string #11 +│ │ │ │ ├─ variant_5: struct #23 +│ │ │ │ │ ├─ [contains]: string #11 +│ │ │ │ │ └─ [mode]: optional 'optional_21' #22 +│ │ │ │ │ └─ item: string #20 enum{ '"insensitive"' } +│ │ │ │ ├─ variant_6: struct #24 +│ │ │ │ │ └─ [search]: string #11 +│ │ │ │ └─ variant_7: struct #25 +│ │ │ │ ├─ [endsWith]: optional 'optional_12' #13 +│ │ │ │ │ └─ item: string #11 +│ │ │ │ └─ [startsWith]: optional 'optional_12' #13 +│ │ │ │ └─ item: string #11 +│ │ │ └─ variant_1: struct #28 +│ │ │ └─ [not]: union '_prisma_string_filter' #27 +│ │ │ ├─ variant_0: string #11 +│ │ │ ├─ variant_1: struct #16 +│ │ │ │ └─ [equals]: string #11 +│ │ │ ├─ variant_2: struct #17 +│ │ │ │ └─ [not]: string #11 +│ │ │ ├─ variant_3: struct #18 +│ │ │ │ └─ [in]: list 'list_14' #15 +│ │ │ │ └─ item: string #11 +│ │ │ ├─ variant_4: struct #19 +│ │ │ │ └─ [notIn]: list 'list_14' #15 +│ │ │ │ └─ item: string #11 +│ │ │ ├─ variant_5: struct #23 +│ │ │ │ ├─ [contains]: string #11 +│ │ │ │ └─ [mode]: optional 'optional_21' #22 +│ │ │ │ └─ item: string #20 enum{ '"insensitive"' } +│ │ │ ├─ variant_6: struct #24 +│ │ │ │ └─ [search]: string #11 +│ │ │ └─ variant_7: struct #25 +│ │ │ ├─ [endsWith]: optional 'optional_12' #13 +│ │ │ │ └─ item: string #11 +│ │ │ └─ [startsWith]: optional 'optional_12' #13 +│ │ │ └─ item: string #11 +│ │ ├─ [id]: optional 'optional_453' #454 +│ │ │ └─ item: optional '_prisma_integer_filter_with_aggregates_ex' #146 +│ │ │ └─ item: union #143 +│ │ │ ├─ variant_0: union '_prisma_integer_filter_with_aggregates' #141 +│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_1: struct #135 +│ │ │ │ │ └─ [_count]: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_2: struct #136 +│ │ │ │ │ └─ [_sum]: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_3: struct #137 +│ │ │ │ │ └─ [_avg]: either '_prisma_float_filter' #134 +│ │ │ │ │ ├─ variant_0: float #123 +│ │ │ │ │ ├─ variant_1: struct #128 +│ │ │ │ │ │ └─ [equals]: float #123 +│ │ │ │ │ ├─ variant_2: struct #129 +│ │ │ │ │ │ └─ [not]: float #123 +│ │ │ │ │ ├─ variant_3: struct #130 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_124' #125 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ └─ [lte]: optional 'optional_124' #125 +│ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ ├─ variant_4: struct #131 +│ │ │ │ │ │ └─ [in]: list 'list_126' #127 +│ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ └─ variant_5: struct #132 +│ │ │ │ │ └─ [notIn]: list 'list_126' #127 +│ │ │ │ │ └─ item: float #123 +│ │ │ │ ├─ variant_4: struct #138 +│ │ │ │ │ └─ [_min]: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ variant_5: struct #139 +│ │ │ │ └─ [_max]: either '_prisma_integer_filter' #48 +│ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ variant_5: struct #46 +│ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ └─ item: integer #37 +│ │ │ └─ variant_1: struct #142 +│ │ │ └─ [not]: union '_prisma_integer_filter_with_aggregates' #141 +│ │ │ ├─ variant_0: either '_prisma_integer_filter' #48 +│ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ variant_5: struct #46 +│ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ └─ item: integer #37 +│ │ │ ├─ variant_1: struct #135 +│ │ │ │ └─ [_count]: either '_prisma_integer_filter' #48 +│ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ variant_5: struct #46 +│ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ └─ item: integer #37 +│ │ │ ├─ variant_2: struct #136 +│ │ │ │ └─ [_sum]: either '_prisma_integer_filter' #48 +│ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ variant_5: struct #46 +│ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ └─ item: integer #37 +│ │ │ ├─ variant_3: struct #137 +│ │ │ │ └─ [_avg]: either '_prisma_float_filter' #134 +│ │ │ │ ├─ variant_0: float #123 +│ │ │ │ ├─ variant_1: struct #128 +│ │ │ │ │ └─ [equals]: float #123 +│ │ │ │ ├─ variant_2: struct #129 +│ │ │ │ │ └─ [not]: float #123 +│ │ │ │ ├─ variant_3: struct #130 +│ │ │ │ │ ├─ [gt]: optional 'optional_124' #125 +│ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ ├─ [gte]: optional 'optional_124' #125 +│ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ ├─ [lt]: optional 'optional_124' #125 +│ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ └─ [lte]: optional 'optional_124' #125 +│ │ │ │ │ └─ item: float #123 +│ │ │ │ ├─ variant_4: struct #131 +│ │ │ │ │ └─ [in]: list 'list_126' #127 +│ │ │ │ │ └─ item: float #123 +│ │ │ │ └─ variant_5: struct #132 +│ │ │ │ └─ [notIn]: list 'list_126' #127 +│ │ │ │ └─ item: float #123 +│ │ │ ├─ variant_4: struct #138 +│ │ │ │ └─ [_min]: either '_prisma_integer_filter' #48 +│ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ variant_5: struct #46 +│ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ └─ item: integer #37 +│ │ │ └─ variant_5: struct #139 +│ │ │ └─ [_max]: either '_prisma_integer_filter' #48 +│ │ │ ├─ variant_0: integer #37 +│ │ │ ├─ variant_1: struct #42 +│ │ │ │ └─ [equals]: integer #37 +│ │ │ ├─ variant_2: struct #43 +│ │ │ │ └─ [not]: integer #37 +│ │ │ ├─ variant_3: struct #44 +│ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ └─ item: integer #37 +│ │ │ ├─ variant_4: struct #45 +│ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ └─ item: integer #37 +│ │ │ └─ variant_5: struct #46 +│ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ └─ item: integer #37 +│ │ └─ [title]: optional 'optional_455' #456 +│ │ └─ item: optional '_prisma_string_filter_ex' #32 +│ │ └─ item: union #29 +│ │ ├─ variant_0: union '_prisma_string_filter' #27 +│ │ │ ├─ variant_0: string #11 +│ │ │ ├─ variant_1: struct #16 +│ │ │ │ └─ [equals]: string #11 +│ │ │ ├─ variant_2: struct #17 +│ │ │ │ └─ [not]: string #11 +│ │ │ ├─ variant_3: struct #18 +│ │ │ │ └─ [in]: list 'list_14' #15 +│ │ │ │ └─ item: string #11 +│ │ │ ├─ variant_4: struct #19 +│ │ │ │ └─ [notIn]: list 'list_14' #15 +│ │ │ │ └─ item: string #11 +│ │ │ ├─ variant_5: struct #23 +│ │ │ │ ├─ [contains]: string #11 +│ │ │ │ └─ [mode]: optional 'optional_21' #22 +│ │ │ │ └─ item: string #20 enum{ '"insensitive"' } +│ │ │ ├─ variant_6: struct #24 +│ │ │ │ └─ [search]: string #11 +│ │ │ └─ variant_7: struct #25 +│ │ │ ├─ [endsWith]: optional 'optional_12' #13 +│ │ │ │ └─ item: string #11 +│ │ │ └─ [startsWith]: optional 'optional_12' #13 +│ │ │ └─ item: string #11 +│ │ └─ variant_1: struct #28 +│ │ └─ [not]: union '_prisma_string_filter' #27 +│ │ ├─ variant_0: string #11 +│ │ ├─ variant_1: struct #16 +│ │ │ └─ [equals]: string #11 +│ │ ├─ variant_2: struct #17 +│ │ │ └─ [not]: string #11 +│ │ ├─ variant_3: struct #18 +│ │ │ └─ [in]: list 'list_14' #15 +│ │ │ └─ item: string #11 +│ │ ├─ variant_4: struct #19 +│ │ │ └─ [notIn]: list 'list_14' #15 +│ │ │ └─ item: string #11 +│ │ ├─ variant_5: struct #23 +│ │ │ ├─ [contains]: string #11 +│ │ │ └─ [mode]: optional 'optional_21' #22 +│ │ │ └─ item: string #20 enum{ '"insensitive"' } +│ │ ├─ variant_6: struct #24 +│ │ │ └─ [search]: string #11 +│ │ └─ variant_7: struct #25 +│ │ ├─ [endsWith]: optional 'optional_12' #13 +│ │ │ └─ item: string #11 +│ │ └─ [startsWith]: optional 'optional_12' #13 +│ │ └─ item: string #11 +│ ├─ variant_1: struct #491 +│ │ └─ [AND]: list 'list_489' #490 +│ │ └─ item: &Post_having #488 +│ ├─ variant_2: struct #494 +│ │ └─ [OR]: list 'list_492' #493 +│ │ └─ item: &Post_having #488 +│ └─ variant_3: struct #495 +│ └─ [NOT]: &Post_having #488 +├─ [orderBy]: optional 'optional_437' #438 +│ └─ item: list 'Post_order_by_with_aggregates' #436 +│ └─ item: struct #433 +│ ├─ [_avg]: optional 'optional_423' #424 +│ │ └─ item: struct #422 +│ │ └─ [id]: optional '_prisma_sort' #79 +│ │ └─ item: union #76 +│ │ ├─ variant_0: struct #75 +│ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ └─ variant_1: string '_prisma_sort_order' #72 +│ ├─ [_count]: optional 'optional_420' #421 +│ │ └─ item: struct #419 +│ │ ├─ [author]: optional '_prisma_sort' #79 +│ │ │ └─ item: union #76 +│ │ │ ├─ variant_0: struct #75 +│ │ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ │ └─ variant_1: string '_prisma_sort_order' #72 +│ │ ├─ [id]: optional '_prisma_sort' #79 +│ │ │ └─ item: union #76 +│ │ │ ├─ variant_0: struct #75 +│ │ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ │ └─ variant_1: string '_prisma_sort_order' #72 +│ │ └─ [title]: optional '_prisma_sort' #79 +│ │ └─ item: union #76 +│ │ ├─ variant_0: struct #75 +│ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ └─ variant_1: string '_prisma_sort_order' #72 +│ ├─ [_max]: optional 'optional_423' #424 +│ │ └─ item: struct #422 +│ │ └─ [id]: optional '_prisma_sort' #79 +│ │ └─ item: union #76 +│ │ ├─ variant_0: struct #75 +│ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ └─ variant_1: string '_prisma_sort_order' #72 +│ ├─ [_min]: optional 'optional_423' #424 +│ │ └─ item: struct #422 +│ │ └─ [id]: optional '_prisma_sort' #79 +│ │ └─ item: union #76 +│ │ ├─ variant_0: struct #75 +│ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ └─ variant_1: string '_prisma_sort_order' #72 +│ ├─ [_sum]: optional 'optional_423' #424 +│ │ └─ item: struct #422 +│ │ └─ [id]: optional '_prisma_sort' #79 +│ │ └─ item: union #76 +│ │ ├─ variant_0: struct #75 +│ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ └─ variant_1: string '_prisma_sort_order' #72 +│ ├─ [author]: optional 'optional_431' #432 +│ │ └─ item: list 'User_order_by_withoutrel_Post_User' #430 +│ │ └─ item: struct #427 +│ │ ├─ [id]: optional '_prisma_sort' #79 +│ │ │ └─ item: union #76 +│ │ │ ├─ variant_0: struct #75 +│ │ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ │ └─ variant_1: string '_prisma_sort_order' #72 +│ │ └─ [name]: optional '_prisma_sort' #79 +│ │ └─ item: union #76 +│ │ ├─ variant_0: struct #75 +│ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ └─ variant_1: string '_prisma_sort_order' #72 +│ ├─ [id]: optional '_prisma_sort' #79 +│ │ └─ item: union #76 +│ │ ├─ variant_0: struct #75 +│ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ └─ variant_1: string '_prisma_sort_order' #72 +│ └─ [title]: optional '_prisma_sort' #79 +│ └─ item: union #76 +│ ├─ variant_0: struct #75 +│ │ └─ [sort]: string '_prisma_sort_order' #72 +│ └─ variant_1: string '_prisma_sort_order' #72 +├─ [skip]: optional 'optional_441' #442 +│ └─ item: integer '_skip' #104 +├─ [take]: optional 'optional_439' #440 +│ └─ item: integer '_take' #100 +└─ [where]: optional 'optional_417' #418 + └─ item: struct 'Post_query_where_input' #416 + ├─ [AND]: optional 'optional_411' #412 + │ └─ item: list 'list_409' #410 + │ └─ item: &Post_query_where_input #408 + ├─ [NOT]: optional 'optional_413' #414 + │ └─ item: &Post_query_where_input #408 + ├─ [OR]: optional 'optional_411' #412 + │ └─ item: list 'list_409' #410 + │ └─ item: &Post_query_where_input #408 + ├─ [author]: optional 'optional_404' #405 + │ └─ item: struct 'User_where_excluding_Post' #403 + │ ├─ [id]: optional 'optional_377' #378 + │ │ └─ item: optional '_prisma_integer_filter_ex' #53 + │ │ └─ item: union #50 + │ │ ├─ variant_0: either '_prisma_integer_filter' #48 + │ │ │ ├─ variant_0: integer #37 + │ │ │ ├─ variant_1: struct #42 + │ │ │ │ └─ [equals]: integer #37 + │ │ │ ├─ variant_2: struct #43 + │ │ │ │ └─ [not]: integer #37 + │ │ │ ├─ variant_3: struct #44 + │ │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ variant_4: struct #45 + │ │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ variant_5: struct #46 + │ │ │ └─ [notIn]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ variant_1: struct #49 + │ │ └─ [not]: either '_prisma_integer_filter' #48 + │ │ ├─ variant_0: integer #37 + │ │ ├─ variant_1: struct #42 + │ │ │ └─ [equals]: integer #37 + │ │ ├─ variant_2: struct #43 + │ │ │ └─ [not]: integer #37 + │ │ ├─ variant_3: struct #44 + │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ variant_4: struct #45 + │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ variant_5: struct #46 + │ │ └─ [notIn]: list 'list_40' #41 + │ │ └─ item: integer #37 + │ ├─ [name]: optional 'optional_379' #380 + │ │ └─ item: optional '_prisma_string_filter_ex' #32 + │ │ └─ item: union #29 + │ │ ├─ variant_0: union '_prisma_string_filter' #27 + │ │ │ ├─ variant_0: string #11 + │ │ │ ├─ variant_1: struct #16 + │ │ │ │ └─ [equals]: string #11 + │ │ │ ├─ variant_2: struct #17 + │ │ │ │ └─ [not]: string #11 + │ │ │ ├─ variant_3: struct #18 + │ │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ │ └─ item: string #11 + │ │ │ ├─ variant_4: struct #19 + │ │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ │ └─ item: string #11 + │ │ │ ├─ variant_5: struct #23 + │ │ │ │ ├─ [contains]: string #11 + │ │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #24 + │ │ │ │ └─ [search]: string #11 + │ │ │ └─ variant_7: struct #25 + │ │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ │ └─ item: string #11 + │ │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ variant_1: struct #28 + │ │ └─ [not]: union '_prisma_string_filter' #27 + │ │ ├─ variant_0: string #11 + │ │ ├─ variant_1: struct #16 + │ │ │ └─ [equals]: string #11 + │ │ ├─ variant_2: struct #17 + │ │ │ └─ [not]: string #11 + │ │ ├─ variant_3: struct #18 + │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_4: struct #19 + │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_5: struct #23 + │ │ │ ├─ [contains]: string #11 + │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #24 + │ │ │ └─ [search]: string #11 + │ │ └─ variant_7: struct #25 + │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ [posts]: optional 'optional_400' #401 + │ └─ item: union #399 + │ ├─ variant_0: struct #392 + │ │ └─ [every]: optional 'optional_390' #391 + │ │ └─ item: struct 'Post_where_excluding_Post_and_User_where_excluding_Post' #389 + │ │ ├─ [author]: optional 'optional_386' #387 + │ │ │ └─ item: &User_where_excluding_Post #385 + │ │ ├─ [id]: optional 'optional_381' #382 + │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 + │ │ │ └─ item: union #50 + │ │ │ ├─ variant_0: either '_prisma_integer_filter' #48 + │ │ │ │ ├─ variant_0: integer #37 + │ │ │ │ ├─ variant_1: struct #42 + │ │ │ │ │ └─ [equals]: integer #37 + │ │ │ │ ├─ variant_2: struct #43 + │ │ │ │ │ └─ [not]: integer #37 + │ │ │ │ ├─ variant_3: struct #44 + │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ │ │ └─ item: integer #37 + │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ │ │ └─ item: integer #37 + │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ │ │ └─ item: integer #37 + │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ variant_4: struct #45 + │ │ │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ └─ variant_5: struct #46 + │ │ │ │ └─ [notIn]: list 'list_40' #41 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ variant_1: struct #49 + │ │ │ └─ [not]: either '_prisma_integer_filter' #48 + │ │ │ ├─ variant_0: integer #37 + │ │ │ ├─ variant_1: struct #42 + │ │ │ │ └─ [equals]: integer #37 + │ │ │ ├─ variant_2: struct #43 + │ │ │ │ └─ [not]: integer #37 + │ │ │ ├─ variant_3: struct #44 + │ │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ variant_4: struct #45 + │ │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ variant_5: struct #46 + │ │ │ └─ [notIn]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ [title]: optional 'optional_383' #384 + │ │ └─ item: optional '_prisma_string_filter_ex' #32 + │ │ └─ item: union #29 + │ │ ├─ variant_0: union '_prisma_string_filter' #27 + │ │ │ ├─ variant_0: string #11 + │ │ │ ├─ variant_1: struct #16 + │ │ │ │ └─ [equals]: string #11 + │ │ │ ├─ variant_2: struct #17 + │ │ │ │ └─ [not]: string #11 + │ │ │ ├─ variant_3: struct #18 + │ │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ │ └─ item: string #11 + │ │ │ ├─ variant_4: struct #19 + │ │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ │ └─ item: string #11 + │ │ │ ├─ variant_5: struct #23 + │ │ │ │ ├─ [contains]: string #11 + │ │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #24 + │ │ │ │ └─ [search]: string #11 + │ │ │ └─ variant_7: struct #25 + │ │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ │ └─ item: string #11 + │ │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ variant_1: struct #28 + │ │ └─ [not]: union '_prisma_string_filter' #27 + │ │ ├─ variant_0: string #11 + │ │ ├─ variant_1: struct #16 + │ │ │ └─ [equals]: string #11 + │ │ ├─ variant_2: struct #17 + │ │ │ └─ [not]: string #11 + │ │ ├─ variant_3: struct #18 + │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_4: struct #19 + │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_5: struct #23 + │ │ │ ├─ [contains]: string #11 + │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #24 + │ │ │ └─ [search]: string #11 + │ │ └─ variant_7: struct #25 + │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ ├─ variant_1: struct #395 + │ │ └─ [some]: optional 'optional_393' #394 + │ │ └─ item: struct 'Post_where_excluding_Post_and_User_where_excluding_Post' #389 + │ │ ├─ [author]: optional 'optional_386' #387 + │ │ │ └─ item: &User_where_excluding_Post #385 + │ │ ├─ [id]: optional 'optional_381' #382 + │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 + │ │ │ └─ item: union #50 + │ │ │ ├─ variant_0: either '_prisma_integer_filter' #48 + │ │ │ │ ├─ variant_0: integer #37 + │ │ │ │ ├─ variant_1: struct #42 + │ │ │ │ │ └─ [equals]: integer #37 + │ │ │ │ ├─ variant_2: struct #43 + │ │ │ │ │ └─ [not]: integer #37 + │ │ │ │ ├─ variant_3: struct #44 + │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ │ │ └─ item: integer #37 + │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ │ │ └─ item: integer #37 + │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ │ │ └─ item: integer #37 + │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ variant_4: struct #45 + │ │ │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ └─ variant_5: struct #46 + │ │ │ │ └─ [notIn]: list 'list_40' #41 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ variant_1: struct #49 + │ │ │ └─ [not]: either '_prisma_integer_filter' #48 + │ │ │ ├─ variant_0: integer #37 + │ │ │ ├─ variant_1: struct #42 + │ │ │ │ └─ [equals]: integer #37 + │ │ │ ├─ variant_2: struct #43 + │ │ │ │ └─ [not]: integer #37 + │ │ │ ├─ variant_3: struct #44 + │ │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ variant_4: struct #45 + │ │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ variant_5: struct #46 + │ │ │ └─ [notIn]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ [title]: optional 'optional_383' #384 + │ │ └─ item: optional '_prisma_string_filter_ex' #32 + │ │ └─ item: union #29 + │ │ ├─ variant_0: union '_prisma_string_filter' #27 + │ │ │ ├─ variant_0: string #11 + │ │ │ ├─ variant_1: struct #16 + │ │ │ │ └─ [equals]: string #11 + │ │ │ ├─ variant_2: struct #17 + │ │ │ │ └─ [not]: string #11 + │ │ │ ├─ variant_3: struct #18 + │ │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ │ └─ item: string #11 + │ │ │ ├─ variant_4: struct #19 + │ │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ │ └─ item: string #11 + │ │ │ ├─ variant_5: struct #23 + │ │ │ │ ├─ [contains]: string #11 + │ │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #24 + │ │ │ │ └─ [search]: string #11 + │ │ │ └─ variant_7: struct #25 + │ │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ │ └─ item: string #11 + │ │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ variant_1: struct #28 + │ │ └─ [not]: union '_prisma_string_filter' #27 + │ │ ├─ variant_0: string #11 + │ │ ├─ variant_1: struct #16 + │ │ │ └─ [equals]: string #11 + │ │ ├─ variant_2: struct #17 + │ │ │ └─ [not]: string #11 + │ │ ├─ variant_3: struct #18 + │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_4: struct #19 + │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_5: struct #23 + │ │ │ ├─ [contains]: string #11 + │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #24 + │ │ │ └─ [search]: string #11 + │ │ └─ variant_7: struct #25 + │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ variant_2: struct #398 + │ └─ [none]: optional 'optional_396' #397 + │ └─ item: struct 'Post_where_excluding_Post_and_User_where_excluding_Post' #389 + │ ├─ [author]: optional 'optional_386' #387 + │ │ └─ item: &User_where_excluding_Post #385 + │ ├─ [id]: optional 'optional_381' #382 + │ │ └─ item: optional '_prisma_integer_filter_ex' #53 + │ │ └─ item: union #50 + │ │ ├─ variant_0: either '_prisma_integer_filter' #48 + │ │ │ ├─ variant_0: integer #37 + │ │ │ ├─ variant_1: struct #42 + │ │ │ │ └─ [equals]: integer #37 + │ │ │ ├─ variant_2: struct #43 + │ │ │ │ └─ [not]: integer #37 + │ │ │ ├─ variant_3: struct #44 + │ │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ variant_4: struct #45 + │ │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ variant_5: struct #46 + │ │ │ └─ [notIn]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ variant_1: struct #49 + │ │ └─ [not]: either '_prisma_integer_filter' #48 + │ │ ├─ variant_0: integer #37 + │ │ ├─ variant_1: struct #42 + │ │ │ └─ [equals]: integer #37 + │ │ ├─ variant_2: struct #43 + │ │ │ └─ [not]: integer #37 + │ │ ├─ variant_3: struct #44 + │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ variant_4: struct #45 + │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ variant_5: struct #46 + │ │ └─ [notIn]: list 'list_40' #41 + │ │ └─ item: integer #37 + │ └─ [title]: optional 'optional_383' #384 + │ └─ item: optional '_prisma_string_filter_ex' #32 + │ └─ item: union #29 + │ ├─ variant_0: union '_prisma_string_filter' #27 + │ │ ├─ variant_0: string #11 + │ │ ├─ variant_1: struct #16 + │ │ │ └─ [equals]: string #11 + │ │ ├─ variant_2: struct #17 + │ │ │ └─ [not]: string #11 + │ │ ├─ variant_3: struct #18 + │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_4: struct #19 + │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_5: struct #23 + │ │ │ ├─ [contains]: string #11 + │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #24 + │ │ │ └─ [search]: string #11 + │ │ └─ variant_7: struct #25 + │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ variant_1: struct #28 + │ └─ [not]: union '_prisma_string_filter' #27 + │ ├─ variant_0: string #11 + │ ├─ variant_1: struct #16 + │ │ └─ [equals]: string #11 + │ ├─ variant_2: struct #17 + │ │ └─ [not]: string #11 + │ ├─ variant_3: struct #18 + │ │ └─ [in]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_4: struct #19 + │ │ └─ [notIn]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_5: struct #23 + │ │ ├─ [contains]: string #11 + │ │ └─ [mode]: optional 'optional_21' #22 + │ │ └─ item: string #20 enum{ '"insensitive"' } + │ ├─ variant_6: struct #24 + │ │ └─ [search]: string #11 + │ └─ variant_7: struct #25 + │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ [startsWith]: optional 'optional_12' #13 + │ └─ item: string #11 + ├─ [id]: optional 'optional_373' #374 + │ └─ item: optional '_prisma_integer_filter_ex' #53 + │ └─ item: union #50 + │ ├─ variant_0: either '_prisma_integer_filter' #48 + │ │ ├─ variant_0: integer #37 + │ │ ├─ variant_1: struct #42 + │ │ │ └─ [equals]: integer #37 + │ │ ├─ variant_2: struct #43 + │ │ │ └─ [not]: integer #37 + │ │ ├─ variant_3: struct #44 + │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ variant_4: struct #45 + │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ variant_5: struct #46 + │ │ └─ [notIn]: list 'list_40' #41 + │ │ └─ item: integer #37 + │ └─ variant_1: struct #49 + │ └─ [not]: either '_prisma_integer_filter' #48 + │ ├─ variant_0: integer #37 + │ ├─ variant_1: struct #42 + │ │ └─ [equals]: integer #37 + │ ├─ variant_2: struct #43 + │ │ └─ [not]: integer #37 + │ ├─ variant_3: struct #44 + │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ └─ [lte]: optional 'optional_38' #39 + │ │ └─ item: integer #37 + │ ├─ variant_4: struct #45 + │ │ └─ [in]: list 'list_40' #41 + │ │ └─ item: integer #37 + │ └─ variant_5: struct #46 + │ └─ [notIn]: list 'list_40' #41 + │ └─ item: integer #37 + └─ [title]: optional 'optional_375' #376 + └─ item: optional '_prisma_string_filter_ex' #32 + └─ item: union #29 + ├─ variant_0: union '_prisma_string_filter' #27 + │ ├─ variant_0: string #11 + │ ├─ variant_1: struct #16 + │ │ └─ [equals]: string #11 + │ ├─ variant_2: struct #17 + │ │ └─ [not]: string #11 + │ ├─ variant_3: struct #18 + │ │ └─ [in]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_4: struct #19 + │ │ └─ [notIn]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_5: struct #23 + │ │ ├─ [contains]: string #11 + │ │ └─ [mode]: optional 'optional_21' #22 + │ │ └─ item: string #20 enum{ '"insensitive"' } + │ ├─ variant_6: struct #24 + │ │ └─ [search]: string #11 + │ └─ variant_7: struct #25 + │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ [startsWith]: optional 'optional_12' #13 + │ └─ item: string #11 + └─ variant_1: struct #28 + └─ [not]: union '_prisma_string_filter' #27 + ├─ variant_0: string #11 + ├─ variant_1: struct #16 + │ └─ [equals]: string #11 + ├─ variant_2: struct #17 + │ └─ [not]: string #11 + ├─ variant_3: struct #18 + │ └─ [in]: list 'list_14' #15 + │ └─ item: string #11 + ├─ variant_4: struct #19 + │ └─ [notIn]: list 'list_14' #15 + │ └─ item: string #11 + ├─ variant_5: struct #23 + │ ├─ [contains]: string #11 + │ └─ [mode]: optional 'optional_21' #22 + │ └─ item: string #20 enum{ '"insensitive"' } + ├─ variant_6: struct #24 + │ └─ [search]: string #11 + └─ variant_7: struct #25 + ├─ [endsWith]: optional 'optional_12' #13 + │ └─ item: string #11 + └─ [startsWith]: optional 'optional_12' #13 + └─ item: string #11 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__group_by Post out.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__group_by Post out.snap index 3c18280a17..81ab6ef9be 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__group_by Post out.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__group_by Post out.snap @@ -2,29 +2,29 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs expression: tp.print(out) --- -root: list 'Post_group' #287 -└─ item: struct #286 - ├─ [_avg]: struct 'Post_number_fields_float' #280 - │ └─ [id]: optional 'optional_279' #279 - │ └─ item: float #278 - ├─ [_count]: struct 'Post_count_aggregate' #277 - │ ├─ [_all]: optional 'optional_276' #276 - │ │ └─ item: integer #275 - │ ├─ [author]: optional 'optional_276' #276 - │ │ └─ item: integer #275 - │ ├─ [id]: optional 'optional_276' #276 - │ │ └─ item: integer #275 - │ └─ [title]: optional 'optional_276' #276 - │ └─ item: integer #275 - ├─ [_max]: struct 'Post_number_fields' #285 - │ └─ [id]: optional 'optional_284' #284 - │ └─ item: integer #283 - ├─ [_min]: struct 'Post_number_fields' #285 - │ └─ [id]: optional 'optional_284' #284 - │ └─ item: integer #283 - ├─ [_sum]: struct 'Post_number_fields' #285 - │ └─ [id]: optional 'optional_284' #284 - │ └─ item: integer #283 - ├─ [author]: &User #129 - ├─ [id]: integer #127 - └─ [title]: string #128 +root: list 'Post_group' #523 +└─ item: struct #520 + ├─ [_avg]: struct 'Post_number_fields_float' #511 + │ └─ [id]: optional 'optional_508' #509 + │ └─ item: float #507 + ├─ [_count]: struct 'Post_count_aggregate' #506 + │ ├─ [_all]: optional 'optional_503' #504 + │ │ └─ item: integer #502 + │ ├─ [author]: optional 'optional_503' #504 + │ │ └─ item: integer #502 + │ ├─ [id]: optional 'optional_503' #504 + │ │ └─ item: integer #502 + │ └─ [title]: optional 'optional_503' #504 + │ └─ item: integer #502 + ├─ [_max]: struct 'Post_number_fields' #519 + │ └─ [id]: optional 'optional_516' #517 + │ └─ item: integer #515 + ├─ [_min]: struct 'Post_number_fields' #519 + │ └─ [id]: optional 'optional_516' #517 + │ └─ item: integer #515 + ├─ [_sum]: struct 'Post_number_fields' #519 + │ └─ [id]: optional 'optional_516' #517 + │ └─ item: integer #515 + ├─ [author]: &User #201 + ├─ [id]: integer #199 + └─ [title]: string #200 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__group_by Record inp.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__group_by Record inp.snap index 6571519878..b6a39034f7 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__group_by Record inp.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__group_by Record inp.snap @@ -2,734 +2,734 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs expression: tp.print(inp) --- -root: struct 'Record_group_by_query_input' #106 -├─ [by]: list 'Record_group_by' #74 -│ └─ item: string #73 enum{ '"id"', '"name"', '"age"', '"created_at"' } -├─ [cursor]: optional 'optional_72' #72 -│ └─ item: union 'Record_cursor' #71 -│ ├─ variant_0: struct #67 -│ │ └─ [id]: string #2 -│ ├─ variant_1: struct #68 -│ │ └─ [name]: string #4 -│ ├─ variant_2: struct #69 -│ │ └─ [age]: integer #5 -│ └─ variant_3: struct #70 -│ └─ [created_at]: string #0 -├─ [having]: optional 'optional_105' #105 -│ └─ item: union 'Record_having' #104 -│ ├─ variant_0: struct 'Record_where_with_aggregates' #97 -│ │ ├─ [age]: optional 'optional_95' #95 -│ │ │ └─ item: optional '_prisma_integer_filter_with_aggregates_ex' #94 -│ │ │ └─ item: union #93 -│ │ │ ├─ variant_0: union '_prisma_integer_filter_with_aggregates' #91 -│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #34 -│ │ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ variant_5: struct #33 -│ │ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_1: struct #86 -│ │ │ │ │ └─ [_count]: either '_prisma_integer_filter' #34 -│ │ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ variant_5: struct #33 -│ │ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_2: struct #87 -│ │ │ │ │ └─ [_sum]: either '_prisma_integer_filter' #34 -│ │ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ variant_5: struct #33 -│ │ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_3: struct #88 -│ │ │ │ │ └─ [_avg]: either '_prisma_float_filter' #85 -│ │ │ │ │ ├─ variant_0: float #77 -│ │ │ │ │ ├─ variant_1: struct #80 -│ │ │ │ │ │ └─ [equals]: float #77 -│ │ │ │ │ ├─ variant_2: struct #81 -│ │ │ │ │ │ └─ [not]: float #77 -│ │ │ │ │ ├─ variant_3: struct #82 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_78' #78 -│ │ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_78' #78 -│ │ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_78' #78 -│ │ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ │ └─ [lte]: optional 'optional_78' #78 -│ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ ├─ variant_4: struct #83 -│ │ │ │ │ │ └─ [in]: list 'list_79' #79 -│ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ └─ variant_5: struct #84 -│ │ │ │ │ └─ [notIn]: list 'list_79' #79 -│ │ │ │ │ └─ item: float #77 -│ │ │ │ ├─ variant_4: struct #89 -│ │ │ │ │ └─ [_min]: either '_prisma_integer_filter' #34 -│ │ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ variant_5: struct #33 -│ │ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ └─ variant_5: struct #90 -│ │ │ │ └─ [_max]: either '_prisma_integer_filter' #34 -│ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ └─ variant_5: struct #33 -│ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ └─ item: integer #26 -│ │ │ └─ variant_1: struct #92 -│ │ │ └─ [not]: union '_prisma_integer_filter_with_aggregates' #91 -│ │ │ ├─ variant_0: either '_prisma_integer_filter' #34 -│ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ └─ variant_5: struct #33 -│ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ └─ item: integer #26 -│ │ │ ├─ variant_1: struct #86 -│ │ │ │ └─ [_count]: either '_prisma_integer_filter' #34 -│ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ └─ variant_5: struct #33 -│ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ └─ item: integer #26 -│ │ │ ├─ variant_2: struct #87 -│ │ │ │ └─ [_sum]: either '_prisma_integer_filter' #34 -│ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ └─ variant_5: struct #33 -│ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ └─ item: integer #26 -│ │ │ ├─ variant_3: struct #88 -│ │ │ │ └─ [_avg]: either '_prisma_float_filter' #85 -│ │ │ │ ├─ variant_0: float #77 -│ │ │ │ ├─ variant_1: struct #80 -│ │ │ │ │ └─ [equals]: float #77 -│ │ │ │ ├─ variant_2: struct #81 -│ │ │ │ │ └─ [not]: float #77 -│ │ │ │ ├─ variant_3: struct #82 -│ │ │ │ │ ├─ [gt]: optional 'optional_78' #78 -│ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ ├─ [gte]: optional 'optional_78' #78 -│ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ ├─ [lt]: optional 'optional_78' #78 -│ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ └─ [lte]: optional 'optional_78' #78 -│ │ │ │ │ └─ item: float #77 -│ │ │ │ ├─ variant_4: struct #83 -│ │ │ │ │ └─ [in]: list 'list_79' #79 -│ │ │ │ │ └─ item: float #77 -│ │ │ │ └─ variant_5: struct #84 -│ │ │ │ └─ [notIn]: list 'list_79' #79 -│ │ │ │ └─ item: float #77 -│ │ │ ├─ variant_4: struct #89 -│ │ │ │ └─ [_min]: either '_prisma_integer_filter' #34 -│ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ └─ variant_5: struct #33 -│ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ └─ item: integer #26 -│ │ │ └─ variant_5: struct #90 -│ │ │ └─ [_max]: either '_prisma_integer_filter' #34 -│ │ │ ├─ variant_0: integer #26 -│ │ │ ├─ variant_1: struct #29 -│ │ │ │ └─ [equals]: integer #26 -│ │ │ ├─ variant_2: struct #30 -│ │ │ │ └─ [not]: integer #26 -│ │ │ ├─ variant_3: struct #31 -│ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ └─ item: integer #26 -│ │ │ ├─ variant_4: struct #32 -│ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ └─ item: integer #26 -│ │ │ └─ variant_5: struct #33 -│ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ └─ item: integer #26 -│ │ ├─ [created_at]: optional 'optional_96' #96 -│ │ │ └─ item: optional '_prisma_string_filter_ex' #23 -│ │ │ └─ item: union #22 -│ │ │ ├─ variant_0: union '_prisma_string_filter' #20 -│ │ │ │ ├─ variant_0: string #8 -│ │ │ │ ├─ variant_1: struct #11 -│ │ │ │ │ └─ [equals]: string #8 -│ │ │ │ ├─ variant_2: struct #12 -│ │ │ │ │ └─ [not]: string #8 -│ │ │ │ ├─ variant_3: struct #13 -│ │ │ │ │ └─ [in]: list 'list_10' #10 -│ │ │ │ │ └─ item: string #8 -│ │ │ │ ├─ variant_4: struct #14 -│ │ │ │ │ └─ [notIn]: list 'list_10' #10 -│ │ │ │ │ └─ item: string #8 -│ │ │ │ ├─ variant_5: struct #17 -│ │ │ │ │ ├─ [contains]: string #8 -│ │ │ │ │ └─ [mode]: optional 'optional_16' #16 -│ │ │ │ │ └─ item: string #15 enum{ '"insensitive"' } -│ │ │ │ ├─ variant_6: struct #18 -│ │ │ │ │ └─ [search]: string #8 -│ │ │ │ └─ variant_7: struct #19 -│ │ │ │ ├─ [endsWith]: optional 'optional_9' #9 -│ │ │ │ │ └─ item: string #8 -│ │ │ │ └─ [startsWith]: optional 'optional_9' #9 -│ │ │ │ └─ item: string #8 -│ │ │ └─ variant_1: struct #21 -│ │ │ └─ [not]: union '_prisma_string_filter' #20 -│ │ │ ├─ variant_0: string #8 -│ │ │ ├─ variant_1: struct #11 -│ │ │ │ └─ [equals]: string #8 -│ │ │ ├─ variant_2: struct #12 -│ │ │ │ └─ [not]: string #8 -│ │ │ ├─ variant_3: struct #13 -│ │ │ │ └─ [in]: list 'list_10' #10 -│ │ │ │ └─ item: string #8 -│ │ │ ├─ variant_4: struct #14 -│ │ │ │ └─ [notIn]: list 'list_10' #10 -│ │ │ │ └─ item: string #8 -│ │ │ ├─ variant_5: struct #17 -│ │ │ │ ├─ [contains]: string #8 -│ │ │ │ └─ [mode]: optional 'optional_16' #16 -│ │ │ │ └─ item: string #15 enum{ '"insensitive"' } -│ │ │ ├─ variant_6: struct #18 -│ │ │ │ └─ [search]: string #8 -│ │ │ └─ variant_7: struct #19 -│ │ │ ├─ [endsWith]: optional 'optional_9' #9 -│ │ │ │ └─ item: string #8 -│ │ │ └─ [startsWith]: optional 'optional_9' #9 -│ │ │ └─ item: string #8 -│ │ ├─ [id]: optional 'optional_75' #75 -│ │ │ └─ item: optional '_prisma_string_filter_ex' #23 -│ │ │ └─ item: union #22 -│ │ │ ├─ variant_0: union '_prisma_string_filter' #20 -│ │ │ │ ├─ variant_0: string #8 -│ │ │ │ ├─ variant_1: struct #11 -│ │ │ │ │ └─ [equals]: string #8 -│ │ │ │ ├─ variant_2: struct #12 -│ │ │ │ │ └─ [not]: string #8 -│ │ │ │ ├─ variant_3: struct #13 -│ │ │ │ │ └─ [in]: list 'list_10' #10 -│ │ │ │ │ └─ item: string #8 -│ │ │ │ ├─ variant_4: struct #14 -│ │ │ │ │ └─ [notIn]: list 'list_10' #10 -│ │ │ │ │ └─ item: string #8 -│ │ │ │ ├─ variant_5: struct #17 -│ │ │ │ │ ├─ [contains]: string #8 -│ │ │ │ │ └─ [mode]: optional 'optional_16' #16 -│ │ │ │ │ └─ item: string #15 enum{ '"insensitive"' } -│ │ │ │ ├─ variant_6: struct #18 -│ │ │ │ │ └─ [search]: string #8 -│ │ │ │ └─ variant_7: struct #19 -│ │ │ │ ├─ [endsWith]: optional 'optional_9' #9 -│ │ │ │ │ └─ item: string #8 -│ │ │ │ └─ [startsWith]: optional 'optional_9' #9 -│ │ │ │ └─ item: string #8 -│ │ │ └─ variant_1: struct #21 -│ │ │ └─ [not]: union '_prisma_string_filter' #20 -│ │ │ ├─ variant_0: string #8 -│ │ │ ├─ variant_1: struct #11 -│ │ │ │ └─ [equals]: string #8 -│ │ │ ├─ variant_2: struct #12 -│ │ │ │ └─ [not]: string #8 -│ │ │ ├─ variant_3: struct #13 -│ │ │ │ └─ [in]: list 'list_10' #10 -│ │ │ │ └─ item: string #8 -│ │ │ ├─ variant_4: struct #14 -│ │ │ │ └─ [notIn]: list 'list_10' #10 -│ │ │ │ └─ item: string #8 -│ │ │ ├─ variant_5: struct #17 -│ │ │ │ ├─ [contains]: string #8 -│ │ │ │ └─ [mode]: optional 'optional_16' #16 -│ │ │ │ └─ item: string #15 enum{ '"insensitive"' } -│ │ │ ├─ variant_6: struct #18 -│ │ │ │ └─ [search]: string #8 -│ │ │ └─ variant_7: struct #19 -│ │ │ ├─ [endsWith]: optional 'optional_9' #9 -│ │ │ │ └─ item: string #8 -│ │ │ └─ [startsWith]: optional 'optional_9' #9 -│ │ │ └─ item: string #8 -│ │ └─ [name]: optional 'optional_76' #76 -│ │ └─ item: optional '_prisma_string_filter_ex' #23 -│ │ └─ item: union #22 -│ │ ├─ variant_0: union '_prisma_string_filter' #20 -│ │ │ ├─ variant_0: string #8 -│ │ │ ├─ variant_1: struct #11 -│ │ │ │ └─ [equals]: string #8 -│ │ │ ├─ variant_2: struct #12 -│ │ │ │ └─ [not]: string #8 -│ │ │ ├─ variant_3: struct #13 -│ │ │ │ └─ [in]: list 'list_10' #10 -│ │ │ │ └─ item: string #8 -│ │ │ ├─ variant_4: struct #14 -│ │ │ │ └─ [notIn]: list 'list_10' #10 -│ │ │ │ └─ item: string #8 -│ │ │ ├─ variant_5: struct #17 -│ │ │ │ ├─ [contains]: string #8 -│ │ │ │ └─ [mode]: optional 'optional_16' #16 -│ │ │ │ └─ item: string #15 enum{ '"insensitive"' } -│ │ │ ├─ variant_6: struct #18 -│ │ │ │ └─ [search]: string #8 -│ │ │ └─ variant_7: struct #19 -│ │ │ ├─ [endsWith]: optional 'optional_9' #9 -│ │ │ │ └─ item: string #8 -│ │ │ └─ [startsWith]: optional 'optional_9' #9 -│ │ │ └─ item: string #8 -│ │ └─ variant_1: struct #21 -│ │ └─ [not]: union '_prisma_string_filter' #20 -│ │ ├─ variant_0: string #8 -│ │ ├─ variant_1: struct #11 -│ │ │ └─ [equals]: string #8 -│ │ ├─ variant_2: struct #12 -│ │ │ └─ [not]: string #8 -│ │ ├─ variant_3: struct #13 -│ │ │ └─ [in]: list 'list_10' #10 -│ │ │ └─ item: string #8 -│ │ ├─ variant_4: struct #14 -│ │ │ └─ [notIn]: list 'list_10' #10 -│ │ │ └─ item: string #8 -│ │ ├─ variant_5: struct #17 -│ │ │ ├─ [contains]: string #8 -│ │ │ └─ [mode]: optional 'optional_16' #16 -│ │ │ └─ item: string #15 enum{ '"insensitive"' } -│ │ ├─ variant_6: struct #18 -│ │ │ └─ [search]: string #8 -│ │ └─ variant_7: struct #19 -│ │ ├─ [endsWith]: optional 'optional_9' #9 -│ │ │ └─ item: string #8 -│ │ └─ [startsWith]: optional 'optional_9' #9 -│ │ └─ item: string #8 -│ ├─ variant_1: struct #100 -│ │ └─ [AND]: list 'list_99' #99 -│ │ └─ item: &Record_having #98 -│ ├─ variant_2: struct #102 -│ │ └─ [OR]: list 'list_101' #101 -│ │ └─ item: &Record_having #98 -│ └─ variant_3: struct #103 -│ └─ [NOT]: &Record_having #98 -├─ [orderBy]: optional 'optional_62' #62 -│ └─ item: list 'Record_order_by_with_aggregates' #61 -│ └─ item: struct #60 -│ ├─ [_avg]: optional 'optional_58' #58 -│ │ └─ item: struct #57 -│ │ └─ [age]: optional '_prisma_sort_nullable' #54 -│ │ └─ item: union #53 -│ │ ├─ variant_0: struct #52 -│ │ │ ├─ [nulls]: string '_prisma_nulls_order' #48 enum{ '"first"', '"last"' } -│ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ ├─ [_count]: optional 'optional_56' #56 -│ │ └─ item: struct #55 -│ │ ├─ [age]: optional '_prisma_sort_nullable' #54 -│ │ │ └─ item: union #53 -│ │ │ ├─ variant_0: struct #52 -│ │ │ │ ├─ [nulls]: string '_prisma_nulls_order' #48 enum{ '"first"', '"last"' } -│ │ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ ├─ [created_at]: optional '_prisma_sort' #51 -│ │ │ └─ item: union #50 -│ │ │ ├─ variant_0: struct #49 -│ │ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ ├─ [id]: optional '_prisma_sort' #51 -│ │ │ └─ item: union #50 -│ │ │ ├─ variant_0: struct #49 -│ │ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ └─ [name]: optional '_prisma_sort' #51 -│ │ └─ item: union #50 -│ │ ├─ variant_0: struct #49 -│ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ ├─ [_max]: optional 'optional_58' #58 -│ │ └─ item: struct #57 -│ │ └─ [age]: optional '_prisma_sort_nullable' #54 -│ │ └─ item: union #53 -│ │ ├─ variant_0: struct #52 -│ │ │ ├─ [nulls]: string '_prisma_nulls_order' #48 enum{ '"first"', '"last"' } -│ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ ├─ [_min]: optional 'optional_58' #58 -│ │ └─ item: struct #57 -│ │ └─ [age]: optional '_prisma_sort_nullable' #54 -│ │ └─ item: union #53 -│ │ ├─ variant_0: struct #52 -│ │ │ ├─ [nulls]: string '_prisma_nulls_order' #48 enum{ '"first"', '"last"' } -│ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ ├─ [_sum]: optional 'optional_58' #58 -│ │ └─ item: struct #57 -│ │ └─ [age]: optional '_prisma_sort_nullable' #54 -│ │ └─ item: union #53 -│ │ ├─ variant_0: struct #52 -│ │ │ ├─ [nulls]: string '_prisma_nulls_order' #48 enum{ '"first"', '"last"' } -│ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ ├─ [age]: optional '_prisma_sort_nullable' #54 -│ │ └─ item: union #53 -│ │ ├─ variant_0: struct #52 -│ │ │ ├─ [nulls]: string '_prisma_nulls_order' #48 enum{ '"first"', '"last"' } -│ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ ├─ [created_at]: optional '_prisma_sort' #51 -│ │ └─ item: union #50 -│ │ ├─ variant_0: struct #49 -│ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ ├─ [id]: optional '_prisma_sort' #51 -│ │ └─ item: union #50 -│ │ ├─ variant_0: struct #49 -│ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ └─ [name]: optional '_prisma_sort' #51 -│ └─ item: union #50 -│ ├─ variant_0: struct #49 -│ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -├─ [skip]: optional 'optional_66' #66 -│ └─ item: integer '_skip' #65 -├─ [take]: optional 'optional_64' #64 -│ └─ item: integer '_take' #63 -└─ [where]: optional 'optional_46' #46 - └─ item: struct 'Record_query_where_input' #45 - ├─ [AND]: optional 'optional_43' #43 - │ └─ item: list 'list_42' #42 - │ └─ item: &Record_query_where_input #41 - ├─ [NOT]: optional 'optional_44' #44 - │ └─ item: &Record_query_where_input #41 - ├─ [OR]: optional 'optional_43' #43 - │ └─ item: list 'list_42' #42 - │ └─ item: &Record_query_where_input #41 - ├─ [age]: optional 'optional_38' #38 - │ └─ item: optional '_prisma_integer_filter_ex' #37 - │ └─ item: union #36 - │ ├─ variant_0: either '_prisma_integer_filter' #34 - │ │ ├─ variant_0: integer #26 - │ │ ├─ variant_1: struct #29 - │ │ │ └─ [equals]: integer #26 - │ │ ├─ variant_2: struct #30 - │ │ │ └─ [not]: integer #26 - │ │ ├─ variant_3: struct #31 - │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ variant_4: struct #32 - │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ └─ variant_5: struct #33 - │ │ └─ [notIn]: list 'list_28' #28 - │ │ └─ item: integer #26 - │ └─ variant_1: struct #35 - │ └─ [not]: either '_prisma_integer_filter' #34 - │ ├─ variant_0: integer #26 - │ ├─ variant_1: struct #29 - │ │ └─ [equals]: integer #26 - │ ├─ variant_2: struct #30 - │ │ └─ [not]: integer #26 - │ ├─ variant_3: struct #31 - │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ └─ [lte]: optional 'optional_27' #27 - │ │ └─ item: integer #26 - │ ├─ variant_4: struct #32 - │ │ └─ [in]: list 'list_28' #28 - │ │ └─ item: integer #26 - │ └─ variant_5: struct #33 - │ └─ [notIn]: list 'list_28' #28 - │ └─ item: integer #26 - ├─ [created_at]: optional 'optional_39' #39 - │ └─ item: optional '_prisma_string_filter_ex' #23 - │ └─ item: union #22 - │ ├─ variant_0: union '_prisma_string_filter' #20 - │ │ ├─ variant_0: string #8 - │ │ ├─ variant_1: struct #11 - │ │ │ └─ [equals]: string #8 - │ │ ├─ variant_2: struct #12 - │ │ │ └─ [not]: string #8 - │ │ ├─ variant_3: struct #13 - │ │ │ └─ [in]: list 'list_10' #10 - │ │ │ └─ item: string #8 - │ │ ├─ variant_4: struct #14 - │ │ │ └─ [notIn]: list 'list_10' #10 - │ │ │ └─ item: string #8 - │ │ ├─ variant_5: struct #17 - │ │ │ ├─ [contains]: string #8 - │ │ │ └─ [mode]: optional 'optional_16' #16 - │ │ │ └─ item: string #15 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #18 - │ │ │ └─ [search]: string #8 - │ │ └─ variant_7: struct #19 - │ │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ │ └─ item: string #8 - │ │ └─ [startsWith]: optional 'optional_9' #9 - │ │ └─ item: string #8 - │ └─ variant_1: struct #21 - │ └─ [not]: union '_prisma_string_filter' #20 - │ ├─ variant_0: string #8 - │ ├─ variant_1: struct #11 - │ │ └─ [equals]: string #8 - │ ├─ variant_2: struct #12 - │ │ └─ [not]: string #8 - │ ├─ variant_3: struct #13 - │ │ └─ [in]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_4: struct #14 - │ │ └─ [notIn]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_5: struct #17 - │ │ ├─ [contains]: string #8 - │ │ └─ [mode]: optional 'optional_16' #16 - │ │ └─ item: string #15 enum{ '"insensitive"' } - │ ├─ variant_6: struct #18 - │ │ └─ [search]: string #8 - │ └─ variant_7: struct #19 - │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ └─ item: string #8 - │ └─ [startsWith]: optional 'optional_9' #9 - │ └─ item: string #8 - ├─ [id]: optional 'optional_24' #24 - │ └─ item: optional '_prisma_string_filter_ex' #23 - │ └─ item: union #22 - │ ├─ variant_0: union '_prisma_string_filter' #20 - │ │ ├─ variant_0: string #8 - │ │ ├─ variant_1: struct #11 - │ │ │ └─ [equals]: string #8 - │ │ ├─ variant_2: struct #12 - │ │ │ └─ [not]: string #8 - │ │ ├─ variant_3: struct #13 - │ │ │ └─ [in]: list 'list_10' #10 - │ │ │ └─ item: string #8 - │ │ ├─ variant_4: struct #14 - │ │ │ └─ [notIn]: list 'list_10' #10 - │ │ │ └─ item: string #8 - │ │ ├─ variant_5: struct #17 - │ │ │ ├─ [contains]: string #8 - │ │ │ └─ [mode]: optional 'optional_16' #16 - │ │ │ └─ item: string #15 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #18 - │ │ │ └─ [search]: string #8 - │ │ └─ variant_7: struct #19 - │ │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ │ └─ item: string #8 - │ │ └─ [startsWith]: optional 'optional_9' #9 - │ │ └─ item: string #8 - │ └─ variant_1: struct #21 - │ └─ [not]: union '_prisma_string_filter' #20 - │ ├─ variant_0: string #8 - │ ├─ variant_1: struct #11 - │ │ └─ [equals]: string #8 - │ ├─ variant_2: struct #12 - │ │ └─ [not]: string #8 - │ ├─ variant_3: struct #13 - │ │ └─ [in]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_4: struct #14 - │ │ └─ [notIn]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_5: struct #17 - │ │ ├─ [contains]: string #8 - │ │ └─ [mode]: optional 'optional_16' #16 - │ │ └─ item: string #15 enum{ '"insensitive"' } - │ ├─ variant_6: struct #18 - │ │ └─ [search]: string #8 - │ └─ variant_7: struct #19 - │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ └─ item: string #8 - │ └─ [startsWith]: optional 'optional_9' #9 - │ └─ item: string #8 - └─ [name]: optional 'optional_25' #25 - └─ item: optional '_prisma_string_filter_ex' #23 - └─ item: union #22 - ├─ variant_0: union '_prisma_string_filter' #20 - │ ├─ variant_0: string #8 - │ ├─ variant_1: struct #11 - │ │ └─ [equals]: string #8 - │ ├─ variant_2: struct #12 - │ │ └─ [not]: string #8 - │ ├─ variant_3: struct #13 - │ │ └─ [in]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_4: struct #14 - │ │ └─ [notIn]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_5: struct #17 - │ │ ├─ [contains]: string #8 - │ │ └─ [mode]: optional 'optional_16' #16 - │ │ └─ item: string #15 enum{ '"insensitive"' } - │ ├─ variant_6: struct #18 - │ │ └─ [search]: string #8 - │ └─ variant_7: struct #19 - │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ └─ item: string #8 - │ └─ [startsWith]: optional 'optional_9' #9 - │ └─ item: string #8 - └─ variant_1: struct #21 - └─ [not]: union '_prisma_string_filter' #20 - ├─ variant_0: string #8 - ├─ variant_1: struct #11 - │ └─ [equals]: string #8 - ├─ variant_2: struct #12 - │ └─ [not]: string #8 - ├─ variant_3: struct #13 - │ └─ [in]: list 'list_10' #10 - │ └─ item: string #8 - ├─ variant_4: struct #14 - │ └─ [notIn]: list 'list_10' #10 - │ └─ item: string #8 - ├─ variant_5: struct #17 - │ ├─ [contains]: string #8 - │ └─ [mode]: optional 'optional_16' #16 - │ └─ item: string #15 enum{ '"insensitive"' } - ├─ variant_6: struct #18 - │ └─ [search]: string #8 - └─ variant_7: struct #19 - ├─ [endsWith]: optional 'optional_9' #9 - │ └─ item: string #8 - └─ [startsWith]: optional 'optional_9' #9 - └─ item: string #8 +root: struct 'Record_group_by_query_input' #166 +├─ [by]: list 'Record_group_by' #118 +│ └─ item: string #115 enum{ '"id"', '"name"', '"age"', '"created_at"' } +├─ [cursor]: optional 'optional_113' #114 +│ └─ item: union 'Record_cursor' #112 +│ ├─ variant_0: struct #107 +│ │ └─ [id]: string #4 +│ ├─ variant_1: struct #108 +│ │ └─ [name]: string #5 +│ ├─ variant_2: struct #109 +│ │ └─ [age]: integer #6 +│ └─ variant_3: struct #110 +│ └─ [created_at]: string #1 +├─ [having]: optional 'optional_163' #164 +│ └─ item: union 'Record_having' #162 +│ ├─ variant_0: struct 'Record_where_with_aggregates' #152 +│ │ ├─ [age]: optional 'optional_147' #148 +│ │ │ └─ item: optional '_prisma_integer_filter_with_aggregates_ex' #146 +│ │ │ └─ item: union #143 +│ │ │ ├─ variant_0: union '_prisma_integer_filter_with_aggregates' #141 +│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_1: struct #135 +│ │ │ │ │ └─ [_count]: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_2: struct #136 +│ │ │ │ │ └─ [_sum]: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_3: struct #137 +│ │ │ │ │ └─ [_avg]: either '_prisma_float_filter' #134 +│ │ │ │ │ ├─ variant_0: float #123 +│ │ │ │ │ ├─ variant_1: struct #128 +│ │ │ │ │ │ └─ [equals]: float #123 +│ │ │ │ │ ├─ variant_2: struct #129 +│ │ │ │ │ │ └─ [not]: float #123 +│ │ │ │ │ ├─ variant_3: struct #130 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_124' #125 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ └─ [lte]: optional 'optional_124' #125 +│ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ ├─ variant_4: struct #131 +│ │ │ │ │ │ └─ [in]: list 'list_126' #127 +│ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ └─ variant_5: struct #132 +│ │ │ │ │ └─ [notIn]: list 'list_126' #127 +│ │ │ │ │ └─ item: float #123 +│ │ │ │ ├─ variant_4: struct #138 +│ │ │ │ │ └─ [_min]: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ variant_5: struct #139 +│ │ │ │ └─ [_max]: either '_prisma_integer_filter' #48 +│ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ variant_5: struct #46 +│ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ └─ item: integer #37 +│ │ │ └─ variant_1: struct #142 +│ │ │ └─ [not]: union '_prisma_integer_filter_with_aggregates' #141 +│ │ │ ├─ variant_0: either '_prisma_integer_filter' #48 +│ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ variant_5: struct #46 +│ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ └─ item: integer #37 +│ │ │ ├─ variant_1: struct #135 +│ │ │ │ └─ [_count]: either '_prisma_integer_filter' #48 +│ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ variant_5: struct #46 +│ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ └─ item: integer #37 +│ │ │ ├─ variant_2: struct #136 +│ │ │ │ └─ [_sum]: either '_prisma_integer_filter' #48 +│ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ variant_5: struct #46 +│ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ └─ item: integer #37 +│ │ │ ├─ variant_3: struct #137 +│ │ │ │ └─ [_avg]: either '_prisma_float_filter' #134 +│ │ │ │ ├─ variant_0: float #123 +│ │ │ │ ├─ variant_1: struct #128 +│ │ │ │ │ └─ [equals]: float #123 +│ │ │ │ ├─ variant_2: struct #129 +│ │ │ │ │ └─ [not]: float #123 +│ │ │ │ ├─ variant_3: struct #130 +│ │ │ │ │ ├─ [gt]: optional 'optional_124' #125 +│ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ ├─ [gte]: optional 'optional_124' #125 +│ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ ├─ [lt]: optional 'optional_124' #125 +│ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ └─ [lte]: optional 'optional_124' #125 +│ │ │ │ │ └─ item: float #123 +│ │ │ │ ├─ variant_4: struct #131 +│ │ │ │ │ └─ [in]: list 'list_126' #127 +│ │ │ │ │ └─ item: float #123 +│ │ │ │ └─ variant_5: struct #132 +│ │ │ │ └─ [notIn]: list 'list_126' #127 +│ │ │ │ └─ item: float #123 +│ │ │ ├─ variant_4: struct #138 +│ │ │ │ └─ [_min]: either '_prisma_integer_filter' #48 +│ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ variant_5: struct #46 +│ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ └─ item: integer #37 +│ │ │ └─ variant_5: struct #139 +│ │ │ └─ [_max]: either '_prisma_integer_filter' #48 +│ │ │ ├─ variant_0: integer #37 +│ │ │ ├─ variant_1: struct #42 +│ │ │ │ └─ [equals]: integer #37 +│ │ │ ├─ variant_2: struct #43 +│ │ │ │ └─ [not]: integer #37 +│ │ │ ├─ variant_3: struct #44 +│ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ └─ item: integer #37 +│ │ │ ├─ variant_4: struct #45 +│ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ └─ item: integer #37 +│ │ │ └─ variant_5: struct #46 +│ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ └─ item: integer #37 +│ │ ├─ [created_at]: optional 'optional_149' #150 +│ │ │ └─ item: optional '_prisma_string_filter_ex' #32 +│ │ │ └─ item: union #29 +│ │ │ ├─ variant_0: union '_prisma_string_filter' #27 +│ │ │ │ ├─ variant_0: string #11 +│ │ │ │ ├─ variant_1: struct #16 +│ │ │ │ │ └─ [equals]: string #11 +│ │ │ │ ├─ variant_2: struct #17 +│ │ │ │ │ └─ [not]: string #11 +│ │ │ │ ├─ variant_3: struct #18 +│ │ │ │ │ └─ [in]: list 'list_14' #15 +│ │ │ │ │ └─ item: string #11 +│ │ │ │ ├─ variant_4: struct #19 +│ │ │ │ │ └─ [notIn]: list 'list_14' #15 +│ │ │ │ │ └─ item: string #11 +│ │ │ │ ├─ variant_5: struct #23 +│ │ │ │ │ ├─ [contains]: string #11 +│ │ │ │ │ └─ [mode]: optional 'optional_21' #22 +│ │ │ │ │ └─ item: string #20 enum{ '"insensitive"' } +│ │ │ │ ├─ variant_6: struct #24 +│ │ │ │ │ └─ [search]: string #11 +│ │ │ │ └─ variant_7: struct #25 +│ │ │ │ ├─ [endsWith]: optional 'optional_12' #13 +│ │ │ │ │ └─ item: string #11 +│ │ │ │ └─ [startsWith]: optional 'optional_12' #13 +│ │ │ │ └─ item: string #11 +│ │ │ └─ variant_1: struct #28 +│ │ │ └─ [not]: union '_prisma_string_filter' #27 +│ │ │ ├─ variant_0: string #11 +│ │ │ ├─ variant_1: struct #16 +│ │ │ │ └─ [equals]: string #11 +│ │ │ ├─ variant_2: struct #17 +│ │ │ │ └─ [not]: string #11 +│ │ │ ├─ variant_3: struct #18 +│ │ │ │ └─ [in]: list 'list_14' #15 +│ │ │ │ └─ item: string #11 +│ │ │ ├─ variant_4: struct #19 +│ │ │ │ └─ [notIn]: list 'list_14' #15 +│ │ │ │ └─ item: string #11 +│ │ │ ├─ variant_5: struct #23 +│ │ │ │ ├─ [contains]: string #11 +│ │ │ │ └─ [mode]: optional 'optional_21' #22 +│ │ │ │ └─ item: string #20 enum{ '"insensitive"' } +│ │ │ ├─ variant_6: struct #24 +│ │ │ │ └─ [search]: string #11 +│ │ │ └─ variant_7: struct #25 +│ │ │ ├─ [endsWith]: optional 'optional_12' #13 +│ │ │ │ └─ item: string #11 +│ │ │ └─ [startsWith]: optional 'optional_12' #13 +│ │ │ └─ item: string #11 +│ │ ├─ [id]: optional 'optional_119' #120 +│ │ │ └─ item: optional '_prisma_string_filter_ex' #32 +│ │ │ └─ item: union #29 +│ │ │ ├─ variant_0: union '_prisma_string_filter' #27 +│ │ │ │ ├─ variant_0: string #11 +│ │ │ │ ├─ variant_1: struct #16 +│ │ │ │ │ └─ [equals]: string #11 +│ │ │ │ ├─ variant_2: struct #17 +│ │ │ │ │ └─ [not]: string #11 +│ │ │ │ ├─ variant_3: struct #18 +│ │ │ │ │ └─ [in]: list 'list_14' #15 +│ │ │ │ │ └─ item: string #11 +│ │ │ │ ├─ variant_4: struct #19 +│ │ │ │ │ └─ [notIn]: list 'list_14' #15 +│ │ │ │ │ └─ item: string #11 +│ │ │ │ ├─ variant_5: struct #23 +│ │ │ │ │ ├─ [contains]: string #11 +│ │ │ │ │ └─ [mode]: optional 'optional_21' #22 +│ │ │ │ │ └─ item: string #20 enum{ '"insensitive"' } +│ │ │ │ ├─ variant_6: struct #24 +│ │ │ │ │ └─ [search]: string #11 +│ │ │ │ └─ variant_7: struct #25 +│ │ │ │ ├─ [endsWith]: optional 'optional_12' #13 +│ │ │ │ │ └─ item: string #11 +│ │ │ │ └─ [startsWith]: optional 'optional_12' #13 +│ │ │ │ └─ item: string #11 +│ │ │ └─ variant_1: struct #28 +│ │ │ └─ [not]: union '_prisma_string_filter' #27 +│ │ │ ├─ variant_0: string #11 +│ │ │ ├─ variant_1: struct #16 +│ │ │ │ └─ [equals]: string #11 +│ │ │ ├─ variant_2: struct #17 +│ │ │ │ └─ [not]: string #11 +│ │ │ ├─ variant_3: struct #18 +│ │ │ │ └─ [in]: list 'list_14' #15 +│ │ │ │ └─ item: string #11 +│ │ │ ├─ variant_4: struct #19 +│ │ │ │ └─ [notIn]: list 'list_14' #15 +│ │ │ │ └─ item: string #11 +│ │ │ ├─ variant_5: struct #23 +│ │ │ │ ├─ [contains]: string #11 +│ │ │ │ └─ [mode]: optional 'optional_21' #22 +│ │ │ │ └─ item: string #20 enum{ '"insensitive"' } +│ │ │ ├─ variant_6: struct #24 +│ │ │ │ └─ [search]: string #11 +│ │ │ └─ variant_7: struct #25 +│ │ │ ├─ [endsWith]: optional 'optional_12' #13 +│ │ │ │ └─ item: string #11 +│ │ │ └─ [startsWith]: optional 'optional_12' #13 +│ │ │ └─ item: string #11 +│ │ └─ [name]: optional 'optional_121' #122 +│ │ └─ item: optional '_prisma_string_filter_ex' #32 +│ │ └─ item: union #29 +│ │ ├─ variant_0: union '_prisma_string_filter' #27 +│ │ │ ├─ variant_0: string #11 +│ │ │ ├─ variant_1: struct #16 +│ │ │ │ └─ [equals]: string #11 +│ │ │ ├─ variant_2: struct #17 +│ │ │ │ └─ [not]: string #11 +│ │ │ ├─ variant_3: struct #18 +│ │ │ │ └─ [in]: list 'list_14' #15 +│ │ │ │ └─ item: string #11 +│ │ │ ├─ variant_4: struct #19 +│ │ │ │ └─ [notIn]: list 'list_14' #15 +│ │ │ │ └─ item: string #11 +│ │ │ ├─ variant_5: struct #23 +│ │ │ │ ├─ [contains]: string #11 +│ │ │ │ └─ [mode]: optional 'optional_21' #22 +│ │ │ │ └─ item: string #20 enum{ '"insensitive"' } +│ │ │ ├─ variant_6: struct #24 +│ │ │ │ └─ [search]: string #11 +│ │ │ └─ variant_7: struct #25 +│ │ │ ├─ [endsWith]: optional 'optional_12' #13 +│ │ │ │ └─ item: string #11 +│ │ │ └─ [startsWith]: optional 'optional_12' #13 +│ │ │ └─ item: string #11 +│ │ └─ variant_1: struct #28 +│ │ └─ [not]: union '_prisma_string_filter' #27 +│ │ ├─ variant_0: string #11 +│ │ ├─ variant_1: struct #16 +│ │ │ └─ [equals]: string #11 +│ │ ├─ variant_2: struct #17 +│ │ │ └─ [not]: string #11 +│ │ ├─ variant_3: struct #18 +│ │ │ └─ [in]: list 'list_14' #15 +│ │ │ └─ item: string #11 +│ │ ├─ variant_4: struct #19 +│ │ │ └─ [notIn]: list 'list_14' #15 +│ │ │ └─ item: string #11 +│ │ ├─ variant_5: struct #23 +│ │ │ ├─ [contains]: string #11 +│ │ │ └─ [mode]: optional 'optional_21' #22 +│ │ │ └─ item: string #20 enum{ '"insensitive"' } +│ │ ├─ variant_6: struct #24 +│ │ │ └─ [search]: string #11 +│ │ └─ variant_7: struct #25 +│ │ ├─ [endsWith]: optional 'optional_12' #13 +│ │ │ └─ item: string #11 +│ │ └─ [startsWith]: optional 'optional_12' #13 +│ │ └─ item: string #11 +│ ├─ variant_1: struct #156 +│ │ └─ [AND]: list 'list_154' #155 +│ │ └─ item: &Record_having #153 +│ ├─ variant_2: struct #159 +│ │ └─ [OR]: list 'list_157' #158 +│ │ └─ item: &Record_having #153 +│ └─ variant_3: struct #160 +│ └─ [NOT]: &Record_having #153 +├─ [orderBy]: optional 'optional_97' #98 +│ └─ item: list 'Record_order_by_with_aggregates' #96 +│ └─ item: struct #93 +│ ├─ [_avg]: optional 'optional_89' #90 +│ │ └─ item: struct #88 +│ │ └─ [age]: optional '_prisma_sort_nullable' #84 +│ │ └─ item: union #81 +│ │ ├─ variant_0: struct #80 +│ │ │ ├─ [nulls]: string '_prisma_nulls_order' #74 +│ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ └─ variant_1: string '_prisma_sort_order' #72 +│ ├─ [_count]: optional 'optional_86' #87 +│ │ └─ item: struct #85 +│ │ ├─ [age]: optional '_prisma_sort_nullable' #84 +│ │ │ └─ item: union #81 +│ │ │ ├─ variant_0: struct #80 +│ │ │ │ ├─ [nulls]: string '_prisma_nulls_order' #74 +│ │ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ │ └─ variant_1: string '_prisma_sort_order' #72 +│ │ ├─ [created_at]: optional '_prisma_sort' #79 +│ │ │ └─ item: union #76 +│ │ │ ├─ variant_0: struct #75 +│ │ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ │ └─ variant_1: string '_prisma_sort_order' #72 +│ │ ├─ [id]: optional '_prisma_sort' #79 +│ │ │ └─ item: union #76 +│ │ │ ├─ variant_0: struct #75 +│ │ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ │ └─ variant_1: string '_prisma_sort_order' #72 +│ │ └─ [name]: optional '_prisma_sort' #79 +│ │ └─ item: union #76 +│ │ ├─ variant_0: struct #75 +│ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ └─ variant_1: string '_prisma_sort_order' #72 +│ ├─ [_max]: optional 'optional_89' #90 +│ │ └─ item: struct #88 +│ │ └─ [age]: optional '_prisma_sort_nullable' #84 +│ │ └─ item: union #81 +│ │ ├─ variant_0: struct #80 +│ │ │ ├─ [nulls]: string '_prisma_nulls_order' #74 +│ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ └─ variant_1: string '_prisma_sort_order' #72 +│ ├─ [_min]: optional 'optional_89' #90 +│ │ └─ item: struct #88 +│ │ └─ [age]: optional '_prisma_sort_nullable' #84 +│ │ └─ item: union #81 +│ │ ├─ variant_0: struct #80 +│ │ │ ├─ [nulls]: string '_prisma_nulls_order' #74 +│ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ └─ variant_1: string '_prisma_sort_order' #72 +│ ├─ [_sum]: optional 'optional_89' #90 +│ │ └─ item: struct #88 +│ │ └─ [age]: optional '_prisma_sort_nullable' #84 +│ │ └─ item: union #81 +│ │ ├─ variant_0: struct #80 +│ │ │ ├─ [nulls]: string '_prisma_nulls_order' #74 +│ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ └─ variant_1: string '_prisma_sort_order' #72 +│ ├─ [age]: optional '_prisma_sort_nullable' #84 +│ │ └─ item: union #81 +│ │ ├─ variant_0: struct #80 +│ │ │ ├─ [nulls]: string '_prisma_nulls_order' #74 +│ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ └─ variant_1: string '_prisma_sort_order' #72 +│ ├─ [created_at]: optional '_prisma_sort' #79 +│ │ └─ item: union #76 +│ │ ├─ variant_0: struct #75 +│ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ └─ variant_1: string '_prisma_sort_order' #72 +│ ├─ [id]: optional '_prisma_sort' #79 +│ │ └─ item: union #76 +│ │ ├─ variant_0: struct #75 +│ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ └─ variant_1: string '_prisma_sort_order' #72 +│ └─ [name]: optional '_prisma_sort' #79 +│ └─ item: union #76 +│ ├─ variant_0: struct #75 +│ │ └─ [sort]: string '_prisma_sort_order' #72 +│ └─ variant_1: string '_prisma_sort_order' #72 +├─ [skip]: optional 'optional_105' #106 +│ └─ item: integer '_skip' #104 +├─ [take]: optional 'optional_101' #102 +│ └─ item: integer '_take' #100 +└─ [where]: optional 'optional_69' #70 + └─ item: struct 'Record_query_where_input' #68 + ├─ [AND]: optional 'optional_63' #64 + │ └─ item: list 'list_61' #62 + │ └─ item: &Record_query_where_input #60 + ├─ [NOT]: optional 'optional_65' #66 + │ └─ item: &Record_query_where_input #60 + ├─ [OR]: optional 'optional_63' #64 + │ └─ item: list 'list_61' #62 + │ └─ item: &Record_query_where_input #60 + ├─ [age]: optional 'optional_54' #55 + │ └─ item: optional '_prisma_integer_filter_ex' #53 + │ └─ item: union #50 + │ ├─ variant_0: either '_prisma_integer_filter' #48 + │ │ ├─ variant_0: integer #37 + │ │ ├─ variant_1: struct #42 + │ │ │ └─ [equals]: integer #37 + │ │ ├─ variant_2: struct #43 + │ │ │ └─ [not]: integer #37 + │ │ ├─ variant_3: struct #44 + │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ variant_4: struct #45 + │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ variant_5: struct #46 + │ │ └─ [notIn]: list 'list_40' #41 + │ │ └─ item: integer #37 + │ └─ variant_1: struct #49 + │ └─ [not]: either '_prisma_integer_filter' #48 + │ ├─ variant_0: integer #37 + │ ├─ variant_1: struct #42 + │ │ └─ [equals]: integer #37 + │ ├─ variant_2: struct #43 + │ │ └─ [not]: integer #37 + │ ├─ variant_3: struct #44 + │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ └─ [lte]: optional 'optional_38' #39 + │ │ └─ item: integer #37 + │ ├─ variant_4: struct #45 + │ │ └─ [in]: list 'list_40' #41 + │ │ └─ item: integer #37 + │ └─ variant_5: struct #46 + │ └─ [notIn]: list 'list_40' #41 + │ └─ item: integer #37 + ├─ [created_at]: optional 'optional_56' #57 + │ └─ item: optional '_prisma_string_filter_ex' #32 + │ └─ item: union #29 + │ ├─ variant_0: union '_prisma_string_filter' #27 + │ │ ├─ variant_0: string #11 + │ │ ├─ variant_1: struct #16 + │ │ │ └─ [equals]: string #11 + │ │ ├─ variant_2: struct #17 + │ │ │ └─ [not]: string #11 + │ │ ├─ variant_3: struct #18 + │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_4: struct #19 + │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_5: struct #23 + │ │ │ ├─ [contains]: string #11 + │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #24 + │ │ │ └─ [search]: string #11 + │ │ └─ variant_7: struct #25 + │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ variant_1: struct #28 + │ └─ [not]: union '_prisma_string_filter' #27 + │ ├─ variant_0: string #11 + │ ├─ variant_1: struct #16 + │ │ └─ [equals]: string #11 + │ ├─ variant_2: struct #17 + │ │ └─ [not]: string #11 + │ ├─ variant_3: struct #18 + │ │ └─ [in]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_4: struct #19 + │ │ └─ [notIn]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_5: struct #23 + │ │ ├─ [contains]: string #11 + │ │ └─ [mode]: optional 'optional_21' #22 + │ │ └─ item: string #20 enum{ '"insensitive"' } + │ ├─ variant_6: struct #24 + │ │ └─ [search]: string #11 + │ └─ variant_7: struct #25 + │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ [startsWith]: optional 'optional_12' #13 + │ └─ item: string #11 + ├─ [id]: optional 'optional_33' #34 + │ └─ item: optional '_prisma_string_filter_ex' #32 + │ └─ item: union #29 + │ ├─ variant_0: union '_prisma_string_filter' #27 + │ │ ├─ variant_0: string #11 + │ │ ├─ variant_1: struct #16 + │ │ │ └─ [equals]: string #11 + │ │ ├─ variant_2: struct #17 + │ │ │ └─ [not]: string #11 + │ │ ├─ variant_3: struct #18 + │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_4: struct #19 + │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_5: struct #23 + │ │ │ ├─ [contains]: string #11 + │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #24 + │ │ │ └─ [search]: string #11 + │ │ └─ variant_7: struct #25 + │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ variant_1: struct #28 + │ └─ [not]: union '_prisma_string_filter' #27 + │ ├─ variant_0: string #11 + │ ├─ variant_1: struct #16 + │ │ └─ [equals]: string #11 + │ ├─ variant_2: struct #17 + │ │ └─ [not]: string #11 + │ ├─ variant_3: struct #18 + │ │ └─ [in]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_4: struct #19 + │ │ └─ [notIn]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_5: struct #23 + │ │ ├─ [contains]: string #11 + │ │ └─ [mode]: optional 'optional_21' #22 + │ │ └─ item: string #20 enum{ '"insensitive"' } + │ ├─ variant_6: struct #24 + │ │ └─ [search]: string #11 + │ └─ variant_7: struct #25 + │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ [startsWith]: optional 'optional_12' #13 + │ └─ item: string #11 + └─ [name]: optional 'optional_35' #36 + └─ item: optional '_prisma_string_filter_ex' #32 + └─ item: union #29 + ├─ variant_0: union '_prisma_string_filter' #27 + │ ├─ variant_0: string #11 + │ ├─ variant_1: struct #16 + │ │ └─ [equals]: string #11 + │ ├─ variant_2: struct #17 + │ │ └─ [not]: string #11 + │ ├─ variant_3: struct #18 + │ │ └─ [in]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_4: struct #19 + │ │ └─ [notIn]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_5: struct #23 + │ │ ├─ [contains]: string #11 + │ │ └─ [mode]: optional 'optional_21' #22 + │ │ └─ item: string #20 enum{ '"insensitive"' } + │ ├─ variant_6: struct #24 + │ │ └─ [search]: string #11 + │ └─ variant_7: struct #25 + │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ [startsWith]: optional 'optional_12' #13 + │ └─ item: string #11 + └─ variant_1: struct #28 + └─ [not]: union '_prisma_string_filter' #27 + ├─ variant_0: string #11 + ├─ variant_1: struct #16 + │ └─ [equals]: string #11 + ├─ variant_2: struct #17 + │ └─ [not]: string #11 + ├─ variant_3: struct #18 + │ └─ [in]: list 'list_14' #15 + │ └─ item: string #11 + ├─ variant_4: struct #19 + │ └─ [notIn]: list 'list_14' #15 + │ └─ item: string #11 + ├─ variant_5: struct #23 + │ ├─ [contains]: string #11 + │ └─ [mode]: optional 'optional_21' #22 + │ └─ item: string #20 enum{ '"insensitive"' } + ├─ variant_6: struct #24 + │ └─ [search]: string #11 + └─ variant_7: struct #25 + ├─ [endsWith]: optional 'optional_12' #13 + │ └─ item: string #11 + └─ [startsWith]: optional 'optional_12' #13 + └─ item: string #11 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__group_by Record out.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__group_by Record out.snap index a655f9e461..c712e6e9fa 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__group_by Record out.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__group_by Record out.snap @@ -2,33 +2,33 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs expression: tp.print(out) --- -root: list 'Record_group' #119 -└─ item: struct #118 - ├─ [_avg]: struct 'Record_number_fields_float' #112 - │ └─ [age]: optional 'optional_111' #111 - │ └─ item: float #110 - ├─ [_count]: struct 'Record_count_aggregate' #109 - │ ├─ [_all]: optional 'optional_108' #108 - │ │ └─ item: integer #107 - │ ├─ [age]: optional 'optional_108' #108 - │ │ └─ item: integer #107 - │ ├─ [created_at]: optional 'optional_108' #108 - │ │ └─ item: integer #107 - │ ├─ [id]: optional 'optional_108' #108 - │ │ └─ item: integer #107 - │ └─ [name]: optional 'optional_108' #108 - │ └─ item: integer #107 - ├─ [_max]: struct 'Record_number_fields' #117 - │ └─ [age]: optional 'optional_116' #116 - │ └─ item: integer #115 - ├─ [_min]: struct 'Record_number_fields' #117 - │ └─ [age]: optional 'optional_116' #116 - │ └─ item: integer #115 - ├─ [_sum]: struct 'Record_number_fields' #117 - │ └─ [age]: optional 'optional_116' #116 - │ └─ item: integer #115 - ├─ [age]: optional 'optional_6' #6 - │ └─ item: integer #5 +root: list 'Record_group' #188 +└─ item: struct #185 + ├─ [_avg]: struct 'Record_number_fields_float' #176 + │ └─ [age]: optional 'optional_173' #174 + │ └─ item: float #172 + ├─ [_count]: struct 'Record_count_aggregate' #171 + │ ├─ [_all]: optional 'optional_168' #169 + │ │ └─ item: integer #167 + │ ├─ [age]: optional 'optional_168' #169 + │ │ └─ item: integer #167 + │ ├─ [created_at]: optional 'optional_168' #169 + │ │ └─ item: integer #167 + │ ├─ [id]: optional 'optional_168' #169 + │ │ └─ item: integer #167 + │ └─ [name]: optional 'optional_168' #169 + │ └─ item: integer #167 + ├─ [_max]: struct 'Record_number_fields' #184 + │ └─ [age]: optional 'optional_181' #182 + │ └─ item: integer #180 + ├─ [_min]: struct 'Record_number_fields' #184 + │ └─ [age]: optional 'optional_181' #182 + │ └─ item: integer #180 + ├─ [_sum]: struct 'Record_number_fields' #184 + │ └─ [age]: optional 'optional_181' #182 + │ └─ item: integer #180 + ├─ [age]: optional 'optional_7' #8 + │ └─ item: integer #6 ├─ [created_at]: string #1 - ├─ [id]: string #3 - └─ [name]: string #4 + ├─ [id]: string #4 + └─ [name]: string #5 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__group_by User inp.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__group_by User inp.snap index 8985fe12be..84a1763337 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__group_by User inp.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__group_by User inp.snap @@ -2,1812 +2,3120 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs expression: tp.print(inp) --- -root: struct 'User_group_by_query_input' #195 -├─ [by]: list 'User_group_by' #170 -│ └─ item: string #169 enum{ '"id"', '"name"' } -├─ [cursor]: optional 'optional_168' #168 -│ └─ item: union 'User_cursor' #167 -│ ├─ variant_0: struct #165 -│ │ └─ [id]: integer #120 -│ └─ variant_1: struct #166 -│ └─ [name]: string #122 -├─ [having]: optional 'optional_194' #194 -│ └─ item: union 'User_having' #193 -│ ├─ variant_0: struct 'User_where_with_aggregates' #186 -│ │ ├─ [id]: optional 'optional_171' #171 -│ │ │ └─ item: optional '_prisma_integer_filter_with_aggregates_ex' #94 -│ │ │ └─ item: union #93 -│ │ │ ├─ variant_0: union '_prisma_integer_filter_with_aggregates' #91 -│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #34 -│ │ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ variant_5: struct #33 -│ │ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_1: struct #86 -│ │ │ │ │ └─ [_count]: either '_prisma_integer_filter' #34 -│ │ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ variant_5: struct #33 -│ │ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_2: struct #87 -│ │ │ │ │ └─ [_sum]: either '_prisma_integer_filter' #34 -│ │ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ variant_5: struct #33 -│ │ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_3: struct #88 -│ │ │ │ │ └─ [_avg]: either '_prisma_float_filter' #85 -│ │ │ │ │ ├─ variant_0: float #77 -│ │ │ │ │ ├─ variant_1: struct #80 -│ │ │ │ │ │ └─ [equals]: float #77 -│ │ │ │ │ ├─ variant_2: struct #81 -│ │ │ │ │ │ └─ [not]: float #77 -│ │ │ │ │ ├─ variant_3: struct #82 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_78' #78 -│ │ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_78' #78 -│ │ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_78' #78 -│ │ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ │ └─ [lte]: optional 'optional_78' #78 -│ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ ├─ variant_4: struct #83 -│ │ │ │ │ │ └─ [in]: list 'list_79' #79 -│ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ └─ variant_5: struct #84 -│ │ │ │ │ └─ [notIn]: list 'list_79' #79 -│ │ │ │ │ └─ item: float #77 -│ │ │ │ ├─ variant_4: struct #89 -│ │ │ │ │ └─ [_min]: either '_prisma_integer_filter' #34 -│ │ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ variant_5: struct #33 -│ │ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ └─ variant_5: struct #90 -│ │ │ │ └─ [_max]: either '_prisma_integer_filter' #34 -│ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ └─ variant_5: struct #33 -│ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ └─ item: integer #26 -│ │ │ └─ variant_1: struct #92 -│ │ │ └─ [not]: union '_prisma_integer_filter_with_aggregates' #91 -│ │ │ ├─ variant_0: either '_prisma_integer_filter' #34 -│ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ └─ variant_5: struct #33 -│ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ └─ item: integer #26 -│ │ │ ├─ variant_1: struct #86 -│ │ │ │ └─ [_count]: either '_prisma_integer_filter' #34 -│ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ └─ variant_5: struct #33 -│ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ └─ item: integer #26 -│ │ │ ├─ variant_2: struct #87 -│ │ │ │ └─ [_sum]: either '_prisma_integer_filter' #34 -│ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ └─ variant_5: struct #33 -│ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ └─ item: integer #26 -│ │ │ ├─ variant_3: struct #88 -│ │ │ │ └─ [_avg]: either '_prisma_float_filter' #85 -│ │ │ │ ├─ variant_0: float #77 -│ │ │ │ ├─ variant_1: struct #80 -│ │ │ │ │ └─ [equals]: float #77 -│ │ │ │ ├─ variant_2: struct #81 -│ │ │ │ │ └─ [not]: float #77 -│ │ │ │ ├─ variant_3: struct #82 -│ │ │ │ │ ├─ [gt]: optional 'optional_78' #78 -│ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ ├─ [gte]: optional 'optional_78' #78 -│ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ ├─ [lt]: optional 'optional_78' #78 -│ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ └─ [lte]: optional 'optional_78' #78 -│ │ │ │ │ └─ item: float #77 -│ │ │ │ ├─ variant_4: struct #83 -│ │ │ │ │ └─ [in]: list 'list_79' #79 -│ │ │ │ │ └─ item: float #77 -│ │ │ │ └─ variant_5: struct #84 -│ │ │ │ └─ [notIn]: list 'list_79' #79 -│ │ │ │ └─ item: float #77 -│ │ │ ├─ variant_4: struct #89 -│ │ │ │ └─ [_min]: either '_prisma_integer_filter' #34 -│ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ └─ variant_5: struct #33 -│ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ └─ item: integer #26 -│ │ │ └─ variant_5: struct #90 -│ │ │ └─ [_max]: either '_prisma_integer_filter' #34 -│ │ │ ├─ variant_0: integer #26 -│ │ │ ├─ variant_1: struct #29 -│ │ │ │ └─ [equals]: integer #26 -│ │ │ ├─ variant_2: struct #30 -│ │ │ │ └─ [not]: integer #26 -│ │ │ ├─ variant_3: struct #31 -│ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ └─ item: integer #26 -│ │ │ ├─ variant_4: struct #32 -│ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ └─ item: integer #26 -│ │ │ └─ variant_5: struct #33 -│ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ └─ item: integer #26 -│ │ ├─ [name]: optional 'optional_172' #172 -│ │ │ └─ item: optional '_prisma_string_filter_ex' #23 -│ │ │ └─ item: union #22 -│ │ │ ├─ variant_0: union '_prisma_string_filter' #20 -│ │ │ │ ├─ variant_0: string #8 -│ │ │ │ ├─ variant_1: struct #11 -│ │ │ │ │ └─ [equals]: string #8 -│ │ │ │ ├─ variant_2: struct #12 -│ │ │ │ │ └─ [not]: string #8 -│ │ │ │ ├─ variant_3: struct #13 -│ │ │ │ │ └─ [in]: list 'list_10' #10 -│ │ │ │ │ └─ item: string #8 -│ │ │ │ ├─ variant_4: struct #14 -│ │ │ │ │ └─ [notIn]: list 'list_10' #10 -│ │ │ │ │ └─ item: string #8 -│ │ │ │ ├─ variant_5: struct #17 -│ │ │ │ │ ├─ [contains]: string #8 -│ │ │ │ │ └─ [mode]: optional 'optional_16' #16 -│ │ │ │ │ └─ item: string #15 enum{ '"insensitive"' } -│ │ │ │ ├─ variant_6: struct #18 -│ │ │ │ │ └─ [search]: string #8 -│ │ │ │ └─ variant_7: struct #19 -│ │ │ │ ├─ [endsWith]: optional 'optional_9' #9 -│ │ │ │ │ └─ item: string #8 -│ │ │ │ └─ [startsWith]: optional 'optional_9' #9 -│ │ │ │ └─ item: string #8 -│ │ │ └─ variant_1: struct #21 -│ │ │ └─ [not]: union '_prisma_string_filter' #20 -│ │ │ ├─ variant_0: string #8 -│ │ │ ├─ variant_1: struct #11 -│ │ │ │ └─ [equals]: string #8 -│ │ │ ├─ variant_2: struct #12 -│ │ │ │ └─ [not]: string #8 -│ │ │ ├─ variant_3: struct #13 -│ │ │ │ └─ [in]: list 'list_10' #10 -│ │ │ │ └─ item: string #8 -│ │ │ ├─ variant_4: struct #14 -│ │ │ │ └─ [notIn]: list 'list_10' #10 -│ │ │ │ └─ item: string #8 -│ │ │ ├─ variant_5: struct #17 -│ │ │ │ ├─ [contains]: string #8 -│ │ │ │ └─ [mode]: optional 'optional_16' #16 -│ │ │ │ └─ item: string #15 enum{ '"insensitive"' } -│ │ │ ├─ variant_6: struct #18 -│ │ │ │ └─ [search]: string #8 -│ │ │ └─ variant_7: struct #19 -│ │ │ ├─ [endsWith]: optional 'optional_9' #9 -│ │ │ │ └─ item: string #8 -│ │ │ └─ [startsWith]: optional 'optional_9' #9 -│ │ │ └─ item: string #8 -│ │ └─ [posts]: optional 'optional_185' #185 -│ │ └─ item: union #184 -│ │ ├─ variant_0: struct #179 -│ │ │ └─ [every]: optional 'optional_178' #178 -│ │ │ └─ item: struct 'Post_where_with_aggregates_excluding_User' #177 -│ │ │ ├─ [author]: optional 'optional_176' #176 -│ │ │ │ └─ item: &User_where_with_aggregates #175 -│ │ │ ├─ [id]: optional 'optional_173' #173 -│ │ │ │ └─ item: optional '_prisma_integer_filter_with_aggregates_ex' #94 -│ │ │ │ └─ item: union #93 -│ │ │ │ ├─ variant_0: union '_prisma_integer_filter_with_aggregates' #91 -│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #34 -│ │ │ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ └─ variant_5: struct #33 -│ │ │ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ variant_1: struct #86 -│ │ │ │ │ │ └─ [_count]: either '_prisma_integer_filter' #34 -│ │ │ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ └─ variant_5: struct #33 -│ │ │ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ variant_2: struct #87 -│ │ │ │ │ │ └─ [_sum]: either '_prisma_integer_filter' #34 -│ │ │ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ └─ variant_5: struct #33 -│ │ │ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ variant_3: struct #88 -│ │ │ │ │ │ └─ [_avg]: either '_prisma_float_filter' #85 -│ │ │ │ │ │ ├─ variant_0: float #77 -│ │ │ │ │ │ ├─ variant_1: struct #80 -│ │ │ │ │ │ │ └─ [equals]: float #77 -│ │ │ │ │ │ ├─ variant_2: struct #81 -│ │ │ │ │ │ │ └─ [not]: float #77 -│ │ │ │ │ │ ├─ variant_3: struct #82 -│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_78' #78 -│ │ │ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_78' #78 -│ │ │ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_78' #78 -│ │ │ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ │ │ └─ [lte]: optional 'optional_78' #78 -│ │ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ │ ├─ variant_4: struct #83 -│ │ │ │ │ │ │ └─ [in]: list 'list_79' #79 -│ │ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ │ └─ variant_5: struct #84 -│ │ │ │ │ │ └─ [notIn]: list 'list_79' #79 -│ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ ├─ variant_4: struct #89 -│ │ │ │ │ │ └─ [_min]: either '_prisma_integer_filter' #34 -│ │ │ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ └─ variant_5: struct #33 -│ │ │ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ variant_5: struct #90 -│ │ │ │ │ └─ [_max]: either '_prisma_integer_filter' #34 -│ │ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ variant_5: struct #33 -│ │ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ └─ variant_1: struct #92 -│ │ │ │ └─ [not]: union '_prisma_integer_filter_with_aggregates' #91 -│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #34 -│ │ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ variant_5: struct #33 -│ │ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_1: struct #86 -│ │ │ │ │ └─ [_count]: either '_prisma_integer_filter' #34 -│ │ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ variant_5: struct #33 -│ │ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_2: struct #87 -│ │ │ │ │ └─ [_sum]: either '_prisma_integer_filter' #34 -│ │ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ variant_5: struct #33 -│ │ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_3: struct #88 -│ │ │ │ │ └─ [_avg]: either '_prisma_float_filter' #85 -│ │ │ │ │ ├─ variant_0: float #77 -│ │ │ │ │ ├─ variant_1: struct #80 -│ │ │ │ │ │ └─ [equals]: float #77 -│ │ │ │ │ ├─ variant_2: struct #81 -│ │ │ │ │ │ └─ [not]: float #77 -│ │ │ │ │ ├─ variant_3: struct #82 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_78' #78 -│ │ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_78' #78 -│ │ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_78' #78 -│ │ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ │ └─ [lte]: optional 'optional_78' #78 -│ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ ├─ variant_4: struct #83 -│ │ │ │ │ │ └─ [in]: list 'list_79' #79 -│ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ └─ variant_5: struct #84 -│ │ │ │ │ └─ [notIn]: list 'list_79' #79 -│ │ │ │ │ └─ item: float #77 -│ │ │ │ ├─ variant_4: struct #89 -│ │ │ │ │ └─ [_min]: either '_prisma_integer_filter' #34 -│ │ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ variant_5: struct #33 -│ │ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ └─ variant_5: struct #90 -│ │ │ │ └─ [_max]: either '_prisma_integer_filter' #34 -│ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ └─ variant_5: struct #33 -│ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ └─ item: integer #26 -│ │ │ └─ [title]: optional 'optional_174' #174 -│ │ │ └─ item: optional '_prisma_string_filter_ex' #23 -│ │ │ └─ item: union #22 -│ │ │ ├─ variant_0: union '_prisma_string_filter' #20 -│ │ │ │ ├─ variant_0: string #8 -│ │ │ │ ├─ variant_1: struct #11 -│ │ │ │ │ └─ [equals]: string #8 -│ │ │ │ ├─ variant_2: struct #12 -│ │ │ │ │ └─ [not]: string #8 -│ │ │ │ ├─ variant_3: struct #13 -│ │ │ │ │ └─ [in]: list 'list_10' #10 -│ │ │ │ │ └─ item: string #8 -│ │ │ │ ├─ variant_4: struct #14 -│ │ │ │ │ └─ [notIn]: list 'list_10' #10 -│ │ │ │ │ └─ item: string #8 -│ │ │ │ ├─ variant_5: struct #17 -│ │ │ │ │ ├─ [contains]: string #8 -│ │ │ │ │ └─ [mode]: optional 'optional_16' #16 -│ │ │ │ │ └─ item: string #15 enum{ '"insensitive"' } -│ │ │ │ ├─ variant_6: struct #18 -│ │ │ │ │ └─ [search]: string #8 -│ │ │ │ └─ variant_7: struct #19 -│ │ │ │ ├─ [endsWith]: optional 'optional_9' #9 -│ │ │ │ │ └─ item: string #8 -│ │ │ │ └─ [startsWith]: optional 'optional_9' #9 -│ │ │ │ └─ item: string #8 -│ │ │ └─ variant_1: struct #21 -│ │ │ └─ [not]: union '_prisma_string_filter' #20 -│ │ │ ├─ variant_0: string #8 -│ │ │ ├─ variant_1: struct #11 -│ │ │ │ └─ [equals]: string #8 -│ │ │ ├─ variant_2: struct #12 -│ │ │ │ └─ [not]: string #8 -│ │ │ ├─ variant_3: struct #13 -│ │ │ │ └─ [in]: list 'list_10' #10 -│ │ │ │ └─ item: string #8 -│ │ │ ├─ variant_4: struct #14 -│ │ │ │ └─ [notIn]: list 'list_10' #10 -│ │ │ │ └─ item: string #8 -│ │ │ ├─ variant_5: struct #17 -│ │ │ │ ├─ [contains]: string #8 -│ │ │ │ └─ [mode]: optional 'optional_16' #16 -│ │ │ │ └─ item: string #15 enum{ '"insensitive"' } -│ │ │ ├─ variant_6: struct #18 -│ │ │ │ └─ [search]: string #8 -│ │ │ └─ variant_7: struct #19 -│ │ │ ├─ [endsWith]: optional 'optional_9' #9 -│ │ │ │ └─ item: string #8 -│ │ │ └─ [startsWith]: optional 'optional_9' #9 -│ │ │ └─ item: string #8 -│ │ ├─ variant_1: struct #181 -│ │ │ └─ [some]: optional 'optional_180' #180 -│ │ │ └─ item: struct 'Post_where_with_aggregates_excluding_User' #177 -│ │ │ ├─ [author]: optional 'optional_176' #176 -│ │ │ │ └─ item: &User_where_with_aggregates #175 -│ │ │ ├─ [id]: optional 'optional_173' #173 -│ │ │ │ └─ item: optional '_prisma_integer_filter_with_aggregates_ex' #94 -│ │ │ │ └─ item: union #93 -│ │ │ │ ├─ variant_0: union '_prisma_integer_filter_with_aggregates' #91 -│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #34 -│ │ │ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ └─ variant_5: struct #33 -│ │ │ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ variant_1: struct #86 -│ │ │ │ │ │ └─ [_count]: either '_prisma_integer_filter' #34 -│ │ │ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ └─ variant_5: struct #33 -│ │ │ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ variant_2: struct #87 -│ │ │ │ │ │ └─ [_sum]: either '_prisma_integer_filter' #34 -│ │ │ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ └─ variant_5: struct #33 -│ │ │ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ variant_3: struct #88 -│ │ │ │ │ │ └─ [_avg]: either '_prisma_float_filter' #85 -│ │ │ │ │ │ ├─ variant_0: float #77 -│ │ │ │ │ │ ├─ variant_1: struct #80 -│ │ │ │ │ │ │ └─ [equals]: float #77 -│ │ │ │ │ │ ├─ variant_2: struct #81 -│ │ │ │ │ │ │ └─ [not]: float #77 -│ │ │ │ │ │ ├─ variant_3: struct #82 -│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_78' #78 -│ │ │ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_78' #78 -│ │ │ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_78' #78 -│ │ │ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ │ │ └─ [lte]: optional 'optional_78' #78 -│ │ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ │ ├─ variant_4: struct #83 -│ │ │ │ │ │ │ └─ [in]: list 'list_79' #79 -│ │ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ │ └─ variant_5: struct #84 -│ │ │ │ │ │ └─ [notIn]: list 'list_79' #79 -│ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ ├─ variant_4: struct #89 -│ │ │ │ │ │ └─ [_min]: either '_prisma_integer_filter' #34 -│ │ │ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ └─ variant_5: struct #33 -│ │ │ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ variant_5: struct #90 -│ │ │ │ │ └─ [_max]: either '_prisma_integer_filter' #34 -│ │ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ variant_5: struct #33 -│ │ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ └─ variant_1: struct #92 -│ │ │ │ └─ [not]: union '_prisma_integer_filter_with_aggregates' #91 -│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #34 -│ │ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ variant_5: struct #33 -│ │ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_1: struct #86 -│ │ │ │ │ └─ [_count]: either '_prisma_integer_filter' #34 -│ │ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ variant_5: struct #33 -│ │ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_2: struct #87 -│ │ │ │ │ └─ [_sum]: either '_prisma_integer_filter' #34 -│ │ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ variant_5: struct #33 -│ │ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_3: struct #88 -│ │ │ │ │ └─ [_avg]: either '_prisma_float_filter' #85 -│ │ │ │ │ ├─ variant_0: float #77 -│ │ │ │ │ ├─ variant_1: struct #80 -│ │ │ │ │ │ └─ [equals]: float #77 -│ │ │ │ │ ├─ variant_2: struct #81 -│ │ │ │ │ │ └─ [not]: float #77 -│ │ │ │ │ ├─ variant_3: struct #82 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_78' #78 -│ │ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_78' #78 -│ │ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_78' #78 -│ │ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ │ └─ [lte]: optional 'optional_78' #78 -│ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ ├─ variant_4: struct #83 -│ │ │ │ │ │ └─ [in]: list 'list_79' #79 -│ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ └─ variant_5: struct #84 -│ │ │ │ │ └─ [notIn]: list 'list_79' #79 -│ │ │ │ │ └─ item: float #77 -│ │ │ │ ├─ variant_4: struct #89 -│ │ │ │ │ └─ [_min]: either '_prisma_integer_filter' #34 -│ │ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ variant_5: struct #33 -│ │ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ └─ variant_5: struct #90 -│ │ │ │ └─ [_max]: either '_prisma_integer_filter' #34 -│ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ └─ variant_5: struct #33 -│ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ └─ item: integer #26 -│ │ │ └─ [title]: optional 'optional_174' #174 -│ │ │ └─ item: optional '_prisma_string_filter_ex' #23 -│ │ │ └─ item: union #22 -│ │ │ ├─ variant_0: union '_prisma_string_filter' #20 -│ │ │ │ ├─ variant_0: string #8 -│ │ │ │ ├─ variant_1: struct #11 -│ │ │ │ │ └─ [equals]: string #8 -│ │ │ │ ├─ variant_2: struct #12 -│ │ │ │ │ └─ [not]: string #8 -│ │ │ │ ├─ variant_3: struct #13 -│ │ │ │ │ └─ [in]: list 'list_10' #10 -│ │ │ │ │ └─ item: string #8 -│ │ │ │ ├─ variant_4: struct #14 -│ │ │ │ │ └─ [notIn]: list 'list_10' #10 -│ │ │ │ │ └─ item: string #8 -│ │ │ │ ├─ variant_5: struct #17 -│ │ │ │ │ ├─ [contains]: string #8 -│ │ │ │ │ └─ [mode]: optional 'optional_16' #16 -│ │ │ │ │ └─ item: string #15 enum{ '"insensitive"' } -│ │ │ │ ├─ variant_6: struct #18 -│ │ │ │ │ └─ [search]: string #8 -│ │ │ │ └─ variant_7: struct #19 -│ │ │ │ ├─ [endsWith]: optional 'optional_9' #9 -│ │ │ │ │ └─ item: string #8 -│ │ │ │ └─ [startsWith]: optional 'optional_9' #9 -│ │ │ │ └─ item: string #8 -│ │ │ └─ variant_1: struct #21 -│ │ │ └─ [not]: union '_prisma_string_filter' #20 -│ │ │ ├─ variant_0: string #8 -│ │ │ ├─ variant_1: struct #11 -│ │ │ │ └─ [equals]: string #8 -│ │ │ ├─ variant_2: struct #12 -│ │ │ │ └─ [not]: string #8 -│ │ │ ├─ variant_3: struct #13 -│ │ │ │ └─ [in]: list 'list_10' #10 -│ │ │ │ └─ item: string #8 -│ │ │ ├─ variant_4: struct #14 -│ │ │ │ └─ [notIn]: list 'list_10' #10 -│ │ │ │ └─ item: string #8 -│ │ │ ├─ variant_5: struct #17 -│ │ │ │ ├─ [contains]: string #8 -│ │ │ │ └─ [mode]: optional 'optional_16' #16 -│ │ │ │ └─ item: string #15 enum{ '"insensitive"' } -│ │ │ ├─ variant_6: struct #18 -│ │ │ │ └─ [search]: string #8 -│ │ │ └─ variant_7: struct #19 -│ │ │ ├─ [endsWith]: optional 'optional_9' #9 -│ │ │ │ └─ item: string #8 -│ │ │ └─ [startsWith]: optional 'optional_9' #9 -│ │ │ └─ item: string #8 -│ │ └─ variant_2: struct #183 -│ │ └─ [none]: optional 'optional_182' #182 -│ │ └─ item: struct 'Post_where_with_aggregates_excluding_User' #177 -│ │ ├─ [author]: optional 'optional_176' #176 -│ │ │ └─ item: &User_where_with_aggregates #175 -│ │ ├─ [id]: optional 'optional_173' #173 -│ │ │ └─ item: optional '_prisma_integer_filter_with_aggregates_ex' #94 -│ │ │ └─ item: union #93 -│ │ │ ├─ variant_0: union '_prisma_integer_filter_with_aggregates' #91 -│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #34 -│ │ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ variant_5: struct #33 -│ │ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_1: struct #86 -│ │ │ │ │ └─ [_count]: either '_prisma_integer_filter' #34 -│ │ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ variant_5: struct #33 -│ │ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_2: struct #87 -│ │ │ │ │ └─ [_sum]: either '_prisma_integer_filter' #34 -│ │ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ variant_5: struct #33 -│ │ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_3: struct #88 -│ │ │ │ │ └─ [_avg]: either '_prisma_float_filter' #85 -│ │ │ │ │ ├─ variant_0: float #77 -│ │ │ │ │ ├─ variant_1: struct #80 -│ │ │ │ │ │ └─ [equals]: float #77 -│ │ │ │ │ ├─ variant_2: struct #81 -│ │ │ │ │ │ └─ [not]: float #77 -│ │ │ │ │ ├─ variant_3: struct #82 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_78' #78 -│ │ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_78' #78 -│ │ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_78' #78 -│ │ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ │ └─ [lte]: optional 'optional_78' #78 -│ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ ├─ variant_4: struct #83 -│ │ │ │ │ │ └─ [in]: list 'list_79' #79 -│ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ └─ variant_5: struct #84 -│ │ │ │ │ └─ [notIn]: list 'list_79' #79 -│ │ │ │ │ └─ item: float #77 -│ │ │ │ ├─ variant_4: struct #89 -│ │ │ │ │ └─ [_min]: either '_prisma_integer_filter' #34 -│ │ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ variant_5: struct #33 -│ │ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ └─ variant_5: struct #90 -│ │ │ │ └─ [_max]: either '_prisma_integer_filter' #34 -│ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ └─ variant_5: struct #33 -│ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ └─ item: integer #26 -│ │ │ └─ variant_1: struct #92 -│ │ │ └─ [not]: union '_prisma_integer_filter_with_aggregates' #91 -│ │ │ ├─ variant_0: either '_prisma_integer_filter' #34 -│ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ └─ variant_5: struct #33 -│ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ └─ item: integer #26 -│ │ │ ├─ variant_1: struct #86 -│ │ │ │ └─ [_count]: either '_prisma_integer_filter' #34 -│ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ └─ variant_5: struct #33 -│ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ └─ item: integer #26 -│ │ │ ├─ variant_2: struct #87 -│ │ │ │ └─ [_sum]: either '_prisma_integer_filter' #34 -│ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ └─ variant_5: struct #33 -│ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ └─ item: integer #26 -│ │ │ ├─ variant_3: struct #88 -│ │ │ │ └─ [_avg]: either '_prisma_float_filter' #85 -│ │ │ │ ├─ variant_0: float #77 -│ │ │ │ ├─ variant_1: struct #80 -│ │ │ │ │ └─ [equals]: float #77 -│ │ │ │ ├─ variant_2: struct #81 -│ │ │ │ │ └─ [not]: float #77 -│ │ │ │ ├─ variant_3: struct #82 -│ │ │ │ │ ├─ [gt]: optional 'optional_78' #78 -│ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ ├─ [gte]: optional 'optional_78' #78 -│ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ ├─ [lt]: optional 'optional_78' #78 -│ │ │ │ │ │ └─ item: float #77 -│ │ │ │ │ └─ [lte]: optional 'optional_78' #78 -│ │ │ │ │ └─ item: float #77 -│ │ │ │ ├─ variant_4: struct #83 -│ │ │ │ │ └─ [in]: list 'list_79' #79 -│ │ │ │ │ └─ item: float #77 -│ │ │ │ └─ variant_5: struct #84 -│ │ │ │ └─ [notIn]: list 'list_79' #79 -│ │ │ │ └─ item: float #77 -│ │ │ ├─ variant_4: struct #89 -│ │ │ │ └─ [_min]: either '_prisma_integer_filter' #34 -│ │ │ │ ├─ variant_0: integer #26 -│ │ │ │ ├─ variant_1: struct #29 -│ │ │ │ │ └─ [equals]: integer #26 -│ │ │ │ ├─ variant_2: struct #30 -│ │ │ │ │ └─ [not]: integer #26 -│ │ │ │ ├─ variant_3: struct #31 -│ │ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ │ └─ item: integer #26 -│ │ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ variant_4: struct #32 -│ │ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ └─ variant_5: struct #33 -│ │ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ │ └─ item: integer #26 -│ │ │ └─ variant_5: struct #90 -│ │ │ └─ [_max]: either '_prisma_integer_filter' #34 -│ │ │ ├─ variant_0: integer #26 -│ │ │ ├─ variant_1: struct #29 -│ │ │ │ └─ [equals]: integer #26 -│ │ │ ├─ variant_2: struct #30 -│ │ │ │ └─ [not]: integer #26 -│ │ │ ├─ variant_3: struct #31 -│ │ │ │ ├─ [gt]: optional 'optional_27' #27 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ [gte]: optional 'optional_27' #27 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ ├─ [lt]: optional 'optional_27' #27 -│ │ │ │ │ └─ item: integer #26 -│ │ │ │ └─ [lte]: optional 'optional_27' #27 -│ │ │ │ └─ item: integer #26 -│ │ │ ├─ variant_4: struct #32 -│ │ │ │ └─ [in]: list 'list_28' #28 -│ │ │ │ └─ item: integer #26 -│ │ │ └─ variant_5: struct #33 -│ │ │ └─ [notIn]: list 'list_28' #28 -│ │ │ └─ item: integer #26 -│ │ └─ [title]: optional 'optional_174' #174 -│ │ └─ item: optional '_prisma_string_filter_ex' #23 -│ │ └─ item: union #22 -│ │ ├─ variant_0: union '_prisma_string_filter' #20 -│ │ │ ├─ variant_0: string #8 -│ │ │ ├─ variant_1: struct #11 -│ │ │ │ └─ [equals]: string #8 -│ │ │ ├─ variant_2: struct #12 -│ │ │ │ └─ [not]: string #8 -│ │ │ ├─ variant_3: struct #13 -│ │ │ │ └─ [in]: list 'list_10' #10 -│ │ │ │ └─ item: string #8 -│ │ │ ├─ variant_4: struct #14 -│ │ │ │ └─ [notIn]: list 'list_10' #10 -│ │ │ │ └─ item: string #8 -│ │ │ ├─ variant_5: struct #17 -│ │ │ │ ├─ [contains]: string #8 -│ │ │ │ └─ [mode]: optional 'optional_16' #16 -│ │ │ │ └─ item: string #15 enum{ '"insensitive"' } -│ │ │ ├─ variant_6: struct #18 -│ │ │ │ └─ [search]: string #8 -│ │ │ └─ variant_7: struct #19 -│ │ │ ├─ [endsWith]: optional 'optional_9' #9 -│ │ │ │ └─ item: string #8 -│ │ │ └─ [startsWith]: optional 'optional_9' #9 -│ │ │ └─ item: string #8 -│ │ └─ variant_1: struct #21 -│ │ └─ [not]: union '_prisma_string_filter' #20 -│ │ ├─ variant_0: string #8 -│ │ ├─ variant_1: struct #11 -│ │ │ └─ [equals]: string #8 -│ │ ├─ variant_2: struct #12 -│ │ │ └─ [not]: string #8 -│ │ ├─ variant_3: struct #13 -│ │ │ └─ [in]: list 'list_10' #10 -│ │ │ └─ item: string #8 -│ │ ├─ variant_4: struct #14 -│ │ │ └─ [notIn]: list 'list_10' #10 -│ │ │ └─ item: string #8 -│ │ ├─ variant_5: struct #17 -│ │ │ ├─ [contains]: string #8 -│ │ │ └─ [mode]: optional 'optional_16' #16 -│ │ │ └─ item: string #15 enum{ '"insensitive"' } -│ │ ├─ variant_6: struct #18 -│ │ │ └─ [search]: string #8 -│ │ └─ variant_7: struct #19 -│ │ ├─ [endsWith]: optional 'optional_9' #9 -│ │ │ └─ item: string #8 -│ │ └─ [startsWith]: optional 'optional_9' #9 -│ │ └─ item: string #8 -│ ├─ variant_1: struct #189 -│ │ └─ [AND]: list 'list_188' #188 -│ │ └─ item: &User_having #187 -│ ├─ variant_2: struct #191 -│ │ └─ [OR]: list 'list_190' #190 -│ │ └─ item: &User_having #187 -│ └─ variant_3: struct #192 -│ └─ [NOT]: &User_having #187 -├─ [orderBy]: optional 'optional_162' #162 -│ └─ item: list 'User_order_by_with_aggregates' #161 -│ └─ item: struct #160 -│ ├─ [_avg]: optional 'optional_156' #156 -│ │ └─ item: struct #155 -│ │ └─ [id]: optional '_prisma_sort' #51 -│ │ └─ item: union #50 -│ │ ├─ variant_0: struct #49 -│ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ ├─ [_count]: optional 'optional_154' #154 -│ │ └─ item: struct #153 -│ │ ├─ [id]: optional '_prisma_sort' #51 -│ │ │ └─ item: union #50 -│ │ │ ├─ variant_0: struct #49 -│ │ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ ├─ [name]: optional '_prisma_sort' #51 -│ │ │ └─ item: union #50 -│ │ │ ├─ variant_0: struct #49 -│ │ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ └─ [posts]: optional '_prisma_sort' #51 -│ │ └─ item: union #50 -│ │ ├─ variant_0: struct #49 -│ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ ├─ [_max]: optional 'optional_156' #156 -│ │ └─ item: struct #155 -│ │ └─ [id]: optional '_prisma_sort' #51 -│ │ └─ item: union #50 -│ │ ├─ variant_0: struct #49 -│ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ ├─ [_min]: optional 'optional_156' #156 -│ │ └─ item: struct #155 -│ │ └─ [id]: optional '_prisma_sort' #51 -│ │ └─ item: union #50 -│ │ ├─ variant_0: struct #49 -│ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ ├─ [_sum]: optional 'optional_156' #156 -│ │ └─ item: struct #155 -│ │ └─ [id]: optional '_prisma_sort' #51 -│ │ └─ item: union #50 -│ │ ├─ variant_0: struct #49 -│ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ ├─ [id]: optional '_prisma_sort' #51 -│ │ └─ item: union #50 -│ │ ├─ variant_0: struct #49 -│ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ ├─ [name]: optional '_prisma_sort' #51 -│ │ └─ item: union #50 -│ │ ├─ variant_0: struct #49 -│ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ └─ [posts]: optional '_prisma_sort_by_aggregates' #159 -│ └─ item: struct #158 -│ ├─ [_avg]: optional '_prisma_sort' #51 -│ │ └─ item: union #50 -│ │ ├─ variant_0: struct #49 -│ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ ├─ [_count]: optional '_prisma_sort' #51 -│ │ └─ item: union #50 -│ │ ├─ variant_0: struct #49 -│ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ ├─ [_max]: optional '_prisma_sort' #51 -│ │ └─ item: union #50 -│ │ ├─ variant_0: struct #49 -│ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ ├─ [_min]: optional '_prisma_sort' #51 -│ │ └─ item: union #50 -│ │ ├─ variant_0: struct #49 -│ │ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ │ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ └─ [_sum]: optional '_prisma_sort' #51 -│ └─ item: union #50 -│ ├─ variant_0: struct #49 -│ │ └─ [sort]: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -│ └─ variant_1: string '_prisma_sort_order' #47 enum{ '"asc"', '"desc"' } -├─ [skip]: optional 'optional_164' #164 -│ └─ item: integer '_skip' #65 -├─ [take]: optional 'optional_163' #163 -│ └─ item: integer '_take' #63 -└─ [where]: optional 'optional_152' #152 - └─ item: struct 'User_query_where_input' #151 - ├─ [AND]: optional 'optional_149' #149 - │ └─ item: list 'list_148' #148 - │ └─ item: &User_query_where_input #147 - ├─ [NOT]: optional 'optional_150' #150 - │ └─ item: &User_query_where_input #147 - ├─ [OR]: optional 'optional_149' #149 - │ └─ item: list 'list_148' #148 - │ └─ item: &User_query_where_input #147 - ├─ [id]: optional 'optional_131' #131 - │ └─ item: optional '_prisma_integer_filter_ex' #37 - │ └─ item: union #36 - │ ├─ variant_0: either '_prisma_integer_filter' #34 - │ │ ├─ variant_0: integer #26 - │ │ ├─ variant_1: struct #29 - │ │ │ └─ [equals]: integer #26 - │ │ ├─ variant_2: struct #30 - │ │ │ └─ [not]: integer #26 - │ │ ├─ variant_3: struct #31 - │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ variant_4: struct #32 - │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ └─ variant_5: struct #33 - │ │ └─ [notIn]: list 'list_28' #28 - │ │ └─ item: integer #26 - │ └─ variant_1: struct #35 - │ └─ [not]: either '_prisma_integer_filter' #34 - │ ├─ variant_0: integer #26 - │ ├─ variant_1: struct #29 - │ │ └─ [equals]: integer #26 - │ ├─ variant_2: struct #30 - │ │ └─ [not]: integer #26 - │ ├─ variant_3: struct #31 - │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ └─ [lte]: optional 'optional_27' #27 - │ │ └─ item: integer #26 - │ ├─ variant_4: struct #32 - │ │ └─ [in]: list 'list_28' #28 - │ │ └─ item: integer #26 - │ └─ variant_5: struct #33 - │ └─ [notIn]: list 'list_28' #28 - │ └─ item: integer #26 - ├─ [name]: optional 'optional_132' #132 - │ └─ item: optional '_prisma_string_filter_ex' #23 - │ └─ item: union #22 - │ ├─ variant_0: union '_prisma_string_filter' #20 - │ │ ├─ variant_0: string #8 - │ │ ├─ variant_1: struct #11 - │ │ │ └─ [equals]: string #8 - │ │ ├─ variant_2: struct #12 - │ │ │ └─ [not]: string #8 - │ │ ├─ variant_3: struct #13 - │ │ │ └─ [in]: list 'list_10' #10 - │ │ │ └─ item: string #8 - │ │ ├─ variant_4: struct #14 - │ │ │ └─ [notIn]: list 'list_10' #10 - │ │ │ └─ item: string #8 - │ │ ├─ variant_5: struct #17 - │ │ │ ├─ [contains]: string #8 - │ │ │ └─ [mode]: optional 'optional_16' #16 - │ │ │ └─ item: string #15 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #18 - │ │ │ └─ [search]: string #8 - │ │ └─ variant_7: struct #19 - │ │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ │ └─ item: string #8 - │ │ └─ [startsWith]: optional 'optional_9' #9 - │ │ └─ item: string #8 - │ └─ variant_1: struct #21 - │ └─ [not]: union '_prisma_string_filter' #20 - │ ├─ variant_0: string #8 - │ ├─ variant_1: struct #11 - │ │ └─ [equals]: string #8 - │ ├─ variant_2: struct #12 - │ │ └─ [not]: string #8 - │ ├─ variant_3: struct #13 - │ │ └─ [in]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_4: struct #14 - │ │ └─ [notIn]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_5: struct #17 - │ │ ├─ [contains]: string #8 - │ │ └─ [mode]: optional 'optional_16' #16 - │ │ └─ item: string #15 enum{ '"insensitive"' } - │ ├─ variant_6: struct #18 - │ │ └─ [search]: string #8 - │ └─ variant_7: struct #19 - │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ └─ item: string #8 - │ └─ [startsWith]: optional 'optional_9' #9 - │ └─ item: string #8 - └─ [posts]: optional 'optional_145' #145 - └─ item: union #144 - ├─ variant_0: struct #139 - │ └─ [every]: optional 'optional_138' #138 - │ └─ item: struct 'Post_where_excluding_User' #137 - │ ├─ [author]: optional 'optional_136' #136 - │ │ └─ item: &User_where #135 - │ ├─ [id]: optional 'optional_133' #133 - │ │ └─ item: optional '_prisma_integer_filter_ex' #37 - │ │ └─ item: union #36 - │ │ ├─ variant_0: either '_prisma_integer_filter' #34 - │ │ │ ├─ variant_0: integer #26 - │ │ │ ├─ variant_1: struct #29 - │ │ │ │ └─ [equals]: integer #26 - │ │ │ ├─ variant_2: struct #30 - │ │ │ │ └─ [not]: integer #26 - │ │ │ ├─ variant_3: struct #31 - │ │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ variant_4: struct #32 - │ │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ variant_5: struct #33 - │ │ │ └─ [notIn]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ └─ variant_1: struct #35 - │ │ └─ [not]: either '_prisma_integer_filter' #34 - │ │ ├─ variant_0: integer #26 - │ │ ├─ variant_1: struct #29 - │ │ │ └─ [equals]: integer #26 - │ │ ├─ variant_2: struct #30 - │ │ │ └─ [not]: integer #26 - │ │ ├─ variant_3: struct #31 - │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ variant_4: struct #32 - │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ └─ variant_5: struct #33 - │ │ └─ [notIn]: list 'list_28' #28 - │ │ └─ item: integer #26 - │ └─ [title]: optional 'optional_134' #134 - │ └─ item: optional '_prisma_string_filter_ex' #23 - │ └─ item: union #22 - │ ├─ variant_0: union '_prisma_string_filter' #20 - │ │ ├─ variant_0: string #8 - │ │ ├─ variant_1: struct #11 - │ │ │ └─ [equals]: string #8 - │ │ ├─ variant_2: struct #12 - │ │ │ └─ [not]: string #8 - │ │ ├─ variant_3: struct #13 - │ │ │ └─ [in]: list 'list_10' #10 - │ │ │ └─ item: string #8 - │ │ ├─ variant_4: struct #14 - │ │ │ └─ [notIn]: list 'list_10' #10 - │ │ │ └─ item: string #8 - │ │ ├─ variant_5: struct #17 - │ │ │ ├─ [contains]: string #8 - │ │ │ └─ [mode]: optional 'optional_16' #16 - │ │ │ └─ item: string #15 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #18 - │ │ │ └─ [search]: string #8 - │ │ └─ variant_7: struct #19 - │ │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ │ └─ item: string #8 - │ │ └─ [startsWith]: optional 'optional_9' #9 - │ │ └─ item: string #8 - │ └─ variant_1: struct #21 - │ └─ [not]: union '_prisma_string_filter' #20 - │ ├─ variant_0: string #8 - │ ├─ variant_1: struct #11 - │ │ └─ [equals]: string #8 - │ ├─ variant_2: struct #12 - │ │ └─ [not]: string #8 - │ ├─ variant_3: struct #13 - │ │ └─ [in]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_4: struct #14 - │ │ └─ [notIn]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_5: struct #17 - │ │ ├─ [contains]: string #8 - │ │ └─ [mode]: optional 'optional_16' #16 - │ │ └─ item: string #15 enum{ '"insensitive"' } - │ ├─ variant_6: struct #18 - │ │ └─ [search]: string #8 - │ └─ variant_7: struct #19 - │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ └─ item: string #8 - │ └─ [startsWith]: optional 'optional_9' #9 - │ └─ item: string #8 - ├─ variant_1: struct #141 - │ └─ [some]: optional 'optional_140' #140 - │ └─ item: struct 'Post_where_excluding_User' #137 - │ ├─ [author]: optional 'optional_136' #136 - │ │ └─ item: &User_where #135 - │ ├─ [id]: optional 'optional_133' #133 - │ │ └─ item: optional '_prisma_integer_filter_ex' #37 - │ │ └─ item: union #36 - │ │ ├─ variant_0: either '_prisma_integer_filter' #34 - │ │ │ ├─ variant_0: integer #26 - │ │ │ ├─ variant_1: struct #29 - │ │ │ │ └─ [equals]: integer #26 - │ │ │ ├─ variant_2: struct #30 - │ │ │ │ └─ [not]: integer #26 - │ │ │ ├─ variant_3: struct #31 - │ │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ │ └─ item: integer #26 - │ │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ variant_4: struct #32 - │ │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ variant_5: struct #33 - │ │ │ └─ [notIn]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ └─ variant_1: struct #35 - │ │ └─ [not]: either '_prisma_integer_filter' #34 - │ │ ├─ variant_0: integer #26 - │ │ ├─ variant_1: struct #29 - │ │ │ └─ [equals]: integer #26 - │ │ ├─ variant_2: struct #30 - │ │ │ └─ [not]: integer #26 - │ │ ├─ variant_3: struct #31 - │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ variant_4: struct #32 - │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ └─ variant_5: struct #33 - │ │ └─ [notIn]: list 'list_28' #28 - │ │ └─ item: integer #26 - │ └─ [title]: optional 'optional_134' #134 - │ └─ item: optional '_prisma_string_filter_ex' #23 - │ └─ item: union #22 - │ ├─ variant_0: union '_prisma_string_filter' #20 - │ │ ├─ variant_0: string #8 - │ │ ├─ variant_1: struct #11 - │ │ │ └─ [equals]: string #8 - │ │ ├─ variant_2: struct #12 - │ │ │ └─ [not]: string #8 - │ │ ├─ variant_3: struct #13 - │ │ │ └─ [in]: list 'list_10' #10 - │ │ │ └─ item: string #8 - │ │ ├─ variant_4: struct #14 - │ │ │ └─ [notIn]: list 'list_10' #10 - │ │ │ └─ item: string #8 - │ │ ├─ variant_5: struct #17 - │ │ │ ├─ [contains]: string #8 - │ │ │ └─ [mode]: optional 'optional_16' #16 - │ │ │ └─ item: string #15 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #18 - │ │ │ └─ [search]: string #8 - │ │ └─ variant_7: struct #19 - │ │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ │ └─ item: string #8 - │ │ └─ [startsWith]: optional 'optional_9' #9 - │ │ └─ item: string #8 - │ └─ variant_1: struct #21 - │ └─ [not]: union '_prisma_string_filter' #20 - │ ├─ variant_0: string #8 - │ ├─ variant_1: struct #11 - │ │ └─ [equals]: string #8 - │ ├─ variant_2: struct #12 - │ │ └─ [not]: string #8 - │ ├─ variant_3: struct #13 - │ │ └─ [in]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_4: struct #14 - │ │ └─ [notIn]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_5: struct #17 - │ │ ├─ [contains]: string #8 - │ │ └─ [mode]: optional 'optional_16' #16 - │ │ └─ item: string #15 enum{ '"insensitive"' } - │ ├─ variant_6: struct #18 - │ │ └─ [search]: string #8 - │ └─ variant_7: struct #19 - │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ └─ item: string #8 - │ └─ [startsWith]: optional 'optional_9' #9 - │ └─ item: string #8 - └─ variant_2: struct #143 - └─ [none]: optional 'optional_142' #142 - └─ item: struct 'Post_where_excluding_User' #137 - ├─ [author]: optional 'optional_136' #136 - │ └─ item: &User_where #135 - ├─ [id]: optional 'optional_133' #133 - │ └─ item: optional '_prisma_integer_filter_ex' #37 - │ └─ item: union #36 - │ ├─ variant_0: either '_prisma_integer_filter' #34 - │ │ ├─ variant_0: integer #26 - │ │ ├─ variant_1: struct #29 - │ │ │ └─ [equals]: integer #26 - │ │ ├─ variant_2: struct #30 - │ │ │ └─ [not]: integer #26 - │ │ ├─ variant_3: struct #31 - │ │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ │ └─ item: integer #26 - │ │ │ └─ [lte]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ variant_4: struct #32 - │ │ │ └─ [in]: list 'list_28' #28 - │ │ │ └─ item: integer #26 - │ │ └─ variant_5: struct #33 - │ │ └─ [notIn]: list 'list_28' #28 - │ │ └─ item: integer #26 - │ └─ variant_1: struct #35 - │ └─ [not]: either '_prisma_integer_filter' #34 - │ ├─ variant_0: integer #26 - │ ├─ variant_1: struct #29 - │ │ └─ [equals]: integer #26 - │ ├─ variant_2: struct #30 - │ │ └─ [not]: integer #26 - │ ├─ variant_3: struct #31 - │ │ ├─ [gt]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ [gte]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ ├─ [lt]: optional 'optional_27' #27 - │ │ │ └─ item: integer #26 - │ │ └─ [lte]: optional 'optional_27' #27 - │ │ └─ item: integer #26 - │ ├─ variant_4: struct #32 - │ │ └─ [in]: list 'list_28' #28 - │ │ └─ item: integer #26 - │ └─ variant_5: struct #33 - │ └─ [notIn]: list 'list_28' #28 - │ └─ item: integer #26 - └─ [title]: optional 'optional_134' #134 - └─ item: optional '_prisma_string_filter_ex' #23 - └─ item: union #22 - ├─ variant_0: union '_prisma_string_filter' #20 - │ ├─ variant_0: string #8 - │ ├─ variant_1: struct #11 - │ │ └─ [equals]: string #8 - │ ├─ variant_2: struct #12 - │ │ └─ [not]: string #8 - │ ├─ variant_3: struct #13 - │ │ └─ [in]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_4: struct #14 - │ │ └─ [notIn]: list 'list_10' #10 - │ │ └─ item: string #8 - │ ├─ variant_5: struct #17 - │ │ ├─ [contains]: string #8 - │ │ └─ [mode]: optional 'optional_16' #16 - │ │ └─ item: string #15 enum{ '"insensitive"' } - │ ├─ variant_6: struct #18 - │ │ └─ [search]: string #8 - │ └─ variant_7: struct #19 - │ ├─ [endsWith]: optional 'optional_9' #9 - │ │ └─ item: string #8 - │ └─ [startsWith]: optional 'optional_9' #9 - │ └─ item: string #8 - └─ variant_1: struct #21 - └─ [not]: union '_prisma_string_filter' #20 - ├─ variant_0: string #8 - ├─ variant_1: struct #11 - │ └─ [equals]: string #8 - ├─ variant_2: struct #12 - │ └─ [not]: string #8 - ├─ variant_3: struct #13 - │ └─ [in]: list 'list_10' #10 - │ └─ item: string #8 - ├─ variant_4: struct #14 - │ └─ [notIn]: list 'list_10' #10 - │ └─ item: string #8 - ├─ variant_5: struct #17 - │ ├─ [contains]: string #8 - │ └─ [mode]: optional 'optional_16' #16 - │ └─ item: string #15 enum{ '"insensitive"' } - ├─ variant_6: struct #18 - │ └─ [search]: string #8 - └─ variant_7: struct #19 - ├─ [endsWith]: optional 'optional_9' #9 - │ └─ item: string #8 - └─ [startsWith]: optional 'optional_9' #9 - └─ item: string #8 +root: struct 'User_group_by_query_input' #350 +├─ [by]: list 'User_group_by' #291 +│ └─ item: string #288 enum{ '"id"', '"name"' } +├─ [cursor]: optional 'optional_286' #287 +│ └─ item: union 'User_cursor' #285 +│ ├─ variant_0: struct #282 +│ │ └─ [id]: integer #190 +│ └─ variant_1: struct #283 +│ └─ [name]: string #191 +├─ [having]: optional 'optional_347' #348 +│ └─ item: union 'User_having' #346 +│ ├─ variant_0: struct 'User_where_with_aggregates' #336 +│ │ ├─ [id]: optional 'optional_292' #293 +│ │ │ └─ item: optional '_prisma_integer_filter_with_aggregates_ex' #146 +│ │ │ └─ item: union #143 +│ │ │ ├─ variant_0: union '_prisma_integer_filter_with_aggregates' #141 +│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_1: struct #135 +│ │ │ │ │ └─ [_count]: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_2: struct #136 +│ │ │ │ │ └─ [_sum]: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_3: struct #137 +│ │ │ │ │ └─ [_avg]: either '_prisma_float_filter' #134 +│ │ │ │ │ ├─ variant_0: float #123 +│ │ │ │ │ ├─ variant_1: struct #128 +│ │ │ │ │ │ └─ [equals]: float #123 +│ │ │ │ │ ├─ variant_2: struct #129 +│ │ │ │ │ │ └─ [not]: float #123 +│ │ │ │ │ ├─ variant_3: struct #130 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_124' #125 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ └─ [lte]: optional 'optional_124' #125 +│ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ ├─ variant_4: struct #131 +│ │ │ │ │ │ └─ [in]: list 'list_126' #127 +│ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ └─ variant_5: struct #132 +│ │ │ │ │ └─ [notIn]: list 'list_126' #127 +│ │ │ │ │ └─ item: float #123 +│ │ │ │ ├─ variant_4: struct #138 +│ │ │ │ │ └─ [_min]: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ variant_5: struct #139 +│ │ │ │ └─ [_max]: either '_prisma_integer_filter' #48 +│ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ variant_5: struct #46 +│ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ └─ item: integer #37 +│ │ │ └─ variant_1: struct #142 +│ │ │ └─ [not]: union '_prisma_integer_filter_with_aggregates' #141 +│ │ │ ├─ variant_0: either '_prisma_integer_filter' #48 +│ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ variant_5: struct #46 +│ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ └─ item: integer #37 +│ │ │ ├─ variant_1: struct #135 +│ │ │ │ └─ [_count]: either '_prisma_integer_filter' #48 +│ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ variant_5: struct #46 +│ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ └─ item: integer #37 +│ │ │ ├─ variant_2: struct #136 +│ │ │ │ └─ [_sum]: either '_prisma_integer_filter' #48 +│ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ variant_5: struct #46 +│ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ └─ item: integer #37 +│ │ │ ├─ variant_3: struct #137 +│ │ │ │ └─ [_avg]: either '_prisma_float_filter' #134 +│ │ │ │ ├─ variant_0: float #123 +│ │ │ │ ├─ variant_1: struct #128 +│ │ │ │ │ └─ [equals]: float #123 +│ │ │ │ ├─ variant_2: struct #129 +│ │ │ │ │ └─ [not]: float #123 +│ │ │ │ ├─ variant_3: struct #130 +│ │ │ │ │ ├─ [gt]: optional 'optional_124' #125 +│ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ ├─ [gte]: optional 'optional_124' #125 +│ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ ├─ [lt]: optional 'optional_124' #125 +│ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ └─ [lte]: optional 'optional_124' #125 +│ │ │ │ │ └─ item: float #123 +│ │ │ │ ├─ variant_4: struct #131 +│ │ │ │ │ └─ [in]: list 'list_126' #127 +│ │ │ │ │ └─ item: float #123 +│ │ │ │ └─ variant_5: struct #132 +│ │ │ │ └─ [notIn]: list 'list_126' #127 +│ │ │ │ └─ item: float #123 +│ │ │ ├─ variant_4: struct #138 +│ │ │ │ └─ [_min]: either '_prisma_integer_filter' #48 +│ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ variant_5: struct #46 +│ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ └─ item: integer #37 +│ │ │ └─ variant_5: struct #139 +│ │ │ └─ [_max]: either '_prisma_integer_filter' #48 +│ │ │ ├─ variant_0: integer #37 +│ │ │ ├─ variant_1: struct #42 +│ │ │ │ └─ [equals]: integer #37 +│ │ │ ├─ variant_2: struct #43 +│ │ │ │ └─ [not]: integer #37 +│ │ │ ├─ variant_3: struct #44 +│ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ └─ item: integer #37 +│ │ │ ├─ variant_4: struct #45 +│ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ └─ item: integer #37 +│ │ │ └─ variant_5: struct #46 +│ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ └─ item: integer #37 +│ │ ├─ [name]: optional 'optional_294' #295 +│ │ │ └─ item: optional '_prisma_string_filter_ex' #32 +│ │ │ └─ item: union #29 +│ │ │ ├─ variant_0: union '_prisma_string_filter' #27 +│ │ │ │ ├─ variant_0: string #11 +│ │ │ │ ├─ variant_1: struct #16 +│ │ │ │ │ └─ [equals]: string #11 +│ │ │ │ ├─ variant_2: struct #17 +│ │ │ │ │ └─ [not]: string #11 +│ │ │ │ ├─ variant_3: struct #18 +│ │ │ │ │ └─ [in]: list 'list_14' #15 +│ │ │ │ │ └─ item: string #11 +│ │ │ │ ├─ variant_4: struct #19 +│ │ │ │ │ └─ [notIn]: list 'list_14' #15 +│ │ │ │ │ └─ item: string #11 +│ │ │ │ ├─ variant_5: struct #23 +│ │ │ │ │ ├─ [contains]: string #11 +│ │ │ │ │ └─ [mode]: optional 'optional_21' #22 +│ │ │ │ │ └─ item: string #20 enum{ '"insensitive"' } +│ │ │ │ ├─ variant_6: struct #24 +│ │ │ │ │ └─ [search]: string #11 +│ │ │ │ └─ variant_7: struct #25 +│ │ │ │ ├─ [endsWith]: optional 'optional_12' #13 +│ │ │ │ │ └─ item: string #11 +│ │ │ │ └─ [startsWith]: optional 'optional_12' #13 +│ │ │ │ └─ item: string #11 +│ │ │ └─ variant_1: struct #28 +│ │ │ └─ [not]: union '_prisma_string_filter' #27 +│ │ │ ├─ variant_0: string #11 +│ │ │ ├─ variant_1: struct #16 +│ │ │ │ └─ [equals]: string #11 +│ │ │ ├─ variant_2: struct #17 +│ │ │ │ └─ [not]: string #11 +│ │ │ ├─ variant_3: struct #18 +│ │ │ │ └─ [in]: list 'list_14' #15 +│ │ │ │ └─ item: string #11 +│ │ │ ├─ variant_4: struct #19 +│ │ │ │ └─ [notIn]: list 'list_14' #15 +│ │ │ │ └─ item: string #11 +│ │ │ ├─ variant_5: struct #23 +│ │ │ │ ├─ [contains]: string #11 +│ │ │ │ └─ [mode]: optional 'optional_21' #22 +│ │ │ │ └─ item: string #20 enum{ '"insensitive"' } +│ │ │ ├─ variant_6: struct #24 +│ │ │ │ └─ [search]: string #11 +│ │ │ └─ variant_7: struct #25 +│ │ │ ├─ [endsWith]: optional 'optional_12' #13 +│ │ │ │ └─ item: string #11 +│ │ │ └─ [startsWith]: optional 'optional_12' #13 +│ │ │ └─ item: string #11 +│ │ └─ [posts]: optional 'optional_333' #334 +│ │ └─ item: union #332 +│ │ ├─ variant_0: struct #325 +│ │ │ └─ [every]: optional 'optional_323' #324 +│ │ │ └─ item: struct 'Post_where_with_aggregates_excluding_User' #322 +│ │ │ ├─ [author]: optional 'optional_319' #320 +│ │ │ │ └─ item: struct 'User_where_with_aggregates_excluding_User_and_Post_where_with_aggregates_excluding_User' #318 +│ │ │ │ ├─ [id]: optional 'optional_300' #301 +│ │ │ │ │ └─ item: optional '_prisma_integer_filter_with_aggregates_ex' #146 +│ │ │ │ │ └─ item: union #143 +│ │ │ │ │ ├─ variant_0: union '_prisma_integer_filter_with_aggregates' #141 +│ │ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #135 +│ │ │ │ │ │ │ └─ [_count]: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #136 +│ │ │ │ │ │ │ └─ [_sum]: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #137 +│ │ │ │ │ │ │ └─ [_avg]: either '_prisma_float_filter' #134 +│ │ │ │ │ │ │ ├─ variant_0: float #123 +│ │ │ │ │ │ │ ├─ variant_1: struct #128 +│ │ │ │ │ │ │ │ └─ [equals]: float #123 +│ │ │ │ │ │ │ ├─ variant_2: struct #129 +│ │ │ │ │ │ │ │ └─ [not]: float #123 +│ │ │ │ │ │ │ ├─ variant_3: struct #130 +│ │ │ │ │ │ │ │ ├─ [gt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ │ ├─ [gte]: optional 'optional_124' #125 +│ │ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ │ ├─ [lt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ │ └─ [lte]: optional 'optional_124' #125 +│ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ ├─ variant_4: struct #131 +│ │ │ │ │ │ │ │ └─ [in]: list 'list_126' #127 +│ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ └─ variant_5: struct #132 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_126' #127 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ ├─ variant_4: struct #138 +│ │ │ │ │ │ │ └─ [_min]: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #139 +│ │ │ │ │ │ └─ [_max]: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_1: struct #142 +│ │ │ │ │ └─ [not]: union '_prisma_integer_filter_with_aggregates' #141 +│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_1: struct #135 +│ │ │ │ │ │ └─ [_count]: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_2: struct #136 +│ │ │ │ │ │ └─ [_sum]: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_3: struct #137 +│ │ │ │ │ │ └─ [_avg]: either '_prisma_float_filter' #134 +│ │ │ │ │ │ ├─ variant_0: float #123 +│ │ │ │ │ │ ├─ variant_1: struct #128 +│ │ │ │ │ │ │ └─ [equals]: float #123 +│ │ │ │ │ │ ├─ variant_2: struct #129 +│ │ │ │ │ │ │ └─ [not]: float #123 +│ │ │ │ │ │ ├─ variant_3: struct #130 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_124' #125 +│ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_124' #125 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ ├─ variant_4: struct #131 +│ │ │ │ │ │ │ └─ [in]: list 'list_126' #127 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ └─ variant_5: struct #132 +│ │ │ │ │ │ └─ [notIn]: list 'list_126' #127 +│ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ ├─ variant_4: struct #138 +│ │ │ │ │ │ └─ [_min]: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #139 +│ │ │ │ │ └─ [_max]: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ [name]: optional 'optional_302' #303 +│ │ │ │ │ └─ item: optional '_prisma_string_filter_ex' #32 +│ │ │ │ │ └─ item: union #29 +│ │ │ │ │ ├─ variant_0: union '_prisma_string_filter' #27 +│ │ │ │ │ │ ├─ variant_0: string #11 +│ │ │ │ │ │ ├─ variant_1: struct #16 +│ │ │ │ │ │ │ └─ [equals]: string #11 +│ │ │ │ │ │ ├─ variant_2: struct #17 +│ │ │ │ │ │ │ └─ [not]: string #11 +│ │ │ │ │ │ ├─ variant_3: struct #18 +│ │ │ │ │ │ │ └─ [in]: list 'list_14' #15 +│ │ │ │ │ │ │ └─ item: string #11 +│ │ │ │ │ │ ├─ variant_4: struct #19 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_14' #15 +│ │ │ │ │ │ │ └─ item: string #11 +│ │ │ │ │ │ ├─ variant_5: struct #23 +│ │ │ │ │ │ │ ├─ [contains]: string #11 +│ │ │ │ │ │ │ └─ [mode]: optional 'optional_21' #22 +│ │ │ │ │ │ │ └─ item: string #20 enum{ '"insensitive"' } +│ │ │ │ │ │ ├─ variant_6: struct #24 +│ │ │ │ │ │ │ └─ [search]: string #11 +│ │ │ │ │ │ └─ variant_7: struct #25 +│ │ │ │ │ │ ├─ [endsWith]: optional 'optional_12' #13 +│ │ │ │ │ │ │ └─ item: string #11 +│ │ │ │ │ │ └─ [startsWith]: optional 'optional_12' #13 +│ │ │ │ │ │ └─ item: string #11 +│ │ │ │ │ └─ variant_1: struct #28 +│ │ │ │ │ └─ [not]: union '_prisma_string_filter' #27 +│ │ │ │ │ ├─ variant_0: string #11 +│ │ │ │ │ ├─ variant_1: struct #16 +│ │ │ │ │ │ └─ [equals]: string #11 +│ │ │ │ │ ├─ variant_2: struct #17 +│ │ │ │ │ │ └─ [not]: string #11 +│ │ │ │ │ ├─ variant_3: struct #18 +│ │ │ │ │ │ └─ [in]: list 'list_14' #15 +│ │ │ │ │ │ └─ item: string #11 +│ │ │ │ │ ├─ variant_4: struct #19 +│ │ │ │ │ │ └─ [notIn]: list 'list_14' #15 +│ │ │ │ │ │ └─ item: string #11 +│ │ │ │ │ ├─ variant_5: struct #23 +│ │ │ │ │ │ ├─ [contains]: string #11 +│ │ │ │ │ │ └─ [mode]: optional 'optional_21' #22 +│ │ │ │ │ │ └─ item: string #20 enum{ '"insensitive"' } +│ │ │ │ │ ├─ variant_6: struct #24 +│ │ │ │ │ │ └─ [search]: string #11 +│ │ │ │ │ └─ variant_7: struct #25 +│ │ │ │ │ ├─ [endsWith]: optional 'optional_12' #13 +│ │ │ │ │ │ └─ item: string #11 +│ │ │ │ │ └─ [startsWith]: optional 'optional_12' #13 +│ │ │ │ │ └─ item: string #11 +│ │ │ │ └─ [posts]: optional 'optional_315' #316 +│ │ │ │ └─ item: union #314 +│ │ │ │ ├─ variant_0: struct #307 +│ │ │ │ │ └─ [every]: optional 'optional_305' #306 +│ │ │ │ │ └─ item: &Post_where_with_aggregates_excluding_User #304 +│ │ │ │ ├─ variant_1: struct #310 +│ │ │ │ │ └─ [some]: optional 'optional_308' #309 +│ │ │ │ │ └─ item: &Post_where_with_aggregates_excluding_User #304 +│ │ │ │ └─ variant_2: struct #313 +│ │ │ │ └─ [none]: optional 'optional_311' #312 +│ │ │ │ └─ item: &Post_where_with_aggregates_excluding_User #304 +│ │ │ ├─ [id]: optional 'optional_296' #297 +│ │ │ │ └─ item: optional '_prisma_integer_filter_with_aggregates_ex' #146 +│ │ │ │ └─ item: union #143 +│ │ │ │ ├─ variant_0: union '_prisma_integer_filter_with_aggregates' #141 +│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_1: struct #135 +│ │ │ │ │ │ └─ [_count]: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_2: struct #136 +│ │ │ │ │ │ └─ [_sum]: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_3: struct #137 +│ │ │ │ │ │ └─ [_avg]: either '_prisma_float_filter' #134 +│ │ │ │ │ │ ├─ variant_0: float #123 +│ │ │ │ │ │ ├─ variant_1: struct #128 +│ │ │ │ │ │ │ └─ [equals]: float #123 +│ │ │ │ │ │ ├─ variant_2: struct #129 +│ │ │ │ │ │ │ └─ [not]: float #123 +│ │ │ │ │ │ ├─ variant_3: struct #130 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_124' #125 +│ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_124' #125 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ ├─ variant_4: struct #131 +│ │ │ │ │ │ │ └─ [in]: list 'list_126' #127 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ └─ variant_5: struct #132 +│ │ │ │ │ │ └─ [notIn]: list 'list_126' #127 +│ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ ├─ variant_4: struct #138 +│ │ │ │ │ │ └─ [_min]: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #139 +│ │ │ │ │ └─ [_max]: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ variant_1: struct #142 +│ │ │ │ └─ [not]: union '_prisma_integer_filter_with_aggregates' #141 +│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_1: struct #135 +│ │ │ │ │ └─ [_count]: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_2: struct #136 +│ │ │ │ │ └─ [_sum]: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_3: struct #137 +│ │ │ │ │ └─ [_avg]: either '_prisma_float_filter' #134 +│ │ │ │ │ ├─ variant_0: float #123 +│ │ │ │ │ ├─ variant_1: struct #128 +│ │ │ │ │ │ └─ [equals]: float #123 +│ │ │ │ │ ├─ variant_2: struct #129 +│ │ │ │ │ │ └─ [not]: float #123 +│ │ │ │ │ ├─ variant_3: struct #130 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_124' #125 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ └─ [lte]: optional 'optional_124' #125 +│ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ ├─ variant_4: struct #131 +│ │ │ │ │ │ └─ [in]: list 'list_126' #127 +│ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ └─ variant_5: struct #132 +│ │ │ │ │ └─ [notIn]: list 'list_126' #127 +│ │ │ │ │ └─ item: float #123 +│ │ │ │ ├─ variant_4: struct #138 +│ │ │ │ │ └─ [_min]: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ variant_5: struct #139 +│ │ │ │ └─ [_max]: either '_prisma_integer_filter' #48 +│ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ variant_5: struct #46 +│ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ └─ item: integer #37 +│ │ │ └─ [title]: optional 'optional_298' #299 +│ │ │ └─ item: optional '_prisma_string_filter_ex' #32 +│ │ │ └─ item: union #29 +│ │ │ ├─ variant_0: union '_prisma_string_filter' #27 +│ │ │ │ ├─ variant_0: string #11 +│ │ │ │ ├─ variant_1: struct #16 +│ │ │ │ │ └─ [equals]: string #11 +│ │ │ │ ├─ variant_2: struct #17 +│ │ │ │ │ └─ [not]: string #11 +│ │ │ │ ├─ variant_3: struct #18 +│ │ │ │ │ └─ [in]: list 'list_14' #15 +│ │ │ │ │ └─ item: string #11 +│ │ │ │ ├─ variant_4: struct #19 +│ │ │ │ │ └─ [notIn]: list 'list_14' #15 +│ │ │ │ │ └─ item: string #11 +│ │ │ │ ├─ variant_5: struct #23 +│ │ │ │ │ ├─ [contains]: string #11 +│ │ │ │ │ └─ [mode]: optional 'optional_21' #22 +│ │ │ │ │ └─ item: string #20 enum{ '"insensitive"' } +│ │ │ │ ├─ variant_6: struct #24 +│ │ │ │ │ └─ [search]: string #11 +│ │ │ │ └─ variant_7: struct #25 +│ │ │ │ ├─ [endsWith]: optional 'optional_12' #13 +│ │ │ │ │ └─ item: string #11 +│ │ │ │ └─ [startsWith]: optional 'optional_12' #13 +│ │ │ │ └─ item: string #11 +│ │ │ └─ variant_1: struct #28 +│ │ │ └─ [not]: union '_prisma_string_filter' #27 +│ │ │ ├─ variant_0: string #11 +│ │ │ ├─ variant_1: struct #16 +│ │ │ │ └─ [equals]: string #11 +│ │ │ ├─ variant_2: struct #17 +│ │ │ │ └─ [not]: string #11 +│ │ │ ├─ variant_3: struct #18 +│ │ │ │ └─ [in]: list 'list_14' #15 +│ │ │ │ └─ item: string #11 +│ │ │ ├─ variant_4: struct #19 +│ │ │ │ └─ [notIn]: list 'list_14' #15 +│ │ │ │ └─ item: string #11 +│ │ │ ├─ variant_5: struct #23 +│ │ │ │ ├─ [contains]: string #11 +│ │ │ │ └─ [mode]: optional 'optional_21' #22 +│ │ │ │ └─ item: string #20 enum{ '"insensitive"' } +│ │ │ ├─ variant_6: struct #24 +│ │ │ │ └─ [search]: string #11 +│ │ │ └─ variant_7: struct #25 +│ │ │ ├─ [endsWith]: optional 'optional_12' #13 +│ │ │ │ └─ item: string #11 +│ │ │ └─ [startsWith]: optional 'optional_12' #13 +│ │ │ └─ item: string #11 +│ │ ├─ variant_1: struct #328 +│ │ │ └─ [some]: optional 'optional_326' #327 +│ │ │ └─ item: struct 'Post_where_with_aggregates_excluding_User' #322 +│ │ │ ├─ [author]: optional 'optional_319' #320 +│ │ │ │ └─ item: struct 'User_where_with_aggregates_excluding_User_and_Post_where_with_aggregates_excluding_User' #318 +│ │ │ │ ├─ [id]: optional 'optional_300' #301 +│ │ │ │ │ └─ item: optional '_prisma_integer_filter_with_aggregates_ex' #146 +│ │ │ │ │ └─ item: union #143 +│ │ │ │ │ ├─ variant_0: union '_prisma_integer_filter_with_aggregates' #141 +│ │ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #135 +│ │ │ │ │ │ │ └─ [_count]: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #136 +│ │ │ │ │ │ │ └─ [_sum]: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #137 +│ │ │ │ │ │ │ └─ [_avg]: either '_prisma_float_filter' #134 +│ │ │ │ │ │ │ ├─ variant_0: float #123 +│ │ │ │ │ │ │ ├─ variant_1: struct #128 +│ │ │ │ │ │ │ │ └─ [equals]: float #123 +│ │ │ │ │ │ │ ├─ variant_2: struct #129 +│ │ │ │ │ │ │ │ └─ [not]: float #123 +│ │ │ │ │ │ │ ├─ variant_3: struct #130 +│ │ │ │ │ │ │ │ ├─ [gt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ │ ├─ [gte]: optional 'optional_124' #125 +│ │ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ │ ├─ [lt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ │ └─ [lte]: optional 'optional_124' #125 +│ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ ├─ variant_4: struct #131 +│ │ │ │ │ │ │ │ └─ [in]: list 'list_126' #127 +│ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ └─ variant_5: struct #132 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_126' #127 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ ├─ variant_4: struct #138 +│ │ │ │ │ │ │ └─ [_min]: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #139 +│ │ │ │ │ │ └─ [_max]: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_1: struct #142 +│ │ │ │ │ └─ [not]: union '_prisma_integer_filter_with_aggregates' #141 +│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_1: struct #135 +│ │ │ │ │ │ └─ [_count]: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_2: struct #136 +│ │ │ │ │ │ └─ [_sum]: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_3: struct #137 +│ │ │ │ │ │ └─ [_avg]: either '_prisma_float_filter' #134 +│ │ │ │ │ │ ├─ variant_0: float #123 +│ │ │ │ │ │ ├─ variant_1: struct #128 +│ │ │ │ │ │ │ └─ [equals]: float #123 +│ │ │ │ │ │ ├─ variant_2: struct #129 +│ │ │ │ │ │ │ └─ [not]: float #123 +│ │ │ │ │ │ ├─ variant_3: struct #130 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_124' #125 +│ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_124' #125 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ ├─ variant_4: struct #131 +│ │ │ │ │ │ │ └─ [in]: list 'list_126' #127 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ └─ variant_5: struct #132 +│ │ │ │ │ │ └─ [notIn]: list 'list_126' #127 +│ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ ├─ variant_4: struct #138 +│ │ │ │ │ │ └─ [_min]: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #139 +│ │ │ │ │ └─ [_max]: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ [name]: optional 'optional_302' #303 +│ │ │ │ │ └─ item: optional '_prisma_string_filter_ex' #32 +│ │ │ │ │ └─ item: union #29 +│ │ │ │ │ ├─ variant_0: union '_prisma_string_filter' #27 +│ │ │ │ │ │ ├─ variant_0: string #11 +│ │ │ │ │ │ ├─ variant_1: struct #16 +│ │ │ │ │ │ │ └─ [equals]: string #11 +│ │ │ │ │ │ ├─ variant_2: struct #17 +│ │ │ │ │ │ │ └─ [not]: string #11 +│ │ │ │ │ │ ├─ variant_3: struct #18 +│ │ │ │ │ │ │ └─ [in]: list 'list_14' #15 +│ │ │ │ │ │ │ └─ item: string #11 +│ │ │ │ │ │ ├─ variant_4: struct #19 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_14' #15 +│ │ │ │ │ │ │ └─ item: string #11 +│ │ │ │ │ │ ├─ variant_5: struct #23 +│ │ │ │ │ │ │ ├─ [contains]: string #11 +│ │ │ │ │ │ │ └─ [mode]: optional 'optional_21' #22 +│ │ │ │ │ │ │ └─ item: string #20 enum{ '"insensitive"' } +│ │ │ │ │ │ ├─ variant_6: struct #24 +│ │ │ │ │ │ │ └─ [search]: string #11 +│ │ │ │ │ │ └─ variant_7: struct #25 +│ │ │ │ │ │ ├─ [endsWith]: optional 'optional_12' #13 +│ │ │ │ │ │ │ └─ item: string #11 +│ │ │ │ │ │ └─ [startsWith]: optional 'optional_12' #13 +│ │ │ │ │ │ └─ item: string #11 +│ │ │ │ │ └─ variant_1: struct #28 +│ │ │ │ │ └─ [not]: union '_prisma_string_filter' #27 +│ │ │ │ │ ├─ variant_0: string #11 +│ │ │ │ │ ├─ variant_1: struct #16 +│ │ │ │ │ │ └─ [equals]: string #11 +│ │ │ │ │ ├─ variant_2: struct #17 +│ │ │ │ │ │ └─ [not]: string #11 +│ │ │ │ │ ├─ variant_3: struct #18 +│ │ │ │ │ │ └─ [in]: list 'list_14' #15 +│ │ │ │ │ │ └─ item: string #11 +│ │ │ │ │ ├─ variant_4: struct #19 +│ │ │ │ │ │ └─ [notIn]: list 'list_14' #15 +│ │ │ │ │ │ └─ item: string #11 +│ │ │ │ │ ├─ variant_5: struct #23 +│ │ │ │ │ │ ├─ [contains]: string #11 +│ │ │ │ │ │ └─ [mode]: optional 'optional_21' #22 +│ │ │ │ │ │ └─ item: string #20 enum{ '"insensitive"' } +│ │ │ │ │ ├─ variant_6: struct #24 +│ │ │ │ │ │ └─ [search]: string #11 +│ │ │ │ │ └─ variant_7: struct #25 +│ │ │ │ │ ├─ [endsWith]: optional 'optional_12' #13 +│ │ │ │ │ │ └─ item: string #11 +│ │ │ │ │ └─ [startsWith]: optional 'optional_12' #13 +│ │ │ │ │ └─ item: string #11 +│ │ │ │ └─ [posts]: optional 'optional_315' #316 +│ │ │ │ └─ item: union #314 +│ │ │ │ ├─ variant_0: struct #307 +│ │ │ │ │ └─ [every]: optional 'optional_305' #306 +│ │ │ │ │ └─ item: &Post_where_with_aggregates_excluding_User #304 +│ │ │ │ ├─ variant_1: struct #310 +│ │ │ │ │ └─ [some]: optional 'optional_308' #309 +│ │ │ │ │ └─ item: &Post_where_with_aggregates_excluding_User #304 +│ │ │ │ └─ variant_2: struct #313 +│ │ │ │ └─ [none]: optional 'optional_311' #312 +│ │ │ │ └─ item: &Post_where_with_aggregates_excluding_User #304 +│ │ │ ├─ [id]: optional 'optional_296' #297 +│ │ │ │ └─ item: optional '_prisma_integer_filter_with_aggregates_ex' #146 +│ │ │ │ └─ item: union #143 +│ │ │ │ ├─ variant_0: union '_prisma_integer_filter_with_aggregates' #141 +│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_1: struct #135 +│ │ │ │ │ │ └─ [_count]: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_2: struct #136 +│ │ │ │ │ │ └─ [_sum]: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_3: struct #137 +│ │ │ │ │ │ └─ [_avg]: either '_prisma_float_filter' #134 +│ │ │ │ │ │ ├─ variant_0: float #123 +│ │ │ │ │ │ ├─ variant_1: struct #128 +│ │ │ │ │ │ │ └─ [equals]: float #123 +│ │ │ │ │ │ ├─ variant_2: struct #129 +│ │ │ │ │ │ │ └─ [not]: float #123 +│ │ │ │ │ │ ├─ variant_3: struct #130 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_124' #125 +│ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_124' #125 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ ├─ variant_4: struct #131 +│ │ │ │ │ │ │ └─ [in]: list 'list_126' #127 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ └─ variant_5: struct #132 +│ │ │ │ │ │ └─ [notIn]: list 'list_126' #127 +│ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ ├─ variant_4: struct #138 +│ │ │ │ │ │ └─ [_min]: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #139 +│ │ │ │ │ └─ [_max]: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ variant_1: struct #142 +│ │ │ │ └─ [not]: union '_prisma_integer_filter_with_aggregates' #141 +│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_1: struct #135 +│ │ │ │ │ └─ [_count]: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_2: struct #136 +│ │ │ │ │ └─ [_sum]: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_3: struct #137 +│ │ │ │ │ └─ [_avg]: either '_prisma_float_filter' #134 +│ │ │ │ │ ├─ variant_0: float #123 +│ │ │ │ │ ├─ variant_1: struct #128 +│ │ │ │ │ │ └─ [equals]: float #123 +│ │ │ │ │ ├─ variant_2: struct #129 +│ │ │ │ │ │ └─ [not]: float #123 +│ │ │ │ │ ├─ variant_3: struct #130 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_124' #125 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ └─ [lte]: optional 'optional_124' #125 +│ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ ├─ variant_4: struct #131 +│ │ │ │ │ │ └─ [in]: list 'list_126' #127 +│ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ └─ variant_5: struct #132 +│ │ │ │ │ └─ [notIn]: list 'list_126' #127 +│ │ │ │ │ └─ item: float #123 +│ │ │ │ ├─ variant_4: struct #138 +│ │ │ │ │ └─ [_min]: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ variant_5: struct #139 +│ │ │ │ └─ [_max]: either '_prisma_integer_filter' #48 +│ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ variant_5: struct #46 +│ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ └─ item: integer #37 +│ │ │ └─ [title]: optional 'optional_298' #299 +│ │ │ └─ item: optional '_prisma_string_filter_ex' #32 +│ │ │ └─ item: union #29 +│ │ │ ├─ variant_0: union '_prisma_string_filter' #27 +│ │ │ │ ├─ variant_0: string #11 +│ │ │ │ ├─ variant_1: struct #16 +│ │ │ │ │ └─ [equals]: string #11 +│ │ │ │ ├─ variant_2: struct #17 +│ │ │ │ │ └─ [not]: string #11 +│ │ │ │ ├─ variant_3: struct #18 +│ │ │ │ │ └─ [in]: list 'list_14' #15 +│ │ │ │ │ └─ item: string #11 +│ │ │ │ ├─ variant_4: struct #19 +│ │ │ │ │ └─ [notIn]: list 'list_14' #15 +│ │ │ │ │ └─ item: string #11 +│ │ │ │ ├─ variant_5: struct #23 +│ │ │ │ │ ├─ [contains]: string #11 +│ │ │ │ │ └─ [mode]: optional 'optional_21' #22 +│ │ │ │ │ └─ item: string #20 enum{ '"insensitive"' } +│ │ │ │ ├─ variant_6: struct #24 +│ │ │ │ │ └─ [search]: string #11 +│ │ │ │ └─ variant_7: struct #25 +│ │ │ │ ├─ [endsWith]: optional 'optional_12' #13 +│ │ │ │ │ └─ item: string #11 +│ │ │ │ └─ [startsWith]: optional 'optional_12' #13 +│ │ │ │ └─ item: string #11 +│ │ │ └─ variant_1: struct #28 +│ │ │ └─ [not]: union '_prisma_string_filter' #27 +│ │ │ ├─ variant_0: string #11 +│ │ │ ├─ variant_1: struct #16 +│ │ │ │ └─ [equals]: string #11 +│ │ │ ├─ variant_2: struct #17 +│ │ │ │ └─ [not]: string #11 +│ │ │ ├─ variant_3: struct #18 +│ │ │ │ └─ [in]: list 'list_14' #15 +│ │ │ │ └─ item: string #11 +│ │ │ ├─ variant_4: struct #19 +│ │ │ │ └─ [notIn]: list 'list_14' #15 +│ │ │ │ └─ item: string #11 +│ │ │ ├─ variant_5: struct #23 +│ │ │ │ ├─ [contains]: string #11 +│ │ │ │ └─ [mode]: optional 'optional_21' #22 +│ │ │ │ └─ item: string #20 enum{ '"insensitive"' } +│ │ │ ├─ variant_6: struct #24 +│ │ │ │ └─ [search]: string #11 +│ │ │ └─ variant_7: struct #25 +│ │ │ ├─ [endsWith]: optional 'optional_12' #13 +│ │ │ │ └─ item: string #11 +│ │ │ └─ [startsWith]: optional 'optional_12' #13 +│ │ │ └─ item: string #11 +│ │ └─ variant_2: struct #331 +│ │ └─ [none]: optional 'optional_329' #330 +│ │ └─ item: struct 'Post_where_with_aggregates_excluding_User' #322 +│ │ ├─ [author]: optional 'optional_319' #320 +│ │ │ └─ item: struct 'User_where_with_aggregates_excluding_User_and_Post_where_with_aggregates_excluding_User' #318 +│ │ │ ├─ [id]: optional 'optional_300' #301 +│ │ │ │ └─ item: optional '_prisma_integer_filter_with_aggregates_ex' #146 +│ │ │ │ └─ item: union #143 +│ │ │ │ ├─ variant_0: union '_prisma_integer_filter_with_aggregates' #141 +│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_1: struct #135 +│ │ │ │ │ │ └─ [_count]: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_2: struct #136 +│ │ │ │ │ │ └─ [_sum]: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_3: struct #137 +│ │ │ │ │ │ └─ [_avg]: either '_prisma_float_filter' #134 +│ │ │ │ │ │ ├─ variant_0: float #123 +│ │ │ │ │ │ ├─ variant_1: struct #128 +│ │ │ │ │ │ │ └─ [equals]: float #123 +│ │ │ │ │ │ ├─ variant_2: struct #129 +│ │ │ │ │ │ │ └─ [not]: float #123 +│ │ │ │ │ │ ├─ variant_3: struct #130 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_124' #125 +│ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_124' #125 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ ├─ variant_4: struct #131 +│ │ │ │ │ │ │ └─ [in]: list 'list_126' #127 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ └─ variant_5: struct #132 +│ │ │ │ │ │ └─ [notIn]: list 'list_126' #127 +│ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ ├─ variant_4: struct #138 +│ │ │ │ │ │ └─ [_min]: either '_prisma_integer_filter' #48 +│ │ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #139 +│ │ │ │ │ └─ [_max]: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ variant_1: struct #142 +│ │ │ │ └─ [not]: union '_prisma_integer_filter_with_aggregates' #141 +│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_1: struct #135 +│ │ │ │ │ └─ [_count]: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_2: struct #136 +│ │ │ │ │ └─ [_sum]: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_3: struct #137 +│ │ │ │ │ └─ [_avg]: either '_prisma_float_filter' #134 +│ │ │ │ │ ├─ variant_0: float #123 +│ │ │ │ │ ├─ variant_1: struct #128 +│ │ │ │ │ │ └─ [equals]: float #123 +│ │ │ │ │ ├─ variant_2: struct #129 +│ │ │ │ │ │ └─ [not]: float #123 +│ │ │ │ │ ├─ variant_3: struct #130 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_124' #125 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ └─ [lte]: optional 'optional_124' #125 +│ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ ├─ variant_4: struct #131 +│ │ │ │ │ │ └─ [in]: list 'list_126' #127 +│ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ └─ variant_5: struct #132 +│ │ │ │ │ └─ [notIn]: list 'list_126' #127 +│ │ │ │ │ └─ item: float #123 +│ │ │ │ ├─ variant_4: struct #138 +│ │ │ │ │ └─ [_min]: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ variant_5: struct #139 +│ │ │ │ └─ [_max]: either '_prisma_integer_filter' #48 +│ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ variant_5: struct #46 +│ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ └─ item: integer #37 +│ │ │ ├─ [name]: optional 'optional_302' #303 +│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #32 +│ │ │ │ └─ item: union #29 +│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #27 +│ │ │ │ │ ├─ variant_0: string #11 +│ │ │ │ │ ├─ variant_1: struct #16 +│ │ │ │ │ │ └─ [equals]: string #11 +│ │ │ │ │ ├─ variant_2: struct #17 +│ │ │ │ │ │ └─ [not]: string #11 +│ │ │ │ │ ├─ variant_3: struct #18 +│ │ │ │ │ │ └─ [in]: list 'list_14' #15 +│ │ │ │ │ │ └─ item: string #11 +│ │ │ │ │ ├─ variant_4: struct #19 +│ │ │ │ │ │ └─ [notIn]: list 'list_14' #15 +│ │ │ │ │ │ └─ item: string #11 +│ │ │ │ │ ├─ variant_5: struct #23 +│ │ │ │ │ │ ├─ [contains]: string #11 +│ │ │ │ │ │ └─ [mode]: optional 'optional_21' #22 +│ │ │ │ │ │ └─ item: string #20 enum{ '"insensitive"' } +│ │ │ │ │ ├─ variant_6: struct #24 +│ │ │ │ │ │ └─ [search]: string #11 +│ │ │ │ │ └─ variant_7: struct #25 +│ │ │ │ │ ├─ [endsWith]: optional 'optional_12' #13 +│ │ │ │ │ │ └─ item: string #11 +│ │ │ │ │ └─ [startsWith]: optional 'optional_12' #13 +│ │ │ │ │ └─ item: string #11 +│ │ │ │ └─ variant_1: struct #28 +│ │ │ │ └─ [not]: union '_prisma_string_filter' #27 +│ │ │ │ ├─ variant_0: string #11 +│ │ │ │ ├─ variant_1: struct #16 +│ │ │ │ │ └─ [equals]: string #11 +│ │ │ │ ├─ variant_2: struct #17 +│ │ │ │ │ └─ [not]: string #11 +│ │ │ │ ├─ variant_3: struct #18 +│ │ │ │ │ └─ [in]: list 'list_14' #15 +│ │ │ │ │ └─ item: string #11 +│ │ │ │ ├─ variant_4: struct #19 +│ │ │ │ │ └─ [notIn]: list 'list_14' #15 +│ │ │ │ │ └─ item: string #11 +│ │ │ │ ├─ variant_5: struct #23 +│ │ │ │ │ ├─ [contains]: string #11 +│ │ │ │ │ └─ [mode]: optional 'optional_21' #22 +│ │ │ │ │ └─ item: string #20 enum{ '"insensitive"' } +│ │ │ │ ├─ variant_6: struct #24 +│ │ │ │ │ └─ [search]: string #11 +│ │ │ │ └─ variant_7: struct #25 +│ │ │ │ ├─ [endsWith]: optional 'optional_12' #13 +│ │ │ │ │ └─ item: string #11 +│ │ │ │ └─ [startsWith]: optional 'optional_12' #13 +│ │ │ │ └─ item: string #11 +│ │ │ └─ [posts]: optional 'optional_315' #316 +│ │ │ └─ item: union #314 +│ │ │ ├─ variant_0: struct #307 +│ │ │ │ └─ [every]: optional 'optional_305' #306 +│ │ │ │ └─ item: &Post_where_with_aggregates_excluding_User #304 +│ │ │ ├─ variant_1: struct #310 +│ │ │ │ └─ [some]: optional 'optional_308' #309 +│ │ │ │ └─ item: &Post_where_with_aggregates_excluding_User #304 +│ │ │ └─ variant_2: struct #313 +│ │ │ └─ [none]: optional 'optional_311' #312 +│ │ │ └─ item: &Post_where_with_aggregates_excluding_User #304 +│ │ ├─ [id]: optional 'optional_296' #297 +│ │ │ └─ item: optional '_prisma_integer_filter_with_aggregates_ex' #146 +│ │ │ └─ item: union #143 +│ │ │ ├─ variant_0: union '_prisma_integer_filter_with_aggregates' #141 +│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_1: struct #135 +│ │ │ │ │ └─ [_count]: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_2: struct #136 +│ │ │ │ │ └─ [_sum]: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_3: struct #137 +│ │ │ │ │ └─ [_avg]: either '_prisma_float_filter' #134 +│ │ │ │ │ ├─ variant_0: float #123 +│ │ │ │ │ ├─ variant_1: struct #128 +│ │ │ │ │ │ └─ [equals]: float #123 +│ │ │ │ │ ├─ variant_2: struct #129 +│ │ │ │ │ │ └─ [not]: float #123 +│ │ │ │ │ ├─ variant_3: struct #130 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_124' #125 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_124' #125 +│ │ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ │ └─ [lte]: optional 'optional_124' #125 +│ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ ├─ variant_4: struct #131 +│ │ │ │ │ │ └─ [in]: list 'list_126' #127 +│ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ └─ variant_5: struct #132 +│ │ │ │ │ └─ [notIn]: list 'list_126' #127 +│ │ │ │ │ └─ item: float #123 +│ │ │ │ ├─ variant_4: struct #138 +│ │ │ │ │ └─ [_min]: either '_prisma_integer_filter' #48 +│ │ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ variant_5: struct #46 +│ │ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ variant_5: struct #139 +│ │ │ │ └─ [_max]: either '_prisma_integer_filter' #48 +│ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ variant_5: struct #46 +│ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ └─ item: integer #37 +│ │ │ └─ variant_1: struct #142 +│ │ │ └─ [not]: union '_prisma_integer_filter_with_aggregates' #141 +│ │ │ ├─ variant_0: either '_prisma_integer_filter' #48 +│ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ variant_5: struct #46 +│ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ └─ item: integer #37 +│ │ │ ├─ variant_1: struct #135 +│ │ │ │ └─ [_count]: either '_prisma_integer_filter' #48 +│ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ variant_5: struct #46 +│ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ └─ item: integer #37 +│ │ │ ├─ variant_2: struct #136 +│ │ │ │ └─ [_sum]: either '_prisma_integer_filter' #48 +│ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ variant_5: struct #46 +│ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ └─ item: integer #37 +│ │ │ ├─ variant_3: struct #137 +│ │ │ │ └─ [_avg]: either '_prisma_float_filter' #134 +│ │ │ │ ├─ variant_0: float #123 +│ │ │ │ ├─ variant_1: struct #128 +│ │ │ │ │ └─ [equals]: float #123 +│ │ │ │ ├─ variant_2: struct #129 +│ │ │ │ │ └─ [not]: float #123 +│ │ │ │ ├─ variant_3: struct #130 +│ │ │ │ │ ├─ [gt]: optional 'optional_124' #125 +│ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ ├─ [gte]: optional 'optional_124' #125 +│ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ ├─ [lt]: optional 'optional_124' #125 +│ │ │ │ │ │ └─ item: float #123 +│ │ │ │ │ └─ [lte]: optional 'optional_124' #125 +│ │ │ │ │ └─ item: float #123 +│ │ │ │ ├─ variant_4: struct #131 +│ │ │ │ │ └─ [in]: list 'list_126' #127 +│ │ │ │ │ └─ item: float #123 +│ │ │ │ └─ variant_5: struct #132 +│ │ │ │ └─ [notIn]: list 'list_126' #127 +│ │ │ │ └─ item: float #123 +│ │ │ ├─ variant_4: struct #138 +│ │ │ │ └─ [_min]: either '_prisma_integer_filter' #48 +│ │ │ │ ├─ variant_0: integer #37 +│ │ │ │ ├─ variant_1: struct #42 +│ │ │ │ │ └─ [equals]: integer #37 +│ │ │ │ ├─ variant_2: struct #43 +│ │ │ │ │ └─ [not]: integer #37 +│ │ │ │ ├─ variant_3: struct #44 +│ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ └─ item: integer #37 +│ │ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ variant_4: struct #45 +│ │ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ variant_5: struct #46 +│ │ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ │ └─ item: integer #37 +│ │ │ └─ variant_5: struct #139 +│ │ │ └─ [_max]: either '_prisma_integer_filter' #48 +│ │ │ ├─ variant_0: integer #37 +│ │ │ ├─ variant_1: struct #42 +│ │ │ │ └─ [equals]: integer #37 +│ │ │ ├─ variant_2: struct #43 +│ │ │ │ └─ [not]: integer #37 +│ │ │ ├─ variant_3: struct #44 +│ │ │ │ ├─ [gt]: optional 'optional_38' #39 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ [gte]: optional 'optional_38' #39 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ ├─ [lt]: optional 'optional_38' #39 +│ │ │ │ │ └─ item: integer #37 +│ │ │ │ └─ [lte]: optional 'optional_38' #39 +│ │ │ │ └─ item: integer #37 +│ │ │ ├─ variant_4: struct #45 +│ │ │ │ └─ [in]: list 'list_40' #41 +│ │ │ │ └─ item: integer #37 +│ │ │ └─ variant_5: struct #46 +│ │ │ └─ [notIn]: list 'list_40' #41 +│ │ │ └─ item: integer #37 +│ │ └─ [title]: optional 'optional_298' #299 +│ │ └─ item: optional '_prisma_string_filter_ex' #32 +│ │ └─ item: union #29 +│ │ ├─ variant_0: union '_prisma_string_filter' #27 +│ │ │ ├─ variant_0: string #11 +│ │ │ ├─ variant_1: struct #16 +│ │ │ │ └─ [equals]: string #11 +│ │ │ ├─ variant_2: struct #17 +│ │ │ │ └─ [not]: string #11 +│ │ │ ├─ variant_3: struct #18 +│ │ │ │ └─ [in]: list 'list_14' #15 +│ │ │ │ └─ item: string #11 +│ │ │ ├─ variant_4: struct #19 +│ │ │ │ └─ [notIn]: list 'list_14' #15 +│ │ │ │ └─ item: string #11 +│ │ │ ├─ variant_5: struct #23 +│ │ │ │ ├─ [contains]: string #11 +│ │ │ │ └─ [mode]: optional 'optional_21' #22 +│ │ │ │ └─ item: string #20 enum{ '"insensitive"' } +│ │ │ ├─ variant_6: struct #24 +│ │ │ │ └─ [search]: string #11 +│ │ │ └─ variant_7: struct #25 +│ │ │ ├─ [endsWith]: optional 'optional_12' #13 +│ │ │ │ └─ item: string #11 +│ │ │ └─ [startsWith]: optional 'optional_12' #13 +│ │ │ └─ item: string #11 +│ │ └─ variant_1: struct #28 +│ │ └─ [not]: union '_prisma_string_filter' #27 +│ │ ├─ variant_0: string #11 +│ │ ├─ variant_1: struct #16 +│ │ │ └─ [equals]: string #11 +│ │ ├─ variant_2: struct #17 +│ │ │ └─ [not]: string #11 +│ │ ├─ variant_3: struct #18 +│ │ │ └─ [in]: list 'list_14' #15 +│ │ │ └─ item: string #11 +│ │ ├─ variant_4: struct #19 +│ │ │ └─ [notIn]: list 'list_14' #15 +│ │ │ └─ item: string #11 +│ │ ├─ variant_5: struct #23 +│ │ │ ├─ [contains]: string #11 +│ │ │ └─ [mode]: optional 'optional_21' #22 +│ │ │ └─ item: string #20 enum{ '"insensitive"' } +│ │ ├─ variant_6: struct #24 +│ │ │ └─ [search]: string #11 +│ │ └─ variant_7: struct #25 +│ │ ├─ [endsWith]: optional 'optional_12' #13 +│ │ │ └─ item: string #11 +│ │ └─ [startsWith]: optional 'optional_12' #13 +│ │ └─ item: string #11 +│ ├─ variant_1: struct #340 +│ │ └─ [AND]: list 'list_338' #339 +│ │ └─ item: &User_having #337 +│ ├─ variant_2: struct #343 +│ │ └─ [OR]: list 'list_341' #342 +│ │ └─ item: &User_having #337 +│ └─ variant_3: struct #344 +│ └─ [NOT]: &User_having #337 +├─ [orderBy]: optional 'optional_276' #277 +│ └─ item: list 'User_order_by_with_aggregates' #275 +│ └─ item: struct #272 +│ ├─ [_avg]: optional 'optional_264' #265 +│ │ └─ item: struct #263 +│ │ └─ [id]: optional '_prisma_sort' #79 +│ │ └─ item: union #76 +│ │ ├─ variant_0: struct #75 +│ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ └─ variant_1: string '_prisma_sort_order' #72 +│ ├─ [_count]: optional 'optional_261' #262 +│ │ └─ item: struct #260 +│ │ ├─ [id]: optional '_prisma_sort' #79 +│ │ │ └─ item: union #76 +│ │ │ ├─ variant_0: struct #75 +│ │ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ │ └─ variant_1: string '_prisma_sort_order' #72 +│ │ ├─ [name]: optional '_prisma_sort' #79 +│ │ │ └─ item: union #76 +│ │ │ ├─ variant_0: struct #75 +│ │ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ │ └─ variant_1: string '_prisma_sort_order' #72 +│ │ └─ [posts]: optional '_prisma_sort' #79 +│ │ └─ item: union #76 +│ │ ├─ variant_0: struct #75 +│ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ └─ variant_1: string '_prisma_sort_order' #72 +│ ├─ [_max]: optional 'optional_264' #265 +│ │ └─ item: struct #263 +│ │ └─ [id]: optional '_prisma_sort' #79 +│ │ └─ item: union #76 +│ │ ├─ variant_0: struct #75 +│ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ └─ variant_1: string '_prisma_sort_order' #72 +│ ├─ [_min]: optional 'optional_264' #265 +│ │ └─ item: struct #263 +│ │ └─ [id]: optional '_prisma_sort' #79 +│ │ └─ item: union #76 +│ │ ├─ variant_0: struct #75 +│ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ └─ variant_1: string '_prisma_sort_order' #72 +│ ├─ [_sum]: optional 'optional_264' #265 +│ │ └─ item: struct #263 +│ │ └─ [id]: optional '_prisma_sort' #79 +│ │ └─ item: union #76 +│ │ ├─ variant_0: struct #75 +│ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ └─ variant_1: string '_prisma_sort_order' #72 +│ ├─ [id]: optional '_prisma_sort' #79 +│ │ └─ item: union #76 +│ │ ├─ variant_0: struct #75 +│ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ └─ variant_1: string '_prisma_sort_order' #72 +│ ├─ [name]: optional '_prisma_sort' #79 +│ │ └─ item: union #76 +│ │ ├─ variant_0: struct #75 +│ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ └─ variant_1: string '_prisma_sort_order' #72 +│ └─ [posts]: optional '_prisma_sort_by_aggregates' #271 +│ └─ item: struct #268 +│ ├─ [_avg]: optional '_prisma_sort' #79 +│ │ └─ item: union #76 +│ │ ├─ variant_0: struct #75 +│ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ └─ variant_1: string '_prisma_sort_order' #72 +│ ├─ [_count]: optional '_prisma_sort' #79 +│ │ └─ item: union #76 +│ │ ├─ variant_0: struct #75 +│ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ └─ variant_1: string '_prisma_sort_order' #72 +│ ├─ [_max]: optional '_prisma_sort' #79 +│ │ └─ item: union #76 +│ │ ├─ variant_0: struct #75 +│ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ └─ variant_1: string '_prisma_sort_order' #72 +│ ├─ [_min]: optional '_prisma_sort' #79 +│ │ └─ item: union #76 +│ │ ├─ variant_0: struct #75 +│ │ │ └─ [sort]: string '_prisma_sort_order' #72 +│ │ └─ variant_1: string '_prisma_sort_order' #72 +│ └─ [_sum]: optional '_prisma_sort' #79 +│ └─ item: union #76 +│ ├─ variant_0: struct #75 +│ │ └─ [sort]: string '_prisma_sort_order' #72 +│ └─ variant_1: string '_prisma_sort_order' #72 +├─ [skip]: optional 'optional_280' #281 +│ └─ item: integer '_skip' #104 +├─ [take]: optional 'optional_278' #279 +│ └─ item: integer '_take' #100 +└─ [where]: optional 'optional_258' #259 + └─ item: struct 'User_query_where_input' #257 + ├─ [AND]: optional 'optional_252' #253 + │ └─ item: list 'list_250' #251 + │ └─ item: &User_query_where_input #249 + ├─ [NOT]: optional 'optional_254' #255 + │ └─ item: &User_query_where_input #249 + ├─ [OR]: optional 'optional_252' #253 + │ └─ item: list 'list_250' #251 + │ └─ item: &User_query_where_input #249 + ├─ [id]: optional 'optional_204' #205 + │ └─ item: optional '_prisma_integer_filter_ex' #53 + │ └─ item: union #50 + │ ├─ variant_0: either '_prisma_integer_filter' #48 + │ │ ├─ variant_0: integer #37 + │ │ ├─ variant_1: struct #42 + │ │ │ └─ [equals]: integer #37 + │ │ ├─ variant_2: struct #43 + │ │ │ └─ [not]: integer #37 + │ │ ├─ variant_3: struct #44 + │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ variant_4: struct #45 + │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ variant_5: struct #46 + │ │ └─ [notIn]: list 'list_40' #41 + │ │ └─ item: integer #37 + │ └─ variant_1: struct #49 + │ └─ [not]: either '_prisma_integer_filter' #48 + │ ├─ variant_0: integer #37 + │ ├─ variant_1: struct #42 + │ │ └─ [equals]: integer #37 + │ ├─ variant_2: struct #43 + │ │ └─ [not]: integer #37 + │ ├─ variant_3: struct #44 + │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ └─ [lte]: optional 'optional_38' #39 + │ │ └─ item: integer #37 + │ ├─ variant_4: struct #45 + │ │ └─ [in]: list 'list_40' #41 + │ │ └─ item: integer #37 + │ └─ variant_5: struct #46 + │ └─ [notIn]: list 'list_40' #41 + │ └─ item: integer #37 + ├─ [name]: optional 'optional_206' #207 + │ └─ item: optional '_prisma_string_filter_ex' #32 + │ └─ item: union #29 + │ ├─ variant_0: union '_prisma_string_filter' #27 + │ │ ├─ variant_0: string #11 + │ │ ├─ variant_1: struct #16 + │ │ │ └─ [equals]: string #11 + │ │ ├─ variant_2: struct #17 + │ │ │ └─ [not]: string #11 + │ │ ├─ variant_3: struct #18 + │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_4: struct #19 + │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_5: struct #23 + │ │ │ ├─ [contains]: string #11 + │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #24 + │ │ │ └─ [search]: string #11 + │ │ └─ variant_7: struct #25 + │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ variant_1: struct #28 + │ └─ [not]: union '_prisma_string_filter' #27 + │ ├─ variant_0: string #11 + │ ├─ variant_1: struct #16 + │ │ └─ [equals]: string #11 + │ ├─ variant_2: struct #17 + │ │ └─ [not]: string #11 + │ ├─ variant_3: struct #18 + │ │ └─ [in]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_4: struct #19 + │ │ └─ [notIn]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_5: struct #23 + │ │ ├─ [contains]: string #11 + │ │ └─ [mode]: optional 'optional_21' #22 + │ │ └─ item: string #20 enum{ '"insensitive"' } + │ ├─ variant_6: struct #24 + │ │ └─ [search]: string #11 + │ └─ variant_7: struct #25 + │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ [startsWith]: optional 'optional_12' #13 + │ └─ item: string #11 + └─ [posts]: optional 'optional_245' #246 + └─ item: union #244 + ├─ variant_0: struct #237 + │ └─ [every]: optional 'optional_235' #236 + │ └─ item: struct 'Post_where_excluding_User' #234 + │ ├─ [author]: optional 'optional_231' #232 + │ │ └─ item: struct 'User_where_excluding_User_and_Post_where_excluding_User' #230 + │ │ ├─ [id]: optional 'optional_212' #213 + │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 + │ │ │ └─ item: union #50 + │ │ │ ├─ variant_0: either '_prisma_integer_filter' #48 + │ │ │ │ ├─ variant_0: integer #37 + │ │ │ │ ├─ variant_1: struct #42 + │ │ │ │ │ └─ [equals]: integer #37 + │ │ │ │ ├─ variant_2: struct #43 + │ │ │ │ │ └─ [not]: integer #37 + │ │ │ │ ├─ variant_3: struct #44 + │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ │ │ └─ item: integer #37 + │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ │ │ └─ item: integer #37 + │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ │ │ └─ item: integer #37 + │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ variant_4: struct #45 + │ │ │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ └─ variant_5: struct #46 + │ │ │ │ └─ [notIn]: list 'list_40' #41 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ variant_1: struct #49 + │ │ │ └─ [not]: either '_prisma_integer_filter' #48 + │ │ │ ├─ variant_0: integer #37 + │ │ │ ├─ variant_1: struct #42 + │ │ │ │ └─ [equals]: integer #37 + │ │ │ ├─ variant_2: struct #43 + │ │ │ │ └─ [not]: integer #37 + │ │ │ ├─ variant_3: struct #44 + │ │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ variant_4: struct #45 + │ │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ variant_5: struct #46 + │ │ │ └─ [notIn]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ ├─ [name]: optional 'optional_214' #215 + │ │ │ └─ item: optional '_prisma_string_filter_ex' #32 + │ │ │ └─ item: union #29 + │ │ │ ├─ variant_0: union '_prisma_string_filter' #27 + │ │ │ │ ├─ variant_0: string #11 + │ │ │ │ ├─ variant_1: struct #16 + │ │ │ │ │ └─ [equals]: string #11 + │ │ │ │ ├─ variant_2: struct #17 + │ │ │ │ │ └─ [not]: string #11 + │ │ │ │ ├─ variant_3: struct #18 + │ │ │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ │ │ └─ item: string #11 + │ │ │ │ ├─ variant_4: struct #19 + │ │ │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ │ │ └─ item: string #11 + │ │ │ │ ├─ variant_5: struct #23 + │ │ │ │ │ ├─ [contains]: string #11 + │ │ │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ │ │ ├─ variant_6: struct #24 + │ │ │ │ │ └─ [search]: string #11 + │ │ │ │ └─ variant_7: struct #25 + │ │ │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ │ │ └─ item: string #11 + │ │ │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ │ │ └─ item: string #11 + │ │ │ └─ variant_1: struct #28 + │ │ │ └─ [not]: union '_prisma_string_filter' #27 + │ │ │ ├─ variant_0: string #11 + │ │ │ ├─ variant_1: struct #16 + │ │ │ │ └─ [equals]: string #11 + │ │ │ ├─ variant_2: struct #17 + │ │ │ │ └─ [not]: string #11 + │ │ │ ├─ variant_3: struct #18 + │ │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ │ └─ item: string #11 + │ │ │ ├─ variant_4: struct #19 + │ │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ │ └─ item: string #11 + │ │ │ ├─ variant_5: struct #23 + │ │ │ │ ├─ [contains]: string #11 + │ │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #24 + │ │ │ │ └─ [search]: string #11 + │ │ │ └─ variant_7: struct #25 + │ │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ │ └─ item: string #11 + │ │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ [posts]: optional 'optional_227' #228 + │ │ └─ item: union #226 + │ │ ├─ variant_0: struct #219 + │ │ │ └─ [every]: optional 'optional_217' #218 + │ │ │ └─ item: &Post_where_excluding_User #216 + │ │ ├─ variant_1: struct #222 + │ │ │ └─ [some]: optional 'optional_220' #221 + │ │ │ └─ item: &Post_where_excluding_User #216 + │ │ └─ variant_2: struct #225 + │ │ └─ [none]: optional 'optional_223' #224 + │ │ └─ item: &Post_where_excluding_User #216 + │ ├─ [id]: optional 'optional_208' #209 + │ │ └─ item: optional '_prisma_integer_filter_ex' #53 + │ │ └─ item: union #50 + │ │ ├─ variant_0: either '_prisma_integer_filter' #48 + │ │ │ ├─ variant_0: integer #37 + │ │ │ ├─ variant_1: struct #42 + │ │ │ │ └─ [equals]: integer #37 + │ │ │ ├─ variant_2: struct #43 + │ │ │ │ └─ [not]: integer #37 + │ │ │ ├─ variant_3: struct #44 + │ │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ variant_4: struct #45 + │ │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ variant_5: struct #46 + │ │ │ └─ [notIn]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ variant_1: struct #49 + │ │ └─ [not]: either '_prisma_integer_filter' #48 + │ │ ├─ variant_0: integer #37 + │ │ ├─ variant_1: struct #42 + │ │ │ └─ [equals]: integer #37 + │ │ ├─ variant_2: struct #43 + │ │ │ └─ [not]: integer #37 + │ │ ├─ variant_3: struct #44 + │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ variant_4: struct #45 + │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ variant_5: struct #46 + │ │ └─ [notIn]: list 'list_40' #41 + │ │ └─ item: integer #37 + │ └─ [title]: optional 'optional_210' #211 + │ └─ item: optional '_prisma_string_filter_ex' #32 + │ └─ item: union #29 + │ ├─ variant_0: union '_prisma_string_filter' #27 + │ │ ├─ variant_0: string #11 + │ │ ├─ variant_1: struct #16 + │ │ │ └─ [equals]: string #11 + │ │ ├─ variant_2: struct #17 + │ │ │ └─ [not]: string #11 + │ │ ├─ variant_3: struct #18 + │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_4: struct #19 + │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_5: struct #23 + │ │ │ ├─ [contains]: string #11 + │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #24 + │ │ │ └─ [search]: string #11 + │ │ └─ variant_7: struct #25 + │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ variant_1: struct #28 + │ └─ [not]: union '_prisma_string_filter' #27 + │ ├─ variant_0: string #11 + │ ├─ variant_1: struct #16 + │ │ └─ [equals]: string #11 + │ ├─ variant_2: struct #17 + │ │ └─ [not]: string #11 + │ ├─ variant_3: struct #18 + │ │ └─ [in]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_4: struct #19 + │ │ └─ [notIn]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_5: struct #23 + │ │ ├─ [contains]: string #11 + │ │ └─ [mode]: optional 'optional_21' #22 + │ │ └─ item: string #20 enum{ '"insensitive"' } + │ ├─ variant_6: struct #24 + │ │ └─ [search]: string #11 + │ └─ variant_7: struct #25 + │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ [startsWith]: optional 'optional_12' #13 + │ └─ item: string #11 + ├─ variant_1: struct #240 + │ └─ [some]: optional 'optional_238' #239 + │ └─ item: struct 'Post_where_excluding_User' #234 + │ ├─ [author]: optional 'optional_231' #232 + │ │ └─ item: struct 'User_where_excluding_User_and_Post_where_excluding_User' #230 + │ │ ├─ [id]: optional 'optional_212' #213 + │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 + │ │ │ └─ item: union #50 + │ │ │ ├─ variant_0: either '_prisma_integer_filter' #48 + │ │ │ │ ├─ variant_0: integer #37 + │ │ │ │ ├─ variant_1: struct #42 + │ │ │ │ │ └─ [equals]: integer #37 + │ │ │ │ ├─ variant_2: struct #43 + │ │ │ │ │ └─ [not]: integer #37 + │ │ │ │ ├─ variant_3: struct #44 + │ │ │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ │ │ └─ item: integer #37 + │ │ │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ │ │ └─ item: integer #37 + │ │ │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ │ │ └─ item: integer #37 + │ │ │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ variant_4: struct #45 + │ │ │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ └─ variant_5: struct #46 + │ │ │ │ └─ [notIn]: list 'list_40' #41 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ variant_1: struct #49 + │ │ │ └─ [not]: either '_prisma_integer_filter' #48 + │ │ │ ├─ variant_0: integer #37 + │ │ │ ├─ variant_1: struct #42 + │ │ │ │ └─ [equals]: integer #37 + │ │ │ ├─ variant_2: struct #43 + │ │ │ │ └─ [not]: integer #37 + │ │ │ ├─ variant_3: struct #44 + │ │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ variant_4: struct #45 + │ │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ variant_5: struct #46 + │ │ │ └─ [notIn]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ ├─ [name]: optional 'optional_214' #215 + │ │ │ └─ item: optional '_prisma_string_filter_ex' #32 + │ │ │ └─ item: union #29 + │ │ │ ├─ variant_0: union '_prisma_string_filter' #27 + │ │ │ │ ├─ variant_0: string #11 + │ │ │ │ ├─ variant_1: struct #16 + │ │ │ │ │ └─ [equals]: string #11 + │ │ │ │ ├─ variant_2: struct #17 + │ │ │ │ │ └─ [not]: string #11 + │ │ │ │ ├─ variant_3: struct #18 + │ │ │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ │ │ └─ item: string #11 + │ │ │ │ ├─ variant_4: struct #19 + │ │ │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ │ │ └─ item: string #11 + │ │ │ │ ├─ variant_5: struct #23 + │ │ │ │ │ ├─ [contains]: string #11 + │ │ │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ │ │ ├─ variant_6: struct #24 + │ │ │ │ │ └─ [search]: string #11 + │ │ │ │ └─ variant_7: struct #25 + │ │ │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ │ │ └─ item: string #11 + │ │ │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ │ │ └─ item: string #11 + │ │ │ └─ variant_1: struct #28 + │ │ │ └─ [not]: union '_prisma_string_filter' #27 + │ │ │ ├─ variant_0: string #11 + │ │ │ ├─ variant_1: struct #16 + │ │ │ │ └─ [equals]: string #11 + │ │ │ ├─ variant_2: struct #17 + │ │ │ │ └─ [not]: string #11 + │ │ │ ├─ variant_3: struct #18 + │ │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ │ └─ item: string #11 + │ │ │ ├─ variant_4: struct #19 + │ │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ │ └─ item: string #11 + │ │ │ ├─ variant_5: struct #23 + │ │ │ │ ├─ [contains]: string #11 + │ │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #24 + │ │ │ │ └─ [search]: string #11 + │ │ │ └─ variant_7: struct #25 + │ │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ │ └─ item: string #11 + │ │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ [posts]: optional 'optional_227' #228 + │ │ └─ item: union #226 + │ │ ├─ variant_0: struct #219 + │ │ │ └─ [every]: optional 'optional_217' #218 + │ │ │ └─ item: &Post_where_excluding_User #216 + │ │ ├─ variant_1: struct #222 + │ │ │ └─ [some]: optional 'optional_220' #221 + │ │ │ └─ item: &Post_where_excluding_User #216 + │ │ └─ variant_2: struct #225 + │ │ └─ [none]: optional 'optional_223' #224 + │ │ └─ item: &Post_where_excluding_User #216 + │ ├─ [id]: optional 'optional_208' #209 + │ │ └─ item: optional '_prisma_integer_filter_ex' #53 + │ │ └─ item: union #50 + │ │ ├─ variant_0: either '_prisma_integer_filter' #48 + │ │ │ ├─ variant_0: integer #37 + │ │ │ ├─ variant_1: struct #42 + │ │ │ │ └─ [equals]: integer #37 + │ │ │ ├─ variant_2: struct #43 + │ │ │ │ └─ [not]: integer #37 + │ │ │ ├─ variant_3: struct #44 + │ │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ variant_4: struct #45 + │ │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ variant_5: struct #46 + │ │ │ └─ [notIn]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ variant_1: struct #49 + │ │ └─ [not]: either '_prisma_integer_filter' #48 + │ │ ├─ variant_0: integer #37 + │ │ ├─ variant_1: struct #42 + │ │ │ └─ [equals]: integer #37 + │ │ ├─ variant_2: struct #43 + │ │ │ └─ [not]: integer #37 + │ │ ├─ variant_3: struct #44 + │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ variant_4: struct #45 + │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ variant_5: struct #46 + │ │ └─ [notIn]: list 'list_40' #41 + │ │ └─ item: integer #37 + │ └─ [title]: optional 'optional_210' #211 + │ └─ item: optional '_prisma_string_filter_ex' #32 + │ └─ item: union #29 + │ ├─ variant_0: union '_prisma_string_filter' #27 + │ │ ├─ variant_0: string #11 + │ │ ├─ variant_1: struct #16 + │ │ │ └─ [equals]: string #11 + │ │ ├─ variant_2: struct #17 + │ │ │ └─ [not]: string #11 + │ │ ├─ variant_3: struct #18 + │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_4: struct #19 + │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_5: struct #23 + │ │ │ ├─ [contains]: string #11 + │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #24 + │ │ │ └─ [search]: string #11 + │ │ └─ variant_7: struct #25 + │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ variant_1: struct #28 + │ └─ [not]: union '_prisma_string_filter' #27 + │ ├─ variant_0: string #11 + │ ├─ variant_1: struct #16 + │ │ └─ [equals]: string #11 + │ ├─ variant_2: struct #17 + │ │ └─ [not]: string #11 + │ ├─ variant_3: struct #18 + │ │ └─ [in]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_4: struct #19 + │ │ └─ [notIn]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_5: struct #23 + │ │ ├─ [contains]: string #11 + │ │ └─ [mode]: optional 'optional_21' #22 + │ │ └─ item: string #20 enum{ '"insensitive"' } + │ ├─ variant_6: struct #24 + │ │ └─ [search]: string #11 + │ └─ variant_7: struct #25 + │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ [startsWith]: optional 'optional_12' #13 + │ └─ item: string #11 + └─ variant_2: struct #243 + └─ [none]: optional 'optional_241' #242 + └─ item: struct 'Post_where_excluding_User' #234 + ├─ [author]: optional 'optional_231' #232 + │ └─ item: struct 'User_where_excluding_User_and_Post_where_excluding_User' #230 + │ ├─ [id]: optional 'optional_212' #213 + │ │ └─ item: optional '_prisma_integer_filter_ex' #53 + │ │ └─ item: union #50 + │ │ ├─ variant_0: either '_prisma_integer_filter' #48 + │ │ │ ├─ variant_0: integer #37 + │ │ │ ├─ variant_1: struct #42 + │ │ │ │ └─ [equals]: integer #37 + │ │ │ ├─ variant_2: struct #43 + │ │ │ │ └─ [not]: integer #37 + │ │ │ ├─ variant_3: struct #44 + │ │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ │ └─ item: integer #37 + │ │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ variant_4: struct #45 + │ │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ variant_5: struct #46 + │ │ │ └─ [notIn]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ variant_1: struct #49 + │ │ └─ [not]: either '_prisma_integer_filter' #48 + │ │ ├─ variant_0: integer #37 + │ │ ├─ variant_1: struct #42 + │ │ │ └─ [equals]: integer #37 + │ │ ├─ variant_2: struct #43 + │ │ │ └─ [not]: integer #37 + │ │ ├─ variant_3: struct #44 + │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ variant_4: struct #45 + │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ variant_5: struct #46 + │ │ └─ [notIn]: list 'list_40' #41 + │ │ └─ item: integer #37 + │ ├─ [name]: optional 'optional_214' #215 + │ │ └─ item: optional '_prisma_string_filter_ex' #32 + │ │ └─ item: union #29 + │ │ ├─ variant_0: union '_prisma_string_filter' #27 + │ │ │ ├─ variant_0: string #11 + │ │ │ ├─ variant_1: struct #16 + │ │ │ │ └─ [equals]: string #11 + │ │ │ ├─ variant_2: struct #17 + │ │ │ │ └─ [not]: string #11 + │ │ │ ├─ variant_3: struct #18 + │ │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ │ └─ item: string #11 + │ │ │ ├─ variant_4: struct #19 + │ │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ │ └─ item: string #11 + │ │ │ ├─ variant_5: struct #23 + │ │ │ │ ├─ [contains]: string #11 + │ │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #24 + │ │ │ │ └─ [search]: string #11 + │ │ │ └─ variant_7: struct #25 + │ │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ │ └─ item: string #11 + │ │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ variant_1: struct #28 + │ │ └─ [not]: union '_prisma_string_filter' #27 + │ │ ├─ variant_0: string #11 + │ │ ├─ variant_1: struct #16 + │ │ │ └─ [equals]: string #11 + │ │ ├─ variant_2: struct #17 + │ │ │ └─ [not]: string #11 + │ │ ├─ variant_3: struct #18 + │ │ │ └─ [in]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_4: struct #19 + │ │ │ └─ [notIn]: list 'list_14' #15 + │ │ │ └─ item: string #11 + │ │ ├─ variant_5: struct #23 + │ │ │ ├─ [contains]: string #11 + │ │ │ └─ [mode]: optional 'optional_21' #22 + │ │ │ └─ item: string #20 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #24 + │ │ │ └─ [search]: string #11 + │ │ └─ variant_7: struct #25 + │ │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ │ └─ item: string #11 + │ │ └─ [startsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ [posts]: optional 'optional_227' #228 + │ └─ item: union #226 + │ ├─ variant_0: struct #219 + │ │ └─ [every]: optional 'optional_217' #218 + │ │ └─ item: &Post_where_excluding_User #216 + │ ├─ variant_1: struct #222 + │ │ └─ [some]: optional 'optional_220' #221 + │ │ └─ item: &Post_where_excluding_User #216 + │ └─ variant_2: struct #225 + │ └─ [none]: optional 'optional_223' #224 + │ └─ item: &Post_where_excluding_User #216 + ├─ [id]: optional 'optional_208' #209 + │ └─ item: optional '_prisma_integer_filter_ex' #53 + │ └─ item: union #50 + │ ├─ variant_0: either '_prisma_integer_filter' #48 + │ │ ├─ variant_0: integer #37 + │ │ ├─ variant_1: struct #42 + │ │ │ └─ [equals]: integer #37 + │ │ ├─ variant_2: struct #43 + │ │ │ └─ [not]: integer #37 + │ │ ├─ variant_3: struct #44 + │ │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ │ └─ item: integer #37 + │ │ │ └─ [lte]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ variant_4: struct #45 + │ │ │ └─ [in]: list 'list_40' #41 + │ │ │ └─ item: integer #37 + │ │ └─ variant_5: struct #46 + │ │ └─ [notIn]: list 'list_40' #41 + │ │ └─ item: integer #37 + │ └─ variant_1: struct #49 + │ └─ [not]: either '_prisma_integer_filter' #48 + │ ├─ variant_0: integer #37 + │ ├─ variant_1: struct #42 + │ │ └─ [equals]: integer #37 + │ ├─ variant_2: struct #43 + │ │ └─ [not]: integer #37 + │ ├─ variant_3: struct #44 + │ │ ├─ [gt]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ [gte]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ ├─ [lt]: optional 'optional_38' #39 + │ │ │ └─ item: integer #37 + │ │ └─ [lte]: optional 'optional_38' #39 + │ │ └─ item: integer #37 + │ ├─ variant_4: struct #45 + │ │ └─ [in]: list 'list_40' #41 + │ │ └─ item: integer #37 + │ └─ variant_5: struct #46 + │ └─ [notIn]: list 'list_40' #41 + │ └─ item: integer #37 + └─ [title]: optional 'optional_210' #211 + └─ item: optional '_prisma_string_filter_ex' #32 + └─ item: union #29 + ├─ variant_0: union '_prisma_string_filter' #27 + │ ├─ variant_0: string #11 + │ ├─ variant_1: struct #16 + │ │ └─ [equals]: string #11 + │ ├─ variant_2: struct #17 + │ │ └─ [not]: string #11 + │ ├─ variant_3: struct #18 + │ │ └─ [in]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_4: struct #19 + │ │ └─ [notIn]: list 'list_14' #15 + │ │ └─ item: string #11 + │ ├─ variant_5: struct #23 + │ │ ├─ [contains]: string #11 + │ │ └─ [mode]: optional 'optional_21' #22 + │ │ └─ item: string #20 enum{ '"insensitive"' } + │ ├─ variant_6: struct #24 + │ │ └─ [search]: string #11 + │ └─ variant_7: struct #25 + │ ├─ [endsWith]: optional 'optional_12' #13 + │ │ └─ item: string #11 + │ └─ [startsWith]: optional 'optional_12' #13 + │ └─ item: string #11 + └─ variant_1: struct #28 + └─ [not]: union '_prisma_string_filter' #27 + ├─ variant_0: string #11 + ├─ variant_1: struct #16 + │ └─ [equals]: string #11 + ├─ variant_2: struct #17 + │ └─ [not]: string #11 + ├─ variant_3: struct #18 + │ └─ [in]: list 'list_14' #15 + │ └─ item: string #11 + ├─ variant_4: struct #19 + │ └─ [notIn]: list 'list_14' #15 + │ └─ item: string #11 + ├─ variant_5: struct #23 + │ ├─ [contains]: string #11 + │ └─ [mode]: optional 'optional_21' #22 + │ └─ item: string #20 enum{ '"insensitive"' } + ├─ variant_6: struct #24 + │ └─ [search]: string #11 + └─ variant_7: struct #25 + ├─ [endsWith]: optional 'optional_12' #13 + │ └─ item: string #11 + └─ [startsWith]: optional 'optional_12' #13 + └─ item: string #11 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__group_by User out.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__group_by User out.snap index b048637704..c24b63ff3c 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__group_by User out.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__group_by User out.snap @@ -2,30 +2,30 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs expression: tp.print(out) --- -root: list 'User_group' #208 -└─ item: struct #207 - ├─ [_avg]: struct 'User_number_fields_float' #201 - │ └─ [id]: optional 'optional_200' #200 - │ └─ item: float #199 - ├─ [_count]: struct 'User_count_aggregate' #198 - │ ├─ [_all]: optional 'optional_197' #197 - │ │ └─ item: integer #196 - │ ├─ [id]: optional 'optional_197' #197 - │ │ └─ item: integer #196 - │ ├─ [name]: optional 'optional_197' #197 - │ │ └─ item: integer #196 - │ └─ [posts]: optional 'optional_197' #197 - │ └─ item: integer #196 - ├─ [_max]: struct 'User_number_fields' #206 - │ └─ [id]: optional 'optional_205' #205 - │ └─ item: integer #204 - ├─ [_min]: struct 'User_number_fields' #206 - │ └─ [id]: optional 'optional_205' #205 - │ └─ item: integer #204 - ├─ [_sum]: struct 'User_number_fields' #206 - │ └─ [id]: optional 'optional_205' #205 - │ └─ item: integer #204 - ├─ [id]: integer #121 - ├─ [name]: string #122 - └─ [posts]: list 'list_124' #124 - └─ item: &Post #123 +root: list 'User_group' #372 +└─ item: struct #369 + ├─ [_avg]: struct 'User_number_fields_float' #360 + │ └─ [id]: optional 'optional_357' #358 + │ └─ item: float #356 + ├─ [_count]: struct 'User_count_aggregate' #355 + │ ├─ [_all]: optional 'optional_352' #353 + │ │ └─ item: integer #351 + │ ├─ [id]: optional 'optional_352' #353 + │ │ └─ item: integer #351 + │ ├─ [name]: optional 'optional_352' #353 + │ │ └─ item: integer #351 + │ └─ [posts]: optional 'optional_352' #353 + │ └─ item: integer #351 + ├─ [_max]: struct 'User_number_fields' #368 + │ └─ [id]: optional 'optional_365' #366 + │ └─ item: integer #364 + ├─ [_min]: struct 'User_number_fields' #368 + │ └─ [id]: optional 'optional_365' #366 + │ └─ item: integer #364 + ├─ [_sum]: struct 'User_number_fields' #368 + │ └─ [id]: optional 'optional_365' #366 + │ └─ item: integer #364 + ├─ [id]: integer #190 + ├─ [name]: string #191 + └─ [posts]: list 'list_193' #194 + └─ item: &Post #192 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__update_many Post inp.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__update_many Post inp.snap index 2da667477b..b3af755486 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__update_many Post inp.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__update_many Post inp.snap @@ -2,1070 +2,1712 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs expression: tp.print(inp) --- -root: struct #191 -├─ [data]: struct 'Post_update_input' #184 -│ ├─ [author]: optional 'optional_183' #183 -│ │ └─ item: union #182 -│ │ ├─ variant_0: struct #168 -│ │ │ └─ [create]: struct 'User_create_input_excluding_rel_Post_User' #166 -│ │ │ ├─ [id]: integer #65 -│ │ │ └─ [name]: string #66 -│ │ ├─ variant_1: struct #169 -│ │ │ └─ [connect]: struct 'User_where' #149 -│ │ │ ├─ [id]: optional 'optional_134' #134 -│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ │ └─ item: union #52 -│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_1: struct #51 -│ │ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_5: struct #49 -│ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ └─ item: integer #42 -│ │ │ ├─ [name]: optional 'optional_135' #135 -│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ │ │ └─ item: union #38 -│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ │ │ ├─ variant_0: string #24 -│ │ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ │ └─ [not]: string #24 -│ │ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ │ └─ [search]: string #24 -│ │ │ │ │ └─ variant_7: struct #35 -│ │ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ variant_1: struct #37 -│ │ │ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ │ │ ├─ variant_0: string #24 -│ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ └─ [not]: string #24 -│ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ └─ [search]: string #24 -│ │ │ │ └─ variant_7: struct #35 -│ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ [posts]: optional 'optional_148' #148 -│ │ │ └─ item: union #147 -│ │ │ ├─ variant_0: struct #142 -│ │ │ │ └─ [every]: optional 'optional_141' #141 -│ │ │ │ └─ item: struct 'Post_where_excluding_User' #140 -│ │ │ │ ├─ [author]: optional 'optional_139' #139 -│ │ │ │ │ └─ item: &User_where #138 -│ │ │ │ ├─ [id]: optional 'optional_136' #136 -│ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ │ │ └─ item: union #52 -│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_1: struct #51 -│ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ [title]: optional 'optional_137' #137 -│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ │ │ └─ item: union #38 -│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ │ │ ├─ variant_0: string #24 -│ │ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ │ └─ [not]: string #24 -│ │ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ │ └─ [search]: string #24 -│ │ │ │ │ └─ variant_7: struct #35 -│ │ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ variant_1: struct #37 -│ │ │ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ │ │ ├─ variant_0: string #24 -│ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ └─ [not]: string #24 -│ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ └─ [search]: string #24 -│ │ │ │ └─ variant_7: struct #35 -│ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_1: struct #144 -│ │ │ │ └─ [some]: optional 'optional_143' #143 -│ │ │ │ └─ item: struct 'Post_where_excluding_User' #140 -│ │ │ │ ├─ [author]: optional 'optional_139' #139 -│ │ │ │ │ └─ item: &User_where #138 -│ │ │ │ ├─ [id]: optional 'optional_136' #136 -│ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ │ │ └─ item: union #52 -│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_1: struct #51 -│ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ [title]: optional 'optional_137' #137 -│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ │ │ └─ item: union #38 -│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ │ │ ├─ variant_0: string #24 -│ │ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ │ └─ [not]: string #24 -│ │ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ │ └─ [search]: string #24 -│ │ │ │ │ └─ variant_7: struct #35 -│ │ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ variant_1: struct #37 -│ │ │ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ │ │ ├─ variant_0: string #24 -│ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ └─ [not]: string #24 -│ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ └─ [search]: string #24 -│ │ │ │ └─ variant_7: struct #35 -│ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ variant_2: struct #146 -│ │ │ └─ [none]: optional 'optional_145' #145 -│ │ │ └─ item: struct 'Post_where_excluding_User' #140 -│ │ │ ├─ [author]: optional 'optional_139' #139 -│ │ │ │ └─ item: &User_where #138 -│ │ │ ├─ [id]: optional 'optional_136' #136 -│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ │ └─ item: union #52 -│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_1: struct #51 -│ │ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_5: struct #49 -│ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ └─ item: integer #42 -│ │ │ └─ [title]: optional 'optional_137' #137 -│ │ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ │ └─ item: union #38 -│ │ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ │ ├─ variant_0: string #24 -│ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ └─ [not]: string #24 -│ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ └─ [search]: string #24 -│ │ │ │ └─ variant_7: struct #35 -│ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ variant_1: struct #37 -│ │ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ │ ├─ variant_0: string #24 -│ │ │ ├─ variant_1: struct #27 -│ │ │ │ └─ [equals]: string #24 -│ │ │ ├─ variant_2: struct #28 -│ │ │ │ └─ [not]: string #24 -│ │ │ ├─ variant_3: struct #29 -│ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_4: struct #30 -│ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_5: struct #33 -│ │ │ │ ├─ [contains]: string #24 -│ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ ├─ variant_6: struct #34 -│ │ │ │ └─ [search]: string #24 -│ │ │ └─ variant_7: struct #35 -│ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ └─ item: string #24 -│ │ ├─ variant_2: struct #170 -│ │ │ └─ [connectOrCreate]: struct #167 -│ │ │ ├─ [create]: struct 'User_create_input_excluding_rel_Post_User' #166 -│ │ │ │ ├─ [id]: integer #65 -│ │ │ │ └─ [name]: string #66 -│ │ │ └─ [where]: struct 'User_where' #149 -│ │ │ ├─ [id]: optional 'optional_134' #134 -│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ │ └─ item: union #52 -│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_1: struct #51 -│ │ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_5: struct #49 -│ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ └─ item: integer #42 -│ │ │ ├─ [name]: optional 'optional_135' #135 -│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ │ │ └─ item: union #38 -│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ │ │ ├─ variant_0: string #24 -│ │ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ │ └─ [not]: string #24 -│ │ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ │ └─ [search]: string #24 -│ │ │ │ │ └─ variant_7: struct #35 -│ │ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ variant_1: struct #37 -│ │ │ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ │ │ ├─ variant_0: string #24 -│ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ └─ [not]: string #24 -│ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ └─ [search]: string #24 -│ │ │ │ └─ variant_7: struct #35 -│ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ [posts]: optional 'optional_148' #148 -│ │ │ └─ item: union #147 -│ │ │ ├─ variant_0: struct #142 -│ │ │ │ └─ [every]: optional 'optional_141' #141 -│ │ │ │ └─ item: struct 'Post_where_excluding_User' #140 -│ │ │ │ ├─ [author]: optional 'optional_139' #139 -│ │ │ │ │ └─ item: &User_where #138 -│ │ │ │ ├─ [id]: optional 'optional_136' #136 -│ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ │ │ └─ item: union #52 -│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_1: struct #51 -│ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ [title]: optional 'optional_137' #137 -│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ │ │ └─ item: union #38 -│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ │ │ ├─ variant_0: string #24 -│ │ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ │ └─ [not]: string #24 -│ │ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ │ └─ [search]: string #24 -│ │ │ │ │ └─ variant_7: struct #35 -│ │ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ variant_1: struct #37 -│ │ │ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ │ │ ├─ variant_0: string #24 -│ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ └─ [not]: string #24 -│ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ └─ [search]: string #24 -│ │ │ │ └─ variant_7: struct #35 -│ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_1: struct #144 -│ │ │ │ └─ [some]: optional 'optional_143' #143 -│ │ │ │ └─ item: struct 'Post_where_excluding_User' #140 -│ │ │ │ ├─ [author]: optional 'optional_139' #139 -│ │ │ │ │ └─ item: &User_where #138 -│ │ │ │ ├─ [id]: optional 'optional_136' #136 -│ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ │ │ └─ item: union #52 -│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_1: struct #51 -│ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ [title]: optional 'optional_137' #137 -│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ │ │ └─ item: union #38 -│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ │ │ ├─ variant_0: string #24 -│ │ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ │ └─ [not]: string #24 -│ │ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ │ └─ [search]: string #24 -│ │ │ │ │ └─ variant_7: struct #35 -│ │ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ variant_1: struct #37 -│ │ │ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ │ │ ├─ variant_0: string #24 -│ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ └─ [not]: string #24 -│ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ └─ [search]: string #24 -│ │ │ │ └─ variant_7: struct #35 -│ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ variant_2: struct #146 -│ │ │ └─ [none]: optional 'optional_145' #145 -│ │ │ └─ item: struct 'Post_where_excluding_User' #140 -│ │ │ ├─ [author]: optional 'optional_139' #139 -│ │ │ │ └─ item: &User_where #138 -│ │ │ ├─ [id]: optional 'optional_136' #136 -│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ │ └─ item: union #52 -│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_1: struct #51 -│ │ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_5: struct #49 -│ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ └─ item: integer #42 -│ │ │ └─ [title]: optional 'optional_137' #137 -│ │ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ │ └─ item: union #38 -│ │ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ │ ├─ variant_0: string #24 -│ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ └─ [not]: string #24 -│ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ └─ [search]: string #24 -│ │ │ │ └─ variant_7: struct #35 -│ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ variant_1: struct #37 -│ │ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ │ ├─ variant_0: string #24 -│ │ │ ├─ variant_1: struct #27 -│ │ │ │ └─ [equals]: string #24 -│ │ │ ├─ variant_2: struct #28 -│ │ │ │ └─ [not]: string #24 -│ │ │ ├─ variant_3: struct #29 -│ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_4: struct #30 -│ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_5: struct #33 -│ │ │ │ ├─ [contains]: string #24 -│ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ ├─ variant_6: struct #34 -│ │ │ │ └─ [search]: string #24 -│ │ │ └─ variant_7: struct #35 -│ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ └─ item: string #24 -│ │ └─ variant_3: struct #181 -│ │ └─ [update]: struct 'User_update_input_excluding_rel_Post_User' #180 -│ │ ├─ [id]: optional 'optional_176' #176 -│ │ │ └─ item: union #175 -│ │ │ ├─ variant_0: integer #65 -│ │ │ ├─ variant_1: struct #171 -│ │ │ │ └─ [set]: integer #65 -│ │ │ ├─ variant_2: struct #172 -│ │ │ │ └─ [multiply]: integer #64 -│ │ │ ├─ variant_3: struct #173 -│ │ │ │ └─ [decrement]: integer #64 -│ │ │ └─ variant_4: struct #174 -│ │ │ └─ [increment]: integer #64 -│ │ └─ [name]: optional 'optional_179' #179 -│ │ └─ item: union #178 -│ │ ├─ variant_0: string #66 -│ │ └─ variant_1: struct #177 -│ │ └─ [set]: string #66 -│ ├─ [id]: optional 'optional_162' #162 -│ │ └─ item: union #161 -│ │ ├─ variant_0: integer #71 -│ │ ├─ variant_1: struct #157 -│ │ │ └─ [set]: integer #71 -│ │ ├─ variant_2: struct #158 -│ │ │ └─ [multiply]: integer #70 -│ │ ├─ variant_3: struct #159 -│ │ │ └─ [decrement]: integer #70 -│ │ └─ variant_4: struct #160 -│ │ └─ [increment]: integer #70 -│ └─ [title]: optional 'optional_165' #165 -│ └─ item: union #164 -│ ├─ variant_0: string #72 -│ └─ variant_1: struct #163 -│ └─ [set]: string #72 -└─ [where]: optional 'optional_190' #190 - └─ item: struct 'Post_query_where_input' #189 - ├─ [AND]: optional 'optional_187' #187 - │ └─ item: list 'list_186' #186 - │ └─ item: &Post_query_where_input #185 - ├─ [NOT]: optional 'optional_188' #188 - │ └─ item: &Post_query_where_input #185 - ├─ [OR]: optional 'optional_187' #187 - │ └─ item: list 'list_186' #186 - │ └─ item: &Post_query_where_input #185 - ├─ [author]: optional 'optional_102' #102 - │ └─ item: struct 'User_where_excluding_Post' #101 - │ ├─ [id]: optional 'optional_90' #90 - │ │ └─ item: optional '_prisma_integer_filter_ex' #53 - │ │ └─ item: union #52 - │ │ ├─ variant_0: either '_prisma_integer_filter' #50 - │ │ │ ├─ variant_0: integer #42 - │ │ │ ├─ variant_1: struct #45 - │ │ │ │ └─ [equals]: integer #42 - │ │ │ ├─ variant_2: struct #46 - │ │ │ │ └─ [not]: integer #42 - │ │ │ ├─ variant_3: struct #47 - │ │ │ │ ├─ [gt]: optional 'optional_43' #43 - │ │ │ │ │ └─ item: integer #42 - │ │ │ │ ├─ [gte]: optional 'optional_43' #43 - │ │ │ │ │ └─ item: integer #42 - │ │ │ │ ├─ [lt]: optional 'optional_43' #43 - │ │ │ │ │ └─ item: integer #42 - │ │ │ │ └─ [lte]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ ├─ variant_4: struct #48 - │ │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ │ └─ item: integer #42 - │ │ │ └─ variant_5: struct #49 - │ │ │ └─ [notIn]: list 'list_44' #44 - │ │ │ └─ item: integer #42 - │ │ └─ variant_1: struct #51 - │ │ └─ [not]: either '_prisma_integer_filter' #50 - │ │ ├─ variant_0: integer #42 - │ │ ├─ variant_1: struct #45 - │ │ │ └─ [equals]: integer #42 - │ │ ├─ variant_2: struct #46 - │ │ │ └─ [not]: integer #42 - │ │ ├─ variant_3: struct #47 - │ │ │ ├─ [gt]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ ├─ [gte]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ ├─ [lt]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ └─ [lte]: optional 'optional_43' #43 - │ │ │ └─ item: integer #42 - │ │ ├─ variant_4: struct #48 - │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ └─ item: integer #42 - │ │ └─ variant_5: struct #49 - │ │ └─ [notIn]: list 'list_44' #44 - │ │ └─ item: integer #42 - │ ├─ [name]: optional 'optional_91' #91 - │ │ └─ item: optional '_prisma_string_filter_ex' #39 - │ │ └─ item: union #38 - │ │ ├─ variant_0: union '_prisma_string_filter' #36 - │ │ │ ├─ variant_0: string #24 - │ │ │ ├─ variant_1: struct #27 - │ │ │ │ └─ [equals]: string #24 - │ │ │ ├─ variant_2: struct #28 - │ │ │ │ └─ [not]: string #24 - │ │ │ ├─ variant_3: struct #29 - │ │ │ │ └─ [in]: list 'list_26' #26 - │ │ │ │ └─ item: string #24 - │ │ │ ├─ variant_4: struct #30 - │ │ │ │ └─ [notIn]: list 'list_26' #26 - │ │ │ │ └─ item: string #24 - │ │ │ ├─ variant_5: struct #33 - │ │ │ │ ├─ [contains]: string #24 - │ │ │ │ └─ [mode]: optional 'optional_32' #32 - │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } - │ │ │ ├─ variant_6: struct #34 - │ │ │ │ └─ [search]: string #24 - │ │ │ └─ variant_7: struct #35 - │ │ │ ├─ [endsWith]: optional 'optional_25' #25 - │ │ │ │ └─ item: string #24 - │ │ │ └─ [startsWith]: optional 'optional_25' #25 - │ │ │ └─ item: string #24 - │ │ └─ variant_1: struct #37 - │ │ └─ [not]: union '_prisma_string_filter' #36 - │ │ ├─ variant_0: string #24 - │ │ ├─ variant_1: struct #27 - │ │ │ └─ [equals]: string #24 - │ │ ├─ variant_2: struct #28 - │ │ │ └─ [not]: string #24 - │ │ ├─ variant_3: struct #29 - │ │ │ └─ [in]: list 'list_26' #26 - │ │ │ └─ item: string #24 - │ │ ├─ variant_4: struct #30 - │ │ │ └─ [notIn]: list 'list_26' #26 - │ │ │ └─ item: string #24 - │ │ ├─ variant_5: struct #33 - │ │ │ ├─ [contains]: string #24 - │ │ │ └─ [mode]: optional 'optional_32' #32 - │ │ │ └─ item: string #31 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #34 - │ │ │ └─ [search]: string #24 - │ │ └─ variant_7: struct #35 - │ │ ├─ [endsWith]: optional 'optional_25' #25 - │ │ │ └─ item: string #24 - │ │ └─ [startsWith]: optional 'optional_25' #25 - │ │ └─ item: string #24 - │ └─ [posts]: optional 'optional_100' #100 - │ └─ item: union #99 - │ ├─ variant_0: struct #94 - │ │ └─ [every]: optional 'optional_93' #93 - │ │ └─ item: &Post_where #92 - │ ├─ variant_1: struct #96 - │ │ └─ [some]: optional 'optional_95' #95 - │ │ └─ item: &Post_where #92 - │ └─ variant_2: struct #98 - │ └─ [none]: optional 'optional_97' #97 - │ └─ item: &Post_where #92 - ├─ [id]: optional 'optional_88' #88 - │ └─ item: optional '_prisma_integer_filter_ex' #53 - │ └─ item: union #52 - │ ├─ variant_0: either '_prisma_integer_filter' #50 - │ │ ├─ variant_0: integer #42 - │ │ ├─ variant_1: struct #45 - │ │ │ └─ [equals]: integer #42 - │ │ ├─ variant_2: struct #46 - │ │ │ └─ [not]: integer #42 - │ │ ├─ variant_3: struct #47 - │ │ │ ├─ [gt]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ ├─ [gte]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ ├─ [lt]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ └─ [lte]: optional 'optional_43' #43 - │ │ │ └─ item: integer #42 - │ │ ├─ variant_4: struct #48 - │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ └─ item: integer #42 - │ │ └─ variant_5: struct #49 - │ │ └─ [notIn]: list 'list_44' #44 - │ │ └─ item: integer #42 - │ └─ variant_1: struct #51 - │ └─ [not]: either '_prisma_integer_filter' #50 - │ ├─ variant_0: integer #42 - │ ├─ variant_1: struct #45 - │ │ └─ [equals]: integer #42 - │ ├─ variant_2: struct #46 - │ │ └─ [not]: integer #42 - │ ├─ variant_3: struct #47 - │ │ ├─ [gt]: optional 'optional_43' #43 - │ │ │ └─ item: integer #42 - │ │ ├─ [gte]: optional 'optional_43' #43 - │ │ │ └─ item: integer #42 - │ │ ├─ [lt]: optional 'optional_43' #43 - │ │ │ └─ item: integer #42 - │ │ └─ [lte]: optional 'optional_43' #43 - │ │ └─ item: integer #42 - │ ├─ variant_4: struct #48 - │ │ └─ [in]: list 'list_44' #44 - │ │ └─ item: integer #42 - │ └─ variant_5: struct #49 - │ └─ [notIn]: list 'list_44' #44 - │ └─ item: integer #42 - └─ [title]: optional 'optional_89' #89 - └─ item: optional '_prisma_string_filter_ex' #39 - └─ item: union #38 - ├─ variant_0: union '_prisma_string_filter' #36 - │ ├─ variant_0: string #24 - │ ├─ variant_1: struct #27 - │ │ └─ [equals]: string #24 - │ ├─ variant_2: struct #28 - │ │ └─ [not]: string #24 - │ ├─ variant_3: struct #29 - │ │ └─ [in]: list 'list_26' #26 - │ │ └─ item: string #24 - │ ├─ variant_4: struct #30 - │ │ └─ [notIn]: list 'list_26' #26 - │ │ └─ item: string #24 - │ ├─ variant_5: struct #33 - │ │ ├─ [contains]: string #24 - │ │ └─ [mode]: optional 'optional_32' #32 - │ │ └─ item: string #31 enum{ '"insensitive"' } - │ ├─ variant_6: struct #34 - │ │ └─ [search]: string #24 - │ └─ variant_7: struct #35 - │ ├─ [endsWith]: optional 'optional_25' #25 - │ │ └─ item: string #24 - │ └─ [startsWith]: optional 'optional_25' #25 - │ └─ item: string #24 - └─ variant_1: struct #37 - └─ [not]: union '_prisma_string_filter' #36 - ├─ variant_0: string #24 - ├─ variant_1: struct #27 - │ └─ [equals]: string #24 - ├─ variant_2: struct #28 - │ └─ [not]: string #24 - ├─ variant_3: struct #29 - │ └─ [in]: list 'list_26' #26 - │ └─ item: string #24 - ├─ variant_4: struct #30 - │ └─ [notIn]: list 'list_26' #26 - │ └─ item: string #24 - ├─ variant_5: struct #33 - │ ├─ [contains]: string #24 - │ └─ [mode]: optional 'optional_32' #32 - │ └─ item: string #31 enum{ '"insensitive"' } - ├─ variant_6: struct #34 - │ └─ [search]: string #24 - └─ variant_7: struct #35 - ├─ [endsWith]: optional 'optional_25' #25 - │ └─ item: string #24 - └─ [startsWith]: optional 'optional_25' #25 - └─ item: string #24 +root: struct #297 +├─ [data]: struct 'Post_update_input' #285 +│ ├─ [author]: optional 'optional_282' #283 +│ │ └─ item: union #281 +│ │ ├─ variant_0: struct #264 +│ │ │ └─ [create]: struct 'User_create_input_excluding_rel_Post_User' #262 +│ │ │ ├─ [id]: integer #94 +│ │ │ └─ [name]: string #95 +│ │ ├─ variant_1: struct #265 +│ │ │ └─ [connect]: struct 'User_where' #237 +│ │ │ ├─ [id]: optional 'optional_193' #194 +│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ └─ item: union #71 +│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_1: struct #70 +│ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_5: struct #67 +│ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ └─ item: integer #58 +│ │ │ ├─ [name]: optional 'optional_195' #196 +│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ │ └─ item: union #50 +│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ variant_1: struct #49 +│ │ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ │ ├─ variant_0: string #32 +│ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ └─ [not]: string #32 +│ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ └─ [search]: string #32 +│ │ │ │ └─ variant_7: struct #46 +│ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ [posts]: optional 'optional_234' #235 +│ │ │ └─ item: union #233 +│ │ │ ├─ variant_0: struct #226 +│ │ │ │ └─ [every]: optional 'optional_224' #225 +│ │ │ │ └─ item: struct 'Post_where_excluding_User' #223 +│ │ │ │ ├─ [author]: optional 'optional_220' #221 +│ │ │ │ │ └─ item: struct 'User_where_excluding_User_and_Post_where_excluding_User' #219 +│ │ │ │ │ ├─ [id]: optional 'optional_201' #202 +│ │ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ │ │ └─ item: union #71 +│ │ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ variant_1: struct #70 +│ │ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [name]: optional 'optional_203' #204 +│ │ │ │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ │ │ │ └─ item: union #50 +│ │ │ │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ └─ variant_1: struct #49 +│ │ │ │ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ [posts]: optional 'optional_216' #217 +│ │ │ │ │ └─ item: union #215 +│ │ │ │ │ ├─ variant_0: struct #208 +│ │ │ │ │ │ └─ [every]: optional 'optional_206' #207 +│ │ │ │ │ │ └─ item: &Post_where_excluding_User #205 +│ │ │ │ │ ├─ variant_1: struct #211 +│ │ │ │ │ │ └─ [some]: optional 'optional_209' #210 +│ │ │ │ │ │ └─ item: &Post_where_excluding_User #205 +│ │ │ │ │ └─ variant_2: struct #214 +│ │ │ │ │ └─ [none]: optional 'optional_212' #213 +│ │ │ │ │ └─ item: &Post_where_excluding_User #205 +│ │ │ │ ├─ [id]: optional 'optional_197' #198 +│ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ │ └─ item: union #71 +│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_1: struct #70 +│ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ [title]: optional 'optional_199' #200 +│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ │ └─ item: union #50 +│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ variant_1: struct #49 +│ │ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ │ ├─ variant_0: string #32 +│ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ └─ [not]: string #32 +│ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ └─ [search]: string #32 +│ │ │ │ └─ variant_7: struct #46 +│ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_1: struct #229 +│ │ │ │ └─ [some]: optional 'optional_227' #228 +│ │ │ │ └─ item: struct 'Post_where_excluding_User' #223 +│ │ │ │ ├─ [author]: optional 'optional_220' #221 +│ │ │ │ │ └─ item: struct 'User_where_excluding_User_and_Post_where_excluding_User' #219 +│ │ │ │ │ ├─ [id]: optional 'optional_201' #202 +│ │ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ │ │ └─ item: union #71 +│ │ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ variant_1: struct #70 +│ │ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [name]: optional 'optional_203' #204 +│ │ │ │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ │ │ │ └─ item: union #50 +│ │ │ │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ └─ variant_1: struct #49 +│ │ │ │ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ [posts]: optional 'optional_216' #217 +│ │ │ │ │ └─ item: union #215 +│ │ │ │ │ ├─ variant_0: struct #208 +│ │ │ │ │ │ └─ [every]: optional 'optional_206' #207 +│ │ │ │ │ │ └─ item: &Post_where_excluding_User #205 +│ │ │ │ │ ├─ variant_1: struct #211 +│ │ │ │ │ │ └─ [some]: optional 'optional_209' #210 +│ │ │ │ │ │ └─ item: &Post_where_excluding_User #205 +│ │ │ │ │ └─ variant_2: struct #214 +│ │ │ │ │ └─ [none]: optional 'optional_212' #213 +│ │ │ │ │ └─ item: &Post_where_excluding_User #205 +│ │ │ │ ├─ [id]: optional 'optional_197' #198 +│ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ │ └─ item: union #71 +│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_1: struct #70 +│ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ [title]: optional 'optional_199' #200 +│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ │ └─ item: union #50 +│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ variant_1: struct #49 +│ │ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ │ ├─ variant_0: string #32 +│ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ └─ [not]: string #32 +│ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ └─ [search]: string #32 +│ │ │ │ └─ variant_7: struct #46 +│ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ variant_2: struct #232 +│ │ │ └─ [none]: optional 'optional_230' #231 +│ │ │ └─ item: struct 'Post_where_excluding_User' #223 +│ │ │ ├─ [author]: optional 'optional_220' #221 +│ │ │ │ └─ item: struct 'User_where_excluding_User_and_Post_where_excluding_User' #219 +│ │ │ │ ├─ [id]: optional 'optional_201' #202 +│ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ │ └─ item: union #71 +│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_1: struct #70 +│ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ [name]: optional 'optional_203' #204 +│ │ │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ │ │ └─ item: union #50 +│ │ │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ variant_1: struct #49 +│ │ │ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [posts]: optional 'optional_216' #217 +│ │ │ │ └─ item: union #215 +│ │ │ │ ├─ variant_0: struct #208 +│ │ │ │ │ └─ [every]: optional 'optional_206' #207 +│ │ │ │ │ └─ item: &Post_where_excluding_User #205 +│ │ │ │ ├─ variant_1: struct #211 +│ │ │ │ │ └─ [some]: optional 'optional_209' #210 +│ │ │ │ │ └─ item: &Post_where_excluding_User #205 +│ │ │ │ └─ variant_2: struct #214 +│ │ │ │ └─ [none]: optional 'optional_212' #213 +│ │ │ │ └─ item: &Post_where_excluding_User #205 +│ │ │ ├─ [id]: optional 'optional_197' #198 +│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ └─ item: union #71 +│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_1: struct #70 +│ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_5: struct #67 +│ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ └─ item: integer #58 +│ │ │ └─ [title]: optional 'optional_199' #200 +│ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ └─ item: union #50 +│ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ ├─ variant_0: string #32 +│ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ └─ [not]: string #32 +│ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ └─ [search]: string #32 +│ │ │ │ └─ variant_7: struct #46 +│ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ variant_1: struct #49 +│ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ ├─ variant_0: string #32 +│ │ │ ├─ variant_1: struct #37 +│ │ │ │ └─ [equals]: string #32 +│ │ │ ├─ variant_2: struct #38 +│ │ │ │ └─ [not]: string #32 +│ │ │ ├─ variant_3: struct #39 +│ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_4: struct #40 +│ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_5: struct #44 +│ │ │ │ ├─ [contains]: string #32 +│ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ ├─ variant_6: struct #45 +│ │ │ │ └─ [search]: string #32 +│ │ │ └─ variant_7: struct #46 +│ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ └─ item: string #32 +│ │ ├─ variant_2: struct #266 +│ │ │ └─ [connectOrCreate]: struct #263 +│ │ │ ├─ [create]: struct 'User_create_input_excluding_rel_Post_User' #262 +│ │ │ │ ├─ [id]: integer #94 +│ │ │ │ └─ [name]: string #95 +│ │ │ └─ [where]: struct 'User_where' #237 +│ │ │ ├─ [id]: optional 'optional_193' #194 +│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ └─ item: union #71 +│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_1: struct #70 +│ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_5: struct #67 +│ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ └─ item: integer #58 +│ │ │ ├─ [name]: optional 'optional_195' #196 +│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ │ └─ item: union #50 +│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ variant_1: struct #49 +│ │ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ │ ├─ variant_0: string #32 +│ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ └─ [not]: string #32 +│ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ └─ [search]: string #32 +│ │ │ │ └─ variant_7: struct #46 +│ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ [posts]: optional 'optional_234' #235 +│ │ │ └─ item: union #233 +│ │ │ ├─ variant_0: struct #226 +│ │ │ │ └─ [every]: optional 'optional_224' #225 +│ │ │ │ └─ item: struct 'Post_where_excluding_User' #223 +│ │ │ │ ├─ [author]: optional 'optional_220' #221 +│ │ │ │ │ └─ item: struct 'User_where_excluding_User_and_Post_where_excluding_User' #219 +│ │ │ │ │ ├─ [id]: optional 'optional_201' #202 +│ │ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ │ │ └─ item: union #71 +│ │ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ variant_1: struct #70 +│ │ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [name]: optional 'optional_203' #204 +│ │ │ │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ │ │ │ └─ item: union #50 +│ │ │ │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ └─ variant_1: struct #49 +│ │ │ │ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ [posts]: optional 'optional_216' #217 +│ │ │ │ │ └─ item: union #215 +│ │ │ │ │ ├─ variant_0: struct #208 +│ │ │ │ │ │ └─ [every]: optional 'optional_206' #207 +│ │ │ │ │ │ └─ item: &Post_where_excluding_User #205 +│ │ │ │ │ ├─ variant_1: struct #211 +│ │ │ │ │ │ └─ [some]: optional 'optional_209' #210 +│ │ │ │ │ │ └─ item: &Post_where_excluding_User #205 +│ │ │ │ │ └─ variant_2: struct #214 +│ │ │ │ │ └─ [none]: optional 'optional_212' #213 +│ │ │ │ │ └─ item: &Post_where_excluding_User #205 +│ │ │ │ ├─ [id]: optional 'optional_197' #198 +│ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ │ └─ item: union #71 +│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_1: struct #70 +│ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ [title]: optional 'optional_199' #200 +│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ │ └─ item: union #50 +│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ variant_1: struct #49 +│ │ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ │ ├─ variant_0: string #32 +│ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ └─ [not]: string #32 +│ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ └─ [search]: string #32 +│ │ │ │ └─ variant_7: struct #46 +│ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_1: struct #229 +│ │ │ │ └─ [some]: optional 'optional_227' #228 +│ │ │ │ └─ item: struct 'Post_where_excluding_User' #223 +│ │ │ │ ├─ [author]: optional 'optional_220' #221 +│ │ │ │ │ └─ item: struct 'User_where_excluding_User_and_Post_where_excluding_User' #219 +│ │ │ │ │ ├─ [id]: optional 'optional_201' #202 +│ │ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ │ │ └─ item: union #71 +│ │ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ variant_1: struct #70 +│ │ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [name]: optional 'optional_203' #204 +│ │ │ │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ │ │ │ └─ item: union #50 +│ │ │ │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ └─ variant_1: struct #49 +│ │ │ │ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ [posts]: optional 'optional_216' #217 +│ │ │ │ │ └─ item: union #215 +│ │ │ │ │ ├─ variant_0: struct #208 +│ │ │ │ │ │ └─ [every]: optional 'optional_206' #207 +│ │ │ │ │ │ └─ item: &Post_where_excluding_User #205 +│ │ │ │ │ ├─ variant_1: struct #211 +│ │ │ │ │ │ └─ [some]: optional 'optional_209' #210 +│ │ │ │ │ │ └─ item: &Post_where_excluding_User #205 +│ │ │ │ │ └─ variant_2: struct #214 +│ │ │ │ │ └─ [none]: optional 'optional_212' #213 +│ │ │ │ │ └─ item: &Post_where_excluding_User #205 +│ │ │ │ ├─ [id]: optional 'optional_197' #198 +│ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ │ └─ item: union #71 +│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_1: struct #70 +│ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ [title]: optional 'optional_199' #200 +│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ │ └─ item: union #50 +│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ variant_1: struct #49 +│ │ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ │ ├─ variant_0: string #32 +│ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ └─ [not]: string #32 +│ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ └─ [search]: string #32 +│ │ │ │ └─ variant_7: struct #46 +│ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ variant_2: struct #232 +│ │ │ └─ [none]: optional 'optional_230' #231 +│ │ │ └─ item: struct 'Post_where_excluding_User' #223 +│ │ │ ├─ [author]: optional 'optional_220' #221 +│ │ │ │ └─ item: struct 'User_where_excluding_User_and_Post_where_excluding_User' #219 +│ │ │ │ ├─ [id]: optional 'optional_201' #202 +│ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ │ └─ item: union #71 +│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_1: struct #70 +│ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ [name]: optional 'optional_203' #204 +│ │ │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ │ │ └─ item: union #50 +│ │ │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ variant_1: struct #49 +│ │ │ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [posts]: optional 'optional_216' #217 +│ │ │ │ └─ item: union #215 +│ │ │ │ ├─ variant_0: struct #208 +│ │ │ │ │ └─ [every]: optional 'optional_206' #207 +│ │ │ │ │ └─ item: &Post_where_excluding_User #205 +│ │ │ │ ├─ variant_1: struct #211 +│ │ │ │ │ └─ [some]: optional 'optional_209' #210 +│ │ │ │ │ └─ item: &Post_where_excluding_User #205 +│ │ │ │ └─ variant_2: struct #214 +│ │ │ │ └─ [none]: optional 'optional_212' #213 +│ │ │ │ └─ item: &Post_where_excluding_User #205 +│ │ │ ├─ [id]: optional 'optional_197' #198 +│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ └─ item: union #71 +│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_1: struct #70 +│ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_5: struct #67 +│ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ └─ item: integer #58 +│ │ │ └─ [title]: optional 'optional_199' #200 +│ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ └─ item: union #50 +│ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ ├─ variant_0: string #32 +│ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ └─ [not]: string #32 +│ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ └─ [search]: string #32 +│ │ │ │ └─ variant_7: struct #46 +│ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ variant_1: struct #49 +│ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ ├─ variant_0: string #32 +│ │ │ ├─ variant_1: struct #37 +│ │ │ │ └─ [equals]: string #32 +│ │ │ ├─ variant_2: struct #38 +│ │ │ │ └─ [not]: string #32 +│ │ │ ├─ variant_3: struct #39 +│ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_4: struct #40 +│ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_5: struct #44 +│ │ │ │ ├─ [contains]: string #32 +│ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ ├─ variant_6: struct #45 +│ │ │ │ └─ [search]: string #32 +│ │ │ └─ variant_7: struct #46 +│ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ └─ item: string #32 +│ │ └─ variant_3: struct #280 +│ │ └─ [update]: struct 'User_update_input_excluding_rel_Post_User' #279 +│ │ ├─ [id]: optional 'optional_272' #273 +│ │ │ └─ item: union #271 +│ │ │ ├─ variant_0: integer #94 +│ │ │ ├─ variant_1: struct #267 +│ │ │ │ └─ [set]: integer #94 +│ │ │ ├─ variant_2: struct #268 +│ │ │ │ └─ [multiply]: integer #94 +│ │ │ ├─ variant_3: struct #269 +│ │ │ │ └─ [decrement]: integer #94 +│ │ │ └─ variant_4: struct #270 +│ │ │ └─ [increment]: integer #94 +│ │ └─ [name]: optional 'optional_276' #277 +│ │ └─ item: union #275 +│ │ ├─ variant_0: string #95 +│ │ └─ variant_1: struct #274 +│ │ └─ [set]: string #95 +│ ├─ [id]: optional 'optional_255' #256 +│ │ └─ item: union #254 +│ │ ├─ variant_0: integer #103 +│ │ ├─ variant_1: struct #250 +│ │ │ └─ [set]: integer #103 +│ │ ├─ variant_2: struct #251 +│ │ │ └─ [multiply]: integer #103 +│ │ ├─ variant_3: struct #252 +│ │ │ └─ [decrement]: integer #103 +│ │ └─ variant_4: struct #253 +│ │ └─ [increment]: integer #103 +│ └─ [title]: optional 'optional_259' #260 +│ └─ item: union #258 +│ ├─ variant_0: string #104 +│ └─ variant_1: struct #257 +│ └─ [set]: string #104 +└─ [where]: optional 'optional_295' #296 + └─ item: struct 'Post_query_where_input' #294 + ├─ [AND]: optional 'optional_289' #290 + │ └─ item: list 'list_287' #288 + │ └─ item: &Post_query_where_input #286 + ├─ [NOT]: optional 'optional_291' #292 + │ └─ item: &Post_query_where_input #286 + ├─ [OR]: optional 'optional_289' #290 + │ └─ item: list 'list_287' #288 + │ └─ item: &Post_query_where_input #286 + ├─ [author]: optional 'optional_149' #150 + │ └─ item: struct 'User_where_excluding_Post' #148 + │ ├─ [id]: optional 'optional_130' #131 + │ │ └─ item: optional '_prisma_integer_filter_ex' #74 + │ │ └─ item: union #71 + │ │ ├─ variant_0: either '_prisma_integer_filter' #69 + │ │ │ ├─ variant_0: integer #58 + │ │ │ ├─ variant_1: struct #63 + │ │ │ │ └─ [equals]: integer #58 + │ │ │ ├─ variant_2: struct #64 + │ │ │ │ └─ [not]: integer #58 + │ │ │ ├─ variant_3: struct #65 + │ │ │ │ ├─ [gt]: optional 'optional_59' #60 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ ├─ [gte]: optional 'optional_59' #60 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ ├─ [lt]: optional 'optional_59' #60 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ └─ [lte]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ variant_4: struct #66 + │ │ │ │ └─ [in]: list 'list_61' #62 + │ │ │ │ └─ item: integer #58 + │ │ │ └─ variant_5: struct #67 + │ │ │ └─ [notIn]: list 'list_61' #62 + │ │ │ └─ item: integer #58 + │ │ └─ variant_1: struct #70 + │ │ └─ [not]: either '_prisma_integer_filter' #69 + │ │ ├─ variant_0: integer #58 + │ │ ├─ variant_1: struct #63 + │ │ │ └─ [equals]: integer #58 + │ │ ├─ variant_2: struct #64 + │ │ │ └─ [not]: integer #58 + │ │ ├─ variant_3: struct #65 + │ │ │ ├─ [gt]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ [gte]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ [lt]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ └─ [lte]: optional 'optional_59' #60 + │ │ │ └─ item: integer #58 + │ │ ├─ variant_4: struct #66 + │ │ │ └─ [in]: list 'list_61' #62 + │ │ │ └─ item: integer #58 + │ │ └─ variant_5: struct #67 + │ │ └─ [notIn]: list 'list_61' #62 + │ │ └─ item: integer #58 + │ ├─ [name]: optional 'optional_132' #133 + │ │ └─ item: optional '_prisma_string_filter_ex' #53 + │ │ └─ item: union #50 + │ │ ├─ variant_0: union '_prisma_string_filter' #48 + │ │ │ ├─ variant_0: string #32 + │ │ │ ├─ variant_1: struct #37 + │ │ │ │ └─ [equals]: string #32 + │ │ │ ├─ variant_2: struct #38 + │ │ │ │ └─ [not]: string #32 + │ │ │ ├─ variant_3: struct #39 + │ │ │ │ └─ [in]: list 'list_35' #36 + │ │ │ │ └─ item: string #32 + │ │ │ ├─ variant_4: struct #40 + │ │ │ │ └─ [notIn]: list 'list_35' #36 + │ │ │ │ └─ item: string #32 + │ │ │ ├─ variant_5: struct #44 + │ │ │ │ ├─ [contains]: string #32 + │ │ │ │ └─ [mode]: optional 'optional_42' #43 + │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #45 + │ │ │ │ └─ [search]: string #32 + │ │ │ └─ variant_7: struct #46 + │ │ │ ├─ [endsWith]: optional 'optional_33' #34 + │ │ │ │ └─ item: string #32 + │ │ │ └─ [startsWith]: optional 'optional_33' #34 + │ │ │ └─ item: string #32 + │ │ └─ variant_1: struct #49 + │ │ └─ [not]: union '_prisma_string_filter' #48 + │ │ ├─ variant_0: string #32 + │ │ ├─ variant_1: struct #37 + │ │ │ └─ [equals]: string #32 + │ │ ├─ variant_2: struct #38 + │ │ │ └─ [not]: string #32 + │ │ ├─ variant_3: struct #39 + │ │ │ └─ [in]: list 'list_35' #36 + │ │ │ └─ item: string #32 + │ │ ├─ variant_4: struct #40 + │ │ │ └─ [notIn]: list 'list_35' #36 + │ │ │ └─ item: string #32 + │ │ ├─ variant_5: struct #44 + │ │ │ ├─ [contains]: string #32 + │ │ │ └─ [mode]: optional 'optional_42' #43 + │ │ │ └─ item: string #41 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #45 + │ │ │ └─ [search]: string #32 + │ │ └─ variant_7: struct #46 + │ │ ├─ [endsWith]: optional 'optional_33' #34 + │ │ │ └─ item: string #32 + │ │ └─ [startsWith]: optional 'optional_33' #34 + │ │ └─ item: string #32 + │ └─ [posts]: optional 'optional_145' #146 + │ └─ item: union #144 + │ ├─ variant_0: struct #137 + │ │ └─ [every]: optional 'optional_135' #136 + │ │ └─ item: &Post_where #134 + │ ├─ variant_1: struct #140 + │ │ └─ [some]: optional 'optional_138' #139 + │ │ └─ item: &Post_where #134 + │ └─ variant_2: struct #143 + │ └─ [none]: optional 'optional_141' #142 + │ └─ item: &Post_where #134 + ├─ [id]: optional 'optional_126' #127 + │ └─ item: optional '_prisma_integer_filter_ex' #74 + │ └─ item: union #71 + │ ├─ variant_0: either '_prisma_integer_filter' #69 + │ │ ├─ variant_0: integer #58 + │ │ ├─ variant_1: struct #63 + │ │ │ └─ [equals]: integer #58 + │ │ ├─ variant_2: struct #64 + │ │ │ └─ [not]: integer #58 + │ │ ├─ variant_3: struct #65 + │ │ │ ├─ [gt]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ [gte]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ [lt]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ └─ [lte]: optional 'optional_59' #60 + │ │ │ └─ item: integer #58 + │ │ ├─ variant_4: struct #66 + │ │ │ └─ [in]: list 'list_61' #62 + │ │ │ └─ item: integer #58 + │ │ └─ variant_5: struct #67 + │ │ └─ [notIn]: list 'list_61' #62 + │ │ └─ item: integer #58 + │ └─ variant_1: struct #70 + │ └─ [not]: either '_prisma_integer_filter' #69 + │ ├─ variant_0: integer #58 + │ ├─ variant_1: struct #63 + │ │ └─ [equals]: integer #58 + │ ├─ variant_2: struct #64 + │ │ └─ [not]: integer #58 + │ ├─ variant_3: struct #65 + │ │ ├─ [gt]: optional 'optional_59' #60 + │ │ │ └─ item: integer #58 + │ │ ├─ [gte]: optional 'optional_59' #60 + │ │ │ └─ item: integer #58 + │ │ ├─ [lt]: optional 'optional_59' #60 + │ │ │ └─ item: integer #58 + │ │ └─ [lte]: optional 'optional_59' #60 + │ │ └─ item: integer #58 + │ ├─ variant_4: struct #66 + │ │ └─ [in]: list 'list_61' #62 + │ │ └─ item: integer #58 + │ └─ variant_5: struct #67 + │ └─ [notIn]: list 'list_61' #62 + │ └─ item: integer #58 + └─ [title]: optional 'optional_128' #129 + └─ item: optional '_prisma_string_filter_ex' #53 + └─ item: union #50 + ├─ variant_0: union '_prisma_string_filter' #48 + │ ├─ variant_0: string #32 + │ ├─ variant_1: struct #37 + │ │ └─ [equals]: string #32 + │ ├─ variant_2: struct #38 + │ │ └─ [not]: string #32 + │ ├─ variant_3: struct #39 + │ │ └─ [in]: list 'list_35' #36 + │ │ └─ item: string #32 + │ ├─ variant_4: struct #40 + │ │ └─ [notIn]: list 'list_35' #36 + │ │ └─ item: string #32 + │ ├─ variant_5: struct #44 + │ │ ├─ [contains]: string #32 + │ │ └─ [mode]: optional 'optional_42' #43 + │ │ └─ item: string #41 enum{ '"insensitive"' } + │ ├─ variant_6: struct #45 + │ │ └─ [search]: string #32 + │ └─ variant_7: struct #46 + │ ├─ [endsWith]: optional 'optional_33' #34 + │ │ └─ item: string #32 + │ └─ [startsWith]: optional 'optional_33' #34 + │ └─ item: string #32 + └─ variant_1: struct #49 + └─ [not]: union '_prisma_string_filter' #48 + ├─ variant_0: string #32 + ├─ variant_1: struct #37 + │ └─ [equals]: string #32 + ├─ variant_2: struct #38 + │ └─ [not]: string #32 + ├─ variant_3: struct #39 + │ └─ [in]: list 'list_35' #36 + │ └─ item: string #32 + ├─ variant_4: struct #40 + │ └─ [notIn]: list 'list_35' #36 + │ └─ item: string #32 + ├─ variant_5: struct #44 + │ ├─ [contains]: string #32 + │ └─ [mode]: optional 'optional_42' #43 + │ └─ item: string #41 enum{ '"insensitive"' } + ├─ variant_6: struct #45 + │ └─ [search]: string #32 + └─ variant_7: struct #46 + ├─ [endsWith]: optional 'optional_33' #34 + │ └─ item: string #32 + └─ [startsWith]: optional 'optional_33' #34 + └─ item: string #32 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__update_many Record inp.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__update_many Record inp.snap index da584c4608..c2b062e929 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__update_many Record inp.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__update_many Record inp.snap @@ -2,239 +2,239 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs expression: tp.print(inp) --- -root: struct #63 -├─ [data]: struct 'Record_update_input' #23 -│ ├─ [age]: optional 'optional_19' #19 -│ │ └─ item: union #18 -│ │ ├─ variant_0: optional 'optional_6' #6 -│ │ │ └─ item: integer #5 -│ │ ├─ variant_1: struct #14 -│ │ │ └─ [set]: optional 'optional_6' #6 -│ │ │ └─ item: integer #5 -│ │ ├─ variant_2: struct #15 -│ │ │ └─ [multiply]: integer #5 -│ │ ├─ variant_3: struct #16 -│ │ │ └─ [decrement]: integer #5 -│ │ └─ variant_4: struct #17 -│ │ └─ [increment]: integer #5 -│ ├─ [created_at]: optional 'optional_22' #22 -│ │ └─ item: union #21 +root: struct #92 +├─ [data]: struct 'Record_update_input' #31 +│ ├─ [age]: optional 'optional_24' #25 +│ │ └─ item: union #23 +│ │ ├─ variant_0: optional 'optional_7' #8 +│ │ │ └─ item: integer #6 +│ │ ├─ variant_1: struct #19 +│ │ │ └─ [set]: optional 'optional_7' #8 +│ │ │ └─ item: integer #6 +│ │ ├─ variant_2: struct #20 +│ │ │ └─ [multiply]: integer #6 +│ │ ├─ variant_3: struct #21 +│ │ │ └─ [decrement]: integer #6 +│ │ └─ variant_4: struct #22 +│ │ └─ [increment]: integer #6 +│ ├─ [created_at]: optional 'optional_28' #29 +│ │ └─ item: union #27 │ │ ├─ variant_0: string #1 -│ │ └─ variant_1: struct #20 +│ │ └─ variant_1: struct #26 │ │ └─ [set]: string #1 -│ ├─ [id]: optional 'optional_10' #10 -│ │ └─ item: union #9 -│ │ ├─ variant_0: string #3 -│ │ └─ variant_1: struct #8 -│ │ └─ [set]: string #3 -│ └─ [name]: optional 'optional_13' #13 -│ └─ item: union #12 -│ ├─ variant_0: string #4 -│ └─ variant_1: struct #11 -│ └─ [set]: string #4 -└─ [where]: optional 'optional_62' #62 - └─ item: struct 'Record_query_where_input' #61 - ├─ [AND]: optional 'optional_59' #59 - │ └─ item: list 'list_58' #58 - │ └─ item: &Record_query_where_input #57 - ├─ [NOT]: optional 'optional_60' #60 - │ └─ item: &Record_query_where_input #57 - ├─ [OR]: optional 'optional_59' #59 - │ └─ item: list 'list_58' #58 - │ └─ item: &Record_query_where_input #57 - ├─ [age]: optional 'optional_54' #54 - │ └─ item: optional '_prisma_integer_filter_ex' #53 - │ └─ item: union #52 - │ ├─ variant_0: either '_prisma_integer_filter' #50 - │ │ ├─ variant_0: integer #42 - │ │ ├─ variant_1: struct #45 - │ │ │ └─ [equals]: integer #42 - │ │ ├─ variant_2: struct #46 - │ │ │ └─ [not]: integer #42 - │ │ ├─ variant_3: struct #47 - │ │ │ ├─ [gt]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ ├─ [gte]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ ├─ [lt]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ └─ [lte]: optional 'optional_43' #43 - │ │ │ └─ item: integer #42 - │ │ ├─ variant_4: struct #48 - │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ └─ item: integer #42 - │ │ └─ variant_5: struct #49 - │ │ └─ [notIn]: list 'list_44' #44 - │ │ └─ item: integer #42 - │ └─ variant_1: struct #51 - │ └─ [not]: either '_prisma_integer_filter' #50 - │ ├─ variant_0: integer #42 - │ ├─ variant_1: struct #45 - │ │ └─ [equals]: integer #42 - │ ├─ variant_2: struct #46 - │ │ └─ [not]: integer #42 - │ ├─ variant_3: struct #47 - │ │ ├─ [gt]: optional 'optional_43' #43 - │ │ │ └─ item: integer #42 - │ │ ├─ [gte]: optional 'optional_43' #43 - │ │ │ └─ item: integer #42 - │ │ ├─ [lt]: optional 'optional_43' #43 - │ │ │ └─ item: integer #42 - │ │ └─ [lte]: optional 'optional_43' #43 - │ │ └─ item: integer #42 - │ ├─ variant_4: struct #48 - │ │ └─ [in]: list 'list_44' #44 - │ │ └─ item: integer #42 - │ └─ variant_5: struct #49 - │ └─ [notIn]: list 'list_44' #44 - │ └─ item: integer #42 - ├─ [created_at]: optional 'optional_55' #55 - │ └─ item: optional '_prisma_string_filter_ex' #39 - │ └─ item: union #38 - │ ├─ variant_0: union '_prisma_string_filter' #36 - │ │ ├─ variant_0: string #24 - │ │ ├─ variant_1: struct #27 - │ │ │ └─ [equals]: string #24 - │ │ ├─ variant_2: struct #28 - │ │ │ └─ [not]: string #24 - │ │ ├─ variant_3: struct #29 - │ │ │ └─ [in]: list 'list_26' #26 - │ │ │ └─ item: string #24 - │ │ ├─ variant_4: struct #30 - │ │ │ └─ [notIn]: list 'list_26' #26 - │ │ │ └─ item: string #24 - │ │ ├─ variant_5: struct #33 - │ │ │ ├─ [contains]: string #24 - │ │ │ └─ [mode]: optional 'optional_32' #32 - │ │ │ └─ item: string #31 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #34 - │ │ │ └─ [search]: string #24 - │ │ └─ variant_7: struct #35 - │ │ ├─ [endsWith]: optional 'optional_25' #25 - │ │ │ └─ item: string #24 - │ │ └─ [startsWith]: optional 'optional_25' #25 - │ │ └─ item: string #24 - │ └─ variant_1: struct #37 - │ └─ [not]: union '_prisma_string_filter' #36 - │ ├─ variant_0: string #24 - │ ├─ variant_1: struct #27 - │ │ └─ [equals]: string #24 - │ ├─ variant_2: struct #28 - │ │ └─ [not]: string #24 - │ ├─ variant_3: struct #29 - │ │ └─ [in]: list 'list_26' #26 - │ │ └─ item: string #24 - │ ├─ variant_4: struct #30 - │ │ └─ [notIn]: list 'list_26' #26 - │ │ └─ item: string #24 - │ ├─ variant_5: struct #33 - │ │ ├─ [contains]: string #24 - │ │ └─ [mode]: optional 'optional_32' #32 - │ │ └─ item: string #31 enum{ '"insensitive"' } - │ ├─ variant_6: struct #34 - │ │ └─ [search]: string #24 - │ └─ variant_7: struct #35 - │ ├─ [endsWith]: optional 'optional_25' #25 - │ │ └─ item: string #24 - │ └─ [startsWith]: optional 'optional_25' #25 - │ └─ item: string #24 - ├─ [id]: optional 'optional_40' #40 - │ └─ item: optional '_prisma_string_filter_ex' #39 - │ └─ item: union #38 - │ ├─ variant_0: union '_prisma_string_filter' #36 - │ │ ├─ variant_0: string #24 - │ │ ├─ variant_1: struct #27 - │ │ │ └─ [equals]: string #24 - │ │ ├─ variant_2: struct #28 - │ │ │ └─ [not]: string #24 - │ │ ├─ variant_3: struct #29 - │ │ │ └─ [in]: list 'list_26' #26 - │ │ │ └─ item: string #24 - │ │ ├─ variant_4: struct #30 - │ │ │ └─ [notIn]: list 'list_26' #26 - │ │ │ └─ item: string #24 - │ │ ├─ variant_5: struct #33 - │ │ │ ├─ [contains]: string #24 - │ │ │ └─ [mode]: optional 'optional_32' #32 - │ │ │ └─ item: string #31 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #34 - │ │ │ └─ [search]: string #24 - │ │ └─ variant_7: struct #35 - │ │ ├─ [endsWith]: optional 'optional_25' #25 - │ │ │ └─ item: string #24 - │ │ └─ [startsWith]: optional 'optional_25' #25 - │ │ └─ item: string #24 - │ └─ variant_1: struct #37 - │ └─ [not]: union '_prisma_string_filter' #36 - │ ├─ variant_0: string #24 - │ ├─ variant_1: struct #27 - │ │ └─ [equals]: string #24 - │ ├─ variant_2: struct #28 - │ │ └─ [not]: string #24 - │ ├─ variant_3: struct #29 - │ │ └─ [in]: list 'list_26' #26 - │ │ └─ item: string #24 - │ ├─ variant_4: struct #30 - │ │ └─ [notIn]: list 'list_26' #26 - │ │ └─ item: string #24 - │ ├─ variant_5: struct #33 - │ │ ├─ [contains]: string #24 - │ │ └─ [mode]: optional 'optional_32' #32 - │ │ └─ item: string #31 enum{ '"insensitive"' } - │ ├─ variant_6: struct #34 - │ │ └─ [search]: string #24 - │ └─ variant_7: struct #35 - │ ├─ [endsWith]: optional 'optional_25' #25 - │ │ └─ item: string #24 - │ └─ [startsWith]: optional 'optional_25' #25 - │ └─ item: string #24 - └─ [name]: optional 'optional_41' #41 - └─ item: optional '_prisma_string_filter_ex' #39 - └─ item: union #38 - ├─ variant_0: union '_prisma_string_filter' #36 - │ ├─ variant_0: string #24 - │ ├─ variant_1: struct #27 - │ │ └─ [equals]: string #24 - │ ├─ variant_2: struct #28 - │ │ └─ [not]: string #24 - │ ├─ variant_3: struct #29 - │ │ └─ [in]: list 'list_26' #26 - │ │ └─ item: string #24 - │ ├─ variant_4: struct #30 - │ │ └─ [notIn]: list 'list_26' #26 - │ │ └─ item: string #24 - │ ├─ variant_5: struct #33 - │ │ ├─ [contains]: string #24 - │ │ └─ [mode]: optional 'optional_32' #32 - │ │ └─ item: string #31 enum{ '"insensitive"' } - │ ├─ variant_6: struct #34 - │ │ └─ [search]: string #24 - │ └─ variant_7: struct #35 - │ ├─ [endsWith]: optional 'optional_25' #25 - │ │ └─ item: string #24 - │ └─ [startsWith]: optional 'optional_25' #25 - │ └─ item: string #24 - └─ variant_1: struct #37 - └─ [not]: union '_prisma_string_filter' #36 - ├─ variant_0: string #24 - ├─ variant_1: struct #27 - │ └─ [equals]: string #24 - ├─ variant_2: struct #28 - │ └─ [not]: string #24 - ├─ variant_3: struct #29 - │ └─ [in]: list 'list_26' #26 - │ └─ item: string #24 - ├─ variant_4: struct #30 - │ └─ [notIn]: list 'list_26' #26 - │ └─ item: string #24 - ├─ variant_5: struct #33 - │ ├─ [contains]: string #24 - │ └─ [mode]: optional 'optional_32' #32 - │ └─ item: string #31 enum{ '"insensitive"' } - ├─ variant_6: struct #34 - │ └─ [search]: string #24 - └─ variant_7: struct #35 - ├─ [endsWith]: optional 'optional_25' #25 - │ └─ item: string #24 - └─ [startsWith]: optional 'optional_25' #25 - └─ item: string #24 +│ ├─ [id]: optional 'optional_13' #14 +│ │ └─ item: union #12 +│ │ ├─ variant_0: string #4 +│ │ └─ variant_1: struct #11 +│ │ └─ [set]: string #4 +│ └─ [name]: optional 'optional_17' #18 +│ └─ item: union #16 +│ ├─ variant_0: string #5 +│ └─ variant_1: struct #15 +│ └─ [set]: string #5 +└─ [where]: optional 'optional_90' #91 + └─ item: struct 'Record_query_where_input' #89 + ├─ [AND]: optional 'optional_84' #85 + │ └─ item: list 'list_82' #83 + │ └─ item: &Record_query_where_input #81 + ├─ [NOT]: optional 'optional_86' #87 + │ └─ item: &Record_query_where_input #81 + ├─ [OR]: optional 'optional_84' #85 + │ └─ item: list 'list_82' #83 + │ └─ item: &Record_query_where_input #81 + ├─ [age]: optional 'optional_75' #76 + │ └─ item: optional '_prisma_integer_filter_ex' #74 + │ └─ item: union #71 + │ ├─ variant_0: either '_prisma_integer_filter' #69 + │ │ ├─ variant_0: integer #58 + │ │ ├─ variant_1: struct #63 + │ │ │ └─ [equals]: integer #58 + │ │ ├─ variant_2: struct #64 + │ │ │ └─ [not]: integer #58 + │ │ ├─ variant_3: struct #65 + │ │ │ ├─ [gt]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ [gte]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ [lt]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ └─ [lte]: optional 'optional_59' #60 + │ │ │ └─ item: integer #58 + │ │ ├─ variant_4: struct #66 + │ │ │ └─ [in]: list 'list_61' #62 + │ │ │ └─ item: integer #58 + │ │ └─ variant_5: struct #67 + │ │ └─ [notIn]: list 'list_61' #62 + │ │ └─ item: integer #58 + │ └─ variant_1: struct #70 + │ └─ [not]: either '_prisma_integer_filter' #69 + │ ├─ variant_0: integer #58 + │ ├─ variant_1: struct #63 + │ │ └─ [equals]: integer #58 + │ ├─ variant_2: struct #64 + │ │ └─ [not]: integer #58 + │ ├─ variant_3: struct #65 + │ │ ├─ [gt]: optional 'optional_59' #60 + │ │ │ └─ item: integer #58 + │ │ ├─ [gte]: optional 'optional_59' #60 + │ │ │ └─ item: integer #58 + │ │ ├─ [lt]: optional 'optional_59' #60 + │ │ │ └─ item: integer #58 + │ │ └─ [lte]: optional 'optional_59' #60 + │ │ └─ item: integer #58 + │ ├─ variant_4: struct #66 + │ │ └─ [in]: list 'list_61' #62 + │ │ └─ item: integer #58 + │ └─ variant_5: struct #67 + │ └─ [notIn]: list 'list_61' #62 + │ └─ item: integer #58 + ├─ [created_at]: optional 'optional_77' #78 + │ └─ item: optional '_prisma_string_filter_ex' #53 + │ └─ item: union #50 + │ ├─ variant_0: union '_prisma_string_filter' #48 + │ │ ├─ variant_0: string #32 + │ │ ├─ variant_1: struct #37 + │ │ │ └─ [equals]: string #32 + │ │ ├─ variant_2: struct #38 + │ │ │ └─ [not]: string #32 + │ │ ├─ variant_3: struct #39 + │ │ │ └─ [in]: list 'list_35' #36 + │ │ │ └─ item: string #32 + │ │ ├─ variant_4: struct #40 + │ │ │ └─ [notIn]: list 'list_35' #36 + │ │ │ └─ item: string #32 + │ │ ├─ variant_5: struct #44 + │ │ │ ├─ [contains]: string #32 + │ │ │ └─ [mode]: optional 'optional_42' #43 + │ │ │ └─ item: string #41 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #45 + │ │ │ └─ [search]: string #32 + │ │ └─ variant_7: struct #46 + │ │ ├─ [endsWith]: optional 'optional_33' #34 + │ │ │ └─ item: string #32 + │ │ └─ [startsWith]: optional 'optional_33' #34 + │ │ └─ item: string #32 + │ └─ variant_1: struct #49 + │ └─ [not]: union '_prisma_string_filter' #48 + │ ├─ variant_0: string #32 + │ ├─ variant_1: struct #37 + │ │ └─ [equals]: string #32 + │ ├─ variant_2: struct #38 + │ │ └─ [not]: string #32 + │ ├─ variant_3: struct #39 + │ │ └─ [in]: list 'list_35' #36 + │ │ └─ item: string #32 + │ ├─ variant_4: struct #40 + │ │ └─ [notIn]: list 'list_35' #36 + │ │ └─ item: string #32 + │ ├─ variant_5: struct #44 + │ │ ├─ [contains]: string #32 + │ │ └─ [mode]: optional 'optional_42' #43 + │ │ └─ item: string #41 enum{ '"insensitive"' } + │ ├─ variant_6: struct #45 + │ │ └─ [search]: string #32 + │ └─ variant_7: struct #46 + │ ├─ [endsWith]: optional 'optional_33' #34 + │ │ └─ item: string #32 + │ └─ [startsWith]: optional 'optional_33' #34 + │ └─ item: string #32 + ├─ [id]: optional 'optional_54' #55 + │ └─ item: optional '_prisma_string_filter_ex' #53 + │ └─ item: union #50 + │ ├─ variant_0: union '_prisma_string_filter' #48 + │ │ ├─ variant_0: string #32 + │ │ ├─ variant_1: struct #37 + │ │ │ └─ [equals]: string #32 + │ │ ├─ variant_2: struct #38 + │ │ │ └─ [not]: string #32 + │ │ ├─ variant_3: struct #39 + │ │ │ └─ [in]: list 'list_35' #36 + │ │ │ └─ item: string #32 + │ │ ├─ variant_4: struct #40 + │ │ │ └─ [notIn]: list 'list_35' #36 + │ │ │ └─ item: string #32 + │ │ ├─ variant_5: struct #44 + │ │ │ ├─ [contains]: string #32 + │ │ │ └─ [mode]: optional 'optional_42' #43 + │ │ │ └─ item: string #41 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #45 + │ │ │ └─ [search]: string #32 + │ │ └─ variant_7: struct #46 + │ │ ├─ [endsWith]: optional 'optional_33' #34 + │ │ │ └─ item: string #32 + │ │ └─ [startsWith]: optional 'optional_33' #34 + │ │ └─ item: string #32 + │ └─ variant_1: struct #49 + │ └─ [not]: union '_prisma_string_filter' #48 + │ ├─ variant_0: string #32 + │ ├─ variant_1: struct #37 + │ │ └─ [equals]: string #32 + │ ├─ variant_2: struct #38 + │ │ └─ [not]: string #32 + │ ├─ variant_3: struct #39 + │ │ └─ [in]: list 'list_35' #36 + │ │ └─ item: string #32 + │ ├─ variant_4: struct #40 + │ │ └─ [notIn]: list 'list_35' #36 + │ │ └─ item: string #32 + │ ├─ variant_5: struct #44 + │ │ ├─ [contains]: string #32 + │ │ └─ [mode]: optional 'optional_42' #43 + │ │ └─ item: string #41 enum{ '"insensitive"' } + │ ├─ variant_6: struct #45 + │ │ └─ [search]: string #32 + │ └─ variant_7: struct #46 + │ ├─ [endsWith]: optional 'optional_33' #34 + │ │ └─ item: string #32 + │ └─ [startsWith]: optional 'optional_33' #34 + │ └─ item: string #32 + └─ [name]: optional 'optional_56' #57 + └─ item: optional '_prisma_string_filter_ex' #53 + └─ item: union #50 + ├─ variant_0: union '_prisma_string_filter' #48 + │ ├─ variant_0: string #32 + │ ├─ variant_1: struct #37 + │ │ └─ [equals]: string #32 + │ ├─ variant_2: struct #38 + │ │ └─ [not]: string #32 + │ ├─ variant_3: struct #39 + │ │ └─ [in]: list 'list_35' #36 + │ │ └─ item: string #32 + │ ├─ variant_4: struct #40 + │ │ └─ [notIn]: list 'list_35' #36 + │ │ └─ item: string #32 + │ ├─ variant_5: struct #44 + │ │ ├─ [contains]: string #32 + │ │ └─ [mode]: optional 'optional_42' #43 + │ │ └─ item: string #41 enum{ '"insensitive"' } + │ ├─ variant_6: struct #45 + │ │ └─ [search]: string #32 + │ └─ variant_7: struct #46 + │ ├─ [endsWith]: optional 'optional_33' #34 + │ │ └─ item: string #32 + │ └─ [startsWith]: optional 'optional_33' #34 + │ └─ item: string #32 + └─ variant_1: struct #49 + └─ [not]: union '_prisma_string_filter' #48 + ├─ variant_0: string #32 + ├─ variant_1: struct #37 + │ └─ [equals]: string #32 + ├─ variant_2: struct #38 + │ └─ [not]: string #32 + ├─ variant_3: struct #39 + │ └─ [in]: list 'list_35' #36 + │ └─ item: string #32 + ├─ variant_4: struct #40 + │ └─ [notIn]: list 'list_35' #36 + │ └─ item: string #32 + ├─ variant_5: struct #44 + │ ├─ [contains]: string #32 + │ └─ [mode]: optional 'optional_42' #43 + │ └─ item: string #41 enum{ '"insensitive"' } + ├─ variant_6: struct #45 + │ └─ [search]: string #32 + └─ variant_7: struct #46 + ├─ [endsWith]: optional 'optional_33' #34 + │ └─ item: string #32 + └─ [startsWith]: optional 'optional_33' #34 + └─ item: string #32 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__update_many User inp.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__update_many User inp.snap index 1b6b2c9519..f5b040de1e 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__update_many User inp.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__update_many User inp.snap @@ -2,2169 +2,2490 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs expression: tp.print(inp) --- -root: struct #156 -├─ [data]: struct 'User_update_input' #133 -│ ├─ [id]: optional 'optional_80' #80 -│ │ └─ item: union #79 -│ │ ├─ variant_0: integer #65 -│ │ ├─ variant_1: struct #75 -│ │ │ └─ [set]: integer #65 -│ │ ├─ variant_2: struct #76 -│ │ │ └─ [multiply]: integer #64 -│ │ ├─ variant_3: struct #77 -│ │ │ └─ [decrement]: integer #64 -│ │ └─ variant_4: struct #78 -│ │ └─ [increment]: integer #64 -│ ├─ [name]: optional 'optional_83' #83 -│ │ └─ item: union #82 -│ │ ├─ variant_0: string #66 -│ │ └─ variant_1: struct #81 -│ │ └─ [set]: string #66 -│ └─ [posts]: optional 'optional_132' #132 -│ └─ item: union #131 -│ ├─ variant_0: struct #107 -│ │ └─ [create]: union #87 -│ │ ├─ variant_0: struct 'Post_create_input_excluding_rel_Post_User' #85 -│ │ │ ├─ [id]: optional 'optional_84' #84 -│ │ │ │ └─ item: integer #70 -│ │ │ └─ [title]: string #72 -│ │ └─ variant_1: list 'list_86' #86 -│ │ └─ item: struct 'Post_create_input_excluding_rel_Post_User' #85 -│ │ ├─ [id]: optional 'optional_84' #84 -│ │ │ └─ item: integer #70 -│ │ └─ [title]: string #72 -│ ├─ variant_1: struct #108 -│ │ └─ [connect]: union #105 -│ │ ├─ variant_0: struct 'Post_where' #103 -│ │ │ ├─ [author]: optional 'optional_102' #102 -│ │ │ │ └─ item: struct 'User_where_excluding_Post' #101 -│ │ │ │ ├─ [id]: optional 'optional_90' #90 -│ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ │ │ └─ item: union #52 -│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_1: struct #51 -│ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ [name]: optional 'optional_91' #91 -│ │ │ │ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ │ │ │ └─ item: union #38 -│ │ │ │ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ │ │ │ ├─ variant_0: string #24 -│ │ │ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ │ │ └─ [not]: string #24 -│ │ │ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ │ │ └─ [search]: string #24 -│ │ │ │ │ │ └─ variant_7: struct #35 -│ │ │ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ └─ variant_1: struct #37 -│ │ │ │ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ │ │ │ ├─ variant_0: string #24 -│ │ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ │ └─ [not]: string #24 -│ │ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ │ └─ [search]: string #24 -│ │ │ │ │ └─ variant_7: struct #35 -│ │ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ [posts]: optional 'optional_100' #100 -│ │ │ │ └─ item: union #99 -│ │ │ │ ├─ variant_0: struct #94 -│ │ │ │ │ └─ [every]: optional 'optional_93' #93 -│ │ │ │ │ └─ item: &Post_where #92 -│ │ │ │ ├─ variant_1: struct #96 -│ │ │ │ │ └─ [some]: optional 'optional_95' #95 -│ │ │ │ │ └─ item: &Post_where #92 -│ │ │ │ └─ variant_2: struct #98 -│ │ │ │ └─ [none]: optional 'optional_97' #97 -│ │ │ │ └─ item: &Post_where #92 -│ │ │ ├─ [id]: optional 'optional_88' #88 -│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ │ └─ item: union #52 -│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_1: struct #51 -│ │ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_5: struct #49 -│ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ └─ item: integer #42 -│ │ │ └─ [title]: optional 'optional_89' #89 -│ │ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ │ └─ item: union #38 -│ │ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ │ ├─ variant_0: string #24 -│ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ └─ [not]: string #24 -│ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ └─ [search]: string #24 -│ │ │ │ └─ variant_7: struct #35 -│ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ variant_1: struct #37 -│ │ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ │ ├─ variant_0: string #24 -│ │ │ ├─ variant_1: struct #27 -│ │ │ │ └─ [equals]: string #24 -│ │ │ ├─ variant_2: struct #28 -│ │ │ │ └─ [not]: string #24 -│ │ │ ├─ variant_3: struct #29 -│ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_4: struct #30 -│ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_5: struct #33 -│ │ │ │ ├─ [contains]: string #24 -│ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ ├─ variant_6: struct #34 -│ │ │ │ └─ [search]: string #24 -│ │ │ └─ variant_7: struct #35 -│ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ └─ item: string #24 -│ │ └─ variant_1: list 'list_104' #104 -│ │ └─ item: struct 'Post_where' #103 -│ │ ├─ [author]: optional 'optional_102' #102 -│ │ │ └─ item: struct 'User_where_excluding_Post' #101 -│ │ │ ├─ [id]: optional 'optional_90' #90 -│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ │ └─ item: union #52 -│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_1: struct #51 -│ │ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_5: struct #49 -│ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ └─ item: integer #42 -│ │ │ ├─ [name]: optional 'optional_91' #91 -│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ │ │ └─ item: union #38 -│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ │ │ ├─ variant_0: string #24 -│ │ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ │ └─ [not]: string #24 -│ │ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ │ └─ [search]: string #24 -│ │ │ │ │ └─ variant_7: struct #35 -│ │ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ variant_1: struct #37 -│ │ │ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ │ │ ├─ variant_0: string #24 -│ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ └─ [not]: string #24 -│ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ └─ [search]: string #24 -│ │ │ │ └─ variant_7: struct #35 -│ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ [posts]: optional 'optional_100' #100 -│ │ │ └─ item: union #99 -│ │ │ ├─ variant_0: struct #94 -│ │ │ │ └─ [every]: optional 'optional_93' #93 -│ │ │ │ └─ item: &Post_where #92 -│ │ │ ├─ variant_1: struct #96 -│ │ │ │ └─ [some]: optional 'optional_95' #95 -│ │ │ │ └─ item: &Post_where #92 -│ │ │ └─ variant_2: struct #98 -│ │ │ └─ [none]: optional 'optional_97' #97 -│ │ │ └─ item: &Post_where #92 -│ │ ├─ [id]: optional 'optional_88' #88 -│ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ └─ item: union #52 -│ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_5: struct #49 -│ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ └─ item: integer #42 -│ │ │ └─ variant_1: struct #51 -│ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ ├─ variant_0: integer #42 -│ │ │ ├─ variant_1: struct #45 -│ │ │ │ └─ [equals]: integer #42 -│ │ │ ├─ variant_2: struct #46 -│ │ │ │ └─ [not]: integer #42 -│ │ │ ├─ variant_3: struct #47 -│ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ └─ item: integer #42 -│ │ │ ├─ variant_4: struct #48 -│ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ └─ item: integer #42 -│ │ │ └─ variant_5: struct #49 -│ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ └─ item: integer #42 -│ │ └─ [title]: optional 'optional_89' #89 -│ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ └─ item: union #38 -│ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ ├─ variant_0: string #24 -│ │ │ ├─ variant_1: struct #27 -│ │ │ │ └─ [equals]: string #24 -│ │ │ ├─ variant_2: struct #28 -│ │ │ │ └─ [not]: string #24 -│ │ │ ├─ variant_3: struct #29 -│ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_4: struct #30 -│ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_5: struct #33 -│ │ │ │ ├─ [contains]: string #24 -│ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ ├─ variant_6: struct #34 -│ │ │ │ └─ [search]: string #24 -│ │ │ └─ variant_7: struct #35 -│ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ └─ item: string #24 -│ │ └─ variant_1: struct #37 -│ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ ├─ variant_0: string #24 -│ │ ├─ variant_1: struct #27 -│ │ │ └─ [equals]: string #24 -│ │ ├─ variant_2: struct #28 -│ │ │ └─ [not]: string #24 -│ │ ├─ variant_3: struct #29 -│ │ │ └─ [in]: list 'list_26' #26 -│ │ │ └─ item: string #24 -│ │ ├─ variant_4: struct #30 -│ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ └─ item: string #24 -│ │ ├─ variant_5: struct #33 -│ │ │ ├─ [contains]: string #24 -│ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ ├─ variant_6: struct #34 -│ │ │ └─ [search]: string #24 -│ │ └─ variant_7: struct #35 -│ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ └─ item: string #24 -│ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ └─ item: string #24 -│ ├─ variant_2: struct #109 -│ │ └─ [connectOrCreate]: struct #106 -│ │ ├─ [create]: union #87 -│ │ │ ├─ variant_0: struct 'Post_create_input_excluding_rel_Post_User' #85 -│ │ │ │ ├─ [id]: optional 'optional_84' #84 -│ │ │ │ │ └─ item: integer #70 -│ │ │ │ └─ [title]: string #72 -│ │ │ └─ variant_1: list 'list_86' #86 -│ │ │ └─ item: struct 'Post_create_input_excluding_rel_Post_User' #85 -│ │ │ ├─ [id]: optional 'optional_84' #84 -│ │ │ │ └─ item: integer #70 -│ │ │ └─ [title]: string #72 -│ │ └─ [where]: union #105 -│ │ ├─ variant_0: struct 'Post_where' #103 -│ │ │ ├─ [author]: optional 'optional_102' #102 -│ │ │ │ └─ item: struct 'User_where_excluding_Post' #101 -│ │ │ │ ├─ [id]: optional 'optional_90' #90 -│ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ │ │ └─ item: union #52 -│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_1: struct #51 -│ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ [name]: optional 'optional_91' #91 -│ │ │ │ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ │ │ │ └─ item: union #38 -│ │ │ │ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ │ │ │ ├─ variant_0: string #24 -│ │ │ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ │ │ └─ [not]: string #24 -│ │ │ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ │ │ └─ [search]: string #24 -│ │ │ │ │ │ └─ variant_7: struct #35 -│ │ │ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ └─ variant_1: struct #37 -│ │ │ │ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ │ │ │ ├─ variant_0: string #24 -│ │ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ │ └─ [not]: string #24 -│ │ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ │ └─ [search]: string #24 -│ │ │ │ │ └─ variant_7: struct #35 -│ │ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ [posts]: optional 'optional_100' #100 -│ │ │ │ └─ item: union #99 -│ │ │ │ ├─ variant_0: struct #94 -│ │ │ │ │ └─ [every]: optional 'optional_93' #93 -│ │ │ │ │ └─ item: &Post_where #92 -│ │ │ │ ├─ variant_1: struct #96 -│ │ │ │ │ └─ [some]: optional 'optional_95' #95 -│ │ │ │ │ └─ item: &Post_where #92 -│ │ │ │ └─ variant_2: struct #98 -│ │ │ │ └─ [none]: optional 'optional_97' #97 -│ │ │ │ └─ item: &Post_where #92 -│ │ │ ├─ [id]: optional 'optional_88' #88 -│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ │ └─ item: union #52 -│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_1: struct #51 -│ │ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_5: struct #49 -│ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ └─ item: integer #42 -│ │ │ └─ [title]: optional 'optional_89' #89 -│ │ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ │ └─ item: union #38 -│ │ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ │ ├─ variant_0: string #24 -│ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ └─ [not]: string #24 -│ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ └─ [search]: string #24 -│ │ │ │ └─ variant_7: struct #35 -│ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ variant_1: struct #37 -│ │ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ │ ├─ variant_0: string #24 -│ │ │ ├─ variant_1: struct #27 -│ │ │ │ └─ [equals]: string #24 -│ │ │ ├─ variant_2: struct #28 -│ │ │ │ └─ [not]: string #24 -│ │ │ ├─ variant_3: struct #29 -│ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_4: struct #30 -│ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_5: struct #33 -│ │ │ │ ├─ [contains]: string #24 -│ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ ├─ variant_6: struct #34 -│ │ │ │ └─ [search]: string #24 -│ │ │ └─ variant_7: struct #35 -│ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ └─ item: string #24 -│ │ └─ variant_1: list 'list_104' #104 -│ │ └─ item: struct 'Post_where' #103 -│ │ ├─ [author]: optional 'optional_102' #102 -│ │ │ └─ item: struct 'User_where_excluding_Post' #101 -│ │ │ ├─ [id]: optional 'optional_90' #90 -│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ │ └─ item: union #52 -│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_1: struct #51 -│ │ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_5: struct #49 -│ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ └─ item: integer #42 -│ │ │ ├─ [name]: optional 'optional_91' #91 -│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ │ │ └─ item: union #38 -│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ │ │ ├─ variant_0: string #24 -│ │ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ │ └─ [not]: string #24 -│ │ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ │ └─ [search]: string #24 -│ │ │ │ │ └─ variant_7: struct #35 -│ │ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ variant_1: struct #37 -│ │ │ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ │ │ ├─ variant_0: string #24 -│ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ └─ [not]: string #24 -│ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ └─ [search]: string #24 -│ │ │ │ └─ variant_7: struct #35 -│ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ [posts]: optional 'optional_100' #100 -│ │ │ └─ item: union #99 -│ │ │ ├─ variant_0: struct #94 -│ │ │ │ └─ [every]: optional 'optional_93' #93 -│ │ │ │ └─ item: &Post_where #92 -│ │ │ ├─ variant_1: struct #96 -│ │ │ │ └─ [some]: optional 'optional_95' #95 -│ │ │ │ └─ item: &Post_where #92 -│ │ │ └─ variant_2: struct #98 -│ │ │ └─ [none]: optional 'optional_97' #97 -│ │ │ └─ item: &Post_where #92 -│ │ ├─ [id]: optional 'optional_88' #88 -│ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ └─ item: union #52 -│ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_5: struct #49 -│ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ └─ item: integer #42 -│ │ │ └─ variant_1: struct #51 -│ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ ├─ variant_0: integer #42 -│ │ │ ├─ variant_1: struct #45 -│ │ │ │ └─ [equals]: integer #42 -│ │ │ ├─ variant_2: struct #46 -│ │ │ │ └─ [not]: integer #42 -│ │ │ ├─ variant_3: struct #47 -│ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ └─ item: integer #42 -│ │ │ ├─ variant_4: struct #48 -│ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ └─ item: integer #42 -│ │ │ └─ variant_5: struct #49 -│ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ └─ item: integer #42 -│ │ └─ [title]: optional 'optional_89' #89 -│ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ └─ item: union #38 -│ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ ├─ variant_0: string #24 -│ │ │ ├─ variant_1: struct #27 -│ │ │ │ └─ [equals]: string #24 -│ │ │ ├─ variant_2: struct #28 -│ │ │ │ └─ [not]: string #24 -│ │ │ ├─ variant_3: struct #29 -│ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_4: struct #30 -│ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_5: struct #33 -│ │ │ │ ├─ [contains]: string #24 -│ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ ├─ variant_6: struct #34 -│ │ │ │ └─ [search]: string #24 -│ │ │ └─ variant_7: struct #35 -│ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ └─ item: string #24 -│ │ └─ variant_1: struct #37 -│ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ ├─ variant_0: string #24 -│ │ ├─ variant_1: struct #27 -│ │ │ └─ [equals]: string #24 -│ │ ├─ variant_2: struct #28 -│ │ │ └─ [not]: string #24 -│ │ ├─ variant_3: struct #29 -│ │ │ └─ [in]: list 'list_26' #26 -│ │ │ └─ item: string #24 -│ │ ├─ variant_4: struct #30 -│ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ └─ item: string #24 -│ │ ├─ variant_5: struct #33 -│ │ │ ├─ [contains]: string #24 -│ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ ├─ variant_6: struct #34 -│ │ │ └─ [search]: string #24 -│ │ └─ variant_7: struct #35 -│ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ └─ item: string #24 -│ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ └─ item: string #24 -│ ├─ variant_3: struct #120 -│ │ └─ [update]: struct 'Post_update_input_excluding_rel_Post_User' #119 -│ │ ├─ [id]: optional 'optional_115' #115 -│ │ │ └─ item: union #114 -│ │ │ ├─ variant_0: integer #71 -│ │ │ ├─ variant_1: struct #110 -│ │ │ │ └─ [set]: integer #71 -│ │ │ ├─ variant_2: struct #111 -│ │ │ │ └─ [multiply]: integer #70 -│ │ │ ├─ variant_3: struct #112 -│ │ │ │ └─ [decrement]: integer #70 -│ │ │ └─ variant_4: struct #113 -│ │ │ └─ [increment]: integer #70 -│ │ └─ [title]: optional 'optional_118' #118 -│ │ └─ item: union #117 -│ │ ├─ variant_0: string #72 -│ │ └─ variant_1: struct #116 -│ │ └─ [set]: string #72 -│ ├─ variant_4: struct #123 -│ │ └─ [updateMany]: struct #122 -│ │ ├─ [data]: struct 'Post_update_input_excluding_rel_Post_User' #119 -│ │ │ ├─ [id]: optional 'optional_115' #115 -│ │ │ │ └─ item: union #114 -│ │ │ │ ├─ variant_0: integer #71 -│ │ │ │ ├─ variant_1: struct #110 -│ │ │ │ │ └─ [set]: integer #71 -│ │ │ │ ├─ variant_2: struct #111 -│ │ │ │ │ └─ [multiply]: integer #70 -│ │ │ │ ├─ variant_3: struct #112 -│ │ │ │ │ └─ [decrement]: integer #70 -│ │ │ │ └─ variant_4: struct #113 -│ │ │ │ └─ [increment]: integer #70 -│ │ │ └─ [title]: optional 'optional_118' #118 -│ │ │ └─ item: union #117 -│ │ │ ├─ variant_0: string #72 -│ │ │ └─ variant_1: struct #116 -│ │ │ └─ [set]: string #72 -│ │ └─ [where]: optional 'optional_121' #121 -│ │ └─ item: union #105 -│ │ ├─ variant_0: struct 'Post_where' #103 -│ │ │ ├─ [author]: optional 'optional_102' #102 -│ │ │ │ └─ item: struct 'User_where_excluding_Post' #101 -│ │ │ │ ├─ [id]: optional 'optional_90' #90 -│ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ │ │ └─ item: union #52 -│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_1: struct #51 -│ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ [name]: optional 'optional_91' #91 -│ │ │ │ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ │ │ │ └─ item: union #38 -│ │ │ │ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ │ │ │ ├─ variant_0: string #24 -│ │ │ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ │ │ └─ [not]: string #24 -│ │ │ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ │ │ └─ [search]: string #24 -│ │ │ │ │ │ └─ variant_7: struct #35 -│ │ │ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ └─ variant_1: struct #37 -│ │ │ │ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ │ │ │ ├─ variant_0: string #24 -│ │ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ │ └─ [not]: string #24 -│ │ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ │ └─ [search]: string #24 -│ │ │ │ │ └─ variant_7: struct #35 -│ │ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ [posts]: optional 'optional_100' #100 -│ │ │ │ └─ item: union #99 -│ │ │ │ ├─ variant_0: struct #94 -│ │ │ │ │ └─ [every]: optional 'optional_93' #93 -│ │ │ │ │ └─ item: &Post_where #92 -│ │ │ │ ├─ variant_1: struct #96 -│ │ │ │ │ └─ [some]: optional 'optional_95' #95 -│ │ │ │ │ └─ item: &Post_where #92 -│ │ │ │ └─ variant_2: struct #98 -│ │ │ │ └─ [none]: optional 'optional_97' #97 -│ │ │ │ └─ item: &Post_where #92 -│ │ │ ├─ [id]: optional 'optional_88' #88 -│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ │ └─ item: union #52 -│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_1: struct #51 -│ │ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_5: struct #49 -│ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ └─ item: integer #42 -│ │ │ └─ [title]: optional 'optional_89' #89 -│ │ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ │ └─ item: union #38 -│ │ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ │ ├─ variant_0: string #24 -│ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ └─ [not]: string #24 -│ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ └─ [search]: string #24 -│ │ │ │ └─ variant_7: struct #35 -│ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ variant_1: struct #37 -│ │ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ │ ├─ variant_0: string #24 -│ │ │ ├─ variant_1: struct #27 -│ │ │ │ └─ [equals]: string #24 -│ │ │ ├─ variant_2: struct #28 -│ │ │ │ └─ [not]: string #24 -│ │ │ ├─ variant_3: struct #29 -│ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_4: struct #30 -│ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_5: struct #33 -│ │ │ │ ├─ [contains]: string #24 -│ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ ├─ variant_6: struct #34 -│ │ │ │ └─ [search]: string #24 -│ │ │ └─ variant_7: struct #35 -│ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ └─ item: string #24 -│ │ └─ variant_1: list 'list_104' #104 -│ │ └─ item: struct 'Post_where' #103 -│ │ ├─ [author]: optional 'optional_102' #102 -│ │ │ └─ item: struct 'User_where_excluding_Post' #101 -│ │ │ ├─ [id]: optional 'optional_90' #90 -│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ │ └─ item: union #52 -│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_1: struct #51 -│ │ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_5: struct #49 -│ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ └─ item: integer #42 -│ │ │ ├─ [name]: optional 'optional_91' #91 -│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ │ │ └─ item: union #38 -│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ │ │ ├─ variant_0: string #24 -│ │ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ │ └─ [not]: string #24 -│ │ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ │ └─ [search]: string #24 -│ │ │ │ │ └─ variant_7: struct #35 -│ │ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ variant_1: struct #37 -│ │ │ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ │ │ ├─ variant_0: string #24 -│ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ └─ [not]: string #24 -│ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ └─ [search]: string #24 -│ │ │ │ └─ variant_7: struct #35 -│ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ [posts]: optional 'optional_100' #100 -│ │ │ └─ item: union #99 -│ │ │ ├─ variant_0: struct #94 -│ │ │ │ └─ [every]: optional 'optional_93' #93 -│ │ │ │ └─ item: &Post_where #92 -│ │ │ ├─ variant_1: struct #96 -│ │ │ │ └─ [some]: optional 'optional_95' #95 -│ │ │ │ └─ item: &Post_where #92 -│ │ │ └─ variant_2: struct #98 -│ │ │ └─ [none]: optional 'optional_97' #97 -│ │ │ └─ item: &Post_where #92 -│ │ ├─ [id]: optional 'optional_88' #88 -│ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ └─ item: union #52 -│ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_5: struct #49 -│ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ └─ item: integer #42 -│ │ │ └─ variant_1: struct #51 -│ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ ├─ variant_0: integer #42 -│ │ │ ├─ variant_1: struct #45 -│ │ │ │ └─ [equals]: integer #42 -│ │ │ ├─ variant_2: struct #46 -│ │ │ │ └─ [not]: integer #42 -│ │ │ ├─ variant_3: struct #47 -│ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ └─ item: integer #42 -│ │ │ ├─ variant_4: struct #48 -│ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ └─ item: integer #42 -│ │ │ └─ variant_5: struct #49 -│ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ └─ item: integer #42 -│ │ └─ [title]: optional 'optional_89' #89 -│ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ └─ item: union #38 -│ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ ├─ variant_0: string #24 -│ │ │ ├─ variant_1: struct #27 -│ │ │ │ └─ [equals]: string #24 -│ │ │ ├─ variant_2: struct #28 -│ │ │ │ └─ [not]: string #24 -│ │ │ ├─ variant_3: struct #29 -│ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_4: struct #30 -│ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_5: struct #33 -│ │ │ │ ├─ [contains]: string #24 -│ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ ├─ variant_6: struct #34 -│ │ │ │ └─ [search]: string #24 -│ │ │ └─ variant_7: struct #35 -│ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ └─ item: string #24 -│ │ └─ variant_1: struct #37 -│ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ ├─ variant_0: string #24 -│ │ ├─ variant_1: struct #27 -│ │ │ └─ [equals]: string #24 -│ │ ├─ variant_2: struct #28 -│ │ │ └─ [not]: string #24 -│ │ ├─ variant_3: struct #29 -│ │ │ └─ [in]: list 'list_26' #26 -│ │ │ └─ item: string #24 -│ │ ├─ variant_4: struct #30 -│ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ └─ item: string #24 -│ │ ├─ variant_5: struct #33 -│ │ │ ├─ [contains]: string #24 -│ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ ├─ variant_6: struct #34 -│ │ │ └─ [search]: string #24 -│ │ └─ variant_7: struct #35 -│ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ └─ item: string #24 -│ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ └─ item: string #24 -│ ├─ variant_5: struct #126 -│ │ └─ [deleteMany]: struct #125 -│ │ └─ [where]: optional 'optional_124' #124 -│ │ └─ item: union #105 -│ │ ├─ variant_0: struct 'Post_where' #103 -│ │ │ ├─ [author]: optional 'optional_102' #102 -│ │ │ │ └─ item: struct 'User_where_excluding_Post' #101 -│ │ │ │ ├─ [id]: optional 'optional_90' #90 -│ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ │ │ └─ item: union #52 -│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_1: struct #51 -│ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ [name]: optional 'optional_91' #91 -│ │ │ │ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ │ │ │ └─ item: union #38 -│ │ │ │ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ │ │ │ ├─ variant_0: string #24 -│ │ │ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ │ │ └─ [not]: string #24 -│ │ │ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ │ │ └─ [search]: string #24 -│ │ │ │ │ │ └─ variant_7: struct #35 -│ │ │ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ └─ variant_1: struct #37 -│ │ │ │ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ │ │ │ ├─ variant_0: string #24 -│ │ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ │ └─ [not]: string #24 -│ │ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ │ └─ [search]: string #24 -│ │ │ │ │ └─ variant_7: struct #35 -│ │ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ [posts]: optional 'optional_100' #100 -│ │ │ │ └─ item: union #99 -│ │ │ │ ├─ variant_0: struct #94 -│ │ │ │ │ └─ [every]: optional 'optional_93' #93 -│ │ │ │ │ └─ item: &Post_where #92 -│ │ │ │ ├─ variant_1: struct #96 -│ │ │ │ │ └─ [some]: optional 'optional_95' #95 -│ │ │ │ │ └─ item: &Post_where #92 -│ │ │ │ └─ variant_2: struct #98 -│ │ │ │ └─ [none]: optional 'optional_97' #97 -│ │ │ │ └─ item: &Post_where #92 -│ │ │ ├─ [id]: optional 'optional_88' #88 -│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ │ └─ item: union #52 -│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_1: struct #51 -│ │ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_5: struct #49 -│ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ └─ item: integer #42 -│ │ │ └─ [title]: optional 'optional_89' #89 -│ │ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ │ └─ item: union #38 -│ │ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ │ ├─ variant_0: string #24 -│ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ └─ [not]: string #24 -│ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ └─ [search]: string #24 -│ │ │ │ └─ variant_7: struct #35 -│ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ variant_1: struct #37 -│ │ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ │ ├─ variant_0: string #24 -│ │ │ ├─ variant_1: struct #27 -│ │ │ │ └─ [equals]: string #24 -│ │ │ ├─ variant_2: struct #28 -│ │ │ │ └─ [not]: string #24 -│ │ │ ├─ variant_3: struct #29 -│ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_4: struct #30 -│ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_5: struct #33 -│ │ │ │ ├─ [contains]: string #24 -│ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ ├─ variant_6: struct #34 -│ │ │ │ └─ [search]: string #24 -│ │ │ └─ variant_7: struct #35 -│ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ └─ item: string #24 -│ │ └─ variant_1: list 'list_104' #104 -│ │ └─ item: struct 'Post_where' #103 -│ │ ├─ [author]: optional 'optional_102' #102 -│ │ │ └─ item: struct 'User_where_excluding_Post' #101 -│ │ │ ├─ [id]: optional 'optional_90' #90 -│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ │ └─ item: union #52 -│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_1: struct #51 -│ │ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_5: struct #49 -│ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ └─ item: integer #42 -│ │ │ ├─ [name]: optional 'optional_91' #91 -│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ │ │ └─ item: union #38 -│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ │ │ ├─ variant_0: string #24 -│ │ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ │ └─ [not]: string #24 -│ │ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ │ └─ [search]: string #24 -│ │ │ │ │ └─ variant_7: struct #35 -│ │ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ variant_1: struct #37 -│ │ │ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ │ │ ├─ variant_0: string #24 -│ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ └─ [not]: string #24 -│ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ └─ [search]: string #24 -│ │ │ │ └─ variant_7: struct #35 -│ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ [posts]: optional 'optional_100' #100 -│ │ │ └─ item: union #99 -│ │ │ ├─ variant_0: struct #94 -│ │ │ │ └─ [every]: optional 'optional_93' #93 -│ │ │ │ └─ item: &Post_where #92 -│ │ │ ├─ variant_1: struct #96 -│ │ │ │ └─ [some]: optional 'optional_95' #95 -│ │ │ │ └─ item: &Post_where #92 -│ │ │ └─ variant_2: struct #98 -│ │ │ └─ [none]: optional 'optional_97' #97 -│ │ │ └─ item: &Post_where #92 -│ │ ├─ [id]: optional 'optional_88' #88 -│ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ └─ item: union #52 -│ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_5: struct #49 -│ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ └─ item: integer #42 -│ │ │ └─ variant_1: struct #51 -│ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ ├─ variant_0: integer #42 -│ │ │ ├─ variant_1: struct #45 -│ │ │ │ └─ [equals]: integer #42 -│ │ │ ├─ variant_2: struct #46 -│ │ │ │ └─ [not]: integer #42 -│ │ │ ├─ variant_3: struct #47 -│ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ └─ item: integer #42 -│ │ │ ├─ variant_4: struct #48 -│ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ └─ item: integer #42 -│ │ │ └─ variant_5: struct #49 -│ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ └─ item: integer #42 -│ │ └─ [title]: optional 'optional_89' #89 -│ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ └─ item: union #38 -│ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ ├─ variant_0: string #24 -│ │ │ ├─ variant_1: struct #27 -│ │ │ │ └─ [equals]: string #24 -│ │ │ ├─ variant_2: struct #28 -│ │ │ │ └─ [not]: string #24 -│ │ │ ├─ variant_3: struct #29 -│ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_4: struct #30 -│ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_5: struct #33 -│ │ │ │ ├─ [contains]: string #24 -│ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ ├─ variant_6: struct #34 -│ │ │ │ └─ [search]: string #24 -│ │ │ └─ variant_7: struct #35 -│ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ └─ item: string #24 -│ │ └─ variant_1: struct #37 -│ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ ├─ variant_0: string #24 -│ │ ├─ variant_1: struct #27 -│ │ │ └─ [equals]: string #24 -│ │ ├─ variant_2: struct #28 -│ │ │ └─ [not]: string #24 -│ │ ├─ variant_3: struct #29 -│ │ │ └─ [in]: list 'list_26' #26 -│ │ │ └─ item: string #24 -│ │ ├─ variant_4: struct #30 -│ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ └─ item: string #24 -│ │ ├─ variant_5: struct #33 -│ │ │ ├─ [contains]: string #24 -│ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ ├─ variant_6: struct #34 -│ │ │ └─ [search]: string #24 -│ │ └─ variant_7: struct #35 -│ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ └─ item: string #24 -│ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ └─ item: string #24 -│ └─ variant_6: struct #130 -│ └─ [createMany]: optional 'optional_129' #129 -│ └─ item: struct #128 -│ └─ [data]: list 'list_127' #127 -│ └─ item: union #87 -│ ├─ variant_0: struct 'Post_create_input_excluding_rel_Post_User' #85 -│ │ ├─ [id]: optional 'optional_84' #84 -│ │ │ └─ item: integer #70 -│ │ └─ [title]: string #72 -│ └─ variant_1: list 'list_86' #86 -│ └─ item: struct 'Post_create_input_excluding_rel_Post_User' #85 -│ ├─ [id]: optional 'optional_84' #84 -│ │ └─ item: integer #70 -│ └─ [title]: string #72 -└─ [where]: optional 'optional_155' #155 - └─ item: struct 'User_query_where_input' #154 - ├─ [AND]: optional 'optional_152' #152 - │ └─ item: list 'list_151' #151 - │ └─ item: &User_query_where_input #150 - ├─ [NOT]: optional 'optional_153' #153 - │ └─ item: &User_query_where_input #150 - ├─ [OR]: optional 'optional_152' #152 - │ └─ item: list 'list_151' #151 - │ └─ item: &User_query_where_input #150 - ├─ [id]: optional 'optional_134' #134 - │ └─ item: optional '_prisma_integer_filter_ex' #53 - │ └─ item: union #52 - │ ├─ variant_0: either '_prisma_integer_filter' #50 - │ │ ├─ variant_0: integer #42 - │ │ ├─ variant_1: struct #45 - │ │ │ └─ [equals]: integer #42 - │ │ ├─ variant_2: struct #46 - │ │ │ └─ [not]: integer #42 - │ │ ├─ variant_3: struct #47 - │ │ │ ├─ [gt]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ ├─ [gte]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ ├─ [lt]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ └─ [lte]: optional 'optional_43' #43 - │ │ │ └─ item: integer #42 - │ │ ├─ variant_4: struct #48 - │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ └─ item: integer #42 - │ │ └─ variant_5: struct #49 - │ │ └─ [notIn]: list 'list_44' #44 - │ │ └─ item: integer #42 - │ └─ variant_1: struct #51 - │ └─ [not]: either '_prisma_integer_filter' #50 - │ ├─ variant_0: integer #42 - │ ├─ variant_1: struct #45 - │ │ └─ [equals]: integer #42 - │ ├─ variant_2: struct #46 - │ │ └─ [not]: integer #42 - │ ├─ variant_3: struct #47 - │ │ ├─ [gt]: optional 'optional_43' #43 - │ │ │ └─ item: integer #42 - │ │ ├─ [gte]: optional 'optional_43' #43 - │ │ │ └─ item: integer #42 - │ │ ├─ [lt]: optional 'optional_43' #43 - │ │ │ └─ item: integer #42 - │ │ └─ [lte]: optional 'optional_43' #43 - │ │ └─ item: integer #42 - │ ├─ variant_4: struct #48 - │ │ └─ [in]: list 'list_44' #44 - │ │ └─ item: integer #42 - │ └─ variant_5: struct #49 - │ └─ [notIn]: list 'list_44' #44 - │ └─ item: integer #42 - ├─ [name]: optional 'optional_135' #135 - │ └─ item: optional '_prisma_string_filter_ex' #39 - │ └─ item: union #38 - │ ├─ variant_0: union '_prisma_string_filter' #36 - │ │ ├─ variant_0: string #24 - │ │ ├─ variant_1: struct #27 - │ │ │ └─ [equals]: string #24 - │ │ ├─ variant_2: struct #28 - │ │ │ └─ [not]: string #24 - │ │ ├─ variant_3: struct #29 - │ │ │ └─ [in]: list 'list_26' #26 - │ │ │ └─ item: string #24 - │ │ ├─ variant_4: struct #30 - │ │ │ └─ [notIn]: list 'list_26' #26 - │ │ │ └─ item: string #24 - │ │ ├─ variant_5: struct #33 - │ │ │ ├─ [contains]: string #24 - │ │ │ └─ [mode]: optional 'optional_32' #32 - │ │ │ └─ item: string #31 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #34 - │ │ │ └─ [search]: string #24 - │ │ └─ variant_7: struct #35 - │ │ ├─ [endsWith]: optional 'optional_25' #25 - │ │ │ └─ item: string #24 - │ │ └─ [startsWith]: optional 'optional_25' #25 - │ │ └─ item: string #24 - │ └─ variant_1: struct #37 - │ └─ [not]: union '_prisma_string_filter' #36 - │ ├─ variant_0: string #24 - │ ├─ variant_1: struct #27 - │ │ └─ [equals]: string #24 - │ ├─ variant_2: struct #28 - │ │ └─ [not]: string #24 - │ ├─ variant_3: struct #29 - │ │ └─ [in]: list 'list_26' #26 - │ │ └─ item: string #24 - │ ├─ variant_4: struct #30 - │ │ └─ [notIn]: list 'list_26' #26 - │ │ └─ item: string #24 - │ ├─ variant_5: struct #33 - │ │ ├─ [contains]: string #24 - │ │ └─ [mode]: optional 'optional_32' #32 - │ │ └─ item: string #31 enum{ '"insensitive"' } - │ ├─ variant_6: struct #34 - │ │ └─ [search]: string #24 - │ └─ variant_7: struct #35 - │ ├─ [endsWith]: optional 'optional_25' #25 - │ │ └─ item: string #24 - │ └─ [startsWith]: optional 'optional_25' #25 - │ └─ item: string #24 - └─ [posts]: optional 'optional_148' #148 - └─ item: union #147 - ├─ variant_0: struct #142 - │ └─ [every]: optional 'optional_141' #141 - │ └─ item: struct 'Post_where_excluding_User' #140 - │ ├─ [author]: optional 'optional_139' #139 - │ │ └─ item: &User_where #138 - │ ├─ [id]: optional 'optional_136' #136 - │ │ └─ item: optional '_prisma_integer_filter_ex' #53 - │ │ └─ item: union #52 - │ │ ├─ variant_0: either '_prisma_integer_filter' #50 - │ │ │ ├─ variant_0: integer #42 - │ │ │ ├─ variant_1: struct #45 - │ │ │ │ └─ [equals]: integer #42 - │ │ │ ├─ variant_2: struct #46 - │ │ │ │ └─ [not]: integer #42 - │ │ │ ├─ variant_3: struct #47 - │ │ │ │ ├─ [gt]: optional 'optional_43' #43 - │ │ │ │ │ └─ item: integer #42 - │ │ │ │ ├─ [gte]: optional 'optional_43' #43 - │ │ │ │ │ └─ item: integer #42 - │ │ │ │ ├─ [lt]: optional 'optional_43' #43 - │ │ │ │ │ └─ item: integer #42 - │ │ │ │ └─ [lte]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ ├─ variant_4: struct #48 - │ │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ │ └─ item: integer #42 - │ │ │ └─ variant_5: struct #49 - │ │ │ └─ [notIn]: list 'list_44' #44 - │ │ │ └─ item: integer #42 - │ │ └─ variant_1: struct #51 - │ │ └─ [not]: either '_prisma_integer_filter' #50 - │ │ ├─ variant_0: integer #42 - │ │ ├─ variant_1: struct #45 - │ │ │ └─ [equals]: integer #42 - │ │ ├─ variant_2: struct #46 - │ │ │ └─ [not]: integer #42 - │ │ ├─ variant_3: struct #47 - │ │ │ ├─ [gt]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ ├─ [gte]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ ├─ [lt]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ └─ [lte]: optional 'optional_43' #43 - │ │ │ └─ item: integer #42 - │ │ ├─ variant_4: struct #48 - │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ └─ item: integer #42 - │ │ └─ variant_5: struct #49 - │ │ └─ [notIn]: list 'list_44' #44 - │ │ └─ item: integer #42 - │ └─ [title]: optional 'optional_137' #137 - │ └─ item: optional '_prisma_string_filter_ex' #39 - │ └─ item: union #38 - │ ├─ variant_0: union '_prisma_string_filter' #36 - │ │ ├─ variant_0: string #24 - │ │ ├─ variant_1: struct #27 - │ │ │ └─ [equals]: string #24 - │ │ ├─ variant_2: struct #28 - │ │ │ └─ [not]: string #24 - │ │ ├─ variant_3: struct #29 - │ │ │ └─ [in]: list 'list_26' #26 - │ │ │ └─ item: string #24 - │ │ ├─ variant_4: struct #30 - │ │ │ └─ [notIn]: list 'list_26' #26 - │ │ │ └─ item: string #24 - │ │ ├─ variant_5: struct #33 - │ │ │ ├─ [contains]: string #24 - │ │ │ └─ [mode]: optional 'optional_32' #32 - │ │ │ └─ item: string #31 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #34 - │ │ │ └─ [search]: string #24 - │ │ └─ variant_7: struct #35 - │ │ ├─ [endsWith]: optional 'optional_25' #25 - │ │ │ └─ item: string #24 - │ │ └─ [startsWith]: optional 'optional_25' #25 - │ │ └─ item: string #24 - │ └─ variant_1: struct #37 - │ └─ [not]: union '_prisma_string_filter' #36 - │ ├─ variant_0: string #24 - │ ├─ variant_1: struct #27 - │ │ └─ [equals]: string #24 - │ ├─ variant_2: struct #28 - │ │ └─ [not]: string #24 - │ ├─ variant_3: struct #29 - │ │ └─ [in]: list 'list_26' #26 - │ │ └─ item: string #24 - │ ├─ variant_4: struct #30 - │ │ └─ [notIn]: list 'list_26' #26 - │ │ └─ item: string #24 - │ ├─ variant_5: struct #33 - │ │ ├─ [contains]: string #24 - │ │ └─ [mode]: optional 'optional_32' #32 - │ │ └─ item: string #31 enum{ '"insensitive"' } - │ ├─ variant_6: struct #34 - │ │ └─ [search]: string #24 - │ └─ variant_7: struct #35 - │ ├─ [endsWith]: optional 'optional_25' #25 - │ │ └─ item: string #24 - │ └─ [startsWith]: optional 'optional_25' #25 - │ └─ item: string #24 - ├─ variant_1: struct #144 - │ └─ [some]: optional 'optional_143' #143 - │ └─ item: struct 'Post_where_excluding_User' #140 - │ ├─ [author]: optional 'optional_139' #139 - │ │ └─ item: &User_where #138 - │ ├─ [id]: optional 'optional_136' #136 - │ │ └─ item: optional '_prisma_integer_filter_ex' #53 - │ │ └─ item: union #52 - │ │ ├─ variant_0: either '_prisma_integer_filter' #50 - │ │ │ ├─ variant_0: integer #42 - │ │ │ ├─ variant_1: struct #45 - │ │ │ │ └─ [equals]: integer #42 - │ │ │ ├─ variant_2: struct #46 - │ │ │ │ └─ [not]: integer #42 - │ │ │ ├─ variant_3: struct #47 - │ │ │ │ ├─ [gt]: optional 'optional_43' #43 - │ │ │ │ │ └─ item: integer #42 - │ │ │ │ ├─ [gte]: optional 'optional_43' #43 - │ │ │ │ │ └─ item: integer #42 - │ │ │ │ ├─ [lt]: optional 'optional_43' #43 - │ │ │ │ │ └─ item: integer #42 - │ │ │ │ └─ [lte]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ ├─ variant_4: struct #48 - │ │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ │ └─ item: integer #42 - │ │ │ └─ variant_5: struct #49 - │ │ │ └─ [notIn]: list 'list_44' #44 - │ │ │ └─ item: integer #42 - │ │ └─ variant_1: struct #51 - │ │ └─ [not]: either '_prisma_integer_filter' #50 - │ │ ├─ variant_0: integer #42 - │ │ ├─ variant_1: struct #45 - │ │ │ └─ [equals]: integer #42 - │ │ ├─ variant_2: struct #46 - │ │ │ └─ [not]: integer #42 - │ │ ├─ variant_3: struct #47 - │ │ │ ├─ [gt]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ ├─ [gte]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ ├─ [lt]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ └─ [lte]: optional 'optional_43' #43 - │ │ │ └─ item: integer #42 - │ │ ├─ variant_4: struct #48 - │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ └─ item: integer #42 - │ │ └─ variant_5: struct #49 - │ │ └─ [notIn]: list 'list_44' #44 - │ │ └─ item: integer #42 - │ └─ [title]: optional 'optional_137' #137 - │ └─ item: optional '_prisma_string_filter_ex' #39 - │ └─ item: union #38 - │ ├─ variant_0: union '_prisma_string_filter' #36 - │ │ ├─ variant_0: string #24 - │ │ ├─ variant_1: struct #27 - │ │ │ └─ [equals]: string #24 - │ │ ├─ variant_2: struct #28 - │ │ │ └─ [not]: string #24 - │ │ ├─ variant_3: struct #29 - │ │ │ └─ [in]: list 'list_26' #26 - │ │ │ └─ item: string #24 - │ │ ├─ variant_4: struct #30 - │ │ │ └─ [notIn]: list 'list_26' #26 - │ │ │ └─ item: string #24 - │ │ ├─ variant_5: struct #33 - │ │ │ ├─ [contains]: string #24 - │ │ │ └─ [mode]: optional 'optional_32' #32 - │ │ │ └─ item: string #31 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #34 - │ │ │ └─ [search]: string #24 - │ │ └─ variant_7: struct #35 - │ │ ├─ [endsWith]: optional 'optional_25' #25 - │ │ │ └─ item: string #24 - │ │ └─ [startsWith]: optional 'optional_25' #25 - │ │ └─ item: string #24 - │ └─ variant_1: struct #37 - │ └─ [not]: union '_prisma_string_filter' #36 - │ ├─ variant_0: string #24 - │ ├─ variant_1: struct #27 - │ │ └─ [equals]: string #24 - │ ├─ variant_2: struct #28 - │ │ └─ [not]: string #24 - │ ├─ variant_3: struct #29 - │ │ └─ [in]: list 'list_26' #26 - │ │ └─ item: string #24 - │ ├─ variant_4: struct #30 - │ │ └─ [notIn]: list 'list_26' #26 - │ │ └─ item: string #24 - │ ├─ variant_5: struct #33 - │ │ ├─ [contains]: string #24 - │ │ └─ [mode]: optional 'optional_32' #32 - │ │ └─ item: string #31 enum{ '"insensitive"' } - │ ├─ variant_6: struct #34 - │ │ └─ [search]: string #24 - │ └─ variant_7: struct #35 - │ ├─ [endsWith]: optional 'optional_25' #25 - │ │ └─ item: string #24 - │ └─ [startsWith]: optional 'optional_25' #25 - │ └─ item: string #24 - └─ variant_2: struct #146 - └─ [none]: optional 'optional_145' #145 - └─ item: struct 'Post_where_excluding_User' #140 - ├─ [author]: optional 'optional_139' #139 - │ └─ item: &User_where #138 - ├─ [id]: optional 'optional_136' #136 - │ └─ item: optional '_prisma_integer_filter_ex' #53 - │ └─ item: union #52 - │ ├─ variant_0: either '_prisma_integer_filter' #50 - │ │ ├─ variant_0: integer #42 - │ │ ├─ variant_1: struct #45 - │ │ │ └─ [equals]: integer #42 - │ │ ├─ variant_2: struct #46 - │ │ │ └─ [not]: integer #42 - │ │ ├─ variant_3: struct #47 - │ │ │ ├─ [gt]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ ├─ [gte]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ ├─ [lt]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ └─ [lte]: optional 'optional_43' #43 - │ │ │ └─ item: integer #42 - │ │ ├─ variant_4: struct #48 - │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ └─ item: integer #42 - │ │ └─ variant_5: struct #49 - │ │ └─ [notIn]: list 'list_44' #44 - │ │ └─ item: integer #42 - │ └─ variant_1: struct #51 - │ └─ [not]: either '_prisma_integer_filter' #50 - │ ├─ variant_0: integer #42 - │ ├─ variant_1: struct #45 - │ │ └─ [equals]: integer #42 - │ ├─ variant_2: struct #46 - │ │ └─ [not]: integer #42 - │ ├─ variant_3: struct #47 - │ │ ├─ [gt]: optional 'optional_43' #43 - │ │ │ └─ item: integer #42 - │ │ ├─ [gte]: optional 'optional_43' #43 - │ │ │ └─ item: integer #42 - │ │ ├─ [lt]: optional 'optional_43' #43 - │ │ │ └─ item: integer #42 - │ │ └─ [lte]: optional 'optional_43' #43 - │ │ └─ item: integer #42 - │ ├─ variant_4: struct #48 - │ │ └─ [in]: list 'list_44' #44 - │ │ └─ item: integer #42 - │ └─ variant_5: struct #49 - │ └─ [notIn]: list 'list_44' #44 - │ └─ item: integer #42 - └─ [title]: optional 'optional_137' #137 - └─ item: optional '_prisma_string_filter_ex' #39 - └─ item: union #38 - ├─ variant_0: union '_prisma_string_filter' #36 - │ ├─ variant_0: string #24 - │ ├─ variant_1: struct #27 - │ │ └─ [equals]: string #24 - │ ├─ variant_2: struct #28 - │ │ └─ [not]: string #24 - │ ├─ variant_3: struct #29 - │ │ └─ [in]: list 'list_26' #26 - │ │ └─ item: string #24 - │ ├─ variant_4: struct #30 - │ │ └─ [notIn]: list 'list_26' #26 - │ │ └─ item: string #24 - │ ├─ variant_5: struct #33 - │ │ ├─ [contains]: string #24 - │ │ └─ [mode]: optional 'optional_32' #32 - │ │ └─ item: string #31 enum{ '"insensitive"' } - │ ├─ variant_6: struct #34 - │ │ └─ [search]: string #24 - │ └─ variant_7: struct #35 - │ ├─ [endsWith]: optional 'optional_25' #25 - │ │ └─ item: string #24 - │ └─ [startsWith]: optional 'optional_25' #25 - │ └─ item: string #24 - └─ variant_1: struct #37 - └─ [not]: union '_prisma_string_filter' #36 - ├─ variant_0: string #24 - ├─ variant_1: struct #27 - │ └─ [equals]: string #24 - ├─ variant_2: struct #28 - │ └─ [not]: string #24 - ├─ variant_3: struct #29 - │ └─ [in]: list 'list_26' #26 - │ └─ item: string #24 - ├─ variant_4: struct #30 - │ └─ [notIn]: list 'list_26' #26 - │ └─ item: string #24 - ├─ variant_5: struct #33 - │ ├─ [contains]: string #24 - │ └─ [mode]: optional 'optional_32' #32 - │ └─ item: string #31 enum{ '"insensitive"' } - ├─ variant_6: struct #34 - │ └─ [search]: string #24 - └─ variant_7: struct #35 - ├─ [endsWith]: optional 'optional_25' #25 - │ └─ item: string #24 - └─ [startsWith]: optional 'optional_25' #25 - └─ item: string #24 +root: struct #249 +├─ [data]: struct 'User_update_input' #192 +│ ├─ [id]: optional 'optional_113' #114 +│ │ └─ item: union #112 +│ │ ├─ variant_0: integer #94 +│ │ ├─ variant_1: struct #108 +│ │ │ └─ [set]: integer #94 +│ │ ├─ variant_2: struct #109 +│ │ │ └─ [multiply]: integer #94 +│ │ ├─ variant_3: struct #110 +│ │ │ └─ [decrement]: integer #94 +│ │ └─ variant_4: struct #111 +│ │ └─ [increment]: integer #94 +│ ├─ [name]: optional 'optional_117' #118 +│ │ └─ item: union #116 +│ │ ├─ variant_0: string #95 +│ │ └─ variant_1: struct #115 +│ │ └─ [set]: string #95 +│ └─ [posts]: optional 'optional_189' #190 +│ └─ item: union #188 +│ ├─ variant_0: struct #157 +│ │ └─ [create]: union #125 +│ │ ├─ variant_0: struct 'Post_create_input_excluding_rel_Post_User' #122 +│ │ │ ├─ [id]: optional 'optional_119' #120 +│ │ │ │ └─ item: integer #103 +│ │ │ └─ [title]: string #104 +│ │ └─ variant_1: list 'list_123' #124 +│ │ └─ item: struct 'Post_create_input_excluding_rel_Post_User' #122 +│ │ ├─ [id]: optional 'optional_119' #120 +│ │ │ └─ item: integer #103 +│ │ └─ [title]: string #104 +│ ├─ variant_1: struct #158 +│ │ └─ [connect]: union #155 +│ │ ├─ variant_0: struct 'Post_where' #152 +│ │ │ ├─ [author]: optional 'optional_149' #150 +│ │ │ │ └─ item: struct 'User_where_excluding_Post' #148 +│ │ │ │ ├─ [id]: optional 'optional_130' #131 +│ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ │ └─ item: union #71 +│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_1: struct #70 +│ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ [name]: optional 'optional_132' #133 +│ │ │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ │ │ └─ item: union #50 +│ │ │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ variant_1: struct #49 +│ │ │ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [posts]: optional 'optional_145' #146 +│ │ │ │ └─ item: union #144 +│ │ │ │ ├─ variant_0: struct #137 +│ │ │ │ │ └─ [every]: optional 'optional_135' #136 +│ │ │ │ │ └─ item: &Post_where #134 +│ │ │ │ ├─ variant_1: struct #140 +│ │ │ │ │ └─ [some]: optional 'optional_138' #139 +│ │ │ │ │ └─ item: &Post_where #134 +│ │ │ │ └─ variant_2: struct #143 +│ │ │ │ └─ [none]: optional 'optional_141' #142 +│ │ │ │ └─ item: &Post_where #134 +│ │ │ ├─ [id]: optional 'optional_126' #127 +│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ └─ item: union #71 +│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_1: struct #70 +│ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_5: struct #67 +│ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ └─ item: integer #58 +│ │ │ └─ [title]: optional 'optional_128' #129 +│ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ └─ item: union #50 +│ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ ├─ variant_0: string #32 +│ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ └─ [not]: string #32 +│ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ └─ [search]: string #32 +│ │ │ │ └─ variant_7: struct #46 +│ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ variant_1: struct #49 +│ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ ├─ variant_0: string #32 +│ │ │ ├─ variant_1: struct #37 +│ │ │ │ └─ [equals]: string #32 +│ │ │ ├─ variant_2: struct #38 +│ │ │ │ └─ [not]: string #32 +│ │ │ ├─ variant_3: struct #39 +│ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_4: struct #40 +│ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_5: struct #44 +│ │ │ │ ├─ [contains]: string #32 +│ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ ├─ variant_6: struct #45 +│ │ │ │ └─ [search]: string #32 +│ │ │ └─ variant_7: struct #46 +│ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ └─ item: string #32 +│ │ └─ variant_1: list 'list_153' #154 +│ │ └─ item: struct 'Post_where' #152 +│ │ ├─ [author]: optional 'optional_149' #150 +│ │ │ └─ item: struct 'User_where_excluding_Post' #148 +│ │ │ ├─ [id]: optional 'optional_130' #131 +│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ └─ item: union #71 +│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_1: struct #70 +│ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_5: struct #67 +│ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ └─ item: integer #58 +│ │ │ ├─ [name]: optional 'optional_132' #133 +│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ │ └─ item: union #50 +│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ variant_1: struct #49 +│ │ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ │ ├─ variant_0: string #32 +│ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ └─ [not]: string #32 +│ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ └─ [search]: string #32 +│ │ │ │ └─ variant_7: struct #46 +│ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ [posts]: optional 'optional_145' #146 +│ │ │ └─ item: union #144 +│ │ │ ├─ variant_0: struct #137 +│ │ │ │ └─ [every]: optional 'optional_135' #136 +│ │ │ │ └─ item: &Post_where #134 +│ │ │ ├─ variant_1: struct #140 +│ │ │ │ └─ [some]: optional 'optional_138' #139 +│ │ │ │ └─ item: &Post_where #134 +│ │ │ └─ variant_2: struct #143 +│ │ │ └─ [none]: optional 'optional_141' #142 +│ │ │ └─ item: &Post_where #134 +│ │ ├─ [id]: optional 'optional_126' #127 +│ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ └─ item: union #71 +│ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_5: struct #67 +│ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ └─ item: integer #58 +│ │ │ └─ variant_1: struct #70 +│ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ ├─ variant_0: integer #58 +│ │ │ ├─ variant_1: struct #63 +│ │ │ │ └─ [equals]: integer #58 +│ │ │ ├─ variant_2: struct #64 +│ │ │ │ └─ [not]: integer #58 +│ │ │ ├─ variant_3: struct #65 +│ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ └─ item: integer #58 +│ │ │ ├─ variant_4: struct #66 +│ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ └─ item: integer #58 +│ │ │ └─ variant_5: struct #67 +│ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ └─ item: integer #58 +│ │ └─ [title]: optional 'optional_128' #129 +│ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ └─ item: union #50 +│ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ ├─ variant_0: string #32 +│ │ │ ├─ variant_1: struct #37 +│ │ │ │ └─ [equals]: string #32 +│ │ │ ├─ variant_2: struct #38 +│ │ │ │ └─ [not]: string #32 +│ │ │ ├─ variant_3: struct #39 +│ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_4: struct #40 +│ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_5: struct #44 +│ │ │ │ ├─ [contains]: string #32 +│ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ ├─ variant_6: struct #45 +│ │ │ │ └─ [search]: string #32 +│ │ │ └─ variant_7: struct #46 +│ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ └─ item: string #32 +│ │ └─ variant_1: struct #49 +│ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ ├─ variant_0: string #32 +│ │ ├─ variant_1: struct #37 +│ │ │ └─ [equals]: string #32 +│ │ ├─ variant_2: struct #38 +│ │ │ └─ [not]: string #32 +│ │ ├─ variant_3: struct #39 +│ │ │ └─ [in]: list 'list_35' #36 +│ │ │ └─ item: string #32 +│ │ ├─ variant_4: struct #40 +│ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ └─ item: string #32 +│ │ ├─ variant_5: struct #44 +│ │ │ ├─ [contains]: string #32 +│ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ ├─ variant_6: struct #45 +│ │ │ └─ [search]: string #32 +│ │ └─ variant_7: struct #46 +│ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ └─ item: string #32 +│ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ └─ item: string #32 +│ ├─ variant_2: struct #159 +│ │ └─ [connectOrCreate]: struct #156 +│ │ ├─ [create]: union #125 +│ │ │ ├─ variant_0: struct 'Post_create_input_excluding_rel_Post_User' #122 +│ │ │ │ ├─ [id]: optional 'optional_119' #120 +│ │ │ │ │ └─ item: integer #103 +│ │ │ │ └─ [title]: string #104 +│ │ │ └─ variant_1: list 'list_123' #124 +│ │ │ └─ item: struct 'Post_create_input_excluding_rel_Post_User' #122 +│ │ │ ├─ [id]: optional 'optional_119' #120 +│ │ │ │ └─ item: integer #103 +│ │ │ └─ [title]: string #104 +│ │ └─ [where]: union #155 +│ │ ├─ variant_0: struct 'Post_where' #152 +│ │ │ ├─ [author]: optional 'optional_149' #150 +│ │ │ │ └─ item: struct 'User_where_excluding_Post' #148 +│ │ │ │ ├─ [id]: optional 'optional_130' #131 +│ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ │ └─ item: union #71 +│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_1: struct #70 +│ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ [name]: optional 'optional_132' #133 +│ │ │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ │ │ └─ item: union #50 +│ │ │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ variant_1: struct #49 +│ │ │ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [posts]: optional 'optional_145' #146 +│ │ │ │ └─ item: union #144 +│ │ │ │ ├─ variant_0: struct #137 +│ │ │ │ │ └─ [every]: optional 'optional_135' #136 +│ │ │ │ │ └─ item: &Post_where #134 +│ │ │ │ ├─ variant_1: struct #140 +│ │ │ │ │ └─ [some]: optional 'optional_138' #139 +│ │ │ │ │ └─ item: &Post_where #134 +│ │ │ │ └─ variant_2: struct #143 +│ │ │ │ └─ [none]: optional 'optional_141' #142 +│ │ │ │ └─ item: &Post_where #134 +│ │ │ ├─ [id]: optional 'optional_126' #127 +│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ └─ item: union #71 +│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_1: struct #70 +│ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_5: struct #67 +│ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ └─ item: integer #58 +│ │ │ └─ [title]: optional 'optional_128' #129 +│ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ └─ item: union #50 +│ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ ├─ variant_0: string #32 +│ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ └─ [not]: string #32 +│ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ └─ [search]: string #32 +│ │ │ │ └─ variant_7: struct #46 +│ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ variant_1: struct #49 +│ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ ├─ variant_0: string #32 +│ │ │ ├─ variant_1: struct #37 +│ │ │ │ └─ [equals]: string #32 +│ │ │ ├─ variant_2: struct #38 +│ │ │ │ └─ [not]: string #32 +│ │ │ ├─ variant_3: struct #39 +│ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_4: struct #40 +│ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_5: struct #44 +│ │ │ │ ├─ [contains]: string #32 +│ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ ├─ variant_6: struct #45 +│ │ │ │ └─ [search]: string #32 +│ │ │ └─ variant_7: struct #46 +│ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ └─ item: string #32 +│ │ └─ variant_1: list 'list_153' #154 +│ │ └─ item: struct 'Post_where' #152 +│ │ ├─ [author]: optional 'optional_149' #150 +│ │ │ └─ item: struct 'User_where_excluding_Post' #148 +│ │ │ ├─ [id]: optional 'optional_130' #131 +│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ └─ item: union #71 +│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_1: struct #70 +│ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_5: struct #67 +│ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ └─ item: integer #58 +│ │ │ ├─ [name]: optional 'optional_132' #133 +│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ │ └─ item: union #50 +│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ variant_1: struct #49 +│ │ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ │ ├─ variant_0: string #32 +│ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ └─ [not]: string #32 +│ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ └─ [search]: string #32 +│ │ │ │ └─ variant_7: struct #46 +│ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ [posts]: optional 'optional_145' #146 +│ │ │ └─ item: union #144 +│ │ │ ├─ variant_0: struct #137 +│ │ │ │ └─ [every]: optional 'optional_135' #136 +│ │ │ │ └─ item: &Post_where #134 +│ │ │ ├─ variant_1: struct #140 +│ │ │ │ └─ [some]: optional 'optional_138' #139 +│ │ │ │ └─ item: &Post_where #134 +│ │ │ └─ variant_2: struct #143 +│ │ │ └─ [none]: optional 'optional_141' #142 +│ │ │ └─ item: &Post_where #134 +│ │ ├─ [id]: optional 'optional_126' #127 +│ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ └─ item: union #71 +│ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_5: struct #67 +│ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ └─ item: integer #58 +│ │ │ └─ variant_1: struct #70 +│ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ ├─ variant_0: integer #58 +│ │ │ ├─ variant_1: struct #63 +│ │ │ │ └─ [equals]: integer #58 +│ │ │ ├─ variant_2: struct #64 +│ │ │ │ └─ [not]: integer #58 +│ │ │ ├─ variant_3: struct #65 +│ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ └─ item: integer #58 +│ │ │ ├─ variant_4: struct #66 +│ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ └─ item: integer #58 +│ │ │ └─ variant_5: struct #67 +│ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ └─ item: integer #58 +│ │ └─ [title]: optional 'optional_128' #129 +│ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ └─ item: union #50 +│ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ ├─ variant_0: string #32 +│ │ │ ├─ variant_1: struct #37 +│ │ │ │ └─ [equals]: string #32 +│ │ │ ├─ variant_2: struct #38 +│ │ │ │ └─ [not]: string #32 +│ │ │ ├─ variant_3: struct #39 +│ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_4: struct #40 +│ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_5: struct #44 +│ │ │ │ ├─ [contains]: string #32 +│ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ ├─ variant_6: struct #45 +│ │ │ │ └─ [search]: string #32 +│ │ │ └─ variant_7: struct #46 +│ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ └─ item: string #32 +│ │ └─ variant_1: struct #49 +│ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ ├─ variant_0: string #32 +│ │ ├─ variant_1: struct #37 +│ │ │ └─ [equals]: string #32 +│ │ ├─ variant_2: struct #38 +│ │ │ └─ [not]: string #32 +│ │ ├─ variant_3: struct #39 +│ │ │ └─ [in]: list 'list_35' #36 +│ │ │ └─ item: string #32 +│ │ ├─ variant_4: struct #40 +│ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ └─ item: string #32 +│ │ ├─ variant_5: struct #44 +│ │ │ ├─ [contains]: string #32 +│ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ ├─ variant_6: struct #45 +│ │ │ └─ [search]: string #32 +│ │ └─ variant_7: struct #46 +│ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ └─ item: string #32 +│ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ └─ item: string #32 +│ ├─ variant_3: struct #173 +│ │ └─ [update]: struct 'Post_update_input_excluding_rel_Post_User' #172 +│ │ ├─ [id]: optional 'optional_165' #166 +│ │ │ └─ item: union #164 +│ │ │ ├─ variant_0: integer #103 +│ │ │ ├─ variant_1: struct #160 +│ │ │ │ └─ [set]: integer #103 +│ │ │ ├─ variant_2: struct #161 +│ │ │ │ └─ [multiply]: integer #103 +│ │ │ ├─ variant_3: struct #162 +│ │ │ │ └─ [decrement]: integer #103 +│ │ │ └─ variant_4: struct #163 +│ │ │ └─ [increment]: integer #103 +│ │ └─ [title]: optional 'optional_169' #170 +│ │ └─ item: union #168 +│ │ ├─ variant_0: string #104 +│ │ └─ variant_1: struct #167 +│ │ └─ [set]: string #104 +│ ├─ variant_4: struct #177 +│ │ └─ [updateMany]: struct #176 +│ │ ├─ [data]: struct 'Post_update_input_excluding_rel_Post_User' #172 +│ │ │ ├─ [id]: optional 'optional_165' #166 +│ │ │ │ └─ item: union #164 +│ │ │ │ ├─ variant_0: integer #103 +│ │ │ │ ├─ variant_1: struct #160 +│ │ │ │ │ └─ [set]: integer #103 +│ │ │ │ ├─ variant_2: struct #161 +│ │ │ │ │ └─ [multiply]: integer #103 +│ │ │ │ ├─ variant_3: struct #162 +│ │ │ │ │ └─ [decrement]: integer #103 +│ │ │ │ └─ variant_4: struct #163 +│ │ │ │ └─ [increment]: integer #103 +│ │ │ └─ [title]: optional 'optional_169' #170 +│ │ │ └─ item: union #168 +│ │ │ ├─ variant_0: string #104 +│ │ │ └─ variant_1: struct #167 +│ │ │ └─ [set]: string #104 +│ │ └─ [where]: optional 'optional_174' #175 +│ │ └─ item: union #155 +│ │ ├─ variant_0: struct 'Post_where' #152 +│ │ │ ├─ [author]: optional 'optional_149' #150 +│ │ │ │ └─ item: struct 'User_where_excluding_Post' #148 +│ │ │ │ ├─ [id]: optional 'optional_130' #131 +│ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ │ └─ item: union #71 +│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_1: struct #70 +│ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ [name]: optional 'optional_132' #133 +│ │ │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ │ │ └─ item: union #50 +│ │ │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ variant_1: struct #49 +│ │ │ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [posts]: optional 'optional_145' #146 +│ │ │ │ └─ item: union #144 +│ │ │ │ ├─ variant_0: struct #137 +│ │ │ │ │ └─ [every]: optional 'optional_135' #136 +│ │ │ │ │ └─ item: &Post_where #134 +│ │ │ │ ├─ variant_1: struct #140 +│ │ │ │ │ └─ [some]: optional 'optional_138' #139 +│ │ │ │ │ └─ item: &Post_where #134 +│ │ │ │ └─ variant_2: struct #143 +│ │ │ │ └─ [none]: optional 'optional_141' #142 +│ │ │ │ └─ item: &Post_where #134 +│ │ │ ├─ [id]: optional 'optional_126' #127 +│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ └─ item: union #71 +│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_1: struct #70 +│ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_5: struct #67 +│ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ └─ item: integer #58 +│ │ │ └─ [title]: optional 'optional_128' #129 +│ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ └─ item: union #50 +│ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ ├─ variant_0: string #32 +│ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ └─ [not]: string #32 +│ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ └─ [search]: string #32 +│ │ │ │ └─ variant_7: struct #46 +│ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ variant_1: struct #49 +│ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ ├─ variant_0: string #32 +│ │ │ ├─ variant_1: struct #37 +│ │ │ │ └─ [equals]: string #32 +│ │ │ ├─ variant_2: struct #38 +│ │ │ │ └─ [not]: string #32 +│ │ │ ├─ variant_3: struct #39 +│ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_4: struct #40 +│ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_5: struct #44 +│ │ │ │ ├─ [contains]: string #32 +│ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ ├─ variant_6: struct #45 +│ │ │ │ └─ [search]: string #32 +│ │ │ └─ variant_7: struct #46 +│ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ └─ item: string #32 +│ │ └─ variant_1: list 'list_153' #154 +│ │ └─ item: struct 'Post_where' #152 +│ │ ├─ [author]: optional 'optional_149' #150 +│ │ │ └─ item: struct 'User_where_excluding_Post' #148 +│ │ │ ├─ [id]: optional 'optional_130' #131 +│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ └─ item: union #71 +│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_1: struct #70 +│ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_5: struct #67 +│ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ └─ item: integer #58 +│ │ │ ├─ [name]: optional 'optional_132' #133 +│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ │ └─ item: union #50 +│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ variant_1: struct #49 +│ │ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ │ ├─ variant_0: string #32 +│ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ └─ [not]: string #32 +│ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ └─ [search]: string #32 +│ │ │ │ └─ variant_7: struct #46 +│ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ [posts]: optional 'optional_145' #146 +│ │ │ └─ item: union #144 +│ │ │ ├─ variant_0: struct #137 +│ │ │ │ └─ [every]: optional 'optional_135' #136 +│ │ │ │ └─ item: &Post_where #134 +│ │ │ ├─ variant_1: struct #140 +│ │ │ │ └─ [some]: optional 'optional_138' #139 +│ │ │ │ └─ item: &Post_where #134 +│ │ │ └─ variant_2: struct #143 +│ │ │ └─ [none]: optional 'optional_141' #142 +│ │ │ └─ item: &Post_where #134 +│ │ ├─ [id]: optional 'optional_126' #127 +│ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ └─ item: union #71 +│ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_5: struct #67 +│ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ └─ item: integer #58 +│ │ │ └─ variant_1: struct #70 +│ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ ├─ variant_0: integer #58 +│ │ │ ├─ variant_1: struct #63 +│ │ │ │ └─ [equals]: integer #58 +│ │ │ ├─ variant_2: struct #64 +│ │ │ │ └─ [not]: integer #58 +│ │ │ ├─ variant_3: struct #65 +│ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ └─ item: integer #58 +│ │ │ ├─ variant_4: struct #66 +│ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ └─ item: integer #58 +│ │ │ └─ variant_5: struct #67 +│ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ └─ item: integer #58 +│ │ └─ [title]: optional 'optional_128' #129 +│ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ └─ item: union #50 +│ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ ├─ variant_0: string #32 +│ │ │ ├─ variant_1: struct #37 +│ │ │ │ └─ [equals]: string #32 +│ │ │ ├─ variant_2: struct #38 +│ │ │ │ └─ [not]: string #32 +│ │ │ ├─ variant_3: struct #39 +│ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_4: struct #40 +│ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_5: struct #44 +│ │ │ │ ├─ [contains]: string #32 +│ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ ├─ variant_6: struct #45 +│ │ │ │ └─ [search]: string #32 +│ │ │ └─ variant_7: struct #46 +│ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ └─ item: string #32 +│ │ └─ variant_1: struct #49 +│ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ ├─ variant_0: string #32 +│ │ ├─ variant_1: struct #37 +│ │ │ └─ [equals]: string #32 +│ │ ├─ variant_2: struct #38 +│ │ │ └─ [not]: string #32 +│ │ ├─ variant_3: struct #39 +│ │ │ └─ [in]: list 'list_35' #36 +│ │ │ └─ item: string #32 +│ │ ├─ variant_4: struct #40 +│ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ └─ item: string #32 +│ │ ├─ variant_5: struct #44 +│ │ │ ├─ [contains]: string #32 +│ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ ├─ variant_6: struct #45 +│ │ │ └─ [search]: string #32 +│ │ └─ variant_7: struct #46 +│ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ └─ item: string #32 +│ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ └─ item: string #32 +│ ├─ variant_5: struct #181 +│ │ └─ [deleteMany]: struct #180 +│ │ └─ [where]: optional 'optional_178' #179 +│ │ └─ item: union #155 +│ │ ├─ variant_0: struct 'Post_where' #152 +│ │ │ ├─ [author]: optional 'optional_149' #150 +│ │ │ │ └─ item: struct 'User_where_excluding_Post' #148 +│ │ │ │ ├─ [id]: optional 'optional_130' #131 +│ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ │ └─ item: union #71 +│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_1: struct #70 +│ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ [name]: optional 'optional_132' #133 +│ │ │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ │ │ └─ item: union #50 +│ │ │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ variant_1: struct #49 +│ │ │ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [posts]: optional 'optional_145' #146 +│ │ │ │ └─ item: union #144 +│ │ │ │ ├─ variant_0: struct #137 +│ │ │ │ │ └─ [every]: optional 'optional_135' #136 +│ │ │ │ │ └─ item: &Post_where #134 +│ │ │ │ ├─ variant_1: struct #140 +│ │ │ │ │ └─ [some]: optional 'optional_138' #139 +│ │ │ │ │ └─ item: &Post_where #134 +│ │ │ │ └─ variant_2: struct #143 +│ │ │ │ └─ [none]: optional 'optional_141' #142 +│ │ │ │ └─ item: &Post_where #134 +│ │ │ ├─ [id]: optional 'optional_126' #127 +│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ └─ item: union #71 +│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_1: struct #70 +│ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_5: struct #67 +│ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ └─ item: integer #58 +│ │ │ └─ [title]: optional 'optional_128' #129 +│ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ └─ item: union #50 +│ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ ├─ variant_0: string #32 +│ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ └─ [not]: string #32 +│ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ └─ [search]: string #32 +│ │ │ │ └─ variant_7: struct #46 +│ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ variant_1: struct #49 +│ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ ├─ variant_0: string #32 +│ │ │ ├─ variant_1: struct #37 +│ │ │ │ └─ [equals]: string #32 +│ │ │ ├─ variant_2: struct #38 +│ │ │ │ └─ [not]: string #32 +│ │ │ ├─ variant_3: struct #39 +│ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_4: struct #40 +│ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_5: struct #44 +│ │ │ │ ├─ [contains]: string #32 +│ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ ├─ variant_6: struct #45 +│ │ │ │ └─ [search]: string #32 +│ │ │ └─ variant_7: struct #46 +│ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ └─ item: string #32 +│ │ └─ variant_1: list 'list_153' #154 +│ │ └─ item: struct 'Post_where' #152 +│ │ ├─ [author]: optional 'optional_149' #150 +│ │ │ └─ item: struct 'User_where_excluding_Post' #148 +│ │ │ ├─ [id]: optional 'optional_130' #131 +│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ └─ item: union #71 +│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_1: struct #70 +│ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_5: struct #67 +│ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ └─ item: integer #58 +│ │ │ ├─ [name]: optional 'optional_132' #133 +│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ │ └─ item: union #50 +│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ variant_1: struct #49 +│ │ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ │ ├─ variant_0: string #32 +│ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ └─ [not]: string #32 +│ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ └─ [search]: string #32 +│ │ │ │ └─ variant_7: struct #46 +│ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ [posts]: optional 'optional_145' #146 +│ │ │ └─ item: union #144 +│ │ │ ├─ variant_0: struct #137 +│ │ │ │ └─ [every]: optional 'optional_135' #136 +│ │ │ │ └─ item: &Post_where #134 +│ │ │ ├─ variant_1: struct #140 +│ │ │ │ └─ [some]: optional 'optional_138' #139 +│ │ │ │ └─ item: &Post_where #134 +│ │ │ └─ variant_2: struct #143 +│ │ │ └─ [none]: optional 'optional_141' #142 +│ │ │ └─ item: &Post_where #134 +│ │ ├─ [id]: optional 'optional_126' #127 +│ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ └─ item: union #71 +│ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_5: struct #67 +│ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ └─ item: integer #58 +│ │ │ └─ variant_1: struct #70 +│ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ ├─ variant_0: integer #58 +│ │ │ ├─ variant_1: struct #63 +│ │ │ │ └─ [equals]: integer #58 +│ │ │ ├─ variant_2: struct #64 +│ │ │ │ └─ [not]: integer #58 +│ │ │ ├─ variant_3: struct #65 +│ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ └─ item: integer #58 +│ │ │ ├─ variant_4: struct #66 +│ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ └─ item: integer #58 +│ │ │ └─ variant_5: struct #67 +│ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ └─ item: integer #58 +│ │ └─ [title]: optional 'optional_128' #129 +│ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ └─ item: union #50 +│ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ ├─ variant_0: string #32 +│ │ │ ├─ variant_1: struct #37 +│ │ │ │ └─ [equals]: string #32 +│ │ │ ├─ variant_2: struct #38 +│ │ │ │ └─ [not]: string #32 +│ │ │ ├─ variant_3: struct #39 +│ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_4: struct #40 +│ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_5: struct #44 +│ │ │ │ ├─ [contains]: string #32 +│ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ ├─ variant_6: struct #45 +│ │ │ │ └─ [search]: string #32 +│ │ │ └─ variant_7: struct #46 +│ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ └─ item: string #32 +│ │ └─ variant_1: struct #49 +│ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ ├─ variant_0: string #32 +│ │ ├─ variant_1: struct #37 +│ │ │ └─ [equals]: string #32 +│ │ ├─ variant_2: struct #38 +│ │ │ └─ [not]: string #32 +│ │ ├─ variant_3: struct #39 +│ │ │ └─ [in]: list 'list_35' #36 +│ │ │ └─ item: string #32 +│ │ ├─ variant_4: struct #40 +│ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ └─ item: string #32 +│ │ ├─ variant_5: struct #44 +│ │ │ ├─ [contains]: string #32 +│ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ ├─ variant_6: struct #45 +│ │ │ └─ [search]: string #32 +│ │ └─ variant_7: struct #46 +│ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ └─ item: string #32 +│ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ └─ item: string #32 +│ └─ variant_6: struct #187 +│ └─ [createMany]: optional 'optional_185' #186 +│ └─ item: struct #184 +│ └─ [data]: list 'list_182' #183 +│ └─ item: union #125 +│ ├─ variant_0: struct 'Post_create_input_excluding_rel_Post_User' #122 +│ │ ├─ [id]: optional 'optional_119' #120 +│ │ │ └─ item: integer #103 +│ │ └─ [title]: string #104 +│ └─ variant_1: list 'list_123' #124 +│ └─ item: struct 'Post_create_input_excluding_rel_Post_User' #122 +│ ├─ [id]: optional 'optional_119' #120 +│ │ └─ item: integer #103 +│ └─ [title]: string #104 +└─ [where]: optional 'optional_247' #248 + └─ item: struct 'User_query_where_input' #246 + ├─ [AND]: optional 'optional_241' #242 + │ └─ item: list 'list_239' #240 + │ └─ item: &User_query_where_input #238 + ├─ [NOT]: optional 'optional_243' #244 + │ └─ item: &User_query_where_input #238 + ├─ [OR]: optional 'optional_241' #242 + │ └─ item: list 'list_239' #240 + │ └─ item: &User_query_where_input #238 + ├─ [id]: optional 'optional_193' #194 + │ └─ item: optional '_prisma_integer_filter_ex' #74 + │ └─ item: union #71 + │ ├─ variant_0: either '_prisma_integer_filter' #69 + │ │ ├─ variant_0: integer #58 + │ │ ├─ variant_1: struct #63 + │ │ │ └─ [equals]: integer #58 + │ │ ├─ variant_2: struct #64 + │ │ │ └─ [not]: integer #58 + │ │ ├─ variant_3: struct #65 + │ │ │ ├─ [gt]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ [gte]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ [lt]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ └─ [lte]: optional 'optional_59' #60 + │ │ │ └─ item: integer #58 + │ │ ├─ variant_4: struct #66 + │ │ │ └─ [in]: list 'list_61' #62 + │ │ │ └─ item: integer #58 + │ │ └─ variant_5: struct #67 + │ │ └─ [notIn]: list 'list_61' #62 + │ │ └─ item: integer #58 + │ └─ variant_1: struct #70 + │ └─ [not]: either '_prisma_integer_filter' #69 + │ ├─ variant_0: integer #58 + │ ├─ variant_1: struct #63 + │ │ └─ [equals]: integer #58 + │ ├─ variant_2: struct #64 + │ │ └─ [not]: integer #58 + │ ├─ variant_3: struct #65 + │ │ ├─ [gt]: optional 'optional_59' #60 + │ │ │ └─ item: integer #58 + │ │ ├─ [gte]: optional 'optional_59' #60 + │ │ │ └─ item: integer #58 + │ │ ├─ [lt]: optional 'optional_59' #60 + │ │ │ └─ item: integer #58 + │ │ └─ [lte]: optional 'optional_59' #60 + │ │ └─ item: integer #58 + │ ├─ variant_4: struct #66 + │ │ └─ [in]: list 'list_61' #62 + │ │ └─ item: integer #58 + │ └─ variant_5: struct #67 + │ └─ [notIn]: list 'list_61' #62 + │ └─ item: integer #58 + ├─ [name]: optional 'optional_195' #196 + │ └─ item: optional '_prisma_string_filter_ex' #53 + │ └─ item: union #50 + │ ├─ variant_0: union '_prisma_string_filter' #48 + │ │ ├─ variant_0: string #32 + │ │ ├─ variant_1: struct #37 + │ │ │ └─ [equals]: string #32 + │ │ ├─ variant_2: struct #38 + │ │ │ └─ [not]: string #32 + │ │ ├─ variant_3: struct #39 + │ │ │ └─ [in]: list 'list_35' #36 + │ │ │ └─ item: string #32 + │ │ ├─ variant_4: struct #40 + │ │ │ └─ [notIn]: list 'list_35' #36 + │ │ │ └─ item: string #32 + │ │ ├─ variant_5: struct #44 + │ │ │ ├─ [contains]: string #32 + │ │ │ └─ [mode]: optional 'optional_42' #43 + │ │ │ └─ item: string #41 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #45 + │ │ │ └─ [search]: string #32 + │ │ └─ variant_7: struct #46 + │ │ ├─ [endsWith]: optional 'optional_33' #34 + │ │ │ └─ item: string #32 + │ │ └─ [startsWith]: optional 'optional_33' #34 + │ │ └─ item: string #32 + │ └─ variant_1: struct #49 + │ └─ [not]: union '_prisma_string_filter' #48 + │ ├─ variant_0: string #32 + │ ├─ variant_1: struct #37 + │ │ └─ [equals]: string #32 + │ ├─ variant_2: struct #38 + │ │ └─ [not]: string #32 + │ ├─ variant_3: struct #39 + │ │ └─ [in]: list 'list_35' #36 + │ │ └─ item: string #32 + │ ├─ variant_4: struct #40 + │ │ └─ [notIn]: list 'list_35' #36 + │ │ └─ item: string #32 + │ ├─ variant_5: struct #44 + │ │ ├─ [contains]: string #32 + │ │ └─ [mode]: optional 'optional_42' #43 + │ │ └─ item: string #41 enum{ '"insensitive"' } + │ ├─ variant_6: struct #45 + │ │ └─ [search]: string #32 + │ └─ variant_7: struct #46 + │ ├─ [endsWith]: optional 'optional_33' #34 + │ │ └─ item: string #32 + │ └─ [startsWith]: optional 'optional_33' #34 + │ └─ item: string #32 + └─ [posts]: optional 'optional_234' #235 + └─ item: union #233 + ├─ variant_0: struct #226 + │ └─ [every]: optional 'optional_224' #225 + │ └─ item: struct 'Post_where_excluding_User' #223 + │ ├─ [author]: optional 'optional_220' #221 + │ │ └─ item: struct 'User_where_excluding_User_and_Post_where_excluding_User' #219 + │ │ ├─ [id]: optional 'optional_201' #202 + │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 + │ │ │ └─ item: union #71 + │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 + │ │ │ │ ├─ variant_0: integer #58 + │ │ │ │ ├─ variant_1: struct #63 + │ │ │ │ │ └─ [equals]: integer #58 + │ │ │ │ ├─ variant_2: struct #64 + │ │ │ │ │ └─ [not]: integer #58 + │ │ │ │ ├─ variant_3: struct #65 + │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 + │ │ │ │ │ │ └─ item: integer #58 + │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 + │ │ │ │ │ │ └─ item: integer #58 + │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 + │ │ │ │ │ │ └─ item: integer #58 + │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ ├─ variant_4: struct #66 + │ │ │ │ │ └─ [in]: list 'list_61' #62 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ └─ variant_5: struct #67 + │ │ │ │ └─ [notIn]: list 'list_61' #62 + │ │ │ │ └─ item: integer #58 + │ │ │ └─ variant_1: struct #70 + │ │ │ └─ [not]: either '_prisma_integer_filter' #69 + │ │ │ ├─ variant_0: integer #58 + │ │ │ ├─ variant_1: struct #63 + │ │ │ │ └─ [equals]: integer #58 + │ │ │ ├─ variant_2: struct #64 + │ │ │ │ └─ [not]: integer #58 + │ │ │ ├─ variant_3: struct #65 + │ │ │ │ ├─ [gt]: optional 'optional_59' #60 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ ├─ [gte]: optional 'optional_59' #60 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ ├─ [lt]: optional 'optional_59' #60 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ └─ [lte]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ variant_4: struct #66 + │ │ │ │ └─ [in]: list 'list_61' #62 + │ │ │ │ └─ item: integer #58 + │ │ │ └─ variant_5: struct #67 + │ │ │ └─ [notIn]: list 'list_61' #62 + │ │ │ └─ item: integer #58 + │ │ ├─ [name]: optional 'optional_203' #204 + │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 + │ │ │ └─ item: union #50 + │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 + │ │ │ │ ├─ variant_0: string #32 + │ │ │ │ ├─ variant_1: struct #37 + │ │ │ │ │ └─ [equals]: string #32 + │ │ │ │ ├─ variant_2: struct #38 + │ │ │ │ │ └─ [not]: string #32 + │ │ │ │ ├─ variant_3: struct #39 + │ │ │ │ │ └─ [in]: list 'list_35' #36 + │ │ │ │ │ └─ item: string #32 + │ │ │ │ ├─ variant_4: struct #40 + │ │ │ │ │ └─ [notIn]: list 'list_35' #36 + │ │ │ │ │ └─ item: string #32 + │ │ │ │ ├─ variant_5: struct #44 + │ │ │ │ │ ├─ [contains]: string #32 + │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 + │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } + │ │ │ │ ├─ variant_6: struct #45 + │ │ │ │ │ └─ [search]: string #32 + │ │ │ │ └─ variant_7: struct #46 + │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 + │ │ │ │ │ └─ item: string #32 + │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 + │ │ │ │ └─ item: string #32 + │ │ │ └─ variant_1: struct #49 + │ │ │ └─ [not]: union '_prisma_string_filter' #48 + │ │ │ ├─ variant_0: string #32 + │ │ │ ├─ variant_1: struct #37 + │ │ │ │ └─ [equals]: string #32 + │ │ │ ├─ variant_2: struct #38 + │ │ │ │ └─ [not]: string #32 + │ │ │ ├─ variant_3: struct #39 + │ │ │ │ └─ [in]: list 'list_35' #36 + │ │ │ │ └─ item: string #32 + │ │ │ ├─ variant_4: struct #40 + │ │ │ │ └─ [notIn]: list 'list_35' #36 + │ │ │ │ └─ item: string #32 + │ │ │ ├─ variant_5: struct #44 + │ │ │ │ ├─ [contains]: string #32 + │ │ │ │ └─ [mode]: optional 'optional_42' #43 + │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #45 + │ │ │ │ └─ [search]: string #32 + │ │ │ └─ variant_7: struct #46 + │ │ │ ├─ [endsWith]: optional 'optional_33' #34 + │ │ │ │ └─ item: string #32 + │ │ │ └─ [startsWith]: optional 'optional_33' #34 + │ │ │ └─ item: string #32 + │ │ └─ [posts]: optional 'optional_216' #217 + │ │ └─ item: union #215 + │ │ ├─ variant_0: struct #208 + │ │ │ └─ [every]: optional 'optional_206' #207 + │ │ │ └─ item: &Post_where_excluding_User #205 + │ │ ├─ variant_1: struct #211 + │ │ │ └─ [some]: optional 'optional_209' #210 + │ │ │ └─ item: &Post_where_excluding_User #205 + │ │ └─ variant_2: struct #214 + │ │ └─ [none]: optional 'optional_212' #213 + │ │ └─ item: &Post_where_excluding_User #205 + │ ├─ [id]: optional 'optional_197' #198 + │ │ └─ item: optional '_prisma_integer_filter_ex' #74 + │ │ └─ item: union #71 + │ │ ├─ variant_0: either '_prisma_integer_filter' #69 + │ │ │ ├─ variant_0: integer #58 + │ │ │ ├─ variant_1: struct #63 + │ │ │ │ └─ [equals]: integer #58 + │ │ │ ├─ variant_2: struct #64 + │ │ │ │ └─ [not]: integer #58 + │ │ │ ├─ variant_3: struct #65 + │ │ │ │ ├─ [gt]: optional 'optional_59' #60 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ ├─ [gte]: optional 'optional_59' #60 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ ├─ [lt]: optional 'optional_59' #60 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ └─ [lte]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ variant_4: struct #66 + │ │ │ │ └─ [in]: list 'list_61' #62 + │ │ │ │ └─ item: integer #58 + │ │ │ └─ variant_5: struct #67 + │ │ │ └─ [notIn]: list 'list_61' #62 + │ │ │ └─ item: integer #58 + │ │ └─ variant_1: struct #70 + │ │ └─ [not]: either '_prisma_integer_filter' #69 + │ │ ├─ variant_0: integer #58 + │ │ ├─ variant_1: struct #63 + │ │ │ └─ [equals]: integer #58 + │ │ ├─ variant_2: struct #64 + │ │ │ └─ [not]: integer #58 + │ │ ├─ variant_3: struct #65 + │ │ │ ├─ [gt]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ [gte]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ [lt]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ └─ [lte]: optional 'optional_59' #60 + │ │ │ └─ item: integer #58 + │ │ ├─ variant_4: struct #66 + │ │ │ └─ [in]: list 'list_61' #62 + │ │ │ └─ item: integer #58 + │ │ └─ variant_5: struct #67 + │ │ └─ [notIn]: list 'list_61' #62 + │ │ └─ item: integer #58 + │ └─ [title]: optional 'optional_199' #200 + │ └─ item: optional '_prisma_string_filter_ex' #53 + │ └─ item: union #50 + │ ├─ variant_0: union '_prisma_string_filter' #48 + │ │ ├─ variant_0: string #32 + │ │ ├─ variant_1: struct #37 + │ │ │ └─ [equals]: string #32 + │ │ ├─ variant_2: struct #38 + │ │ │ └─ [not]: string #32 + │ │ ├─ variant_3: struct #39 + │ │ │ └─ [in]: list 'list_35' #36 + │ │ │ └─ item: string #32 + │ │ ├─ variant_4: struct #40 + │ │ │ └─ [notIn]: list 'list_35' #36 + │ │ │ └─ item: string #32 + │ │ ├─ variant_5: struct #44 + │ │ │ ├─ [contains]: string #32 + │ │ │ └─ [mode]: optional 'optional_42' #43 + │ │ │ └─ item: string #41 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #45 + │ │ │ └─ [search]: string #32 + │ │ └─ variant_7: struct #46 + │ │ ├─ [endsWith]: optional 'optional_33' #34 + │ │ │ └─ item: string #32 + │ │ └─ [startsWith]: optional 'optional_33' #34 + │ │ └─ item: string #32 + │ └─ variant_1: struct #49 + │ └─ [not]: union '_prisma_string_filter' #48 + │ ├─ variant_0: string #32 + │ ├─ variant_1: struct #37 + │ │ └─ [equals]: string #32 + │ ├─ variant_2: struct #38 + │ │ └─ [not]: string #32 + │ ├─ variant_3: struct #39 + │ │ └─ [in]: list 'list_35' #36 + │ │ └─ item: string #32 + │ ├─ variant_4: struct #40 + │ │ └─ [notIn]: list 'list_35' #36 + │ │ └─ item: string #32 + │ ├─ variant_5: struct #44 + │ │ ├─ [contains]: string #32 + │ │ └─ [mode]: optional 'optional_42' #43 + │ │ └─ item: string #41 enum{ '"insensitive"' } + │ ├─ variant_6: struct #45 + │ │ └─ [search]: string #32 + │ └─ variant_7: struct #46 + │ ├─ [endsWith]: optional 'optional_33' #34 + │ │ └─ item: string #32 + │ └─ [startsWith]: optional 'optional_33' #34 + │ └─ item: string #32 + ├─ variant_1: struct #229 + │ └─ [some]: optional 'optional_227' #228 + │ └─ item: struct 'Post_where_excluding_User' #223 + │ ├─ [author]: optional 'optional_220' #221 + │ │ └─ item: struct 'User_where_excluding_User_and_Post_where_excluding_User' #219 + │ │ ├─ [id]: optional 'optional_201' #202 + │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 + │ │ │ └─ item: union #71 + │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 + │ │ │ │ ├─ variant_0: integer #58 + │ │ │ │ ├─ variant_1: struct #63 + │ │ │ │ │ └─ [equals]: integer #58 + │ │ │ │ ├─ variant_2: struct #64 + │ │ │ │ │ └─ [not]: integer #58 + │ │ │ │ ├─ variant_3: struct #65 + │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 + │ │ │ │ │ │ └─ item: integer #58 + │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 + │ │ │ │ │ │ └─ item: integer #58 + │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 + │ │ │ │ │ │ └─ item: integer #58 + │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ ├─ variant_4: struct #66 + │ │ │ │ │ └─ [in]: list 'list_61' #62 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ └─ variant_5: struct #67 + │ │ │ │ └─ [notIn]: list 'list_61' #62 + │ │ │ │ └─ item: integer #58 + │ │ │ └─ variant_1: struct #70 + │ │ │ └─ [not]: either '_prisma_integer_filter' #69 + │ │ │ ├─ variant_0: integer #58 + │ │ │ ├─ variant_1: struct #63 + │ │ │ │ └─ [equals]: integer #58 + │ │ │ ├─ variant_2: struct #64 + │ │ │ │ └─ [not]: integer #58 + │ │ │ ├─ variant_3: struct #65 + │ │ │ │ ├─ [gt]: optional 'optional_59' #60 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ ├─ [gte]: optional 'optional_59' #60 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ ├─ [lt]: optional 'optional_59' #60 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ └─ [lte]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ variant_4: struct #66 + │ │ │ │ └─ [in]: list 'list_61' #62 + │ │ │ │ └─ item: integer #58 + │ │ │ └─ variant_5: struct #67 + │ │ │ └─ [notIn]: list 'list_61' #62 + │ │ │ └─ item: integer #58 + │ │ ├─ [name]: optional 'optional_203' #204 + │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 + │ │ │ └─ item: union #50 + │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 + │ │ │ │ ├─ variant_0: string #32 + │ │ │ │ ├─ variant_1: struct #37 + │ │ │ │ │ └─ [equals]: string #32 + │ │ │ │ ├─ variant_2: struct #38 + │ │ │ │ │ └─ [not]: string #32 + │ │ │ │ ├─ variant_3: struct #39 + │ │ │ │ │ └─ [in]: list 'list_35' #36 + │ │ │ │ │ └─ item: string #32 + │ │ │ │ ├─ variant_4: struct #40 + │ │ │ │ │ └─ [notIn]: list 'list_35' #36 + │ │ │ │ │ └─ item: string #32 + │ │ │ │ ├─ variant_5: struct #44 + │ │ │ │ │ ├─ [contains]: string #32 + │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 + │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } + │ │ │ │ ├─ variant_6: struct #45 + │ │ │ │ │ └─ [search]: string #32 + │ │ │ │ └─ variant_7: struct #46 + │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 + │ │ │ │ │ └─ item: string #32 + │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 + │ │ │ │ └─ item: string #32 + │ │ │ └─ variant_1: struct #49 + │ │ │ └─ [not]: union '_prisma_string_filter' #48 + │ │ │ ├─ variant_0: string #32 + │ │ │ ├─ variant_1: struct #37 + │ │ │ │ └─ [equals]: string #32 + │ │ │ ├─ variant_2: struct #38 + │ │ │ │ └─ [not]: string #32 + │ │ │ ├─ variant_3: struct #39 + │ │ │ │ └─ [in]: list 'list_35' #36 + │ │ │ │ └─ item: string #32 + │ │ │ ├─ variant_4: struct #40 + │ │ │ │ └─ [notIn]: list 'list_35' #36 + │ │ │ │ └─ item: string #32 + │ │ │ ├─ variant_5: struct #44 + │ │ │ │ ├─ [contains]: string #32 + │ │ │ │ └─ [mode]: optional 'optional_42' #43 + │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #45 + │ │ │ │ └─ [search]: string #32 + │ │ │ └─ variant_7: struct #46 + │ │ │ ├─ [endsWith]: optional 'optional_33' #34 + │ │ │ │ └─ item: string #32 + │ │ │ └─ [startsWith]: optional 'optional_33' #34 + │ │ │ └─ item: string #32 + │ │ └─ [posts]: optional 'optional_216' #217 + │ │ └─ item: union #215 + │ │ ├─ variant_0: struct #208 + │ │ │ └─ [every]: optional 'optional_206' #207 + │ │ │ └─ item: &Post_where_excluding_User #205 + │ │ ├─ variant_1: struct #211 + │ │ │ └─ [some]: optional 'optional_209' #210 + │ │ │ └─ item: &Post_where_excluding_User #205 + │ │ └─ variant_2: struct #214 + │ │ └─ [none]: optional 'optional_212' #213 + │ │ └─ item: &Post_where_excluding_User #205 + │ ├─ [id]: optional 'optional_197' #198 + │ │ └─ item: optional '_prisma_integer_filter_ex' #74 + │ │ └─ item: union #71 + │ │ ├─ variant_0: either '_prisma_integer_filter' #69 + │ │ │ ├─ variant_0: integer #58 + │ │ │ ├─ variant_1: struct #63 + │ │ │ │ └─ [equals]: integer #58 + │ │ │ ├─ variant_2: struct #64 + │ │ │ │ └─ [not]: integer #58 + │ │ │ ├─ variant_3: struct #65 + │ │ │ │ ├─ [gt]: optional 'optional_59' #60 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ ├─ [gte]: optional 'optional_59' #60 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ ├─ [lt]: optional 'optional_59' #60 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ └─ [lte]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ variant_4: struct #66 + │ │ │ │ └─ [in]: list 'list_61' #62 + │ │ │ │ └─ item: integer #58 + │ │ │ └─ variant_5: struct #67 + │ │ │ └─ [notIn]: list 'list_61' #62 + │ │ │ └─ item: integer #58 + │ │ └─ variant_1: struct #70 + │ │ └─ [not]: either '_prisma_integer_filter' #69 + │ │ ├─ variant_0: integer #58 + │ │ ├─ variant_1: struct #63 + │ │ │ └─ [equals]: integer #58 + │ │ ├─ variant_2: struct #64 + │ │ │ └─ [not]: integer #58 + │ │ ├─ variant_3: struct #65 + │ │ │ ├─ [gt]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ [gte]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ [lt]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ └─ [lte]: optional 'optional_59' #60 + │ │ │ └─ item: integer #58 + │ │ ├─ variant_4: struct #66 + │ │ │ └─ [in]: list 'list_61' #62 + │ │ │ └─ item: integer #58 + │ │ └─ variant_5: struct #67 + │ │ └─ [notIn]: list 'list_61' #62 + │ │ └─ item: integer #58 + │ └─ [title]: optional 'optional_199' #200 + │ └─ item: optional '_prisma_string_filter_ex' #53 + │ └─ item: union #50 + │ ├─ variant_0: union '_prisma_string_filter' #48 + │ │ ├─ variant_0: string #32 + │ │ ├─ variant_1: struct #37 + │ │ │ └─ [equals]: string #32 + │ │ ├─ variant_2: struct #38 + │ │ │ └─ [not]: string #32 + │ │ ├─ variant_3: struct #39 + │ │ │ └─ [in]: list 'list_35' #36 + │ │ │ └─ item: string #32 + │ │ ├─ variant_4: struct #40 + │ │ │ └─ [notIn]: list 'list_35' #36 + │ │ │ └─ item: string #32 + │ │ ├─ variant_5: struct #44 + │ │ │ ├─ [contains]: string #32 + │ │ │ └─ [mode]: optional 'optional_42' #43 + │ │ │ └─ item: string #41 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #45 + │ │ │ └─ [search]: string #32 + │ │ └─ variant_7: struct #46 + │ │ ├─ [endsWith]: optional 'optional_33' #34 + │ │ │ └─ item: string #32 + │ │ └─ [startsWith]: optional 'optional_33' #34 + │ │ └─ item: string #32 + │ └─ variant_1: struct #49 + │ └─ [not]: union '_prisma_string_filter' #48 + │ ├─ variant_0: string #32 + │ ├─ variant_1: struct #37 + │ │ └─ [equals]: string #32 + │ ├─ variant_2: struct #38 + │ │ └─ [not]: string #32 + │ ├─ variant_3: struct #39 + │ │ └─ [in]: list 'list_35' #36 + │ │ └─ item: string #32 + │ ├─ variant_4: struct #40 + │ │ └─ [notIn]: list 'list_35' #36 + │ │ └─ item: string #32 + │ ├─ variant_5: struct #44 + │ │ ├─ [contains]: string #32 + │ │ └─ [mode]: optional 'optional_42' #43 + │ │ └─ item: string #41 enum{ '"insensitive"' } + │ ├─ variant_6: struct #45 + │ │ └─ [search]: string #32 + │ └─ variant_7: struct #46 + │ ├─ [endsWith]: optional 'optional_33' #34 + │ │ └─ item: string #32 + │ └─ [startsWith]: optional 'optional_33' #34 + │ └─ item: string #32 + └─ variant_2: struct #232 + └─ [none]: optional 'optional_230' #231 + └─ item: struct 'Post_where_excluding_User' #223 + ├─ [author]: optional 'optional_220' #221 + │ └─ item: struct 'User_where_excluding_User_and_Post_where_excluding_User' #219 + │ ├─ [id]: optional 'optional_201' #202 + │ │ └─ item: optional '_prisma_integer_filter_ex' #74 + │ │ └─ item: union #71 + │ │ ├─ variant_0: either '_prisma_integer_filter' #69 + │ │ │ ├─ variant_0: integer #58 + │ │ │ ├─ variant_1: struct #63 + │ │ │ │ └─ [equals]: integer #58 + │ │ │ ├─ variant_2: struct #64 + │ │ │ │ └─ [not]: integer #58 + │ │ │ ├─ variant_3: struct #65 + │ │ │ │ ├─ [gt]: optional 'optional_59' #60 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ ├─ [gte]: optional 'optional_59' #60 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ ├─ [lt]: optional 'optional_59' #60 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ └─ [lte]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ variant_4: struct #66 + │ │ │ │ └─ [in]: list 'list_61' #62 + │ │ │ │ └─ item: integer #58 + │ │ │ └─ variant_5: struct #67 + │ │ │ └─ [notIn]: list 'list_61' #62 + │ │ │ └─ item: integer #58 + │ │ └─ variant_1: struct #70 + │ │ └─ [not]: either '_prisma_integer_filter' #69 + │ │ ├─ variant_0: integer #58 + │ │ ├─ variant_1: struct #63 + │ │ │ └─ [equals]: integer #58 + │ │ ├─ variant_2: struct #64 + │ │ │ └─ [not]: integer #58 + │ │ ├─ variant_3: struct #65 + │ │ │ ├─ [gt]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ [gte]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ [lt]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ └─ [lte]: optional 'optional_59' #60 + │ │ │ └─ item: integer #58 + │ │ ├─ variant_4: struct #66 + │ │ │ └─ [in]: list 'list_61' #62 + │ │ │ └─ item: integer #58 + │ │ └─ variant_5: struct #67 + │ │ └─ [notIn]: list 'list_61' #62 + │ │ └─ item: integer #58 + │ ├─ [name]: optional 'optional_203' #204 + │ │ └─ item: optional '_prisma_string_filter_ex' #53 + │ │ └─ item: union #50 + │ │ ├─ variant_0: union '_prisma_string_filter' #48 + │ │ │ ├─ variant_0: string #32 + │ │ │ ├─ variant_1: struct #37 + │ │ │ │ └─ [equals]: string #32 + │ │ │ ├─ variant_2: struct #38 + │ │ │ │ └─ [not]: string #32 + │ │ │ ├─ variant_3: struct #39 + │ │ │ │ └─ [in]: list 'list_35' #36 + │ │ │ │ └─ item: string #32 + │ │ │ ├─ variant_4: struct #40 + │ │ │ │ └─ [notIn]: list 'list_35' #36 + │ │ │ │ └─ item: string #32 + │ │ │ ├─ variant_5: struct #44 + │ │ │ │ ├─ [contains]: string #32 + │ │ │ │ └─ [mode]: optional 'optional_42' #43 + │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #45 + │ │ │ │ └─ [search]: string #32 + │ │ │ └─ variant_7: struct #46 + │ │ │ ├─ [endsWith]: optional 'optional_33' #34 + │ │ │ │ └─ item: string #32 + │ │ │ └─ [startsWith]: optional 'optional_33' #34 + │ │ │ └─ item: string #32 + │ │ └─ variant_1: struct #49 + │ │ └─ [not]: union '_prisma_string_filter' #48 + │ │ ├─ variant_0: string #32 + │ │ ├─ variant_1: struct #37 + │ │ │ └─ [equals]: string #32 + │ │ ├─ variant_2: struct #38 + │ │ │ └─ [not]: string #32 + │ │ ├─ variant_3: struct #39 + │ │ │ └─ [in]: list 'list_35' #36 + │ │ │ └─ item: string #32 + │ │ ├─ variant_4: struct #40 + │ │ │ └─ [notIn]: list 'list_35' #36 + │ │ │ └─ item: string #32 + │ │ ├─ variant_5: struct #44 + │ │ │ ├─ [contains]: string #32 + │ │ │ └─ [mode]: optional 'optional_42' #43 + │ │ │ └─ item: string #41 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #45 + │ │ │ └─ [search]: string #32 + │ │ └─ variant_7: struct #46 + │ │ ├─ [endsWith]: optional 'optional_33' #34 + │ │ │ └─ item: string #32 + │ │ └─ [startsWith]: optional 'optional_33' #34 + │ │ └─ item: string #32 + │ └─ [posts]: optional 'optional_216' #217 + │ └─ item: union #215 + │ ├─ variant_0: struct #208 + │ │ └─ [every]: optional 'optional_206' #207 + │ │ └─ item: &Post_where_excluding_User #205 + │ ├─ variant_1: struct #211 + │ │ └─ [some]: optional 'optional_209' #210 + │ │ └─ item: &Post_where_excluding_User #205 + │ └─ variant_2: struct #214 + │ └─ [none]: optional 'optional_212' #213 + │ └─ item: &Post_where_excluding_User #205 + ├─ [id]: optional 'optional_197' #198 + │ └─ item: optional '_prisma_integer_filter_ex' #74 + │ └─ item: union #71 + │ ├─ variant_0: either '_prisma_integer_filter' #69 + │ │ ├─ variant_0: integer #58 + │ │ ├─ variant_1: struct #63 + │ │ │ └─ [equals]: integer #58 + │ │ ├─ variant_2: struct #64 + │ │ │ └─ [not]: integer #58 + │ │ ├─ variant_3: struct #65 + │ │ │ ├─ [gt]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ [gte]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ [lt]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ └─ [lte]: optional 'optional_59' #60 + │ │ │ └─ item: integer #58 + │ │ ├─ variant_4: struct #66 + │ │ │ └─ [in]: list 'list_61' #62 + │ │ │ └─ item: integer #58 + │ │ └─ variant_5: struct #67 + │ │ └─ [notIn]: list 'list_61' #62 + │ │ └─ item: integer #58 + │ └─ variant_1: struct #70 + │ └─ [not]: either '_prisma_integer_filter' #69 + │ ├─ variant_0: integer #58 + │ ├─ variant_1: struct #63 + │ │ └─ [equals]: integer #58 + │ ├─ variant_2: struct #64 + │ │ └─ [not]: integer #58 + │ ├─ variant_3: struct #65 + │ │ ├─ [gt]: optional 'optional_59' #60 + │ │ │ └─ item: integer #58 + │ │ ├─ [gte]: optional 'optional_59' #60 + │ │ │ └─ item: integer #58 + │ │ ├─ [lt]: optional 'optional_59' #60 + │ │ │ └─ item: integer #58 + │ │ └─ [lte]: optional 'optional_59' #60 + │ │ └─ item: integer #58 + │ ├─ variant_4: struct #66 + │ │ └─ [in]: list 'list_61' #62 + │ │ └─ item: integer #58 + │ └─ variant_5: struct #67 + │ └─ [notIn]: list 'list_61' #62 + │ └─ item: integer #58 + └─ [title]: optional 'optional_199' #200 + └─ item: optional '_prisma_string_filter_ex' #53 + └─ item: union #50 + ├─ variant_0: union '_prisma_string_filter' #48 + │ ├─ variant_0: string #32 + │ ├─ variant_1: struct #37 + │ │ └─ [equals]: string #32 + │ ├─ variant_2: struct #38 + │ │ └─ [not]: string #32 + │ ├─ variant_3: struct #39 + │ │ └─ [in]: list 'list_35' #36 + │ │ └─ item: string #32 + │ ├─ variant_4: struct #40 + │ │ └─ [notIn]: list 'list_35' #36 + │ │ └─ item: string #32 + │ ├─ variant_5: struct #44 + │ │ ├─ [contains]: string #32 + │ │ └─ [mode]: optional 'optional_42' #43 + │ │ └─ item: string #41 enum{ '"insensitive"' } + │ ├─ variant_6: struct #45 + │ │ └─ [search]: string #32 + │ └─ variant_7: struct #46 + │ ├─ [endsWith]: optional 'optional_33' #34 + │ │ └─ item: string #32 + │ └─ [startsWith]: optional 'optional_33' #34 + │ └─ item: string #32 + └─ variant_1: struct #49 + └─ [not]: union '_prisma_string_filter' #48 + ├─ variant_0: string #32 + ├─ variant_1: struct #37 + │ └─ [equals]: string #32 + ├─ variant_2: struct #38 + │ └─ [not]: string #32 + ├─ variant_3: struct #39 + │ └─ [in]: list 'list_35' #36 + │ └─ item: string #32 + ├─ variant_4: struct #40 + │ └─ [notIn]: list 'list_35' #36 + │ └─ item: string #32 + ├─ variant_5: struct #44 + │ ├─ [contains]: string #32 + │ └─ [mode]: optional 'optional_42' #43 + │ └─ item: string #41 enum{ '"insensitive"' } + ├─ variant_6: struct #45 + │ └─ [search]: string #32 + └─ variant_7: struct #46 + ├─ [endsWith]: optional 'optional_33' #34 + │ └─ item: string #32 + └─ [startsWith]: optional 'optional_33' #34 + └─ item: string #32 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__update_one Post inp.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__update_one Post inp.snap index 24bf58e225..d75e4b6a24 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__update_one Post inp.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__update_one Post inp.snap @@ -2,1069 +2,1711 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs expression: tp.print(inp) --- -root: struct #188 -├─ [data]: struct 'Post_update_input' #182 -│ ├─ [author]: optional 'optional_181' #181 -│ │ └─ item: union #180 -│ │ ├─ variant_0: struct #166 -│ │ │ └─ [create]: struct 'User_create_input_excluding_rel_Post_User' #164 -│ │ │ ├─ [id]: integer #64 -│ │ │ └─ [name]: string #65 -│ │ ├─ variant_1: struct #167 -│ │ │ └─ [connect]: struct 'User_where' #148 -│ │ │ ├─ [id]: optional 'optional_133' #133 -│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ │ └─ item: union #52 -│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_1: struct #51 -│ │ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_5: struct #49 -│ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ └─ item: integer #42 -│ │ │ ├─ [name]: optional 'optional_134' #134 -│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ │ │ └─ item: union #38 -│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ │ │ ├─ variant_0: string #24 -│ │ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ │ └─ [not]: string #24 -│ │ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ │ └─ [search]: string #24 -│ │ │ │ │ └─ variant_7: struct #35 -│ │ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ variant_1: struct #37 -│ │ │ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ │ │ ├─ variant_0: string #24 -│ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ └─ [not]: string #24 -│ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ └─ [search]: string #24 -│ │ │ │ └─ variant_7: struct #35 -│ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ [posts]: optional 'optional_147' #147 -│ │ │ └─ item: union #146 -│ │ │ ├─ variant_0: struct #141 -│ │ │ │ └─ [every]: optional 'optional_140' #140 -│ │ │ │ └─ item: struct 'Post_where_excluding_User' #139 -│ │ │ │ ├─ [author]: optional 'optional_138' #138 -│ │ │ │ │ └─ item: &User_where #137 -│ │ │ │ ├─ [id]: optional 'optional_135' #135 -│ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ │ │ └─ item: union #52 -│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_1: struct #51 -│ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ [title]: optional 'optional_136' #136 -│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ │ │ └─ item: union #38 -│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ │ │ ├─ variant_0: string #24 -│ │ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ │ └─ [not]: string #24 -│ │ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ │ └─ [search]: string #24 -│ │ │ │ │ └─ variant_7: struct #35 -│ │ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ variant_1: struct #37 -│ │ │ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ │ │ ├─ variant_0: string #24 -│ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ └─ [not]: string #24 -│ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ └─ [search]: string #24 -│ │ │ │ └─ variant_7: struct #35 -│ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_1: struct #143 -│ │ │ │ └─ [some]: optional 'optional_142' #142 -│ │ │ │ └─ item: struct 'Post_where_excluding_User' #139 -│ │ │ │ ├─ [author]: optional 'optional_138' #138 -│ │ │ │ │ └─ item: &User_where #137 -│ │ │ │ ├─ [id]: optional 'optional_135' #135 -│ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ │ │ └─ item: union #52 -│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_1: struct #51 -│ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ [title]: optional 'optional_136' #136 -│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ │ │ └─ item: union #38 -│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ │ │ ├─ variant_0: string #24 -│ │ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ │ └─ [not]: string #24 -│ │ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ │ └─ [search]: string #24 -│ │ │ │ │ └─ variant_7: struct #35 -│ │ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ variant_1: struct #37 -│ │ │ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ │ │ ├─ variant_0: string #24 -│ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ └─ [not]: string #24 -│ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ └─ [search]: string #24 -│ │ │ │ └─ variant_7: struct #35 -│ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ variant_2: struct #145 -│ │ │ └─ [none]: optional 'optional_144' #144 -│ │ │ └─ item: struct 'Post_where_excluding_User' #139 -│ │ │ ├─ [author]: optional 'optional_138' #138 -│ │ │ │ └─ item: &User_where #137 -│ │ │ ├─ [id]: optional 'optional_135' #135 -│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ │ └─ item: union #52 -│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_1: struct #51 -│ │ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_5: struct #49 -│ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ └─ item: integer #42 -│ │ │ └─ [title]: optional 'optional_136' #136 -│ │ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ │ └─ item: union #38 -│ │ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ │ ├─ variant_0: string #24 -│ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ └─ [not]: string #24 -│ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ └─ [search]: string #24 -│ │ │ │ └─ variant_7: struct #35 -│ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ variant_1: struct #37 -│ │ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ │ ├─ variant_0: string #24 -│ │ │ ├─ variant_1: struct #27 -│ │ │ │ └─ [equals]: string #24 -│ │ │ ├─ variant_2: struct #28 -│ │ │ │ └─ [not]: string #24 -│ │ │ ├─ variant_3: struct #29 -│ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_4: struct #30 -│ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_5: struct #33 -│ │ │ │ ├─ [contains]: string #24 -│ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ ├─ variant_6: struct #34 -│ │ │ │ └─ [search]: string #24 -│ │ │ └─ variant_7: struct #35 -│ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ └─ item: string #24 -│ │ ├─ variant_2: struct #168 -│ │ │ └─ [connectOrCreate]: struct #165 -│ │ │ ├─ [create]: struct 'User_create_input_excluding_rel_Post_User' #164 -│ │ │ │ ├─ [id]: integer #64 -│ │ │ │ └─ [name]: string #65 -│ │ │ └─ [where]: struct 'User_where' #148 -│ │ │ ├─ [id]: optional 'optional_133' #133 -│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ │ └─ item: union #52 -│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_1: struct #51 -│ │ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_5: struct #49 -│ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ └─ item: integer #42 -│ │ │ ├─ [name]: optional 'optional_134' #134 -│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ │ │ └─ item: union #38 -│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ │ │ ├─ variant_0: string #24 -│ │ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ │ └─ [not]: string #24 -│ │ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ │ └─ [search]: string #24 -│ │ │ │ │ └─ variant_7: struct #35 -│ │ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ variant_1: struct #37 -│ │ │ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ │ │ ├─ variant_0: string #24 -│ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ └─ [not]: string #24 -│ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ └─ [search]: string #24 -│ │ │ │ └─ variant_7: struct #35 -│ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ [posts]: optional 'optional_147' #147 -│ │ │ └─ item: union #146 -│ │ │ ├─ variant_0: struct #141 -│ │ │ │ └─ [every]: optional 'optional_140' #140 -│ │ │ │ └─ item: struct 'Post_where_excluding_User' #139 -│ │ │ │ ├─ [author]: optional 'optional_138' #138 -│ │ │ │ │ └─ item: &User_where #137 -│ │ │ │ ├─ [id]: optional 'optional_135' #135 -│ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ │ │ └─ item: union #52 -│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_1: struct #51 -│ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ [title]: optional 'optional_136' #136 -│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ │ │ └─ item: union #38 -│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ │ │ ├─ variant_0: string #24 -│ │ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ │ └─ [not]: string #24 -│ │ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ │ └─ [search]: string #24 -│ │ │ │ │ └─ variant_7: struct #35 -│ │ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ variant_1: struct #37 -│ │ │ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ │ │ ├─ variant_0: string #24 -│ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ └─ [not]: string #24 -│ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ └─ [search]: string #24 -│ │ │ │ └─ variant_7: struct #35 -│ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_1: struct #143 -│ │ │ │ └─ [some]: optional 'optional_142' #142 -│ │ │ │ └─ item: struct 'Post_where_excluding_User' #139 -│ │ │ │ ├─ [author]: optional 'optional_138' #138 -│ │ │ │ │ └─ item: &User_where #137 -│ │ │ │ ├─ [id]: optional 'optional_135' #135 -│ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ │ │ └─ item: union #52 -│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_1: struct #51 -│ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ [title]: optional 'optional_136' #136 -│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ │ │ └─ item: union #38 -│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ │ │ ├─ variant_0: string #24 -│ │ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ │ └─ [not]: string #24 -│ │ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ │ └─ [search]: string #24 -│ │ │ │ │ └─ variant_7: struct #35 -│ │ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ variant_1: struct #37 -│ │ │ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ │ │ ├─ variant_0: string #24 -│ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ └─ [not]: string #24 -│ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ └─ [search]: string #24 -│ │ │ │ └─ variant_7: struct #35 -│ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ variant_2: struct #145 -│ │ │ └─ [none]: optional 'optional_144' #144 -│ │ │ └─ item: struct 'Post_where_excluding_User' #139 -│ │ │ ├─ [author]: optional 'optional_138' #138 -│ │ │ │ └─ item: &User_where #137 -│ │ │ ├─ [id]: optional 'optional_135' #135 -│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ │ └─ item: union #52 -│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_1: struct #51 -│ │ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_5: struct #49 -│ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ └─ item: integer #42 -│ │ │ └─ [title]: optional 'optional_136' #136 -│ │ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ │ └─ item: union #38 -│ │ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ │ ├─ variant_0: string #24 -│ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ └─ [not]: string #24 -│ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ └─ [search]: string #24 -│ │ │ │ └─ variant_7: struct #35 -│ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ variant_1: struct #37 -│ │ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ │ ├─ variant_0: string #24 -│ │ │ ├─ variant_1: struct #27 -│ │ │ │ └─ [equals]: string #24 -│ │ │ ├─ variant_2: struct #28 -│ │ │ │ └─ [not]: string #24 -│ │ │ ├─ variant_3: struct #29 -│ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_4: struct #30 -│ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_5: struct #33 -│ │ │ │ ├─ [contains]: string #24 -│ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ ├─ variant_6: struct #34 -│ │ │ │ └─ [search]: string #24 -│ │ │ └─ variant_7: struct #35 -│ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ └─ item: string #24 -│ │ └─ variant_3: struct #179 -│ │ └─ [update]: struct 'User_update_input_excluding_rel_Post_User' #178 -│ │ ├─ [id]: optional 'optional_174' #174 -│ │ │ └─ item: union #173 -│ │ │ ├─ variant_0: integer #64 -│ │ │ ├─ variant_1: struct #169 -│ │ │ │ └─ [set]: integer #64 -│ │ │ ├─ variant_2: struct #170 -│ │ │ │ └─ [multiply]: integer #63 -│ │ │ ├─ variant_3: struct #171 -│ │ │ │ └─ [decrement]: integer #63 -│ │ │ └─ variant_4: struct #172 -│ │ │ └─ [increment]: integer #63 -│ │ └─ [name]: optional 'optional_177' #177 -│ │ └─ item: union #176 -│ │ ├─ variant_0: string #65 -│ │ └─ variant_1: struct #175 -│ │ └─ [set]: string #65 -│ ├─ [id]: optional 'optional_160' #160 -│ │ └─ item: union #159 -│ │ ├─ variant_0: integer #70 -│ │ ├─ variant_1: struct #155 -│ │ │ └─ [set]: integer #70 -│ │ ├─ variant_2: struct #156 -│ │ │ └─ [multiply]: integer #69 -│ │ ├─ variant_3: struct #157 -│ │ │ └─ [decrement]: integer #69 -│ │ └─ variant_4: struct #158 -│ │ └─ [increment]: integer #69 -│ └─ [title]: optional 'optional_163' #163 -│ └─ item: union #162 -│ ├─ variant_0: string #71 -│ └─ variant_1: struct #161 -│ └─ [set]: string #71 -└─ [where]: struct 'Post_query_where_unique_input' #187 - ├─ [AND]: optional 'optional_185' #185 - │ └─ item: list 'list_184' #184 - │ └─ item: &Post_query_where_unique_input #183 - ├─ [NOT]: optional 'optional_186' #186 - │ └─ item: &Post_query_where_unique_input #183 - ├─ [OR]: optional 'optional_185' #185 - │ └─ item: list 'list_184' #184 - │ └─ item: &Post_query_where_unique_input #183 - ├─ [author]: optional 'optional_101' #101 - │ └─ item: struct 'User_where_excluding_Post' #100 - │ ├─ [id]: optional 'optional_89' #89 - │ │ └─ item: optional '_prisma_integer_filter_ex' #53 - │ │ └─ item: union #52 - │ │ ├─ variant_0: either '_prisma_integer_filter' #50 - │ │ │ ├─ variant_0: integer #42 - │ │ │ ├─ variant_1: struct #45 - │ │ │ │ └─ [equals]: integer #42 - │ │ │ ├─ variant_2: struct #46 - │ │ │ │ └─ [not]: integer #42 - │ │ │ ├─ variant_3: struct #47 - │ │ │ │ ├─ [gt]: optional 'optional_43' #43 - │ │ │ │ │ └─ item: integer #42 - │ │ │ │ ├─ [gte]: optional 'optional_43' #43 - │ │ │ │ │ └─ item: integer #42 - │ │ │ │ ├─ [lt]: optional 'optional_43' #43 - │ │ │ │ │ └─ item: integer #42 - │ │ │ │ └─ [lte]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ ├─ variant_4: struct #48 - │ │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ │ └─ item: integer #42 - │ │ │ └─ variant_5: struct #49 - │ │ │ └─ [notIn]: list 'list_44' #44 - │ │ │ └─ item: integer #42 - │ │ └─ variant_1: struct #51 - │ │ └─ [not]: either '_prisma_integer_filter' #50 - │ │ ├─ variant_0: integer #42 - │ │ ├─ variant_1: struct #45 - │ │ │ └─ [equals]: integer #42 - │ │ ├─ variant_2: struct #46 - │ │ │ └─ [not]: integer #42 - │ │ ├─ variant_3: struct #47 - │ │ │ ├─ [gt]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ ├─ [gte]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ ├─ [lt]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ └─ [lte]: optional 'optional_43' #43 - │ │ │ └─ item: integer #42 - │ │ ├─ variant_4: struct #48 - │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ └─ item: integer #42 - │ │ └─ variant_5: struct #49 - │ │ └─ [notIn]: list 'list_44' #44 - │ │ └─ item: integer #42 - │ ├─ [name]: optional 'optional_90' #90 - │ │ └─ item: optional '_prisma_string_filter_ex' #39 - │ │ └─ item: union #38 - │ │ ├─ variant_0: union '_prisma_string_filter' #36 - │ │ │ ├─ variant_0: string #24 - │ │ │ ├─ variant_1: struct #27 - │ │ │ │ └─ [equals]: string #24 - │ │ │ ├─ variant_2: struct #28 - │ │ │ │ └─ [not]: string #24 - │ │ │ ├─ variant_3: struct #29 - │ │ │ │ └─ [in]: list 'list_26' #26 - │ │ │ │ └─ item: string #24 - │ │ │ ├─ variant_4: struct #30 - │ │ │ │ └─ [notIn]: list 'list_26' #26 - │ │ │ │ └─ item: string #24 - │ │ │ ├─ variant_5: struct #33 - │ │ │ │ ├─ [contains]: string #24 - │ │ │ │ └─ [mode]: optional 'optional_32' #32 - │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } - │ │ │ ├─ variant_6: struct #34 - │ │ │ │ └─ [search]: string #24 - │ │ │ └─ variant_7: struct #35 - │ │ │ ├─ [endsWith]: optional 'optional_25' #25 - │ │ │ │ └─ item: string #24 - │ │ │ └─ [startsWith]: optional 'optional_25' #25 - │ │ │ └─ item: string #24 - │ │ └─ variant_1: struct #37 - │ │ └─ [not]: union '_prisma_string_filter' #36 - │ │ ├─ variant_0: string #24 - │ │ ├─ variant_1: struct #27 - │ │ │ └─ [equals]: string #24 - │ │ ├─ variant_2: struct #28 - │ │ │ └─ [not]: string #24 - │ │ ├─ variant_3: struct #29 - │ │ │ └─ [in]: list 'list_26' #26 - │ │ │ └─ item: string #24 - │ │ ├─ variant_4: struct #30 - │ │ │ └─ [notIn]: list 'list_26' #26 - │ │ │ └─ item: string #24 - │ │ ├─ variant_5: struct #33 - │ │ │ ├─ [contains]: string #24 - │ │ │ └─ [mode]: optional 'optional_32' #32 - │ │ │ └─ item: string #31 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #34 - │ │ │ └─ [search]: string #24 - │ │ └─ variant_7: struct #35 - │ │ ├─ [endsWith]: optional 'optional_25' #25 - │ │ │ └─ item: string #24 - │ │ └─ [startsWith]: optional 'optional_25' #25 - │ │ └─ item: string #24 - │ └─ [posts]: optional 'optional_99' #99 - │ └─ item: union #98 - │ ├─ variant_0: struct #93 - │ │ └─ [every]: optional 'optional_92' #92 - │ │ └─ item: &Post_where #91 - │ ├─ variant_1: struct #95 - │ │ └─ [some]: optional 'optional_94' #94 - │ │ └─ item: &Post_where #91 - │ └─ variant_2: struct #97 - │ └─ [none]: optional 'optional_96' #96 - │ └─ item: &Post_where #91 - ├─ [id]: optional 'optional_87' #87 - │ └─ item: optional '_prisma_integer_filter_ex' #53 - │ └─ item: union #52 - │ ├─ variant_0: either '_prisma_integer_filter' #50 - │ │ ├─ variant_0: integer #42 - │ │ ├─ variant_1: struct #45 - │ │ │ └─ [equals]: integer #42 - │ │ ├─ variant_2: struct #46 - │ │ │ └─ [not]: integer #42 - │ │ ├─ variant_3: struct #47 - │ │ │ ├─ [gt]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ ├─ [gte]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ ├─ [lt]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ └─ [lte]: optional 'optional_43' #43 - │ │ │ └─ item: integer #42 - │ │ ├─ variant_4: struct #48 - │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ └─ item: integer #42 - │ │ └─ variant_5: struct #49 - │ │ └─ [notIn]: list 'list_44' #44 - │ │ └─ item: integer #42 - │ └─ variant_1: struct #51 - │ └─ [not]: either '_prisma_integer_filter' #50 - │ ├─ variant_0: integer #42 - │ ├─ variant_1: struct #45 - │ │ └─ [equals]: integer #42 - │ ├─ variant_2: struct #46 - │ │ └─ [not]: integer #42 - │ ├─ variant_3: struct #47 - │ │ ├─ [gt]: optional 'optional_43' #43 - │ │ │ └─ item: integer #42 - │ │ ├─ [gte]: optional 'optional_43' #43 - │ │ │ └─ item: integer #42 - │ │ ├─ [lt]: optional 'optional_43' #43 - │ │ │ └─ item: integer #42 - │ │ └─ [lte]: optional 'optional_43' #43 - │ │ └─ item: integer #42 - │ ├─ variant_4: struct #48 - │ │ └─ [in]: list 'list_44' #44 - │ │ └─ item: integer #42 - │ └─ variant_5: struct #49 - │ └─ [notIn]: list 'list_44' #44 - │ └─ item: integer #42 - └─ [title]: optional 'optional_88' #88 - └─ item: optional '_prisma_string_filter_ex' #39 - └─ item: union #38 - ├─ variant_0: union '_prisma_string_filter' #36 - │ ├─ variant_0: string #24 - │ ├─ variant_1: struct #27 - │ │ └─ [equals]: string #24 - │ ├─ variant_2: struct #28 - │ │ └─ [not]: string #24 - │ ├─ variant_3: struct #29 - │ │ └─ [in]: list 'list_26' #26 - │ │ └─ item: string #24 - │ ├─ variant_4: struct #30 - │ │ └─ [notIn]: list 'list_26' #26 - │ │ └─ item: string #24 - │ ├─ variant_5: struct #33 - │ │ ├─ [contains]: string #24 - │ │ └─ [mode]: optional 'optional_32' #32 - │ │ └─ item: string #31 enum{ '"insensitive"' } - │ ├─ variant_6: struct #34 - │ │ └─ [search]: string #24 - │ └─ variant_7: struct #35 - │ ├─ [endsWith]: optional 'optional_25' #25 - │ │ └─ item: string #24 - │ └─ [startsWith]: optional 'optional_25' #25 - │ └─ item: string #24 - └─ variant_1: struct #37 - └─ [not]: union '_prisma_string_filter' #36 - ├─ variant_0: string #24 - ├─ variant_1: struct #27 - │ └─ [equals]: string #24 - ├─ variant_2: struct #28 - │ └─ [not]: string #24 - ├─ variant_3: struct #29 - │ └─ [in]: list 'list_26' #26 - │ └─ item: string #24 - ├─ variant_4: struct #30 - │ └─ [notIn]: list 'list_26' #26 - │ └─ item: string #24 - ├─ variant_5: struct #33 - │ ├─ [contains]: string #24 - │ └─ [mode]: optional 'optional_32' #32 - │ └─ item: string #31 enum{ '"insensitive"' } - ├─ variant_6: struct #34 - │ └─ [search]: string #24 - └─ variant_7: struct #35 - ├─ [endsWith]: optional 'optional_25' #25 - │ └─ item: string #24 - └─ [startsWith]: optional 'optional_25' #25 - └─ item: string #24 +root: struct #291 +├─ [data]: struct 'Post_update_input' #281 +│ ├─ [author]: optional 'optional_278' #279 +│ │ └─ item: union #277 +│ │ ├─ variant_0: struct #260 +│ │ │ └─ [create]: struct 'User_create_input_excluding_rel_Post_User' #258 +│ │ │ ├─ [id]: integer #92 +│ │ │ └─ [name]: string #93 +│ │ ├─ variant_1: struct #261 +│ │ │ └─ [connect]: struct 'User_where' #235 +│ │ │ ├─ [id]: optional 'optional_191' #192 +│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ └─ item: union #71 +│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_1: struct #70 +│ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_5: struct #67 +│ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ └─ item: integer #58 +│ │ │ ├─ [name]: optional 'optional_193' #194 +│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ │ └─ item: union #50 +│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ variant_1: struct #49 +│ │ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ │ ├─ variant_0: string #32 +│ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ └─ [not]: string #32 +│ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ └─ [search]: string #32 +│ │ │ │ └─ variant_7: struct #46 +│ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ [posts]: optional 'optional_232' #233 +│ │ │ └─ item: union #231 +│ │ │ ├─ variant_0: struct #224 +│ │ │ │ └─ [every]: optional 'optional_222' #223 +│ │ │ │ └─ item: struct 'Post_where_excluding_User' #221 +│ │ │ │ ├─ [author]: optional 'optional_218' #219 +│ │ │ │ │ └─ item: struct 'User_where_excluding_User_and_Post_where_excluding_User' #217 +│ │ │ │ │ ├─ [id]: optional 'optional_199' #200 +│ │ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ │ │ └─ item: union #71 +│ │ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ variant_1: struct #70 +│ │ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [name]: optional 'optional_201' #202 +│ │ │ │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ │ │ │ └─ item: union #50 +│ │ │ │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ └─ variant_1: struct #49 +│ │ │ │ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ [posts]: optional 'optional_214' #215 +│ │ │ │ │ └─ item: union #213 +│ │ │ │ │ ├─ variant_0: struct #206 +│ │ │ │ │ │ └─ [every]: optional 'optional_204' #205 +│ │ │ │ │ │ └─ item: &Post_where_excluding_User #203 +│ │ │ │ │ ├─ variant_1: struct #209 +│ │ │ │ │ │ └─ [some]: optional 'optional_207' #208 +│ │ │ │ │ │ └─ item: &Post_where_excluding_User #203 +│ │ │ │ │ └─ variant_2: struct #212 +│ │ │ │ │ └─ [none]: optional 'optional_210' #211 +│ │ │ │ │ └─ item: &Post_where_excluding_User #203 +│ │ │ │ ├─ [id]: optional 'optional_195' #196 +│ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ │ └─ item: union #71 +│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_1: struct #70 +│ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ [title]: optional 'optional_197' #198 +│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ │ └─ item: union #50 +│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ variant_1: struct #49 +│ │ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ │ ├─ variant_0: string #32 +│ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ └─ [not]: string #32 +│ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ └─ [search]: string #32 +│ │ │ │ └─ variant_7: struct #46 +│ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_1: struct #227 +│ │ │ │ └─ [some]: optional 'optional_225' #226 +│ │ │ │ └─ item: struct 'Post_where_excluding_User' #221 +│ │ │ │ ├─ [author]: optional 'optional_218' #219 +│ │ │ │ │ └─ item: struct 'User_where_excluding_User_and_Post_where_excluding_User' #217 +│ │ │ │ │ ├─ [id]: optional 'optional_199' #200 +│ │ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ │ │ └─ item: union #71 +│ │ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ variant_1: struct #70 +│ │ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [name]: optional 'optional_201' #202 +│ │ │ │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ │ │ │ └─ item: union #50 +│ │ │ │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ └─ variant_1: struct #49 +│ │ │ │ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ [posts]: optional 'optional_214' #215 +│ │ │ │ │ └─ item: union #213 +│ │ │ │ │ ├─ variant_0: struct #206 +│ │ │ │ │ │ └─ [every]: optional 'optional_204' #205 +│ │ │ │ │ │ └─ item: &Post_where_excluding_User #203 +│ │ │ │ │ ├─ variant_1: struct #209 +│ │ │ │ │ │ └─ [some]: optional 'optional_207' #208 +│ │ │ │ │ │ └─ item: &Post_where_excluding_User #203 +│ │ │ │ │ └─ variant_2: struct #212 +│ │ │ │ │ └─ [none]: optional 'optional_210' #211 +│ │ │ │ │ └─ item: &Post_where_excluding_User #203 +│ │ │ │ ├─ [id]: optional 'optional_195' #196 +│ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ │ └─ item: union #71 +│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_1: struct #70 +│ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ [title]: optional 'optional_197' #198 +│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ │ └─ item: union #50 +│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ variant_1: struct #49 +│ │ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ │ ├─ variant_0: string #32 +│ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ └─ [not]: string #32 +│ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ └─ [search]: string #32 +│ │ │ │ └─ variant_7: struct #46 +│ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ variant_2: struct #230 +│ │ │ └─ [none]: optional 'optional_228' #229 +│ │ │ └─ item: struct 'Post_where_excluding_User' #221 +│ │ │ ├─ [author]: optional 'optional_218' #219 +│ │ │ │ └─ item: struct 'User_where_excluding_User_and_Post_where_excluding_User' #217 +│ │ │ │ ├─ [id]: optional 'optional_199' #200 +│ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ │ └─ item: union #71 +│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_1: struct #70 +│ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ [name]: optional 'optional_201' #202 +│ │ │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ │ │ └─ item: union #50 +│ │ │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ variant_1: struct #49 +│ │ │ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [posts]: optional 'optional_214' #215 +│ │ │ │ └─ item: union #213 +│ │ │ │ ├─ variant_0: struct #206 +│ │ │ │ │ └─ [every]: optional 'optional_204' #205 +│ │ │ │ │ └─ item: &Post_where_excluding_User #203 +│ │ │ │ ├─ variant_1: struct #209 +│ │ │ │ │ └─ [some]: optional 'optional_207' #208 +│ │ │ │ │ └─ item: &Post_where_excluding_User #203 +│ │ │ │ └─ variant_2: struct #212 +│ │ │ │ └─ [none]: optional 'optional_210' #211 +│ │ │ │ └─ item: &Post_where_excluding_User #203 +│ │ │ ├─ [id]: optional 'optional_195' #196 +│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ └─ item: union #71 +│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_1: struct #70 +│ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_5: struct #67 +│ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ └─ item: integer #58 +│ │ │ └─ [title]: optional 'optional_197' #198 +│ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ └─ item: union #50 +│ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ ├─ variant_0: string #32 +│ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ └─ [not]: string #32 +│ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ └─ [search]: string #32 +│ │ │ │ └─ variant_7: struct #46 +│ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ variant_1: struct #49 +│ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ ├─ variant_0: string #32 +│ │ │ ├─ variant_1: struct #37 +│ │ │ │ └─ [equals]: string #32 +│ │ │ ├─ variant_2: struct #38 +│ │ │ │ └─ [not]: string #32 +│ │ │ ├─ variant_3: struct #39 +│ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_4: struct #40 +│ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_5: struct #44 +│ │ │ │ ├─ [contains]: string #32 +│ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ ├─ variant_6: struct #45 +│ │ │ │ └─ [search]: string #32 +│ │ │ └─ variant_7: struct #46 +│ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ └─ item: string #32 +│ │ ├─ variant_2: struct #262 +│ │ │ └─ [connectOrCreate]: struct #259 +│ │ │ ├─ [create]: struct 'User_create_input_excluding_rel_Post_User' #258 +│ │ │ │ ├─ [id]: integer #92 +│ │ │ │ └─ [name]: string #93 +│ │ │ └─ [where]: struct 'User_where' #235 +│ │ │ ├─ [id]: optional 'optional_191' #192 +│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ └─ item: union #71 +│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_1: struct #70 +│ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_5: struct #67 +│ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ └─ item: integer #58 +│ │ │ ├─ [name]: optional 'optional_193' #194 +│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ │ └─ item: union #50 +│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ variant_1: struct #49 +│ │ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ │ ├─ variant_0: string #32 +│ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ └─ [not]: string #32 +│ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ └─ [search]: string #32 +│ │ │ │ └─ variant_7: struct #46 +│ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ [posts]: optional 'optional_232' #233 +│ │ │ └─ item: union #231 +│ │ │ ├─ variant_0: struct #224 +│ │ │ │ └─ [every]: optional 'optional_222' #223 +│ │ │ │ └─ item: struct 'Post_where_excluding_User' #221 +│ │ │ │ ├─ [author]: optional 'optional_218' #219 +│ │ │ │ │ └─ item: struct 'User_where_excluding_User_and_Post_where_excluding_User' #217 +│ │ │ │ │ ├─ [id]: optional 'optional_199' #200 +│ │ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ │ │ └─ item: union #71 +│ │ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ variant_1: struct #70 +│ │ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [name]: optional 'optional_201' #202 +│ │ │ │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ │ │ │ └─ item: union #50 +│ │ │ │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ └─ variant_1: struct #49 +│ │ │ │ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ [posts]: optional 'optional_214' #215 +│ │ │ │ │ └─ item: union #213 +│ │ │ │ │ ├─ variant_0: struct #206 +│ │ │ │ │ │ └─ [every]: optional 'optional_204' #205 +│ │ │ │ │ │ └─ item: &Post_where_excluding_User #203 +│ │ │ │ │ ├─ variant_1: struct #209 +│ │ │ │ │ │ └─ [some]: optional 'optional_207' #208 +│ │ │ │ │ │ └─ item: &Post_where_excluding_User #203 +│ │ │ │ │ └─ variant_2: struct #212 +│ │ │ │ │ └─ [none]: optional 'optional_210' #211 +│ │ │ │ │ └─ item: &Post_where_excluding_User #203 +│ │ │ │ ├─ [id]: optional 'optional_195' #196 +│ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ │ └─ item: union #71 +│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_1: struct #70 +│ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ [title]: optional 'optional_197' #198 +│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ │ └─ item: union #50 +│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ variant_1: struct #49 +│ │ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ │ ├─ variant_0: string #32 +│ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ └─ [not]: string #32 +│ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ └─ [search]: string #32 +│ │ │ │ └─ variant_7: struct #46 +│ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_1: struct #227 +│ │ │ │ └─ [some]: optional 'optional_225' #226 +│ │ │ │ └─ item: struct 'Post_where_excluding_User' #221 +│ │ │ │ ├─ [author]: optional 'optional_218' #219 +│ │ │ │ │ └─ item: struct 'User_where_excluding_User_and_Post_where_excluding_User' #217 +│ │ │ │ │ ├─ [id]: optional 'optional_199' #200 +│ │ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ │ │ └─ item: union #71 +│ │ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ variant_1: struct #70 +│ │ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [name]: optional 'optional_201' #202 +│ │ │ │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ │ │ │ └─ item: union #50 +│ │ │ │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ └─ variant_1: struct #49 +│ │ │ │ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ [posts]: optional 'optional_214' #215 +│ │ │ │ │ └─ item: union #213 +│ │ │ │ │ ├─ variant_0: struct #206 +│ │ │ │ │ │ └─ [every]: optional 'optional_204' #205 +│ │ │ │ │ │ └─ item: &Post_where_excluding_User #203 +│ │ │ │ │ ├─ variant_1: struct #209 +│ │ │ │ │ │ └─ [some]: optional 'optional_207' #208 +│ │ │ │ │ │ └─ item: &Post_where_excluding_User #203 +│ │ │ │ │ └─ variant_2: struct #212 +│ │ │ │ │ └─ [none]: optional 'optional_210' #211 +│ │ │ │ │ └─ item: &Post_where_excluding_User #203 +│ │ │ │ ├─ [id]: optional 'optional_195' #196 +│ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ │ └─ item: union #71 +│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_1: struct #70 +│ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ [title]: optional 'optional_197' #198 +│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ │ └─ item: union #50 +│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ variant_1: struct #49 +│ │ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ │ ├─ variant_0: string #32 +│ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ └─ [not]: string #32 +│ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ └─ [search]: string #32 +│ │ │ │ └─ variant_7: struct #46 +│ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ variant_2: struct #230 +│ │ │ └─ [none]: optional 'optional_228' #229 +│ │ │ └─ item: struct 'Post_where_excluding_User' #221 +│ │ │ ├─ [author]: optional 'optional_218' #219 +│ │ │ │ └─ item: struct 'User_where_excluding_User_and_Post_where_excluding_User' #217 +│ │ │ │ ├─ [id]: optional 'optional_199' #200 +│ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ │ └─ item: union #71 +│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_1: struct #70 +│ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ [name]: optional 'optional_201' #202 +│ │ │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ │ │ └─ item: union #50 +│ │ │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ variant_1: struct #49 +│ │ │ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [posts]: optional 'optional_214' #215 +│ │ │ │ └─ item: union #213 +│ │ │ │ ├─ variant_0: struct #206 +│ │ │ │ │ └─ [every]: optional 'optional_204' #205 +│ │ │ │ │ └─ item: &Post_where_excluding_User #203 +│ │ │ │ ├─ variant_1: struct #209 +│ │ │ │ │ └─ [some]: optional 'optional_207' #208 +│ │ │ │ │ └─ item: &Post_where_excluding_User #203 +│ │ │ │ └─ variant_2: struct #212 +│ │ │ │ └─ [none]: optional 'optional_210' #211 +│ │ │ │ └─ item: &Post_where_excluding_User #203 +│ │ │ ├─ [id]: optional 'optional_195' #196 +│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ └─ item: union #71 +│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_1: struct #70 +│ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_5: struct #67 +│ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ └─ item: integer #58 +│ │ │ └─ [title]: optional 'optional_197' #198 +│ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ └─ item: union #50 +│ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ ├─ variant_0: string #32 +│ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ └─ [not]: string #32 +│ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ └─ [search]: string #32 +│ │ │ │ └─ variant_7: struct #46 +│ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ variant_1: struct #49 +│ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ ├─ variant_0: string #32 +│ │ │ ├─ variant_1: struct #37 +│ │ │ │ └─ [equals]: string #32 +│ │ │ ├─ variant_2: struct #38 +│ │ │ │ └─ [not]: string #32 +│ │ │ ├─ variant_3: struct #39 +│ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_4: struct #40 +│ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_5: struct #44 +│ │ │ │ ├─ [contains]: string #32 +│ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ ├─ variant_6: struct #45 +│ │ │ │ └─ [search]: string #32 +│ │ │ └─ variant_7: struct #46 +│ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ └─ item: string #32 +│ │ └─ variant_3: struct #276 +│ │ └─ [update]: struct 'User_update_input_excluding_rel_Post_User' #275 +│ │ ├─ [id]: optional 'optional_268' #269 +│ │ │ └─ item: union #267 +│ │ │ ├─ variant_0: integer #92 +│ │ │ ├─ variant_1: struct #263 +│ │ │ │ └─ [set]: integer #92 +│ │ │ ├─ variant_2: struct #264 +│ │ │ │ └─ [multiply]: integer #92 +│ │ │ ├─ variant_3: struct #265 +│ │ │ │ └─ [decrement]: integer #92 +│ │ │ └─ variant_4: struct #266 +│ │ │ └─ [increment]: integer #92 +│ │ └─ [name]: optional 'optional_272' #273 +│ │ └─ item: union #271 +│ │ ├─ variant_0: string #93 +│ │ └─ variant_1: struct #270 +│ │ └─ [set]: string #93 +│ ├─ [id]: optional 'optional_251' #252 +│ │ └─ item: union #250 +│ │ ├─ variant_0: integer #101 +│ │ ├─ variant_1: struct #246 +│ │ │ └─ [set]: integer #101 +│ │ ├─ variant_2: struct #247 +│ │ │ └─ [multiply]: integer #101 +│ │ ├─ variant_3: struct #248 +│ │ │ └─ [decrement]: integer #101 +│ │ └─ variant_4: struct #249 +│ │ └─ [increment]: integer #101 +│ └─ [title]: optional 'optional_255' #256 +│ └─ item: union #254 +│ ├─ variant_0: string #102 +│ └─ variant_1: struct #253 +│ └─ [set]: string #102 +└─ [where]: struct 'Post_query_where_unique_input' #290 + ├─ [AND]: optional 'optional_285' #286 + │ └─ item: list 'list_283' #284 + │ └─ item: &Post_query_where_unique_input #282 + ├─ [NOT]: optional 'optional_287' #288 + │ └─ item: &Post_query_where_unique_input #282 + ├─ [OR]: optional 'optional_285' #286 + │ └─ item: list 'list_283' #284 + │ └─ item: &Post_query_where_unique_input #282 + ├─ [author]: optional 'optional_147' #148 + │ └─ item: struct 'User_where_excluding_Post' #146 + │ ├─ [id]: optional 'optional_128' #129 + │ │ └─ item: optional '_prisma_integer_filter_ex' #74 + │ │ └─ item: union #71 + │ │ ├─ variant_0: either '_prisma_integer_filter' #69 + │ │ │ ├─ variant_0: integer #58 + │ │ │ ├─ variant_1: struct #63 + │ │ │ │ └─ [equals]: integer #58 + │ │ │ ├─ variant_2: struct #64 + │ │ │ │ └─ [not]: integer #58 + │ │ │ ├─ variant_3: struct #65 + │ │ │ │ ├─ [gt]: optional 'optional_59' #60 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ ├─ [gte]: optional 'optional_59' #60 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ ├─ [lt]: optional 'optional_59' #60 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ └─ [lte]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ variant_4: struct #66 + │ │ │ │ └─ [in]: list 'list_61' #62 + │ │ │ │ └─ item: integer #58 + │ │ │ └─ variant_5: struct #67 + │ │ │ └─ [notIn]: list 'list_61' #62 + │ │ │ └─ item: integer #58 + │ │ └─ variant_1: struct #70 + │ │ └─ [not]: either '_prisma_integer_filter' #69 + │ │ ├─ variant_0: integer #58 + │ │ ├─ variant_1: struct #63 + │ │ │ └─ [equals]: integer #58 + │ │ ├─ variant_2: struct #64 + │ │ │ └─ [not]: integer #58 + │ │ ├─ variant_3: struct #65 + │ │ │ ├─ [gt]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ [gte]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ [lt]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ └─ [lte]: optional 'optional_59' #60 + │ │ │ └─ item: integer #58 + │ │ ├─ variant_4: struct #66 + │ │ │ └─ [in]: list 'list_61' #62 + │ │ │ └─ item: integer #58 + │ │ └─ variant_5: struct #67 + │ │ └─ [notIn]: list 'list_61' #62 + │ │ └─ item: integer #58 + │ ├─ [name]: optional 'optional_130' #131 + │ │ └─ item: optional '_prisma_string_filter_ex' #53 + │ │ └─ item: union #50 + │ │ ├─ variant_0: union '_prisma_string_filter' #48 + │ │ │ ├─ variant_0: string #32 + │ │ │ ├─ variant_1: struct #37 + │ │ │ │ └─ [equals]: string #32 + │ │ │ ├─ variant_2: struct #38 + │ │ │ │ └─ [not]: string #32 + │ │ │ ├─ variant_3: struct #39 + │ │ │ │ └─ [in]: list 'list_35' #36 + │ │ │ │ └─ item: string #32 + │ │ │ ├─ variant_4: struct #40 + │ │ │ │ └─ [notIn]: list 'list_35' #36 + │ │ │ │ └─ item: string #32 + │ │ │ ├─ variant_5: struct #44 + │ │ │ │ ├─ [contains]: string #32 + │ │ │ │ └─ [mode]: optional 'optional_42' #43 + │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #45 + │ │ │ │ └─ [search]: string #32 + │ │ │ └─ variant_7: struct #46 + │ │ │ ├─ [endsWith]: optional 'optional_33' #34 + │ │ │ │ └─ item: string #32 + │ │ │ └─ [startsWith]: optional 'optional_33' #34 + │ │ │ └─ item: string #32 + │ │ └─ variant_1: struct #49 + │ │ └─ [not]: union '_prisma_string_filter' #48 + │ │ ├─ variant_0: string #32 + │ │ ├─ variant_1: struct #37 + │ │ │ └─ [equals]: string #32 + │ │ ├─ variant_2: struct #38 + │ │ │ └─ [not]: string #32 + │ │ ├─ variant_3: struct #39 + │ │ │ └─ [in]: list 'list_35' #36 + │ │ │ └─ item: string #32 + │ │ ├─ variant_4: struct #40 + │ │ │ └─ [notIn]: list 'list_35' #36 + │ │ │ └─ item: string #32 + │ │ ├─ variant_5: struct #44 + │ │ │ ├─ [contains]: string #32 + │ │ │ └─ [mode]: optional 'optional_42' #43 + │ │ │ └─ item: string #41 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #45 + │ │ │ └─ [search]: string #32 + │ │ └─ variant_7: struct #46 + │ │ ├─ [endsWith]: optional 'optional_33' #34 + │ │ │ └─ item: string #32 + │ │ └─ [startsWith]: optional 'optional_33' #34 + │ │ └─ item: string #32 + │ └─ [posts]: optional 'optional_143' #144 + │ └─ item: union #142 + │ ├─ variant_0: struct #135 + │ │ └─ [every]: optional 'optional_133' #134 + │ │ └─ item: &Post_where #132 + │ ├─ variant_1: struct #138 + │ │ └─ [some]: optional 'optional_136' #137 + │ │ └─ item: &Post_where #132 + │ └─ variant_2: struct #141 + │ └─ [none]: optional 'optional_139' #140 + │ └─ item: &Post_where #132 + ├─ [id]: optional 'optional_124' #125 + │ └─ item: optional '_prisma_integer_filter_ex' #74 + │ └─ item: union #71 + │ ├─ variant_0: either '_prisma_integer_filter' #69 + │ │ ├─ variant_0: integer #58 + │ │ ├─ variant_1: struct #63 + │ │ │ └─ [equals]: integer #58 + │ │ ├─ variant_2: struct #64 + │ │ │ └─ [not]: integer #58 + │ │ ├─ variant_3: struct #65 + │ │ │ ├─ [gt]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ [gte]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ [lt]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ └─ [lte]: optional 'optional_59' #60 + │ │ │ └─ item: integer #58 + │ │ ├─ variant_4: struct #66 + │ │ │ └─ [in]: list 'list_61' #62 + │ │ │ └─ item: integer #58 + │ │ └─ variant_5: struct #67 + │ │ └─ [notIn]: list 'list_61' #62 + │ │ └─ item: integer #58 + │ └─ variant_1: struct #70 + │ └─ [not]: either '_prisma_integer_filter' #69 + │ ├─ variant_0: integer #58 + │ ├─ variant_1: struct #63 + │ │ └─ [equals]: integer #58 + │ ├─ variant_2: struct #64 + │ │ └─ [not]: integer #58 + │ ├─ variant_3: struct #65 + │ │ ├─ [gt]: optional 'optional_59' #60 + │ │ │ └─ item: integer #58 + │ │ ├─ [gte]: optional 'optional_59' #60 + │ │ │ └─ item: integer #58 + │ │ ├─ [lt]: optional 'optional_59' #60 + │ │ │ └─ item: integer #58 + │ │ └─ [lte]: optional 'optional_59' #60 + │ │ └─ item: integer #58 + │ ├─ variant_4: struct #66 + │ │ └─ [in]: list 'list_61' #62 + │ │ └─ item: integer #58 + │ └─ variant_5: struct #67 + │ └─ [notIn]: list 'list_61' #62 + │ └─ item: integer #58 + └─ [title]: optional 'optional_126' #127 + └─ item: optional '_prisma_string_filter_ex' #53 + └─ item: union #50 + ├─ variant_0: union '_prisma_string_filter' #48 + │ ├─ variant_0: string #32 + │ ├─ variant_1: struct #37 + │ │ └─ [equals]: string #32 + │ ├─ variant_2: struct #38 + │ │ └─ [not]: string #32 + │ ├─ variant_3: struct #39 + │ │ └─ [in]: list 'list_35' #36 + │ │ └─ item: string #32 + │ ├─ variant_4: struct #40 + │ │ └─ [notIn]: list 'list_35' #36 + │ │ └─ item: string #32 + │ ├─ variant_5: struct #44 + │ │ ├─ [contains]: string #32 + │ │ └─ [mode]: optional 'optional_42' #43 + │ │ └─ item: string #41 enum{ '"insensitive"' } + │ ├─ variant_6: struct #45 + │ │ └─ [search]: string #32 + │ └─ variant_7: struct #46 + │ ├─ [endsWith]: optional 'optional_33' #34 + │ │ └─ item: string #32 + │ └─ [startsWith]: optional 'optional_33' #34 + │ └─ item: string #32 + └─ variant_1: struct #49 + └─ [not]: union '_prisma_string_filter' #48 + ├─ variant_0: string #32 + ├─ variant_1: struct #37 + │ └─ [equals]: string #32 + ├─ variant_2: struct #38 + │ └─ [not]: string #32 + ├─ variant_3: struct #39 + │ └─ [in]: list 'list_35' #36 + │ └─ item: string #32 + ├─ variant_4: struct #40 + │ └─ [notIn]: list 'list_35' #36 + │ └─ item: string #32 + ├─ variant_5: struct #44 + │ ├─ [contains]: string #32 + │ └─ [mode]: optional 'optional_42' #43 + │ └─ item: string #41 enum{ '"insensitive"' } + ├─ variant_6: struct #45 + │ └─ [search]: string #32 + └─ variant_7: struct #46 + ├─ [endsWith]: optional 'optional_33' #34 + │ └─ item: string #32 + └─ [startsWith]: optional 'optional_33' #34 + └─ item: string #32 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__update_one Record inp.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__update_one Record inp.snap index 8826e20808..ebfe6d0edb 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__update_one Record inp.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__update_one Record inp.snap @@ -2,238 +2,238 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs expression: tp.print(inp) --- -root: struct #62 -├─ [data]: struct 'Record_update_input' #23 -│ ├─ [age]: optional 'optional_19' #19 -│ │ └─ item: union #18 -│ │ ├─ variant_0: optional 'optional_6' #6 -│ │ │ └─ item: integer #5 -│ │ ├─ variant_1: struct #14 -│ │ │ └─ [set]: optional 'optional_6' #6 -│ │ │ └─ item: integer #5 -│ │ ├─ variant_2: struct #15 -│ │ │ └─ [multiply]: integer #5 -│ │ ├─ variant_3: struct #16 -│ │ │ └─ [decrement]: integer #5 -│ │ └─ variant_4: struct #17 -│ │ └─ [increment]: integer #5 -│ ├─ [created_at]: optional 'optional_22' #22 -│ │ └─ item: union #21 +root: struct #90 +├─ [data]: struct 'Record_update_input' #31 +│ ├─ [age]: optional 'optional_24' #25 +│ │ └─ item: union #23 +│ │ ├─ variant_0: optional 'optional_7' #8 +│ │ │ └─ item: integer #6 +│ │ ├─ variant_1: struct #19 +│ │ │ └─ [set]: optional 'optional_7' #8 +│ │ │ └─ item: integer #6 +│ │ ├─ variant_2: struct #20 +│ │ │ └─ [multiply]: integer #6 +│ │ ├─ variant_3: struct #21 +│ │ │ └─ [decrement]: integer #6 +│ │ └─ variant_4: struct #22 +│ │ └─ [increment]: integer #6 +│ ├─ [created_at]: optional 'optional_28' #29 +│ │ └─ item: union #27 │ │ ├─ variant_0: string #1 -│ │ └─ variant_1: struct #20 +│ │ └─ variant_1: struct #26 │ │ └─ [set]: string #1 -│ ├─ [id]: optional 'optional_10' #10 -│ │ └─ item: union #9 -│ │ ├─ variant_0: string #3 -│ │ └─ variant_1: struct #8 -│ │ └─ [set]: string #3 -│ └─ [name]: optional 'optional_13' #13 -│ └─ item: union #12 -│ ├─ variant_0: string #4 -│ └─ variant_1: struct #11 -│ └─ [set]: string #4 -└─ [where]: struct 'Record_query_where_unique_input' #61 - ├─ [AND]: optional 'optional_59' #59 - │ └─ item: list 'list_58' #58 - │ └─ item: &Record_query_where_unique_input #57 - ├─ [NOT]: optional 'optional_60' #60 - │ └─ item: &Record_query_where_unique_input #57 - ├─ [OR]: optional 'optional_59' #59 - │ └─ item: list 'list_58' #58 - │ └─ item: &Record_query_where_unique_input #57 - ├─ [age]: optional 'optional_54' #54 - │ └─ item: optional '_prisma_integer_filter_ex' #53 - │ └─ item: union #52 - │ ├─ variant_0: either '_prisma_integer_filter' #50 - │ │ ├─ variant_0: integer #42 - │ │ ├─ variant_1: struct #45 - │ │ │ └─ [equals]: integer #42 - │ │ ├─ variant_2: struct #46 - │ │ │ └─ [not]: integer #42 - │ │ ├─ variant_3: struct #47 - │ │ │ ├─ [gt]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ ├─ [gte]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ ├─ [lt]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ └─ [lte]: optional 'optional_43' #43 - │ │ │ └─ item: integer #42 - │ │ ├─ variant_4: struct #48 - │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ └─ item: integer #42 - │ │ └─ variant_5: struct #49 - │ │ └─ [notIn]: list 'list_44' #44 - │ │ └─ item: integer #42 - │ └─ variant_1: struct #51 - │ └─ [not]: either '_prisma_integer_filter' #50 - │ ├─ variant_0: integer #42 - │ ├─ variant_1: struct #45 - │ │ └─ [equals]: integer #42 - │ ├─ variant_2: struct #46 - │ │ └─ [not]: integer #42 - │ ├─ variant_3: struct #47 - │ │ ├─ [gt]: optional 'optional_43' #43 - │ │ │ └─ item: integer #42 - │ │ ├─ [gte]: optional 'optional_43' #43 - │ │ │ └─ item: integer #42 - │ │ ├─ [lt]: optional 'optional_43' #43 - │ │ │ └─ item: integer #42 - │ │ └─ [lte]: optional 'optional_43' #43 - │ │ └─ item: integer #42 - │ ├─ variant_4: struct #48 - │ │ └─ [in]: list 'list_44' #44 - │ │ └─ item: integer #42 - │ └─ variant_5: struct #49 - │ └─ [notIn]: list 'list_44' #44 - │ └─ item: integer #42 - ├─ [created_at]: optional 'optional_55' #55 - │ └─ item: optional '_prisma_string_filter_ex' #39 - │ └─ item: union #38 - │ ├─ variant_0: union '_prisma_string_filter' #36 - │ │ ├─ variant_0: string #24 - │ │ ├─ variant_1: struct #27 - │ │ │ └─ [equals]: string #24 - │ │ ├─ variant_2: struct #28 - │ │ │ └─ [not]: string #24 - │ │ ├─ variant_3: struct #29 - │ │ │ └─ [in]: list 'list_26' #26 - │ │ │ └─ item: string #24 - │ │ ├─ variant_4: struct #30 - │ │ │ └─ [notIn]: list 'list_26' #26 - │ │ │ └─ item: string #24 - │ │ ├─ variant_5: struct #33 - │ │ │ ├─ [contains]: string #24 - │ │ │ └─ [mode]: optional 'optional_32' #32 - │ │ │ └─ item: string #31 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #34 - │ │ │ └─ [search]: string #24 - │ │ └─ variant_7: struct #35 - │ │ ├─ [endsWith]: optional 'optional_25' #25 - │ │ │ └─ item: string #24 - │ │ └─ [startsWith]: optional 'optional_25' #25 - │ │ └─ item: string #24 - │ └─ variant_1: struct #37 - │ └─ [not]: union '_prisma_string_filter' #36 - │ ├─ variant_0: string #24 - │ ├─ variant_1: struct #27 - │ │ └─ [equals]: string #24 - │ ├─ variant_2: struct #28 - │ │ └─ [not]: string #24 - │ ├─ variant_3: struct #29 - │ │ └─ [in]: list 'list_26' #26 - │ │ └─ item: string #24 - │ ├─ variant_4: struct #30 - │ │ └─ [notIn]: list 'list_26' #26 - │ │ └─ item: string #24 - │ ├─ variant_5: struct #33 - │ │ ├─ [contains]: string #24 - │ │ └─ [mode]: optional 'optional_32' #32 - │ │ └─ item: string #31 enum{ '"insensitive"' } - │ ├─ variant_6: struct #34 - │ │ └─ [search]: string #24 - │ └─ variant_7: struct #35 - │ ├─ [endsWith]: optional 'optional_25' #25 - │ │ └─ item: string #24 - │ └─ [startsWith]: optional 'optional_25' #25 - │ └─ item: string #24 - ├─ [id]: optional 'optional_40' #40 - │ └─ item: optional '_prisma_string_filter_ex' #39 - │ └─ item: union #38 - │ ├─ variant_0: union '_prisma_string_filter' #36 - │ │ ├─ variant_0: string #24 - │ │ ├─ variant_1: struct #27 - │ │ │ └─ [equals]: string #24 - │ │ ├─ variant_2: struct #28 - │ │ │ └─ [not]: string #24 - │ │ ├─ variant_3: struct #29 - │ │ │ └─ [in]: list 'list_26' #26 - │ │ │ └─ item: string #24 - │ │ ├─ variant_4: struct #30 - │ │ │ └─ [notIn]: list 'list_26' #26 - │ │ │ └─ item: string #24 - │ │ ├─ variant_5: struct #33 - │ │ │ ├─ [contains]: string #24 - │ │ │ └─ [mode]: optional 'optional_32' #32 - │ │ │ └─ item: string #31 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #34 - │ │ │ └─ [search]: string #24 - │ │ └─ variant_7: struct #35 - │ │ ├─ [endsWith]: optional 'optional_25' #25 - │ │ │ └─ item: string #24 - │ │ └─ [startsWith]: optional 'optional_25' #25 - │ │ └─ item: string #24 - │ └─ variant_1: struct #37 - │ └─ [not]: union '_prisma_string_filter' #36 - │ ├─ variant_0: string #24 - │ ├─ variant_1: struct #27 - │ │ └─ [equals]: string #24 - │ ├─ variant_2: struct #28 - │ │ └─ [not]: string #24 - │ ├─ variant_3: struct #29 - │ │ └─ [in]: list 'list_26' #26 - │ │ └─ item: string #24 - │ ├─ variant_4: struct #30 - │ │ └─ [notIn]: list 'list_26' #26 - │ │ └─ item: string #24 - │ ├─ variant_5: struct #33 - │ │ ├─ [contains]: string #24 - │ │ └─ [mode]: optional 'optional_32' #32 - │ │ └─ item: string #31 enum{ '"insensitive"' } - │ ├─ variant_6: struct #34 - │ │ └─ [search]: string #24 - │ └─ variant_7: struct #35 - │ ├─ [endsWith]: optional 'optional_25' #25 - │ │ └─ item: string #24 - │ └─ [startsWith]: optional 'optional_25' #25 - │ └─ item: string #24 - └─ [name]: optional 'optional_41' #41 - └─ item: optional '_prisma_string_filter_ex' #39 - └─ item: union #38 - ├─ variant_0: union '_prisma_string_filter' #36 - │ ├─ variant_0: string #24 - │ ├─ variant_1: struct #27 - │ │ └─ [equals]: string #24 - │ ├─ variant_2: struct #28 - │ │ └─ [not]: string #24 - │ ├─ variant_3: struct #29 - │ │ └─ [in]: list 'list_26' #26 - │ │ └─ item: string #24 - │ ├─ variant_4: struct #30 - │ │ └─ [notIn]: list 'list_26' #26 - │ │ └─ item: string #24 - │ ├─ variant_5: struct #33 - │ │ ├─ [contains]: string #24 - │ │ └─ [mode]: optional 'optional_32' #32 - │ │ └─ item: string #31 enum{ '"insensitive"' } - │ ├─ variant_6: struct #34 - │ │ └─ [search]: string #24 - │ └─ variant_7: struct #35 - │ ├─ [endsWith]: optional 'optional_25' #25 - │ │ └─ item: string #24 - │ └─ [startsWith]: optional 'optional_25' #25 - │ └─ item: string #24 - └─ variant_1: struct #37 - └─ [not]: union '_prisma_string_filter' #36 - ├─ variant_0: string #24 - ├─ variant_1: struct #27 - │ └─ [equals]: string #24 - ├─ variant_2: struct #28 - │ └─ [not]: string #24 - ├─ variant_3: struct #29 - │ └─ [in]: list 'list_26' #26 - │ └─ item: string #24 - ├─ variant_4: struct #30 - │ └─ [notIn]: list 'list_26' #26 - │ └─ item: string #24 - ├─ variant_5: struct #33 - │ ├─ [contains]: string #24 - │ └─ [mode]: optional 'optional_32' #32 - │ └─ item: string #31 enum{ '"insensitive"' } - ├─ variant_6: struct #34 - │ └─ [search]: string #24 - └─ variant_7: struct #35 - ├─ [endsWith]: optional 'optional_25' #25 - │ └─ item: string #24 - └─ [startsWith]: optional 'optional_25' #25 - └─ item: string #24 +│ ├─ [id]: optional 'optional_13' #14 +│ │ └─ item: union #12 +│ │ ├─ variant_0: string #4 +│ │ └─ variant_1: struct #11 +│ │ └─ [set]: string #4 +│ └─ [name]: optional 'optional_17' #18 +│ └─ item: union #16 +│ ├─ variant_0: string #5 +│ └─ variant_1: struct #15 +│ └─ [set]: string #5 +└─ [where]: struct 'Record_query_where_unique_input' #89 + ├─ [AND]: optional 'optional_84' #85 + │ └─ item: list 'list_82' #83 + │ └─ item: &Record_query_where_unique_input #81 + ├─ [NOT]: optional 'optional_86' #87 + │ └─ item: &Record_query_where_unique_input #81 + ├─ [OR]: optional 'optional_84' #85 + │ └─ item: list 'list_82' #83 + │ └─ item: &Record_query_where_unique_input #81 + ├─ [age]: optional 'optional_75' #76 + │ └─ item: optional '_prisma_integer_filter_ex' #74 + │ └─ item: union #71 + │ ├─ variant_0: either '_prisma_integer_filter' #69 + │ │ ├─ variant_0: integer #58 + │ │ ├─ variant_1: struct #63 + │ │ │ └─ [equals]: integer #58 + │ │ ├─ variant_2: struct #64 + │ │ │ └─ [not]: integer #58 + │ │ ├─ variant_3: struct #65 + │ │ │ ├─ [gt]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ [gte]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ [lt]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ └─ [lte]: optional 'optional_59' #60 + │ │ │ └─ item: integer #58 + │ │ ├─ variant_4: struct #66 + │ │ │ └─ [in]: list 'list_61' #62 + │ │ │ └─ item: integer #58 + │ │ └─ variant_5: struct #67 + │ │ └─ [notIn]: list 'list_61' #62 + │ │ └─ item: integer #58 + │ └─ variant_1: struct #70 + │ └─ [not]: either '_prisma_integer_filter' #69 + │ ├─ variant_0: integer #58 + │ ├─ variant_1: struct #63 + │ │ └─ [equals]: integer #58 + │ ├─ variant_2: struct #64 + │ │ └─ [not]: integer #58 + │ ├─ variant_3: struct #65 + │ │ ├─ [gt]: optional 'optional_59' #60 + │ │ │ └─ item: integer #58 + │ │ ├─ [gte]: optional 'optional_59' #60 + │ │ │ └─ item: integer #58 + │ │ ├─ [lt]: optional 'optional_59' #60 + │ │ │ └─ item: integer #58 + │ │ └─ [lte]: optional 'optional_59' #60 + │ │ └─ item: integer #58 + │ ├─ variant_4: struct #66 + │ │ └─ [in]: list 'list_61' #62 + │ │ └─ item: integer #58 + │ └─ variant_5: struct #67 + │ └─ [notIn]: list 'list_61' #62 + │ └─ item: integer #58 + ├─ [created_at]: optional 'optional_77' #78 + │ └─ item: optional '_prisma_string_filter_ex' #53 + │ └─ item: union #50 + │ ├─ variant_0: union '_prisma_string_filter' #48 + │ │ ├─ variant_0: string #32 + │ │ ├─ variant_1: struct #37 + │ │ │ └─ [equals]: string #32 + │ │ ├─ variant_2: struct #38 + │ │ │ └─ [not]: string #32 + │ │ ├─ variant_3: struct #39 + │ │ │ └─ [in]: list 'list_35' #36 + │ │ │ └─ item: string #32 + │ │ ├─ variant_4: struct #40 + │ │ │ └─ [notIn]: list 'list_35' #36 + │ │ │ └─ item: string #32 + │ │ ├─ variant_5: struct #44 + │ │ │ ├─ [contains]: string #32 + │ │ │ └─ [mode]: optional 'optional_42' #43 + │ │ │ └─ item: string #41 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #45 + │ │ │ └─ [search]: string #32 + │ │ └─ variant_7: struct #46 + │ │ ├─ [endsWith]: optional 'optional_33' #34 + │ │ │ └─ item: string #32 + │ │ └─ [startsWith]: optional 'optional_33' #34 + │ │ └─ item: string #32 + │ └─ variant_1: struct #49 + │ └─ [not]: union '_prisma_string_filter' #48 + │ ├─ variant_0: string #32 + │ ├─ variant_1: struct #37 + │ │ └─ [equals]: string #32 + │ ├─ variant_2: struct #38 + │ │ └─ [not]: string #32 + │ ├─ variant_3: struct #39 + │ │ └─ [in]: list 'list_35' #36 + │ │ └─ item: string #32 + │ ├─ variant_4: struct #40 + │ │ └─ [notIn]: list 'list_35' #36 + │ │ └─ item: string #32 + │ ├─ variant_5: struct #44 + │ │ ├─ [contains]: string #32 + │ │ └─ [mode]: optional 'optional_42' #43 + │ │ └─ item: string #41 enum{ '"insensitive"' } + │ ├─ variant_6: struct #45 + │ │ └─ [search]: string #32 + │ └─ variant_7: struct #46 + │ ├─ [endsWith]: optional 'optional_33' #34 + │ │ └─ item: string #32 + │ └─ [startsWith]: optional 'optional_33' #34 + │ └─ item: string #32 + ├─ [id]: optional 'optional_54' #55 + │ └─ item: optional '_prisma_string_filter_ex' #53 + │ └─ item: union #50 + │ ├─ variant_0: union '_prisma_string_filter' #48 + │ │ ├─ variant_0: string #32 + │ │ ├─ variant_1: struct #37 + │ │ │ └─ [equals]: string #32 + │ │ ├─ variant_2: struct #38 + │ │ │ └─ [not]: string #32 + │ │ ├─ variant_3: struct #39 + │ │ │ └─ [in]: list 'list_35' #36 + │ │ │ └─ item: string #32 + │ │ ├─ variant_4: struct #40 + │ │ │ └─ [notIn]: list 'list_35' #36 + │ │ │ └─ item: string #32 + │ │ ├─ variant_5: struct #44 + │ │ │ ├─ [contains]: string #32 + │ │ │ └─ [mode]: optional 'optional_42' #43 + │ │ │ └─ item: string #41 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #45 + │ │ │ └─ [search]: string #32 + │ │ └─ variant_7: struct #46 + │ │ ├─ [endsWith]: optional 'optional_33' #34 + │ │ │ └─ item: string #32 + │ │ └─ [startsWith]: optional 'optional_33' #34 + │ │ └─ item: string #32 + │ └─ variant_1: struct #49 + │ └─ [not]: union '_prisma_string_filter' #48 + │ ├─ variant_0: string #32 + │ ├─ variant_1: struct #37 + │ │ └─ [equals]: string #32 + │ ├─ variant_2: struct #38 + │ │ └─ [not]: string #32 + │ ├─ variant_3: struct #39 + │ │ └─ [in]: list 'list_35' #36 + │ │ └─ item: string #32 + │ ├─ variant_4: struct #40 + │ │ └─ [notIn]: list 'list_35' #36 + │ │ └─ item: string #32 + │ ├─ variant_5: struct #44 + │ │ ├─ [contains]: string #32 + │ │ └─ [mode]: optional 'optional_42' #43 + │ │ └─ item: string #41 enum{ '"insensitive"' } + │ ├─ variant_6: struct #45 + │ │ └─ [search]: string #32 + │ └─ variant_7: struct #46 + │ ├─ [endsWith]: optional 'optional_33' #34 + │ │ └─ item: string #32 + │ └─ [startsWith]: optional 'optional_33' #34 + │ └─ item: string #32 + └─ [name]: optional 'optional_56' #57 + └─ item: optional '_prisma_string_filter_ex' #53 + └─ item: union #50 + ├─ variant_0: union '_prisma_string_filter' #48 + │ ├─ variant_0: string #32 + │ ├─ variant_1: struct #37 + │ │ └─ [equals]: string #32 + │ ├─ variant_2: struct #38 + │ │ └─ [not]: string #32 + │ ├─ variant_3: struct #39 + │ │ └─ [in]: list 'list_35' #36 + │ │ └─ item: string #32 + │ ├─ variant_4: struct #40 + │ │ └─ [notIn]: list 'list_35' #36 + │ │ └─ item: string #32 + │ ├─ variant_5: struct #44 + │ │ ├─ [contains]: string #32 + │ │ └─ [mode]: optional 'optional_42' #43 + │ │ └─ item: string #41 enum{ '"insensitive"' } + │ ├─ variant_6: struct #45 + │ │ └─ [search]: string #32 + │ └─ variant_7: struct #46 + │ ├─ [endsWith]: optional 'optional_33' #34 + │ │ └─ item: string #32 + │ └─ [startsWith]: optional 'optional_33' #34 + │ └─ item: string #32 + └─ variant_1: struct #49 + └─ [not]: union '_prisma_string_filter' #48 + ├─ variant_0: string #32 + ├─ variant_1: struct #37 + │ └─ [equals]: string #32 + ├─ variant_2: struct #38 + │ └─ [not]: string #32 + ├─ variant_3: struct #39 + │ └─ [in]: list 'list_35' #36 + │ └─ item: string #32 + ├─ variant_4: struct #40 + │ └─ [notIn]: list 'list_35' #36 + │ └─ item: string #32 + ├─ variant_5: struct #44 + │ ├─ [contains]: string #32 + │ └─ [mode]: optional 'optional_42' #43 + │ └─ item: string #41 enum{ '"insensitive"' } + ├─ variant_6: struct #45 + │ └─ [search]: string #32 + └─ variant_7: struct #46 + ├─ [endsWith]: optional 'optional_33' #34 + │ └─ item: string #32 + └─ [startsWith]: optional 'optional_33' #34 + └─ item: string #32 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__update_one User inp.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__update_one User inp.snap index 317bf28851..b592848ba5 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__update_one User inp.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__test__update_one User inp.snap @@ -2,2168 +2,2489 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs expression: tp.print(inp) --- -root: struct #154 -├─ [data]: struct 'User_update_input' #132 -│ ├─ [id]: optional 'optional_79' #79 -│ │ └─ item: union #78 -│ │ ├─ variant_0: integer #64 -│ │ ├─ variant_1: struct #74 -│ │ │ └─ [set]: integer #64 -│ │ ├─ variant_2: struct #75 -│ │ │ └─ [multiply]: integer #63 -│ │ ├─ variant_3: struct #76 -│ │ │ └─ [decrement]: integer #63 -│ │ └─ variant_4: struct #77 -│ │ └─ [increment]: integer #63 -│ ├─ [name]: optional 'optional_82' #82 -│ │ └─ item: union #81 -│ │ ├─ variant_0: string #65 -│ │ └─ variant_1: struct #80 -│ │ └─ [set]: string #65 -│ └─ [posts]: optional 'optional_131' #131 -│ └─ item: union #130 -│ ├─ variant_0: struct #106 -│ │ └─ [create]: union #86 -│ │ ├─ variant_0: struct 'Post_create_input_excluding_rel_Post_User' #84 -│ │ │ ├─ [id]: optional 'optional_83' #83 -│ │ │ │ └─ item: integer #69 -│ │ │ └─ [title]: string #71 -│ │ └─ variant_1: list 'list_85' #85 -│ │ └─ item: struct 'Post_create_input_excluding_rel_Post_User' #84 -│ │ ├─ [id]: optional 'optional_83' #83 -│ │ │ └─ item: integer #69 -│ │ └─ [title]: string #71 -│ ├─ variant_1: struct #107 -│ │ └─ [connect]: union #104 -│ │ ├─ variant_0: struct 'Post_where' #102 -│ │ │ ├─ [author]: optional 'optional_101' #101 -│ │ │ │ └─ item: struct 'User_where_excluding_Post' #100 -│ │ │ │ ├─ [id]: optional 'optional_89' #89 -│ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ │ │ └─ item: union #52 -│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_1: struct #51 -│ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ [name]: optional 'optional_90' #90 -│ │ │ │ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ │ │ │ └─ item: union #38 -│ │ │ │ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ │ │ │ ├─ variant_0: string #24 -│ │ │ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ │ │ └─ [not]: string #24 -│ │ │ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ │ │ └─ [search]: string #24 -│ │ │ │ │ │ └─ variant_7: struct #35 -│ │ │ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ └─ variant_1: struct #37 -│ │ │ │ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ │ │ │ ├─ variant_0: string #24 -│ │ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ │ └─ [not]: string #24 -│ │ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ │ └─ [search]: string #24 -│ │ │ │ │ └─ variant_7: struct #35 -│ │ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ [posts]: optional 'optional_99' #99 -│ │ │ │ └─ item: union #98 -│ │ │ │ ├─ variant_0: struct #93 -│ │ │ │ │ └─ [every]: optional 'optional_92' #92 -│ │ │ │ │ └─ item: &Post_where #91 -│ │ │ │ ├─ variant_1: struct #95 -│ │ │ │ │ └─ [some]: optional 'optional_94' #94 -│ │ │ │ │ └─ item: &Post_where #91 -│ │ │ │ └─ variant_2: struct #97 -│ │ │ │ └─ [none]: optional 'optional_96' #96 -│ │ │ │ └─ item: &Post_where #91 -│ │ │ ├─ [id]: optional 'optional_87' #87 -│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ │ └─ item: union #52 -│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_1: struct #51 -│ │ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_5: struct #49 -│ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ └─ item: integer #42 -│ │ │ └─ [title]: optional 'optional_88' #88 -│ │ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ │ └─ item: union #38 -│ │ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ │ ├─ variant_0: string #24 -│ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ └─ [not]: string #24 -│ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ └─ [search]: string #24 -│ │ │ │ └─ variant_7: struct #35 -│ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ variant_1: struct #37 -│ │ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ │ ├─ variant_0: string #24 -│ │ │ ├─ variant_1: struct #27 -│ │ │ │ └─ [equals]: string #24 -│ │ │ ├─ variant_2: struct #28 -│ │ │ │ └─ [not]: string #24 -│ │ │ ├─ variant_3: struct #29 -│ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_4: struct #30 -│ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_5: struct #33 -│ │ │ │ ├─ [contains]: string #24 -│ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ ├─ variant_6: struct #34 -│ │ │ │ └─ [search]: string #24 -│ │ │ └─ variant_7: struct #35 -│ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ └─ item: string #24 -│ │ └─ variant_1: list 'list_103' #103 -│ │ └─ item: struct 'Post_where' #102 -│ │ ├─ [author]: optional 'optional_101' #101 -│ │ │ └─ item: struct 'User_where_excluding_Post' #100 -│ │ │ ├─ [id]: optional 'optional_89' #89 -│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ │ └─ item: union #52 -│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_1: struct #51 -│ │ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_5: struct #49 -│ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ └─ item: integer #42 -│ │ │ ├─ [name]: optional 'optional_90' #90 -│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ │ │ └─ item: union #38 -│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ │ │ ├─ variant_0: string #24 -│ │ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ │ └─ [not]: string #24 -│ │ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ │ └─ [search]: string #24 -│ │ │ │ │ └─ variant_7: struct #35 -│ │ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ variant_1: struct #37 -│ │ │ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ │ │ ├─ variant_0: string #24 -│ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ └─ [not]: string #24 -│ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ └─ [search]: string #24 -│ │ │ │ └─ variant_7: struct #35 -│ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ [posts]: optional 'optional_99' #99 -│ │ │ └─ item: union #98 -│ │ │ ├─ variant_0: struct #93 -│ │ │ │ └─ [every]: optional 'optional_92' #92 -│ │ │ │ └─ item: &Post_where #91 -│ │ │ ├─ variant_1: struct #95 -│ │ │ │ └─ [some]: optional 'optional_94' #94 -│ │ │ │ └─ item: &Post_where #91 -│ │ │ └─ variant_2: struct #97 -│ │ │ └─ [none]: optional 'optional_96' #96 -│ │ │ └─ item: &Post_where #91 -│ │ ├─ [id]: optional 'optional_87' #87 -│ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ └─ item: union #52 -│ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_5: struct #49 -│ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ └─ item: integer #42 -│ │ │ └─ variant_1: struct #51 -│ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ ├─ variant_0: integer #42 -│ │ │ ├─ variant_1: struct #45 -│ │ │ │ └─ [equals]: integer #42 -│ │ │ ├─ variant_2: struct #46 -│ │ │ │ └─ [not]: integer #42 -│ │ │ ├─ variant_3: struct #47 -│ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ └─ item: integer #42 -│ │ │ ├─ variant_4: struct #48 -│ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ └─ item: integer #42 -│ │ │ └─ variant_5: struct #49 -│ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ └─ item: integer #42 -│ │ └─ [title]: optional 'optional_88' #88 -│ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ └─ item: union #38 -│ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ ├─ variant_0: string #24 -│ │ │ ├─ variant_1: struct #27 -│ │ │ │ └─ [equals]: string #24 -│ │ │ ├─ variant_2: struct #28 -│ │ │ │ └─ [not]: string #24 -│ │ │ ├─ variant_3: struct #29 -│ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_4: struct #30 -│ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_5: struct #33 -│ │ │ │ ├─ [contains]: string #24 -│ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ ├─ variant_6: struct #34 -│ │ │ │ └─ [search]: string #24 -│ │ │ └─ variant_7: struct #35 -│ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ └─ item: string #24 -│ │ └─ variant_1: struct #37 -│ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ ├─ variant_0: string #24 -│ │ ├─ variant_1: struct #27 -│ │ │ └─ [equals]: string #24 -│ │ ├─ variant_2: struct #28 -│ │ │ └─ [not]: string #24 -│ │ ├─ variant_3: struct #29 -│ │ │ └─ [in]: list 'list_26' #26 -│ │ │ └─ item: string #24 -│ │ ├─ variant_4: struct #30 -│ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ └─ item: string #24 -│ │ ├─ variant_5: struct #33 -│ │ │ ├─ [contains]: string #24 -│ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ ├─ variant_6: struct #34 -│ │ │ └─ [search]: string #24 -│ │ └─ variant_7: struct #35 -│ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ └─ item: string #24 -│ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ └─ item: string #24 -│ ├─ variant_2: struct #108 -│ │ └─ [connectOrCreate]: struct #105 -│ │ ├─ [create]: union #86 -│ │ │ ├─ variant_0: struct 'Post_create_input_excluding_rel_Post_User' #84 -│ │ │ │ ├─ [id]: optional 'optional_83' #83 -│ │ │ │ │ └─ item: integer #69 -│ │ │ │ └─ [title]: string #71 -│ │ │ └─ variant_1: list 'list_85' #85 -│ │ │ └─ item: struct 'Post_create_input_excluding_rel_Post_User' #84 -│ │ │ ├─ [id]: optional 'optional_83' #83 -│ │ │ │ └─ item: integer #69 -│ │ │ └─ [title]: string #71 -│ │ └─ [where]: union #104 -│ │ ├─ variant_0: struct 'Post_where' #102 -│ │ │ ├─ [author]: optional 'optional_101' #101 -│ │ │ │ └─ item: struct 'User_where_excluding_Post' #100 -│ │ │ │ ├─ [id]: optional 'optional_89' #89 -│ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ │ │ └─ item: union #52 -│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_1: struct #51 -│ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ [name]: optional 'optional_90' #90 -│ │ │ │ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ │ │ │ └─ item: union #38 -│ │ │ │ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ │ │ │ ├─ variant_0: string #24 -│ │ │ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ │ │ └─ [not]: string #24 -│ │ │ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ │ │ └─ [search]: string #24 -│ │ │ │ │ │ └─ variant_7: struct #35 -│ │ │ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ └─ variant_1: struct #37 -│ │ │ │ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ │ │ │ ├─ variant_0: string #24 -│ │ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ │ └─ [not]: string #24 -│ │ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ │ └─ [search]: string #24 -│ │ │ │ │ └─ variant_7: struct #35 -│ │ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ [posts]: optional 'optional_99' #99 -│ │ │ │ └─ item: union #98 -│ │ │ │ ├─ variant_0: struct #93 -│ │ │ │ │ └─ [every]: optional 'optional_92' #92 -│ │ │ │ │ └─ item: &Post_where #91 -│ │ │ │ ├─ variant_1: struct #95 -│ │ │ │ │ └─ [some]: optional 'optional_94' #94 -│ │ │ │ │ └─ item: &Post_where #91 -│ │ │ │ └─ variant_2: struct #97 -│ │ │ │ └─ [none]: optional 'optional_96' #96 -│ │ │ │ └─ item: &Post_where #91 -│ │ │ ├─ [id]: optional 'optional_87' #87 -│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ │ └─ item: union #52 -│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_1: struct #51 -│ │ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_5: struct #49 -│ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ └─ item: integer #42 -│ │ │ └─ [title]: optional 'optional_88' #88 -│ │ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ │ └─ item: union #38 -│ │ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ │ ├─ variant_0: string #24 -│ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ └─ [not]: string #24 -│ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ └─ [search]: string #24 -│ │ │ │ └─ variant_7: struct #35 -│ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ variant_1: struct #37 -│ │ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ │ ├─ variant_0: string #24 -│ │ │ ├─ variant_1: struct #27 -│ │ │ │ └─ [equals]: string #24 -│ │ │ ├─ variant_2: struct #28 -│ │ │ │ └─ [not]: string #24 -│ │ │ ├─ variant_3: struct #29 -│ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_4: struct #30 -│ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_5: struct #33 -│ │ │ │ ├─ [contains]: string #24 -│ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ ├─ variant_6: struct #34 -│ │ │ │ └─ [search]: string #24 -│ │ │ └─ variant_7: struct #35 -│ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ └─ item: string #24 -│ │ └─ variant_1: list 'list_103' #103 -│ │ └─ item: struct 'Post_where' #102 -│ │ ├─ [author]: optional 'optional_101' #101 -│ │ │ └─ item: struct 'User_where_excluding_Post' #100 -│ │ │ ├─ [id]: optional 'optional_89' #89 -│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ │ └─ item: union #52 -│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_1: struct #51 -│ │ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_5: struct #49 -│ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ └─ item: integer #42 -│ │ │ ├─ [name]: optional 'optional_90' #90 -│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ │ │ └─ item: union #38 -│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ │ │ ├─ variant_0: string #24 -│ │ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ │ └─ [not]: string #24 -│ │ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ │ └─ [search]: string #24 -│ │ │ │ │ └─ variant_7: struct #35 -│ │ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ variant_1: struct #37 -│ │ │ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ │ │ ├─ variant_0: string #24 -│ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ └─ [not]: string #24 -│ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ └─ [search]: string #24 -│ │ │ │ └─ variant_7: struct #35 -│ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ [posts]: optional 'optional_99' #99 -│ │ │ └─ item: union #98 -│ │ │ ├─ variant_0: struct #93 -│ │ │ │ └─ [every]: optional 'optional_92' #92 -│ │ │ │ └─ item: &Post_where #91 -│ │ │ ├─ variant_1: struct #95 -│ │ │ │ └─ [some]: optional 'optional_94' #94 -│ │ │ │ └─ item: &Post_where #91 -│ │ │ └─ variant_2: struct #97 -│ │ │ └─ [none]: optional 'optional_96' #96 -│ │ │ └─ item: &Post_where #91 -│ │ ├─ [id]: optional 'optional_87' #87 -│ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ └─ item: union #52 -│ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_5: struct #49 -│ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ └─ item: integer #42 -│ │ │ └─ variant_1: struct #51 -│ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ ├─ variant_0: integer #42 -│ │ │ ├─ variant_1: struct #45 -│ │ │ │ └─ [equals]: integer #42 -│ │ │ ├─ variant_2: struct #46 -│ │ │ │ └─ [not]: integer #42 -│ │ │ ├─ variant_3: struct #47 -│ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ └─ item: integer #42 -│ │ │ ├─ variant_4: struct #48 -│ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ └─ item: integer #42 -│ │ │ └─ variant_5: struct #49 -│ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ └─ item: integer #42 -│ │ └─ [title]: optional 'optional_88' #88 -│ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ └─ item: union #38 -│ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ ├─ variant_0: string #24 -│ │ │ ├─ variant_1: struct #27 -│ │ │ │ └─ [equals]: string #24 -│ │ │ ├─ variant_2: struct #28 -│ │ │ │ └─ [not]: string #24 -│ │ │ ├─ variant_3: struct #29 -│ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_4: struct #30 -│ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_5: struct #33 -│ │ │ │ ├─ [contains]: string #24 -│ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ ├─ variant_6: struct #34 -│ │ │ │ └─ [search]: string #24 -│ │ │ └─ variant_7: struct #35 -│ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ └─ item: string #24 -│ │ └─ variant_1: struct #37 -│ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ ├─ variant_0: string #24 -│ │ ├─ variant_1: struct #27 -│ │ │ └─ [equals]: string #24 -│ │ ├─ variant_2: struct #28 -│ │ │ └─ [not]: string #24 -│ │ ├─ variant_3: struct #29 -│ │ │ └─ [in]: list 'list_26' #26 -│ │ │ └─ item: string #24 -│ │ ├─ variant_4: struct #30 -│ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ └─ item: string #24 -│ │ ├─ variant_5: struct #33 -│ │ │ ├─ [contains]: string #24 -│ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ ├─ variant_6: struct #34 -│ │ │ └─ [search]: string #24 -│ │ └─ variant_7: struct #35 -│ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ └─ item: string #24 -│ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ └─ item: string #24 -│ ├─ variant_3: struct #119 -│ │ └─ [update]: struct 'Post_update_input_excluding_rel_Post_User' #118 -│ │ ├─ [id]: optional 'optional_114' #114 -│ │ │ └─ item: union #113 -│ │ │ ├─ variant_0: integer #70 -│ │ │ ├─ variant_1: struct #109 -│ │ │ │ └─ [set]: integer #70 -│ │ │ ├─ variant_2: struct #110 -│ │ │ │ └─ [multiply]: integer #69 -│ │ │ ├─ variant_3: struct #111 -│ │ │ │ └─ [decrement]: integer #69 -│ │ │ └─ variant_4: struct #112 -│ │ │ └─ [increment]: integer #69 -│ │ └─ [title]: optional 'optional_117' #117 -│ │ └─ item: union #116 -│ │ ├─ variant_0: string #71 -│ │ └─ variant_1: struct #115 -│ │ └─ [set]: string #71 -│ ├─ variant_4: struct #122 -│ │ └─ [updateMany]: struct #121 -│ │ ├─ [data]: struct 'Post_update_input_excluding_rel_Post_User' #118 -│ │ │ ├─ [id]: optional 'optional_114' #114 -│ │ │ │ └─ item: union #113 -│ │ │ │ ├─ variant_0: integer #70 -│ │ │ │ ├─ variant_1: struct #109 -│ │ │ │ │ └─ [set]: integer #70 -│ │ │ │ ├─ variant_2: struct #110 -│ │ │ │ │ └─ [multiply]: integer #69 -│ │ │ │ ├─ variant_3: struct #111 -│ │ │ │ │ └─ [decrement]: integer #69 -│ │ │ │ └─ variant_4: struct #112 -│ │ │ │ └─ [increment]: integer #69 -│ │ │ └─ [title]: optional 'optional_117' #117 -│ │ │ └─ item: union #116 -│ │ │ ├─ variant_0: string #71 -│ │ │ └─ variant_1: struct #115 -│ │ │ └─ [set]: string #71 -│ │ └─ [where]: optional 'optional_120' #120 -│ │ └─ item: union #104 -│ │ ├─ variant_0: struct 'Post_where' #102 -│ │ │ ├─ [author]: optional 'optional_101' #101 -│ │ │ │ └─ item: struct 'User_where_excluding_Post' #100 -│ │ │ │ ├─ [id]: optional 'optional_89' #89 -│ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ │ │ └─ item: union #52 -│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_1: struct #51 -│ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ [name]: optional 'optional_90' #90 -│ │ │ │ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ │ │ │ └─ item: union #38 -│ │ │ │ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ │ │ │ ├─ variant_0: string #24 -│ │ │ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ │ │ └─ [not]: string #24 -│ │ │ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ │ │ └─ [search]: string #24 -│ │ │ │ │ │ └─ variant_7: struct #35 -│ │ │ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ └─ variant_1: struct #37 -│ │ │ │ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ │ │ │ ├─ variant_0: string #24 -│ │ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ │ └─ [not]: string #24 -│ │ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ │ └─ [search]: string #24 -│ │ │ │ │ └─ variant_7: struct #35 -│ │ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ [posts]: optional 'optional_99' #99 -│ │ │ │ └─ item: union #98 -│ │ │ │ ├─ variant_0: struct #93 -│ │ │ │ │ └─ [every]: optional 'optional_92' #92 -│ │ │ │ │ └─ item: &Post_where #91 -│ │ │ │ ├─ variant_1: struct #95 -│ │ │ │ │ └─ [some]: optional 'optional_94' #94 -│ │ │ │ │ └─ item: &Post_where #91 -│ │ │ │ └─ variant_2: struct #97 -│ │ │ │ └─ [none]: optional 'optional_96' #96 -│ │ │ │ └─ item: &Post_where #91 -│ │ │ ├─ [id]: optional 'optional_87' #87 -│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ │ └─ item: union #52 -│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_1: struct #51 -│ │ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_5: struct #49 -│ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ └─ item: integer #42 -│ │ │ └─ [title]: optional 'optional_88' #88 -│ │ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ │ └─ item: union #38 -│ │ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ │ ├─ variant_0: string #24 -│ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ └─ [not]: string #24 -│ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ └─ [search]: string #24 -│ │ │ │ └─ variant_7: struct #35 -│ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ variant_1: struct #37 -│ │ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ │ ├─ variant_0: string #24 -│ │ │ ├─ variant_1: struct #27 -│ │ │ │ └─ [equals]: string #24 -│ │ │ ├─ variant_2: struct #28 -│ │ │ │ └─ [not]: string #24 -│ │ │ ├─ variant_3: struct #29 -│ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_4: struct #30 -│ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_5: struct #33 -│ │ │ │ ├─ [contains]: string #24 -│ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ ├─ variant_6: struct #34 -│ │ │ │ └─ [search]: string #24 -│ │ │ └─ variant_7: struct #35 -│ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ └─ item: string #24 -│ │ └─ variant_1: list 'list_103' #103 -│ │ └─ item: struct 'Post_where' #102 -│ │ ├─ [author]: optional 'optional_101' #101 -│ │ │ └─ item: struct 'User_where_excluding_Post' #100 -│ │ │ ├─ [id]: optional 'optional_89' #89 -│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ │ └─ item: union #52 -│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_1: struct #51 -│ │ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_5: struct #49 -│ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ └─ item: integer #42 -│ │ │ ├─ [name]: optional 'optional_90' #90 -│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ │ │ └─ item: union #38 -│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ │ │ ├─ variant_0: string #24 -│ │ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ │ └─ [not]: string #24 -│ │ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ │ └─ [search]: string #24 -│ │ │ │ │ └─ variant_7: struct #35 -│ │ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ variant_1: struct #37 -│ │ │ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ │ │ ├─ variant_0: string #24 -│ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ └─ [not]: string #24 -│ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ └─ [search]: string #24 -│ │ │ │ └─ variant_7: struct #35 -│ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ [posts]: optional 'optional_99' #99 -│ │ │ └─ item: union #98 -│ │ │ ├─ variant_0: struct #93 -│ │ │ │ └─ [every]: optional 'optional_92' #92 -│ │ │ │ └─ item: &Post_where #91 -│ │ │ ├─ variant_1: struct #95 -│ │ │ │ └─ [some]: optional 'optional_94' #94 -│ │ │ │ └─ item: &Post_where #91 -│ │ │ └─ variant_2: struct #97 -│ │ │ └─ [none]: optional 'optional_96' #96 -│ │ │ └─ item: &Post_where #91 -│ │ ├─ [id]: optional 'optional_87' #87 -│ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ └─ item: union #52 -│ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_5: struct #49 -│ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ └─ item: integer #42 -│ │ │ └─ variant_1: struct #51 -│ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ ├─ variant_0: integer #42 -│ │ │ ├─ variant_1: struct #45 -│ │ │ │ └─ [equals]: integer #42 -│ │ │ ├─ variant_2: struct #46 -│ │ │ │ └─ [not]: integer #42 -│ │ │ ├─ variant_3: struct #47 -│ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ └─ item: integer #42 -│ │ │ ├─ variant_4: struct #48 -│ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ └─ item: integer #42 -│ │ │ └─ variant_5: struct #49 -│ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ └─ item: integer #42 -│ │ └─ [title]: optional 'optional_88' #88 -│ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ └─ item: union #38 -│ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ ├─ variant_0: string #24 -│ │ │ ├─ variant_1: struct #27 -│ │ │ │ └─ [equals]: string #24 -│ │ │ ├─ variant_2: struct #28 -│ │ │ │ └─ [not]: string #24 -│ │ │ ├─ variant_3: struct #29 -│ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_4: struct #30 -│ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_5: struct #33 -│ │ │ │ ├─ [contains]: string #24 -│ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ ├─ variant_6: struct #34 -│ │ │ │ └─ [search]: string #24 -│ │ │ └─ variant_7: struct #35 -│ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ └─ item: string #24 -│ │ └─ variant_1: struct #37 -│ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ ├─ variant_0: string #24 -│ │ ├─ variant_1: struct #27 -│ │ │ └─ [equals]: string #24 -│ │ ├─ variant_2: struct #28 -│ │ │ └─ [not]: string #24 -│ │ ├─ variant_3: struct #29 -│ │ │ └─ [in]: list 'list_26' #26 -│ │ │ └─ item: string #24 -│ │ ├─ variant_4: struct #30 -│ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ └─ item: string #24 -│ │ ├─ variant_5: struct #33 -│ │ │ ├─ [contains]: string #24 -│ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ ├─ variant_6: struct #34 -│ │ │ └─ [search]: string #24 -│ │ └─ variant_7: struct #35 -│ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ └─ item: string #24 -│ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ └─ item: string #24 -│ ├─ variant_5: struct #125 -│ │ └─ [deleteMany]: struct #124 -│ │ └─ [where]: optional 'optional_123' #123 -│ │ └─ item: union #104 -│ │ ├─ variant_0: struct 'Post_where' #102 -│ │ │ ├─ [author]: optional 'optional_101' #101 -│ │ │ │ └─ item: struct 'User_where_excluding_Post' #100 -│ │ │ │ ├─ [id]: optional 'optional_89' #89 -│ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ │ │ └─ item: union #52 -│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_1: struct #51 -│ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ [name]: optional 'optional_90' #90 -│ │ │ │ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ │ │ │ └─ item: union #38 -│ │ │ │ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ │ │ │ ├─ variant_0: string #24 -│ │ │ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ │ │ └─ [not]: string #24 -│ │ │ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ │ │ └─ [search]: string #24 -│ │ │ │ │ │ └─ variant_7: struct #35 -│ │ │ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ └─ variant_1: struct #37 -│ │ │ │ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ │ │ │ ├─ variant_0: string #24 -│ │ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ │ └─ [not]: string #24 -│ │ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ │ └─ [search]: string #24 -│ │ │ │ │ └─ variant_7: struct #35 -│ │ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ [posts]: optional 'optional_99' #99 -│ │ │ │ └─ item: union #98 -│ │ │ │ ├─ variant_0: struct #93 -│ │ │ │ │ └─ [every]: optional 'optional_92' #92 -│ │ │ │ │ └─ item: &Post_where #91 -│ │ │ │ ├─ variant_1: struct #95 -│ │ │ │ │ └─ [some]: optional 'optional_94' #94 -│ │ │ │ │ └─ item: &Post_where #91 -│ │ │ │ └─ variant_2: struct #97 -│ │ │ │ └─ [none]: optional 'optional_96' #96 -│ │ │ │ └─ item: &Post_where #91 -│ │ │ ├─ [id]: optional 'optional_87' #87 -│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ │ └─ item: union #52 -│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_1: struct #51 -│ │ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_5: struct #49 -│ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ └─ item: integer #42 -│ │ │ └─ [title]: optional 'optional_88' #88 -│ │ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ │ └─ item: union #38 -│ │ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ │ ├─ variant_0: string #24 -│ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ └─ [not]: string #24 -│ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ └─ [search]: string #24 -│ │ │ │ └─ variant_7: struct #35 -│ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ variant_1: struct #37 -│ │ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ │ ├─ variant_0: string #24 -│ │ │ ├─ variant_1: struct #27 -│ │ │ │ └─ [equals]: string #24 -│ │ │ ├─ variant_2: struct #28 -│ │ │ │ └─ [not]: string #24 -│ │ │ ├─ variant_3: struct #29 -│ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_4: struct #30 -│ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_5: struct #33 -│ │ │ │ ├─ [contains]: string #24 -│ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ ├─ variant_6: struct #34 -│ │ │ │ └─ [search]: string #24 -│ │ │ └─ variant_7: struct #35 -│ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ └─ item: string #24 -│ │ └─ variant_1: list 'list_103' #103 -│ │ └─ item: struct 'Post_where' #102 -│ │ ├─ [author]: optional 'optional_101' #101 -│ │ │ └─ item: struct 'User_where_excluding_Post' #100 -│ │ │ ├─ [id]: optional 'optional_89' #89 -│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ │ └─ item: union #52 -│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ variant_5: struct #49 -│ │ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_1: struct #51 -│ │ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_5: struct #49 -│ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ └─ item: integer #42 -│ │ │ ├─ [name]: optional 'optional_90' #90 -│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ │ │ └─ item: union #38 -│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ │ │ ├─ variant_0: string #24 -│ │ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ │ └─ [not]: string #24 -│ │ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ │ └─ [search]: string #24 -│ │ │ │ │ └─ variant_7: struct #35 -│ │ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ │ └─ item: string #24 -│ │ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ variant_1: struct #37 -│ │ │ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ │ │ ├─ variant_0: string #24 -│ │ │ │ ├─ variant_1: struct #27 -│ │ │ │ │ └─ [equals]: string #24 -│ │ │ │ ├─ variant_2: struct #28 -│ │ │ │ │ └─ [not]: string #24 -│ │ │ │ ├─ variant_3: struct #29 -│ │ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_4: struct #30 -│ │ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ ├─ variant_5: struct #33 -│ │ │ │ │ ├─ [contains]: string #24 -│ │ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ │ ├─ variant_6: struct #34 -│ │ │ │ │ └─ [search]: string #24 -│ │ │ │ └─ variant_7: struct #35 -│ │ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ │ └─ item: string #24 -│ │ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ [posts]: optional 'optional_99' #99 -│ │ │ └─ item: union #98 -│ │ │ ├─ variant_0: struct #93 -│ │ │ │ └─ [every]: optional 'optional_92' #92 -│ │ │ │ └─ item: &Post_where #91 -│ │ │ ├─ variant_1: struct #95 -│ │ │ │ └─ [some]: optional 'optional_94' #94 -│ │ │ │ └─ item: &Post_where #91 -│ │ │ └─ variant_2: struct #97 -│ │ │ └─ [none]: optional 'optional_96' #96 -│ │ │ └─ item: &Post_where #91 -│ │ ├─ [id]: optional 'optional_87' #87 -│ │ │ └─ item: optional '_prisma_integer_filter_ex' #53 -│ │ │ └─ item: union #52 -│ │ │ ├─ variant_0: either '_prisma_integer_filter' #50 -│ │ │ │ ├─ variant_0: integer #42 -│ │ │ │ ├─ variant_1: struct #45 -│ │ │ │ │ └─ [equals]: integer #42 -│ │ │ │ ├─ variant_2: struct #46 -│ │ │ │ │ └─ [not]: integer #42 -│ │ │ │ ├─ variant_3: struct #47 -│ │ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ │ └─ item: integer #42 -│ │ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ variant_4: struct #48 -│ │ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ variant_5: struct #49 -│ │ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ │ └─ item: integer #42 -│ │ │ └─ variant_1: struct #51 -│ │ │ └─ [not]: either '_prisma_integer_filter' #50 -│ │ │ ├─ variant_0: integer #42 -│ │ │ ├─ variant_1: struct #45 -│ │ │ │ └─ [equals]: integer #42 -│ │ │ ├─ variant_2: struct #46 -│ │ │ │ └─ [not]: integer #42 -│ │ │ ├─ variant_3: struct #47 -│ │ │ │ ├─ [gt]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ [gte]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ ├─ [lt]: optional 'optional_43' #43 -│ │ │ │ │ └─ item: integer #42 -│ │ │ │ └─ [lte]: optional 'optional_43' #43 -│ │ │ │ └─ item: integer #42 -│ │ │ ├─ variant_4: struct #48 -│ │ │ │ └─ [in]: list 'list_44' #44 -│ │ │ │ └─ item: integer #42 -│ │ │ └─ variant_5: struct #49 -│ │ │ └─ [notIn]: list 'list_44' #44 -│ │ │ └─ item: integer #42 -│ │ └─ [title]: optional 'optional_88' #88 -│ │ └─ item: optional '_prisma_string_filter_ex' #39 -│ │ └─ item: union #38 -│ │ ├─ variant_0: union '_prisma_string_filter' #36 -│ │ │ ├─ variant_0: string #24 -│ │ │ ├─ variant_1: struct #27 -│ │ │ │ └─ [equals]: string #24 -│ │ │ ├─ variant_2: struct #28 -│ │ │ │ └─ [not]: string #24 -│ │ │ ├─ variant_3: struct #29 -│ │ │ │ └─ [in]: list 'list_26' #26 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_4: struct #30 -│ │ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ │ └─ item: string #24 -│ │ │ ├─ variant_5: struct #33 -│ │ │ │ ├─ [contains]: string #24 -│ │ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ │ ├─ variant_6: struct #34 -│ │ │ │ └─ [search]: string #24 -│ │ │ └─ variant_7: struct #35 -│ │ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ │ └─ item: string #24 -│ │ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ │ └─ item: string #24 -│ │ └─ variant_1: struct #37 -│ │ └─ [not]: union '_prisma_string_filter' #36 -│ │ ├─ variant_0: string #24 -│ │ ├─ variant_1: struct #27 -│ │ │ └─ [equals]: string #24 -│ │ ├─ variant_2: struct #28 -│ │ │ └─ [not]: string #24 -│ │ ├─ variant_3: struct #29 -│ │ │ └─ [in]: list 'list_26' #26 -│ │ │ └─ item: string #24 -│ │ ├─ variant_4: struct #30 -│ │ │ └─ [notIn]: list 'list_26' #26 -│ │ │ └─ item: string #24 -│ │ ├─ variant_5: struct #33 -│ │ │ ├─ [contains]: string #24 -│ │ │ └─ [mode]: optional 'optional_32' #32 -│ │ │ └─ item: string #31 enum{ '"insensitive"' } -│ │ ├─ variant_6: struct #34 -│ │ │ └─ [search]: string #24 -│ │ └─ variant_7: struct #35 -│ │ ├─ [endsWith]: optional 'optional_25' #25 -│ │ │ └─ item: string #24 -│ │ └─ [startsWith]: optional 'optional_25' #25 -│ │ └─ item: string #24 -│ └─ variant_6: struct #129 -│ └─ [createMany]: optional 'optional_128' #128 -│ └─ item: struct #127 -│ └─ [data]: list 'list_126' #126 -│ └─ item: union #86 -│ ├─ variant_0: struct 'Post_create_input_excluding_rel_Post_User' #84 -│ │ ├─ [id]: optional 'optional_83' #83 -│ │ │ └─ item: integer #69 -│ │ └─ [title]: string #71 -│ └─ variant_1: list 'list_85' #85 -│ └─ item: struct 'Post_create_input_excluding_rel_Post_User' #84 -│ ├─ [id]: optional 'optional_83' #83 -│ │ └─ item: integer #69 -│ └─ [title]: string #71 -└─ [where]: struct 'User_query_where_unique_input' #153 - ├─ [AND]: optional 'optional_151' #151 - │ └─ item: list 'list_150' #150 - │ └─ item: &User_query_where_unique_input #149 - ├─ [NOT]: optional 'optional_152' #152 - │ └─ item: &User_query_where_unique_input #149 - ├─ [OR]: optional 'optional_151' #151 - │ └─ item: list 'list_150' #150 - │ └─ item: &User_query_where_unique_input #149 - ├─ [id]: optional 'optional_133' #133 - │ └─ item: optional '_prisma_integer_filter_ex' #53 - │ └─ item: union #52 - │ ├─ variant_0: either '_prisma_integer_filter' #50 - │ │ ├─ variant_0: integer #42 - │ │ ├─ variant_1: struct #45 - │ │ │ └─ [equals]: integer #42 - │ │ ├─ variant_2: struct #46 - │ │ │ └─ [not]: integer #42 - │ │ ├─ variant_3: struct #47 - │ │ │ ├─ [gt]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ ├─ [gte]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ ├─ [lt]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ └─ [lte]: optional 'optional_43' #43 - │ │ │ └─ item: integer #42 - │ │ ├─ variant_4: struct #48 - │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ └─ item: integer #42 - │ │ └─ variant_5: struct #49 - │ │ └─ [notIn]: list 'list_44' #44 - │ │ └─ item: integer #42 - │ └─ variant_1: struct #51 - │ └─ [not]: either '_prisma_integer_filter' #50 - │ ├─ variant_0: integer #42 - │ ├─ variant_1: struct #45 - │ │ └─ [equals]: integer #42 - │ ├─ variant_2: struct #46 - │ │ └─ [not]: integer #42 - │ ├─ variant_3: struct #47 - │ │ ├─ [gt]: optional 'optional_43' #43 - │ │ │ └─ item: integer #42 - │ │ ├─ [gte]: optional 'optional_43' #43 - │ │ │ └─ item: integer #42 - │ │ ├─ [lt]: optional 'optional_43' #43 - │ │ │ └─ item: integer #42 - │ │ └─ [lte]: optional 'optional_43' #43 - │ │ └─ item: integer #42 - │ ├─ variant_4: struct #48 - │ │ └─ [in]: list 'list_44' #44 - │ │ └─ item: integer #42 - │ └─ variant_5: struct #49 - │ └─ [notIn]: list 'list_44' #44 - │ └─ item: integer #42 - ├─ [name]: optional 'optional_134' #134 - │ └─ item: optional '_prisma_string_filter_ex' #39 - │ └─ item: union #38 - │ ├─ variant_0: union '_prisma_string_filter' #36 - │ │ ├─ variant_0: string #24 - │ │ ├─ variant_1: struct #27 - │ │ │ └─ [equals]: string #24 - │ │ ├─ variant_2: struct #28 - │ │ │ └─ [not]: string #24 - │ │ ├─ variant_3: struct #29 - │ │ │ └─ [in]: list 'list_26' #26 - │ │ │ └─ item: string #24 - │ │ ├─ variant_4: struct #30 - │ │ │ └─ [notIn]: list 'list_26' #26 - │ │ │ └─ item: string #24 - │ │ ├─ variant_5: struct #33 - │ │ │ ├─ [contains]: string #24 - │ │ │ └─ [mode]: optional 'optional_32' #32 - │ │ │ └─ item: string #31 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #34 - │ │ │ └─ [search]: string #24 - │ │ └─ variant_7: struct #35 - │ │ ├─ [endsWith]: optional 'optional_25' #25 - │ │ │ └─ item: string #24 - │ │ └─ [startsWith]: optional 'optional_25' #25 - │ │ └─ item: string #24 - │ └─ variant_1: struct #37 - │ └─ [not]: union '_prisma_string_filter' #36 - │ ├─ variant_0: string #24 - │ ├─ variant_1: struct #27 - │ │ └─ [equals]: string #24 - │ ├─ variant_2: struct #28 - │ │ └─ [not]: string #24 - │ ├─ variant_3: struct #29 - │ │ └─ [in]: list 'list_26' #26 - │ │ └─ item: string #24 - │ ├─ variant_4: struct #30 - │ │ └─ [notIn]: list 'list_26' #26 - │ │ └─ item: string #24 - │ ├─ variant_5: struct #33 - │ │ ├─ [contains]: string #24 - │ │ └─ [mode]: optional 'optional_32' #32 - │ │ └─ item: string #31 enum{ '"insensitive"' } - │ ├─ variant_6: struct #34 - │ │ └─ [search]: string #24 - │ └─ variant_7: struct #35 - │ ├─ [endsWith]: optional 'optional_25' #25 - │ │ └─ item: string #24 - │ └─ [startsWith]: optional 'optional_25' #25 - │ └─ item: string #24 - └─ [posts]: optional 'optional_147' #147 - └─ item: union #146 - ├─ variant_0: struct #141 - │ └─ [every]: optional 'optional_140' #140 - │ └─ item: struct 'Post_where_excluding_User' #139 - │ ├─ [author]: optional 'optional_138' #138 - │ │ └─ item: &User_where #137 - │ ├─ [id]: optional 'optional_135' #135 - │ │ └─ item: optional '_prisma_integer_filter_ex' #53 - │ │ └─ item: union #52 - │ │ ├─ variant_0: either '_prisma_integer_filter' #50 - │ │ │ ├─ variant_0: integer #42 - │ │ │ ├─ variant_1: struct #45 - │ │ │ │ └─ [equals]: integer #42 - │ │ │ ├─ variant_2: struct #46 - │ │ │ │ └─ [not]: integer #42 - │ │ │ ├─ variant_3: struct #47 - │ │ │ │ ├─ [gt]: optional 'optional_43' #43 - │ │ │ │ │ └─ item: integer #42 - │ │ │ │ ├─ [gte]: optional 'optional_43' #43 - │ │ │ │ │ └─ item: integer #42 - │ │ │ │ ├─ [lt]: optional 'optional_43' #43 - │ │ │ │ │ └─ item: integer #42 - │ │ │ │ └─ [lte]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ ├─ variant_4: struct #48 - │ │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ │ └─ item: integer #42 - │ │ │ └─ variant_5: struct #49 - │ │ │ └─ [notIn]: list 'list_44' #44 - │ │ │ └─ item: integer #42 - │ │ └─ variant_1: struct #51 - │ │ └─ [not]: either '_prisma_integer_filter' #50 - │ │ ├─ variant_0: integer #42 - │ │ ├─ variant_1: struct #45 - │ │ │ └─ [equals]: integer #42 - │ │ ├─ variant_2: struct #46 - │ │ │ └─ [not]: integer #42 - │ │ ├─ variant_3: struct #47 - │ │ │ ├─ [gt]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ ├─ [gte]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ ├─ [lt]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ └─ [lte]: optional 'optional_43' #43 - │ │ │ └─ item: integer #42 - │ │ ├─ variant_4: struct #48 - │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ └─ item: integer #42 - │ │ └─ variant_5: struct #49 - │ │ └─ [notIn]: list 'list_44' #44 - │ │ └─ item: integer #42 - │ └─ [title]: optional 'optional_136' #136 - │ └─ item: optional '_prisma_string_filter_ex' #39 - │ └─ item: union #38 - │ ├─ variant_0: union '_prisma_string_filter' #36 - │ │ ├─ variant_0: string #24 - │ │ ├─ variant_1: struct #27 - │ │ │ └─ [equals]: string #24 - │ │ ├─ variant_2: struct #28 - │ │ │ └─ [not]: string #24 - │ │ ├─ variant_3: struct #29 - │ │ │ └─ [in]: list 'list_26' #26 - │ │ │ └─ item: string #24 - │ │ ├─ variant_4: struct #30 - │ │ │ └─ [notIn]: list 'list_26' #26 - │ │ │ └─ item: string #24 - │ │ ├─ variant_5: struct #33 - │ │ │ ├─ [contains]: string #24 - │ │ │ └─ [mode]: optional 'optional_32' #32 - │ │ │ └─ item: string #31 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #34 - │ │ │ └─ [search]: string #24 - │ │ └─ variant_7: struct #35 - │ │ ├─ [endsWith]: optional 'optional_25' #25 - │ │ │ └─ item: string #24 - │ │ └─ [startsWith]: optional 'optional_25' #25 - │ │ └─ item: string #24 - │ └─ variant_1: struct #37 - │ └─ [not]: union '_prisma_string_filter' #36 - │ ├─ variant_0: string #24 - │ ├─ variant_1: struct #27 - │ │ └─ [equals]: string #24 - │ ├─ variant_2: struct #28 - │ │ └─ [not]: string #24 - │ ├─ variant_3: struct #29 - │ │ └─ [in]: list 'list_26' #26 - │ │ └─ item: string #24 - │ ├─ variant_4: struct #30 - │ │ └─ [notIn]: list 'list_26' #26 - │ │ └─ item: string #24 - │ ├─ variant_5: struct #33 - │ │ ├─ [contains]: string #24 - │ │ └─ [mode]: optional 'optional_32' #32 - │ │ └─ item: string #31 enum{ '"insensitive"' } - │ ├─ variant_6: struct #34 - │ │ └─ [search]: string #24 - │ └─ variant_7: struct #35 - │ ├─ [endsWith]: optional 'optional_25' #25 - │ │ └─ item: string #24 - │ └─ [startsWith]: optional 'optional_25' #25 - │ └─ item: string #24 - ├─ variant_1: struct #143 - │ └─ [some]: optional 'optional_142' #142 - │ └─ item: struct 'Post_where_excluding_User' #139 - │ ├─ [author]: optional 'optional_138' #138 - │ │ └─ item: &User_where #137 - │ ├─ [id]: optional 'optional_135' #135 - │ │ └─ item: optional '_prisma_integer_filter_ex' #53 - │ │ └─ item: union #52 - │ │ ├─ variant_0: either '_prisma_integer_filter' #50 - │ │ │ ├─ variant_0: integer #42 - │ │ │ ├─ variant_1: struct #45 - │ │ │ │ └─ [equals]: integer #42 - │ │ │ ├─ variant_2: struct #46 - │ │ │ │ └─ [not]: integer #42 - │ │ │ ├─ variant_3: struct #47 - │ │ │ │ ├─ [gt]: optional 'optional_43' #43 - │ │ │ │ │ └─ item: integer #42 - │ │ │ │ ├─ [gte]: optional 'optional_43' #43 - │ │ │ │ │ └─ item: integer #42 - │ │ │ │ ├─ [lt]: optional 'optional_43' #43 - │ │ │ │ │ └─ item: integer #42 - │ │ │ │ └─ [lte]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ ├─ variant_4: struct #48 - │ │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ │ └─ item: integer #42 - │ │ │ └─ variant_5: struct #49 - │ │ │ └─ [notIn]: list 'list_44' #44 - │ │ │ └─ item: integer #42 - │ │ └─ variant_1: struct #51 - │ │ └─ [not]: either '_prisma_integer_filter' #50 - │ │ ├─ variant_0: integer #42 - │ │ ├─ variant_1: struct #45 - │ │ │ └─ [equals]: integer #42 - │ │ ├─ variant_2: struct #46 - │ │ │ └─ [not]: integer #42 - │ │ ├─ variant_3: struct #47 - │ │ │ ├─ [gt]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ ├─ [gte]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ ├─ [lt]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ └─ [lte]: optional 'optional_43' #43 - │ │ │ └─ item: integer #42 - │ │ ├─ variant_4: struct #48 - │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ └─ item: integer #42 - │ │ └─ variant_5: struct #49 - │ │ └─ [notIn]: list 'list_44' #44 - │ │ └─ item: integer #42 - │ └─ [title]: optional 'optional_136' #136 - │ └─ item: optional '_prisma_string_filter_ex' #39 - │ └─ item: union #38 - │ ├─ variant_0: union '_prisma_string_filter' #36 - │ │ ├─ variant_0: string #24 - │ │ ├─ variant_1: struct #27 - │ │ │ └─ [equals]: string #24 - │ │ ├─ variant_2: struct #28 - │ │ │ └─ [not]: string #24 - │ │ ├─ variant_3: struct #29 - │ │ │ └─ [in]: list 'list_26' #26 - │ │ │ └─ item: string #24 - │ │ ├─ variant_4: struct #30 - │ │ │ └─ [notIn]: list 'list_26' #26 - │ │ │ └─ item: string #24 - │ │ ├─ variant_5: struct #33 - │ │ │ ├─ [contains]: string #24 - │ │ │ └─ [mode]: optional 'optional_32' #32 - │ │ │ └─ item: string #31 enum{ '"insensitive"' } - │ │ ├─ variant_6: struct #34 - │ │ │ └─ [search]: string #24 - │ │ └─ variant_7: struct #35 - │ │ ├─ [endsWith]: optional 'optional_25' #25 - │ │ │ └─ item: string #24 - │ │ └─ [startsWith]: optional 'optional_25' #25 - │ │ └─ item: string #24 - │ └─ variant_1: struct #37 - │ └─ [not]: union '_prisma_string_filter' #36 - │ ├─ variant_0: string #24 - │ ├─ variant_1: struct #27 - │ │ └─ [equals]: string #24 - │ ├─ variant_2: struct #28 - │ │ └─ [not]: string #24 - │ ├─ variant_3: struct #29 - │ │ └─ [in]: list 'list_26' #26 - │ │ └─ item: string #24 - │ ├─ variant_4: struct #30 - │ │ └─ [notIn]: list 'list_26' #26 - │ │ └─ item: string #24 - │ ├─ variant_5: struct #33 - │ │ ├─ [contains]: string #24 - │ │ └─ [mode]: optional 'optional_32' #32 - │ │ └─ item: string #31 enum{ '"insensitive"' } - │ ├─ variant_6: struct #34 - │ │ └─ [search]: string #24 - │ └─ variant_7: struct #35 - │ ├─ [endsWith]: optional 'optional_25' #25 - │ │ └─ item: string #24 - │ └─ [startsWith]: optional 'optional_25' #25 - │ └─ item: string #24 - └─ variant_2: struct #145 - └─ [none]: optional 'optional_144' #144 - └─ item: struct 'Post_where_excluding_User' #139 - ├─ [author]: optional 'optional_138' #138 - │ └─ item: &User_where #137 - ├─ [id]: optional 'optional_135' #135 - │ └─ item: optional '_prisma_integer_filter_ex' #53 - │ └─ item: union #52 - │ ├─ variant_0: either '_prisma_integer_filter' #50 - │ │ ├─ variant_0: integer #42 - │ │ ├─ variant_1: struct #45 - │ │ │ └─ [equals]: integer #42 - │ │ ├─ variant_2: struct #46 - │ │ │ └─ [not]: integer #42 - │ │ ├─ variant_3: struct #47 - │ │ │ ├─ [gt]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ ├─ [gte]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ ├─ [lt]: optional 'optional_43' #43 - │ │ │ │ └─ item: integer #42 - │ │ │ └─ [lte]: optional 'optional_43' #43 - │ │ │ └─ item: integer #42 - │ │ ├─ variant_4: struct #48 - │ │ │ └─ [in]: list 'list_44' #44 - │ │ │ └─ item: integer #42 - │ │ └─ variant_5: struct #49 - │ │ └─ [notIn]: list 'list_44' #44 - │ │ └─ item: integer #42 - │ └─ variant_1: struct #51 - │ └─ [not]: either '_prisma_integer_filter' #50 - │ ├─ variant_0: integer #42 - │ ├─ variant_1: struct #45 - │ │ └─ [equals]: integer #42 - │ ├─ variant_2: struct #46 - │ │ └─ [not]: integer #42 - │ ├─ variant_3: struct #47 - │ │ ├─ [gt]: optional 'optional_43' #43 - │ │ │ └─ item: integer #42 - │ │ ├─ [gte]: optional 'optional_43' #43 - │ │ │ └─ item: integer #42 - │ │ ├─ [lt]: optional 'optional_43' #43 - │ │ │ └─ item: integer #42 - │ │ └─ [lte]: optional 'optional_43' #43 - │ │ └─ item: integer #42 - │ ├─ variant_4: struct #48 - │ │ └─ [in]: list 'list_44' #44 - │ │ └─ item: integer #42 - │ └─ variant_5: struct #49 - │ └─ [notIn]: list 'list_44' #44 - │ └─ item: integer #42 - └─ [title]: optional 'optional_136' #136 - └─ item: optional '_prisma_string_filter_ex' #39 - └─ item: union #38 - ├─ variant_0: union '_prisma_string_filter' #36 - │ ├─ variant_0: string #24 - │ ├─ variant_1: struct #27 - │ │ └─ [equals]: string #24 - │ ├─ variant_2: struct #28 - │ │ └─ [not]: string #24 - │ ├─ variant_3: struct #29 - │ │ └─ [in]: list 'list_26' #26 - │ │ └─ item: string #24 - │ ├─ variant_4: struct #30 - │ │ └─ [notIn]: list 'list_26' #26 - │ │ └─ item: string #24 - │ ├─ variant_5: struct #33 - │ │ ├─ [contains]: string #24 - │ │ └─ [mode]: optional 'optional_32' #32 - │ │ └─ item: string #31 enum{ '"insensitive"' } - │ ├─ variant_6: struct #34 - │ │ └─ [search]: string #24 - │ └─ variant_7: struct #35 - │ ├─ [endsWith]: optional 'optional_25' #25 - │ │ └─ item: string #24 - │ └─ [startsWith]: optional 'optional_25' #25 - │ └─ item: string #24 - └─ variant_1: struct #37 - └─ [not]: union '_prisma_string_filter' #36 - ├─ variant_0: string #24 - ├─ variant_1: struct #27 - │ └─ [equals]: string #24 - ├─ variant_2: struct #28 - │ └─ [not]: string #24 - ├─ variant_3: struct #29 - │ └─ [in]: list 'list_26' #26 - │ └─ item: string #24 - ├─ variant_4: struct #30 - │ └─ [notIn]: list 'list_26' #26 - │ └─ item: string #24 - ├─ variant_5: struct #33 - │ ├─ [contains]: string #24 - │ └─ [mode]: optional 'optional_32' #32 - │ └─ item: string #31 enum{ '"insensitive"' } - ├─ variant_6: struct #34 - │ └─ [search]: string #24 - └─ variant_7: struct #35 - ├─ [endsWith]: optional 'optional_25' #25 - │ └─ item: string #24 - └─ [startsWith]: optional 'optional_25' #25 - └─ item: string #24 +root: struct #245 +├─ [data]: struct 'User_update_input' #190 +│ ├─ [id]: optional 'optional_111' #112 +│ │ └─ item: union #110 +│ │ ├─ variant_0: integer #92 +│ │ ├─ variant_1: struct #106 +│ │ │ └─ [set]: integer #92 +│ │ ├─ variant_2: struct #107 +│ │ │ └─ [multiply]: integer #92 +│ │ ├─ variant_3: struct #108 +│ │ │ └─ [decrement]: integer #92 +│ │ └─ variant_4: struct #109 +│ │ └─ [increment]: integer #92 +│ ├─ [name]: optional 'optional_115' #116 +│ │ └─ item: union #114 +│ │ ├─ variant_0: string #93 +│ │ └─ variant_1: struct #113 +│ │ └─ [set]: string #93 +│ └─ [posts]: optional 'optional_187' #188 +│ └─ item: union #186 +│ ├─ variant_0: struct #155 +│ │ └─ [create]: union #123 +│ │ ├─ variant_0: struct 'Post_create_input_excluding_rel_Post_User' #120 +│ │ │ ├─ [id]: optional 'optional_117' #118 +│ │ │ │ └─ item: integer #101 +│ │ │ └─ [title]: string #102 +│ │ └─ variant_1: list 'list_121' #122 +│ │ └─ item: struct 'Post_create_input_excluding_rel_Post_User' #120 +│ │ ├─ [id]: optional 'optional_117' #118 +│ │ │ └─ item: integer #101 +│ │ └─ [title]: string #102 +│ ├─ variant_1: struct #156 +│ │ └─ [connect]: union #153 +│ │ ├─ variant_0: struct 'Post_where' #150 +│ │ │ ├─ [author]: optional 'optional_147' #148 +│ │ │ │ └─ item: struct 'User_where_excluding_Post' #146 +│ │ │ │ ├─ [id]: optional 'optional_128' #129 +│ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ │ └─ item: union #71 +│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_1: struct #70 +│ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ [name]: optional 'optional_130' #131 +│ │ │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ │ │ └─ item: union #50 +│ │ │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ variant_1: struct #49 +│ │ │ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [posts]: optional 'optional_143' #144 +│ │ │ │ └─ item: union #142 +│ │ │ │ ├─ variant_0: struct #135 +│ │ │ │ │ └─ [every]: optional 'optional_133' #134 +│ │ │ │ │ └─ item: &Post_where #132 +│ │ │ │ ├─ variant_1: struct #138 +│ │ │ │ │ └─ [some]: optional 'optional_136' #137 +│ │ │ │ │ └─ item: &Post_where #132 +│ │ │ │ └─ variant_2: struct #141 +│ │ │ │ └─ [none]: optional 'optional_139' #140 +│ │ │ │ └─ item: &Post_where #132 +│ │ │ ├─ [id]: optional 'optional_124' #125 +│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ └─ item: union #71 +│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_1: struct #70 +│ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_5: struct #67 +│ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ └─ item: integer #58 +│ │ │ └─ [title]: optional 'optional_126' #127 +│ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ └─ item: union #50 +│ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ ├─ variant_0: string #32 +│ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ └─ [not]: string #32 +│ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ └─ [search]: string #32 +│ │ │ │ └─ variant_7: struct #46 +│ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ variant_1: struct #49 +│ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ ├─ variant_0: string #32 +│ │ │ ├─ variant_1: struct #37 +│ │ │ │ └─ [equals]: string #32 +│ │ │ ├─ variant_2: struct #38 +│ │ │ │ └─ [not]: string #32 +│ │ │ ├─ variant_3: struct #39 +│ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_4: struct #40 +│ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_5: struct #44 +│ │ │ │ ├─ [contains]: string #32 +│ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ ├─ variant_6: struct #45 +│ │ │ │ └─ [search]: string #32 +│ │ │ └─ variant_7: struct #46 +│ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ └─ item: string #32 +│ │ └─ variant_1: list 'list_151' #152 +│ │ └─ item: struct 'Post_where' #150 +│ │ ├─ [author]: optional 'optional_147' #148 +│ │ │ └─ item: struct 'User_where_excluding_Post' #146 +│ │ │ ├─ [id]: optional 'optional_128' #129 +│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ └─ item: union #71 +│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_1: struct #70 +│ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_5: struct #67 +│ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ └─ item: integer #58 +│ │ │ ├─ [name]: optional 'optional_130' #131 +│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ │ └─ item: union #50 +│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ variant_1: struct #49 +│ │ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ │ ├─ variant_0: string #32 +│ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ └─ [not]: string #32 +│ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ └─ [search]: string #32 +│ │ │ │ └─ variant_7: struct #46 +│ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ [posts]: optional 'optional_143' #144 +│ │ │ └─ item: union #142 +│ │ │ ├─ variant_0: struct #135 +│ │ │ │ └─ [every]: optional 'optional_133' #134 +│ │ │ │ └─ item: &Post_where #132 +│ │ │ ├─ variant_1: struct #138 +│ │ │ │ └─ [some]: optional 'optional_136' #137 +│ │ │ │ └─ item: &Post_where #132 +│ │ │ └─ variant_2: struct #141 +│ │ │ └─ [none]: optional 'optional_139' #140 +│ │ │ └─ item: &Post_where #132 +│ │ ├─ [id]: optional 'optional_124' #125 +│ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ └─ item: union #71 +│ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_5: struct #67 +│ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ └─ item: integer #58 +│ │ │ └─ variant_1: struct #70 +│ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ ├─ variant_0: integer #58 +│ │ │ ├─ variant_1: struct #63 +│ │ │ │ └─ [equals]: integer #58 +│ │ │ ├─ variant_2: struct #64 +│ │ │ │ └─ [not]: integer #58 +│ │ │ ├─ variant_3: struct #65 +│ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ └─ item: integer #58 +│ │ │ ├─ variant_4: struct #66 +│ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ └─ item: integer #58 +│ │ │ └─ variant_5: struct #67 +│ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ └─ item: integer #58 +│ │ └─ [title]: optional 'optional_126' #127 +│ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ └─ item: union #50 +│ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ ├─ variant_0: string #32 +│ │ │ ├─ variant_1: struct #37 +│ │ │ │ └─ [equals]: string #32 +│ │ │ ├─ variant_2: struct #38 +│ │ │ │ └─ [not]: string #32 +│ │ │ ├─ variant_3: struct #39 +│ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_4: struct #40 +│ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_5: struct #44 +│ │ │ │ ├─ [contains]: string #32 +│ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ ├─ variant_6: struct #45 +│ │ │ │ └─ [search]: string #32 +│ │ │ └─ variant_7: struct #46 +│ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ └─ item: string #32 +│ │ └─ variant_1: struct #49 +│ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ ├─ variant_0: string #32 +│ │ ├─ variant_1: struct #37 +│ │ │ └─ [equals]: string #32 +│ │ ├─ variant_2: struct #38 +│ │ │ └─ [not]: string #32 +│ │ ├─ variant_3: struct #39 +│ │ │ └─ [in]: list 'list_35' #36 +│ │ │ └─ item: string #32 +│ │ ├─ variant_4: struct #40 +│ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ └─ item: string #32 +│ │ ├─ variant_5: struct #44 +│ │ │ ├─ [contains]: string #32 +│ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ ├─ variant_6: struct #45 +│ │ │ └─ [search]: string #32 +│ │ └─ variant_7: struct #46 +│ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ └─ item: string #32 +│ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ └─ item: string #32 +│ ├─ variant_2: struct #157 +│ │ └─ [connectOrCreate]: struct #154 +│ │ ├─ [create]: union #123 +│ │ │ ├─ variant_0: struct 'Post_create_input_excluding_rel_Post_User' #120 +│ │ │ │ ├─ [id]: optional 'optional_117' #118 +│ │ │ │ │ └─ item: integer #101 +│ │ │ │ └─ [title]: string #102 +│ │ │ └─ variant_1: list 'list_121' #122 +│ │ │ └─ item: struct 'Post_create_input_excluding_rel_Post_User' #120 +│ │ │ ├─ [id]: optional 'optional_117' #118 +│ │ │ │ └─ item: integer #101 +│ │ │ └─ [title]: string #102 +│ │ └─ [where]: union #153 +│ │ ├─ variant_0: struct 'Post_where' #150 +│ │ │ ├─ [author]: optional 'optional_147' #148 +│ │ │ │ └─ item: struct 'User_where_excluding_Post' #146 +│ │ │ │ ├─ [id]: optional 'optional_128' #129 +│ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ │ └─ item: union #71 +│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_1: struct #70 +│ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ [name]: optional 'optional_130' #131 +│ │ │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ │ │ └─ item: union #50 +│ │ │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ variant_1: struct #49 +│ │ │ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [posts]: optional 'optional_143' #144 +│ │ │ │ └─ item: union #142 +│ │ │ │ ├─ variant_0: struct #135 +│ │ │ │ │ └─ [every]: optional 'optional_133' #134 +│ │ │ │ │ └─ item: &Post_where #132 +│ │ │ │ ├─ variant_1: struct #138 +│ │ │ │ │ └─ [some]: optional 'optional_136' #137 +│ │ │ │ │ └─ item: &Post_where #132 +│ │ │ │ └─ variant_2: struct #141 +│ │ │ │ └─ [none]: optional 'optional_139' #140 +│ │ │ │ └─ item: &Post_where #132 +│ │ │ ├─ [id]: optional 'optional_124' #125 +│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ └─ item: union #71 +│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_1: struct #70 +│ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_5: struct #67 +│ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ └─ item: integer #58 +│ │ │ └─ [title]: optional 'optional_126' #127 +│ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ └─ item: union #50 +│ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ ├─ variant_0: string #32 +│ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ └─ [not]: string #32 +│ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ └─ [search]: string #32 +│ │ │ │ └─ variant_7: struct #46 +│ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ variant_1: struct #49 +│ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ ├─ variant_0: string #32 +│ │ │ ├─ variant_1: struct #37 +│ │ │ │ └─ [equals]: string #32 +│ │ │ ├─ variant_2: struct #38 +│ │ │ │ └─ [not]: string #32 +│ │ │ ├─ variant_3: struct #39 +│ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_4: struct #40 +│ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_5: struct #44 +│ │ │ │ ├─ [contains]: string #32 +│ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ ├─ variant_6: struct #45 +│ │ │ │ └─ [search]: string #32 +│ │ │ └─ variant_7: struct #46 +│ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ └─ item: string #32 +│ │ └─ variant_1: list 'list_151' #152 +│ │ └─ item: struct 'Post_where' #150 +│ │ ├─ [author]: optional 'optional_147' #148 +│ │ │ └─ item: struct 'User_where_excluding_Post' #146 +│ │ │ ├─ [id]: optional 'optional_128' #129 +│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ └─ item: union #71 +│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_1: struct #70 +│ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_5: struct #67 +│ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ └─ item: integer #58 +│ │ │ ├─ [name]: optional 'optional_130' #131 +│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ │ └─ item: union #50 +│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ variant_1: struct #49 +│ │ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ │ ├─ variant_0: string #32 +│ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ └─ [not]: string #32 +│ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ └─ [search]: string #32 +│ │ │ │ └─ variant_7: struct #46 +│ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ [posts]: optional 'optional_143' #144 +│ │ │ └─ item: union #142 +│ │ │ ├─ variant_0: struct #135 +│ │ │ │ └─ [every]: optional 'optional_133' #134 +│ │ │ │ └─ item: &Post_where #132 +│ │ │ ├─ variant_1: struct #138 +│ │ │ │ └─ [some]: optional 'optional_136' #137 +│ │ │ │ └─ item: &Post_where #132 +│ │ │ └─ variant_2: struct #141 +│ │ │ └─ [none]: optional 'optional_139' #140 +│ │ │ └─ item: &Post_where #132 +│ │ ├─ [id]: optional 'optional_124' #125 +│ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ └─ item: union #71 +│ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_5: struct #67 +│ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ └─ item: integer #58 +│ │ │ └─ variant_1: struct #70 +│ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ ├─ variant_0: integer #58 +│ │ │ ├─ variant_1: struct #63 +│ │ │ │ └─ [equals]: integer #58 +│ │ │ ├─ variant_2: struct #64 +│ │ │ │ └─ [not]: integer #58 +│ │ │ ├─ variant_3: struct #65 +│ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ └─ item: integer #58 +│ │ │ ├─ variant_4: struct #66 +│ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ └─ item: integer #58 +│ │ │ └─ variant_5: struct #67 +│ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ └─ item: integer #58 +│ │ └─ [title]: optional 'optional_126' #127 +│ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ └─ item: union #50 +│ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ ├─ variant_0: string #32 +│ │ │ ├─ variant_1: struct #37 +│ │ │ │ └─ [equals]: string #32 +│ │ │ ├─ variant_2: struct #38 +│ │ │ │ └─ [not]: string #32 +│ │ │ ├─ variant_3: struct #39 +│ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_4: struct #40 +│ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_5: struct #44 +│ │ │ │ ├─ [contains]: string #32 +│ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ ├─ variant_6: struct #45 +│ │ │ │ └─ [search]: string #32 +│ │ │ └─ variant_7: struct #46 +│ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ └─ item: string #32 +│ │ └─ variant_1: struct #49 +│ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ ├─ variant_0: string #32 +│ │ ├─ variant_1: struct #37 +│ │ │ └─ [equals]: string #32 +│ │ ├─ variant_2: struct #38 +│ │ │ └─ [not]: string #32 +│ │ ├─ variant_3: struct #39 +│ │ │ └─ [in]: list 'list_35' #36 +│ │ │ └─ item: string #32 +│ │ ├─ variant_4: struct #40 +│ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ └─ item: string #32 +│ │ ├─ variant_5: struct #44 +│ │ │ ├─ [contains]: string #32 +│ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ ├─ variant_6: struct #45 +│ │ │ └─ [search]: string #32 +│ │ └─ variant_7: struct #46 +│ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ └─ item: string #32 +│ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ └─ item: string #32 +│ ├─ variant_3: struct #171 +│ │ └─ [update]: struct 'Post_update_input_excluding_rel_Post_User' #170 +│ │ ├─ [id]: optional 'optional_163' #164 +│ │ │ └─ item: union #162 +│ │ │ ├─ variant_0: integer #101 +│ │ │ ├─ variant_1: struct #158 +│ │ │ │ └─ [set]: integer #101 +│ │ │ ├─ variant_2: struct #159 +│ │ │ │ └─ [multiply]: integer #101 +│ │ │ ├─ variant_3: struct #160 +│ │ │ │ └─ [decrement]: integer #101 +│ │ │ └─ variant_4: struct #161 +│ │ │ └─ [increment]: integer #101 +│ │ └─ [title]: optional 'optional_167' #168 +│ │ └─ item: union #166 +│ │ ├─ variant_0: string #102 +│ │ └─ variant_1: struct #165 +│ │ └─ [set]: string #102 +│ ├─ variant_4: struct #175 +│ │ └─ [updateMany]: struct #174 +│ │ ├─ [data]: struct 'Post_update_input_excluding_rel_Post_User' #170 +│ │ │ ├─ [id]: optional 'optional_163' #164 +│ │ │ │ └─ item: union #162 +│ │ │ │ ├─ variant_0: integer #101 +│ │ │ │ ├─ variant_1: struct #158 +│ │ │ │ │ └─ [set]: integer #101 +│ │ │ │ ├─ variant_2: struct #159 +│ │ │ │ │ └─ [multiply]: integer #101 +│ │ │ │ ├─ variant_3: struct #160 +│ │ │ │ │ └─ [decrement]: integer #101 +│ │ │ │ └─ variant_4: struct #161 +│ │ │ │ └─ [increment]: integer #101 +│ │ │ └─ [title]: optional 'optional_167' #168 +│ │ │ └─ item: union #166 +│ │ │ ├─ variant_0: string #102 +│ │ │ └─ variant_1: struct #165 +│ │ │ └─ [set]: string #102 +│ │ └─ [where]: optional 'optional_172' #173 +│ │ └─ item: union #153 +│ │ ├─ variant_0: struct 'Post_where' #150 +│ │ │ ├─ [author]: optional 'optional_147' #148 +│ │ │ │ └─ item: struct 'User_where_excluding_Post' #146 +│ │ │ │ ├─ [id]: optional 'optional_128' #129 +│ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ │ └─ item: union #71 +│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_1: struct #70 +│ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ [name]: optional 'optional_130' #131 +│ │ │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ │ │ └─ item: union #50 +│ │ │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ variant_1: struct #49 +│ │ │ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [posts]: optional 'optional_143' #144 +│ │ │ │ └─ item: union #142 +│ │ │ │ ├─ variant_0: struct #135 +│ │ │ │ │ └─ [every]: optional 'optional_133' #134 +│ │ │ │ │ └─ item: &Post_where #132 +│ │ │ │ ├─ variant_1: struct #138 +│ │ │ │ │ └─ [some]: optional 'optional_136' #137 +│ │ │ │ │ └─ item: &Post_where #132 +│ │ │ │ └─ variant_2: struct #141 +│ │ │ │ └─ [none]: optional 'optional_139' #140 +│ │ │ │ └─ item: &Post_where #132 +│ │ │ ├─ [id]: optional 'optional_124' #125 +│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ └─ item: union #71 +│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_1: struct #70 +│ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_5: struct #67 +│ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ └─ item: integer #58 +│ │ │ └─ [title]: optional 'optional_126' #127 +│ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ └─ item: union #50 +│ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ ├─ variant_0: string #32 +│ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ └─ [not]: string #32 +│ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ └─ [search]: string #32 +│ │ │ │ └─ variant_7: struct #46 +│ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ variant_1: struct #49 +│ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ ├─ variant_0: string #32 +│ │ │ ├─ variant_1: struct #37 +│ │ │ │ └─ [equals]: string #32 +│ │ │ ├─ variant_2: struct #38 +│ │ │ │ └─ [not]: string #32 +│ │ │ ├─ variant_3: struct #39 +│ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_4: struct #40 +│ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_5: struct #44 +│ │ │ │ ├─ [contains]: string #32 +│ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ ├─ variant_6: struct #45 +│ │ │ │ └─ [search]: string #32 +│ │ │ └─ variant_7: struct #46 +│ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ └─ item: string #32 +│ │ └─ variant_1: list 'list_151' #152 +│ │ └─ item: struct 'Post_where' #150 +│ │ ├─ [author]: optional 'optional_147' #148 +│ │ │ └─ item: struct 'User_where_excluding_Post' #146 +│ │ │ ├─ [id]: optional 'optional_128' #129 +│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ └─ item: union #71 +│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_1: struct #70 +│ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_5: struct #67 +│ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ └─ item: integer #58 +│ │ │ ├─ [name]: optional 'optional_130' #131 +│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ │ └─ item: union #50 +│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ variant_1: struct #49 +│ │ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ │ ├─ variant_0: string #32 +│ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ └─ [not]: string #32 +│ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ └─ [search]: string #32 +│ │ │ │ └─ variant_7: struct #46 +│ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ [posts]: optional 'optional_143' #144 +│ │ │ └─ item: union #142 +│ │ │ ├─ variant_0: struct #135 +│ │ │ │ └─ [every]: optional 'optional_133' #134 +│ │ │ │ └─ item: &Post_where #132 +│ │ │ ├─ variant_1: struct #138 +│ │ │ │ └─ [some]: optional 'optional_136' #137 +│ │ │ │ └─ item: &Post_where #132 +│ │ │ └─ variant_2: struct #141 +│ │ │ └─ [none]: optional 'optional_139' #140 +│ │ │ └─ item: &Post_where #132 +│ │ ├─ [id]: optional 'optional_124' #125 +│ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ └─ item: union #71 +│ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_5: struct #67 +│ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ └─ item: integer #58 +│ │ │ └─ variant_1: struct #70 +│ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ ├─ variant_0: integer #58 +│ │ │ ├─ variant_1: struct #63 +│ │ │ │ └─ [equals]: integer #58 +│ │ │ ├─ variant_2: struct #64 +│ │ │ │ └─ [not]: integer #58 +│ │ │ ├─ variant_3: struct #65 +│ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ └─ item: integer #58 +│ │ │ ├─ variant_4: struct #66 +│ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ └─ item: integer #58 +│ │ │ └─ variant_5: struct #67 +│ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ └─ item: integer #58 +│ │ └─ [title]: optional 'optional_126' #127 +│ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ └─ item: union #50 +│ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ ├─ variant_0: string #32 +│ │ │ ├─ variant_1: struct #37 +│ │ │ │ └─ [equals]: string #32 +│ │ │ ├─ variant_2: struct #38 +│ │ │ │ └─ [not]: string #32 +│ │ │ ├─ variant_3: struct #39 +│ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_4: struct #40 +│ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_5: struct #44 +│ │ │ │ ├─ [contains]: string #32 +│ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ ├─ variant_6: struct #45 +│ │ │ │ └─ [search]: string #32 +│ │ │ └─ variant_7: struct #46 +│ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ └─ item: string #32 +│ │ └─ variant_1: struct #49 +│ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ ├─ variant_0: string #32 +│ │ ├─ variant_1: struct #37 +│ │ │ └─ [equals]: string #32 +│ │ ├─ variant_2: struct #38 +│ │ │ └─ [not]: string #32 +│ │ ├─ variant_3: struct #39 +│ │ │ └─ [in]: list 'list_35' #36 +│ │ │ └─ item: string #32 +│ │ ├─ variant_4: struct #40 +│ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ └─ item: string #32 +│ │ ├─ variant_5: struct #44 +│ │ │ ├─ [contains]: string #32 +│ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ ├─ variant_6: struct #45 +│ │ │ └─ [search]: string #32 +│ │ └─ variant_7: struct #46 +│ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ └─ item: string #32 +│ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ └─ item: string #32 +│ ├─ variant_5: struct #179 +│ │ └─ [deleteMany]: struct #178 +│ │ └─ [where]: optional 'optional_176' #177 +│ │ └─ item: union #153 +│ │ ├─ variant_0: struct 'Post_where' #150 +│ │ │ ├─ [author]: optional 'optional_147' #148 +│ │ │ │ └─ item: struct 'User_where_excluding_Post' #146 +│ │ │ │ ├─ [id]: optional 'optional_128' #129 +│ │ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ │ └─ item: union #71 +│ │ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_1: struct #70 +│ │ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ [name]: optional 'optional_130' #131 +│ │ │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ │ │ └─ item: union #50 +│ │ │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ variant_1: struct #49 +│ │ │ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [posts]: optional 'optional_143' #144 +│ │ │ │ └─ item: union #142 +│ │ │ │ ├─ variant_0: struct #135 +│ │ │ │ │ └─ [every]: optional 'optional_133' #134 +│ │ │ │ │ └─ item: &Post_where #132 +│ │ │ │ ├─ variant_1: struct #138 +│ │ │ │ │ └─ [some]: optional 'optional_136' #137 +│ │ │ │ │ └─ item: &Post_where #132 +│ │ │ │ └─ variant_2: struct #141 +│ │ │ │ └─ [none]: optional 'optional_139' #140 +│ │ │ │ └─ item: &Post_where #132 +│ │ │ ├─ [id]: optional 'optional_124' #125 +│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ └─ item: union #71 +│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_1: struct #70 +│ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_5: struct #67 +│ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ └─ item: integer #58 +│ │ │ └─ [title]: optional 'optional_126' #127 +│ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ └─ item: union #50 +│ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ ├─ variant_0: string #32 +│ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ └─ [not]: string #32 +│ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ └─ [search]: string #32 +│ │ │ │ └─ variant_7: struct #46 +│ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ variant_1: struct #49 +│ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ ├─ variant_0: string #32 +│ │ │ ├─ variant_1: struct #37 +│ │ │ │ └─ [equals]: string #32 +│ │ │ ├─ variant_2: struct #38 +│ │ │ │ └─ [not]: string #32 +│ │ │ ├─ variant_3: struct #39 +│ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_4: struct #40 +│ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_5: struct #44 +│ │ │ │ ├─ [contains]: string #32 +│ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ ├─ variant_6: struct #45 +│ │ │ │ └─ [search]: string #32 +│ │ │ └─ variant_7: struct #46 +│ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ └─ item: string #32 +│ │ └─ variant_1: list 'list_151' #152 +│ │ └─ item: struct 'Post_where' #150 +│ │ ├─ [author]: optional 'optional_147' #148 +│ │ │ └─ item: struct 'User_where_excluding_Post' #146 +│ │ │ ├─ [id]: optional 'optional_128' #129 +│ │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ │ └─ item: union #71 +│ │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ variant_5: struct #67 +│ │ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_1: struct #70 +│ │ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_5: struct #67 +│ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ └─ item: integer #58 +│ │ │ ├─ [name]: optional 'optional_130' #131 +│ │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ │ │ └─ item: union #50 +│ │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ │ │ ├─ variant_0: string #32 +│ │ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ │ └─ [not]: string #32 +│ │ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ │ └─ [search]: string #32 +│ │ │ │ │ └─ variant_7: struct #46 +│ │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ │ └─ item: string #32 +│ │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ variant_1: struct #49 +│ │ │ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ │ │ ├─ variant_0: string #32 +│ │ │ │ ├─ variant_1: struct #37 +│ │ │ │ │ └─ [equals]: string #32 +│ │ │ │ ├─ variant_2: struct #38 +│ │ │ │ │ └─ [not]: string #32 +│ │ │ │ ├─ variant_3: struct #39 +│ │ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_4: struct #40 +│ │ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ ├─ variant_5: struct #44 +│ │ │ │ │ ├─ [contains]: string #32 +│ │ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ │ ├─ variant_6: struct #45 +│ │ │ │ │ └─ [search]: string #32 +│ │ │ │ └─ variant_7: struct #46 +│ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ │ └─ item: string #32 +│ │ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ [posts]: optional 'optional_143' #144 +│ │ │ └─ item: union #142 +│ │ │ ├─ variant_0: struct #135 +│ │ │ │ └─ [every]: optional 'optional_133' #134 +│ │ │ │ └─ item: &Post_where #132 +│ │ │ ├─ variant_1: struct #138 +│ │ │ │ └─ [some]: optional 'optional_136' #137 +│ │ │ │ └─ item: &Post_where #132 +│ │ │ └─ variant_2: struct #141 +│ │ │ └─ [none]: optional 'optional_139' #140 +│ │ │ └─ item: &Post_where #132 +│ │ ├─ [id]: optional 'optional_124' #125 +│ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 +│ │ │ └─ item: union #71 +│ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 +│ │ │ │ ├─ variant_0: integer #58 +│ │ │ │ ├─ variant_1: struct #63 +│ │ │ │ │ └─ [equals]: integer #58 +│ │ │ │ ├─ variant_2: struct #64 +│ │ │ │ │ └─ [not]: integer #58 +│ │ │ │ ├─ variant_3: struct #65 +│ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ │ └─ item: integer #58 +│ │ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ variant_4: struct #66 +│ │ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ variant_5: struct #67 +│ │ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ │ └─ item: integer #58 +│ │ │ └─ variant_1: struct #70 +│ │ │ └─ [not]: either '_prisma_integer_filter' #69 +│ │ │ ├─ variant_0: integer #58 +│ │ │ ├─ variant_1: struct #63 +│ │ │ │ └─ [equals]: integer #58 +│ │ │ ├─ variant_2: struct #64 +│ │ │ │ └─ [not]: integer #58 +│ │ │ ├─ variant_3: struct #65 +│ │ │ │ ├─ [gt]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ [gte]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ ├─ [lt]: optional 'optional_59' #60 +│ │ │ │ │ └─ item: integer #58 +│ │ │ │ └─ [lte]: optional 'optional_59' #60 +│ │ │ │ └─ item: integer #58 +│ │ │ ├─ variant_4: struct #66 +│ │ │ │ └─ [in]: list 'list_61' #62 +│ │ │ │ └─ item: integer #58 +│ │ │ └─ variant_5: struct #67 +│ │ │ └─ [notIn]: list 'list_61' #62 +│ │ │ └─ item: integer #58 +│ │ └─ [title]: optional 'optional_126' #127 +│ │ └─ item: optional '_prisma_string_filter_ex' #53 +│ │ └─ item: union #50 +│ │ ├─ variant_0: union '_prisma_string_filter' #48 +│ │ │ ├─ variant_0: string #32 +│ │ │ ├─ variant_1: struct #37 +│ │ │ │ └─ [equals]: string #32 +│ │ │ ├─ variant_2: struct #38 +│ │ │ │ └─ [not]: string #32 +│ │ │ ├─ variant_3: struct #39 +│ │ │ │ └─ [in]: list 'list_35' #36 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_4: struct #40 +│ │ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ │ └─ item: string #32 +│ │ │ ├─ variant_5: struct #44 +│ │ │ │ ├─ [contains]: string #32 +│ │ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ │ ├─ variant_6: struct #45 +│ │ │ │ └─ [search]: string #32 +│ │ │ └─ variant_7: struct #46 +│ │ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ │ └─ item: string #32 +│ │ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ │ └─ item: string #32 +│ │ └─ variant_1: struct #49 +│ │ └─ [not]: union '_prisma_string_filter' #48 +│ │ ├─ variant_0: string #32 +│ │ ├─ variant_1: struct #37 +│ │ │ └─ [equals]: string #32 +│ │ ├─ variant_2: struct #38 +│ │ │ └─ [not]: string #32 +│ │ ├─ variant_3: struct #39 +│ │ │ └─ [in]: list 'list_35' #36 +│ │ │ └─ item: string #32 +│ │ ├─ variant_4: struct #40 +│ │ │ └─ [notIn]: list 'list_35' #36 +│ │ │ └─ item: string #32 +│ │ ├─ variant_5: struct #44 +│ │ │ ├─ [contains]: string #32 +│ │ │ └─ [mode]: optional 'optional_42' #43 +│ │ │ └─ item: string #41 enum{ '"insensitive"' } +│ │ ├─ variant_6: struct #45 +│ │ │ └─ [search]: string #32 +│ │ └─ variant_7: struct #46 +│ │ ├─ [endsWith]: optional 'optional_33' #34 +│ │ │ └─ item: string #32 +│ │ └─ [startsWith]: optional 'optional_33' #34 +│ │ └─ item: string #32 +│ └─ variant_6: struct #185 +│ └─ [createMany]: optional 'optional_183' #184 +│ └─ item: struct #182 +│ └─ [data]: list 'list_180' #181 +│ └─ item: union #123 +│ ├─ variant_0: struct 'Post_create_input_excluding_rel_Post_User' #120 +│ │ ├─ [id]: optional 'optional_117' #118 +│ │ │ └─ item: integer #101 +│ │ └─ [title]: string #102 +│ └─ variant_1: list 'list_121' #122 +│ └─ item: struct 'Post_create_input_excluding_rel_Post_User' #120 +│ ├─ [id]: optional 'optional_117' #118 +│ │ └─ item: integer #101 +│ └─ [title]: string #102 +└─ [where]: struct 'User_query_where_unique_input' #244 + ├─ [AND]: optional 'optional_239' #240 + │ └─ item: list 'list_237' #238 + │ └─ item: &User_query_where_unique_input #236 + ├─ [NOT]: optional 'optional_241' #242 + │ └─ item: &User_query_where_unique_input #236 + ├─ [OR]: optional 'optional_239' #240 + │ └─ item: list 'list_237' #238 + │ └─ item: &User_query_where_unique_input #236 + ├─ [id]: optional 'optional_191' #192 + │ └─ item: optional '_prisma_integer_filter_ex' #74 + │ └─ item: union #71 + │ ├─ variant_0: either '_prisma_integer_filter' #69 + │ │ ├─ variant_0: integer #58 + │ │ ├─ variant_1: struct #63 + │ │ │ └─ [equals]: integer #58 + │ │ ├─ variant_2: struct #64 + │ │ │ └─ [not]: integer #58 + │ │ ├─ variant_3: struct #65 + │ │ │ ├─ [gt]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ [gte]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ [lt]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ └─ [lte]: optional 'optional_59' #60 + │ │ │ └─ item: integer #58 + │ │ ├─ variant_4: struct #66 + │ │ │ └─ [in]: list 'list_61' #62 + │ │ │ └─ item: integer #58 + │ │ └─ variant_5: struct #67 + │ │ └─ [notIn]: list 'list_61' #62 + │ │ └─ item: integer #58 + │ └─ variant_1: struct #70 + │ └─ [not]: either '_prisma_integer_filter' #69 + │ ├─ variant_0: integer #58 + │ ├─ variant_1: struct #63 + │ │ └─ [equals]: integer #58 + │ ├─ variant_2: struct #64 + │ │ └─ [not]: integer #58 + │ ├─ variant_3: struct #65 + │ │ ├─ [gt]: optional 'optional_59' #60 + │ │ │ └─ item: integer #58 + │ │ ├─ [gte]: optional 'optional_59' #60 + │ │ │ └─ item: integer #58 + │ │ ├─ [lt]: optional 'optional_59' #60 + │ │ │ └─ item: integer #58 + │ │ └─ [lte]: optional 'optional_59' #60 + │ │ └─ item: integer #58 + │ ├─ variant_4: struct #66 + │ │ └─ [in]: list 'list_61' #62 + │ │ └─ item: integer #58 + │ └─ variant_5: struct #67 + │ └─ [notIn]: list 'list_61' #62 + │ └─ item: integer #58 + ├─ [name]: optional 'optional_193' #194 + │ └─ item: optional '_prisma_string_filter_ex' #53 + │ └─ item: union #50 + │ ├─ variant_0: union '_prisma_string_filter' #48 + │ │ ├─ variant_0: string #32 + │ │ ├─ variant_1: struct #37 + │ │ │ └─ [equals]: string #32 + │ │ ├─ variant_2: struct #38 + │ │ │ └─ [not]: string #32 + │ │ ├─ variant_3: struct #39 + │ │ │ └─ [in]: list 'list_35' #36 + │ │ │ └─ item: string #32 + │ │ ├─ variant_4: struct #40 + │ │ │ └─ [notIn]: list 'list_35' #36 + │ │ │ └─ item: string #32 + │ │ ├─ variant_5: struct #44 + │ │ │ ├─ [contains]: string #32 + │ │ │ └─ [mode]: optional 'optional_42' #43 + │ │ │ └─ item: string #41 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #45 + │ │ │ └─ [search]: string #32 + │ │ └─ variant_7: struct #46 + │ │ ├─ [endsWith]: optional 'optional_33' #34 + │ │ │ └─ item: string #32 + │ │ └─ [startsWith]: optional 'optional_33' #34 + │ │ └─ item: string #32 + │ └─ variant_1: struct #49 + │ └─ [not]: union '_prisma_string_filter' #48 + │ ├─ variant_0: string #32 + │ ├─ variant_1: struct #37 + │ │ └─ [equals]: string #32 + │ ├─ variant_2: struct #38 + │ │ └─ [not]: string #32 + │ ├─ variant_3: struct #39 + │ │ └─ [in]: list 'list_35' #36 + │ │ └─ item: string #32 + │ ├─ variant_4: struct #40 + │ │ └─ [notIn]: list 'list_35' #36 + │ │ └─ item: string #32 + │ ├─ variant_5: struct #44 + │ │ ├─ [contains]: string #32 + │ │ └─ [mode]: optional 'optional_42' #43 + │ │ └─ item: string #41 enum{ '"insensitive"' } + │ ├─ variant_6: struct #45 + │ │ └─ [search]: string #32 + │ └─ variant_7: struct #46 + │ ├─ [endsWith]: optional 'optional_33' #34 + │ │ └─ item: string #32 + │ └─ [startsWith]: optional 'optional_33' #34 + │ └─ item: string #32 + └─ [posts]: optional 'optional_232' #233 + └─ item: union #231 + ├─ variant_0: struct #224 + │ └─ [every]: optional 'optional_222' #223 + │ └─ item: struct 'Post_where_excluding_User' #221 + │ ├─ [author]: optional 'optional_218' #219 + │ │ └─ item: struct 'User_where_excluding_User_and_Post_where_excluding_User' #217 + │ │ ├─ [id]: optional 'optional_199' #200 + │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 + │ │ │ └─ item: union #71 + │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 + │ │ │ │ ├─ variant_0: integer #58 + │ │ │ │ ├─ variant_1: struct #63 + │ │ │ │ │ └─ [equals]: integer #58 + │ │ │ │ ├─ variant_2: struct #64 + │ │ │ │ │ └─ [not]: integer #58 + │ │ │ │ ├─ variant_3: struct #65 + │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 + │ │ │ │ │ │ └─ item: integer #58 + │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 + │ │ │ │ │ │ └─ item: integer #58 + │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 + │ │ │ │ │ │ └─ item: integer #58 + │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ ├─ variant_4: struct #66 + │ │ │ │ │ └─ [in]: list 'list_61' #62 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ └─ variant_5: struct #67 + │ │ │ │ └─ [notIn]: list 'list_61' #62 + │ │ │ │ └─ item: integer #58 + │ │ │ └─ variant_1: struct #70 + │ │ │ └─ [not]: either '_prisma_integer_filter' #69 + │ │ │ ├─ variant_0: integer #58 + │ │ │ ├─ variant_1: struct #63 + │ │ │ │ └─ [equals]: integer #58 + │ │ │ ├─ variant_2: struct #64 + │ │ │ │ └─ [not]: integer #58 + │ │ │ ├─ variant_3: struct #65 + │ │ │ │ ├─ [gt]: optional 'optional_59' #60 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ ├─ [gte]: optional 'optional_59' #60 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ ├─ [lt]: optional 'optional_59' #60 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ └─ [lte]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ variant_4: struct #66 + │ │ │ │ └─ [in]: list 'list_61' #62 + │ │ │ │ └─ item: integer #58 + │ │ │ └─ variant_5: struct #67 + │ │ │ └─ [notIn]: list 'list_61' #62 + │ │ │ └─ item: integer #58 + │ │ ├─ [name]: optional 'optional_201' #202 + │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 + │ │ │ └─ item: union #50 + │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 + │ │ │ │ ├─ variant_0: string #32 + │ │ │ │ ├─ variant_1: struct #37 + │ │ │ │ │ └─ [equals]: string #32 + │ │ │ │ ├─ variant_2: struct #38 + │ │ │ │ │ └─ [not]: string #32 + │ │ │ │ ├─ variant_3: struct #39 + │ │ │ │ │ └─ [in]: list 'list_35' #36 + │ │ │ │ │ └─ item: string #32 + │ │ │ │ ├─ variant_4: struct #40 + │ │ │ │ │ └─ [notIn]: list 'list_35' #36 + │ │ │ │ │ └─ item: string #32 + │ │ │ │ ├─ variant_5: struct #44 + │ │ │ │ │ ├─ [contains]: string #32 + │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 + │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } + │ │ │ │ ├─ variant_6: struct #45 + │ │ │ │ │ └─ [search]: string #32 + │ │ │ │ └─ variant_7: struct #46 + │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 + │ │ │ │ │ └─ item: string #32 + │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 + │ │ │ │ └─ item: string #32 + │ │ │ └─ variant_1: struct #49 + │ │ │ └─ [not]: union '_prisma_string_filter' #48 + │ │ │ ├─ variant_0: string #32 + │ │ │ ├─ variant_1: struct #37 + │ │ │ │ └─ [equals]: string #32 + │ │ │ ├─ variant_2: struct #38 + │ │ │ │ └─ [not]: string #32 + │ │ │ ├─ variant_3: struct #39 + │ │ │ │ └─ [in]: list 'list_35' #36 + │ │ │ │ └─ item: string #32 + │ │ │ ├─ variant_4: struct #40 + │ │ │ │ └─ [notIn]: list 'list_35' #36 + │ │ │ │ └─ item: string #32 + │ │ │ ├─ variant_5: struct #44 + │ │ │ │ ├─ [contains]: string #32 + │ │ │ │ └─ [mode]: optional 'optional_42' #43 + │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #45 + │ │ │ │ └─ [search]: string #32 + │ │ │ └─ variant_7: struct #46 + │ │ │ ├─ [endsWith]: optional 'optional_33' #34 + │ │ │ │ └─ item: string #32 + │ │ │ └─ [startsWith]: optional 'optional_33' #34 + │ │ │ └─ item: string #32 + │ │ └─ [posts]: optional 'optional_214' #215 + │ │ └─ item: union #213 + │ │ ├─ variant_0: struct #206 + │ │ │ └─ [every]: optional 'optional_204' #205 + │ │ │ └─ item: &Post_where_excluding_User #203 + │ │ ├─ variant_1: struct #209 + │ │ │ └─ [some]: optional 'optional_207' #208 + │ │ │ └─ item: &Post_where_excluding_User #203 + │ │ └─ variant_2: struct #212 + │ │ └─ [none]: optional 'optional_210' #211 + │ │ └─ item: &Post_where_excluding_User #203 + │ ├─ [id]: optional 'optional_195' #196 + │ │ └─ item: optional '_prisma_integer_filter_ex' #74 + │ │ └─ item: union #71 + │ │ ├─ variant_0: either '_prisma_integer_filter' #69 + │ │ │ ├─ variant_0: integer #58 + │ │ │ ├─ variant_1: struct #63 + │ │ │ │ └─ [equals]: integer #58 + │ │ │ ├─ variant_2: struct #64 + │ │ │ │ └─ [not]: integer #58 + │ │ │ ├─ variant_3: struct #65 + │ │ │ │ ├─ [gt]: optional 'optional_59' #60 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ ├─ [gte]: optional 'optional_59' #60 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ ├─ [lt]: optional 'optional_59' #60 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ └─ [lte]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ variant_4: struct #66 + │ │ │ │ └─ [in]: list 'list_61' #62 + │ │ │ │ └─ item: integer #58 + │ │ │ └─ variant_5: struct #67 + │ │ │ └─ [notIn]: list 'list_61' #62 + │ │ │ └─ item: integer #58 + │ │ └─ variant_1: struct #70 + │ │ └─ [not]: either '_prisma_integer_filter' #69 + │ │ ├─ variant_0: integer #58 + │ │ ├─ variant_1: struct #63 + │ │ │ └─ [equals]: integer #58 + │ │ ├─ variant_2: struct #64 + │ │ │ └─ [not]: integer #58 + │ │ ├─ variant_3: struct #65 + │ │ │ ├─ [gt]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ [gte]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ [lt]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ └─ [lte]: optional 'optional_59' #60 + │ │ │ └─ item: integer #58 + │ │ ├─ variant_4: struct #66 + │ │ │ └─ [in]: list 'list_61' #62 + │ │ │ └─ item: integer #58 + │ │ └─ variant_5: struct #67 + │ │ └─ [notIn]: list 'list_61' #62 + │ │ └─ item: integer #58 + │ └─ [title]: optional 'optional_197' #198 + │ └─ item: optional '_prisma_string_filter_ex' #53 + │ └─ item: union #50 + │ ├─ variant_0: union '_prisma_string_filter' #48 + │ │ ├─ variant_0: string #32 + │ │ ├─ variant_1: struct #37 + │ │ │ └─ [equals]: string #32 + │ │ ├─ variant_2: struct #38 + │ │ │ └─ [not]: string #32 + │ │ ├─ variant_3: struct #39 + │ │ │ └─ [in]: list 'list_35' #36 + │ │ │ └─ item: string #32 + │ │ ├─ variant_4: struct #40 + │ │ │ └─ [notIn]: list 'list_35' #36 + │ │ │ └─ item: string #32 + │ │ ├─ variant_5: struct #44 + │ │ │ ├─ [contains]: string #32 + │ │ │ └─ [mode]: optional 'optional_42' #43 + │ │ │ └─ item: string #41 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #45 + │ │ │ └─ [search]: string #32 + │ │ └─ variant_7: struct #46 + │ │ ├─ [endsWith]: optional 'optional_33' #34 + │ │ │ └─ item: string #32 + │ │ └─ [startsWith]: optional 'optional_33' #34 + │ │ └─ item: string #32 + │ └─ variant_1: struct #49 + │ └─ [not]: union '_prisma_string_filter' #48 + │ ├─ variant_0: string #32 + │ ├─ variant_1: struct #37 + │ │ └─ [equals]: string #32 + │ ├─ variant_2: struct #38 + │ │ └─ [not]: string #32 + │ ├─ variant_3: struct #39 + │ │ └─ [in]: list 'list_35' #36 + │ │ └─ item: string #32 + │ ├─ variant_4: struct #40 + │ │ └─ [notIn]: list 'list_35' #36 + │ │ └─ item: string #32 + │ ├─ variant_5: struct #44 + │ │ ├─ [contains]: string #32 + │ │ └─ [mode]: optional 'optional_42' #43 + │ │ └─ item: string #41 enum{ '"insensitive"' } + │ ├─ variant_6: struct #45 + │ │ └─ [search]: string #32 + │ └─ variant_7: struct #46 + │ ├─ [endsWith]: optional 'optional_33' #34 + │ │ └─ item: string #32 + │ └─ [startsWith]: optional 'optional_33' #34 + │ └─ item: string #32 + ├─ variant_1: struct #227 + │ └─ [some]: optional 'optional_225' #226 + │ └─ item: struct 'Post_where_excluding_User' #221 + │ ├─ [author]: optional 'optional_218' #219 + │ │ └─ item: struct 'User_where_excluding_User_and_Post_where_excluding_User' #217 + │ │ ├─ [id]: optional 'optional_199' #200 + │ │ │ └─ item: optional '_prisma_integer_filter_ex' #74 + │ │ │ └─ item: union #71 + │ │ │ ├─ variant_0: either '_prisma_integer_filter' #69 + │ │ │ │ ├─ variant_0: integer #58 + │ │ │ │ ├─ variant_1: struct #63 + │ │ │ │ │ └─ [equals]: integer #58 + │ │ │ │ ├─ variant_2: struct #64 + │ │ │ │ │ └─ [not]: integer #58 + │ │ │ │ ├─ variant_3: struct #65 + │ │ │ │ │ ├─ [gt]: optional 'optional_59' #60 + │ │ │ │ │ │ └─ item: integer #58 + │ │ │ │ │ ├─ [gte]: optional 'optional_59' #60 + │ │ │ │ │ │ └─ item: integer #58 + │ │ │ │ │ ├─ [lt]: optional 'optional_59' #60 + │ │ │ │ │ │ └─ item: integer #58 + │ │ │ │ │ └─ [lte]: optional 'optional_59' #60 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ ├─ variant_4: struct #66 + │ │ │ │ │ └─ [in]: list 'list_61' #62 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ └─ variant_5: struct #67 + │ │ │ │ └─ [notIn]: list 'list_61' #62 + │ │ │ │ └─ item: integer #58 + │ │ │ └─ variant_1: struct #70 + │ │ │ └─ [not]: either '_prisma_integer_filter' #69 + │ │ │ ├─ variant_0: integer #58 + │ │ │ ├─ variant_1: struct #63 + │ │ │ │ └─ [equals]: integer #58 + │ │ │ ├─ variant_2: struct #64 + │ │ │ │ └─ [not]: integer #58 + │ │ │ ├─ variant_3: struct #65 + │ │ │ │ ├─ [gt]: optional 'optional_59' #60 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ ├─ [gte]: optional 'optional_59' #60 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ ├─ [lt]: optional 'optional_59' #60 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ └─ [lte]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ variant_4: struct #66 + │ │ │ │ └─ [in]: list 'list_61' #62 + │ │ │ │ └─ item: integer #58 + │ │ │ └─ variant_5: struct #67 + │ │ │ └─ [notIn]: list 'list_61' #62 + │ │ │ └─ item: integer #58 + │ │ ├─ [name]: optional 'optional_201' #202 + │ │ │ └─ item: optional '_prisma_string_filter_ex' #53 + │ │ │ └─ item: union #50 + │ │ │ ├─ variant_0: union '_prisma_string_filter' #48 + │ │ │ │ ├─ variant_0: string #32 + │ │ │ │ ├─ variant_1: struct #37 + │ │ │ │ │ └─ [equals]: string #32 + │ │ │ │ ├─ variant_2: struct #38 + │ │ │ │ │ └─ [not]: string #32 + │ │ │ │ ├─ variant_3: struct #39 + │ │ │ │ │ └─ [in]: list 'list_35' #36 + │ │ │ │ │ └─ item: string #32 + │ │ │ │ ├─ variant_4: struct #40 + │ │ │ │ │ └─ [notIn]: list 'list_35' #36 + │ │ │ │ │ └─ item: string #32 + │ │ │ │ ├─ variant_5: struct #44 + │ │ │ │ │ ├─ [contains]: string #32 + │ │ │ │ │ └─ [mode]: optional 'optional_42' #43 + │ │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } + │ │ │ │ ├─ variant_6: struct #45 + │ │ │ │ │ └─ [search]: string #32 + │ │ │ │ └─ variant_7: struct #46 + │ │ │ │ ├─ [endsWith]: optional 'optional_33' #34 + │ │ │ │ │ └─ item: string #32 + │ │ │ │ └─ [startsWith]: optional 'optional_33' #34 + │ │ │ │ └─ item: string #32 + │ │ │ └─ variant_1: struct #49 + │ │ │ └─ [not]: union '_prisma_string_filter' #48 + │ │ │ ├─ variant_0: string #32 + │ │ │ ├─ variant_1: struct #37 + │ │ │ │ └─ [equals]: string #32 + │ │ │ ├─ variant_2: struct #38 + │ │ │ │ └─ [not]: string #32 + │ │ │ ├─ variant_3: struct #39 + │ │ │ │ └─ [in]: list 'list_35' #36 + │ │ │ │ └─ item: string #32 + │ │ │ ├─ variant_4: struct #40 + │ │ │ │ └─ [notIn]: list 'list_35' #36 + │ │ │ │ └─ item: string #32 + │ │ │ ├─ variant_5: struct #44 + │ │ │ │ ├─ [contains]: string #32 + │ │ │ │ └─ [mode]: optional 'optional_42' #43 + │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #45 + │ │ │ │ └─ [search]: string #32 + │ │ │ └─ variant_7: struct #46 + │ │ │ ├─ [endsWith]: optional 'optional_33' #34 + │ │ │ │ └─ item: string #32 + │ │ │ └─ [startsWith]: optional 'optional_33' #34 + │ │ │ └─ item: string #32 + │ │ └─ [posts]: optional 'optional_214' #215 + │ │ └─ item: union #213 + │ │ ├─ variant_0: struct #206 + │ │ │ └─ [every]: optional 'optional_204' #205 + │ │ │ └─ item: &Post_where_excluding_User #203 + │ │ ├─ variant_1: struct #209 + │ │ │ └─ [some]: optional 'optional_207' #208 + │ │ │ └─ item: &Post_where_excluding_User #203 + │ │ └─ variant_2: struct #212 + │ │ └─ [none]: optional 'optional_210' #211 + │ │ └─ item: &Post_where_excluding_User #203 + │ ├─ [id]: optional 'optional_195' #196 + │ │ └─ item: optional '_prisma_integer_filter_ex' #74 + │ │ └─ item: union #71 + │ │ ├─ variant_0: either '_prisma_integer_filter' #69 + │ │ │ ├─ variant_0: integer #58 + │ │ │ ├─ variant_1: struct #63 + │ │ │ │ └─ [equals]: integer #58 + │ │ │ ├─ variant_2: struct #64 + │ │ │ │ └─ [not]: integer #58 + │ │ │ ├─ variant_3: struct #65 + │ │ │ │ ├─ [gt]: optional 'optional_59' #60 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ ├─ [gte]: optional 'optional_59' #60 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ ├─ [lt]: optional 'optional_59' #60 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ └─ [lte]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ variant_4: struct #66 + │ │ │ │ └─ [in]: list 'list_61' #62 + │ │ │ │ └─ item: integer #58 + │ │ │ └─ variant_5: struct #67 + │ │ │ └─ [notIn]: list 'list_61' #62 + │ │ │ └─ item: integer #58 + │ │ └─ variant_1: struct #70 + │ │ └─ [not]: either '_prisma_integer_filter' #69 + │ │ ├─ variant_0: integer #58 + │ │ ├─ variant_1: struct #63 + │ │ │ └─ [equals]: integer #58 + │ │ ├─ variant_2: struct #64 + │ │ │ └─ [not]: integer #58 + │ │ ├─ variant_3: struct #65 + │ │ │ ├─ [gt]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ [gte]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ [lt]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ └─ [lte]: optional 'optional_59' #60 + │ │ │ └─ item: integer #58 + │ │ ├─ variant_4: struct #66 + │ │ │ └─ [in]: list 'list_61' #62 + │ │ │ └─ item: integer #58 + │ │ └─ variant_5: struct #67 + │ │ └─ [notIn]: list 'list_61' #62 + │ │ └─ item: integer #58 + │ └─ [title]: optional 'optional_197' #198 + │ └─ item: optional '_prisma_string_filter_ex' #53 + │ └─ item: union #50 + │ ├─ variant_0: union '_prisma_string_filter' #48 + │ │ ├─ variant_0: string #32 + │ │ ├─ variant_1: struct #37 + │ │ │ └─ [equals]: string #32 + │ │ ├─ variant_2: struct #38 + │ │ │ └─ [not]: string #32 + │ │ ├─ variant_3: struct #39 + │ │ │ └─ [in]: list 'list_35' #36 + │ │ │ └─ item: string #32 + │ │ ├─ variant_4: struct #40 + │ │ │ └─ [notIn]: list 'list_35' #36 + │ │ │ └─ item: string #32 + │ │ ├─ variant_5: struct #44 + │ │ │ ├─ [contains]: string #32 + │ │ │ └─ [mode]: optional 'optional_42' #43 + │ │ │ └─ item: string #41 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #45 + │ │ │ └─ [search]: string #32 + │ │ └─ variant_7: struct #46 + │ │ ├─ [endsWith]: optional 'optional_33' #34 + │ │ │ └─ item: string #32 + │ │ └─ [startsWith]: optional 'optional_33' #34 + │ │ └─ item: string #32 + │ └─ variant_1: struct #49 + │ └─ [not]: union '_prisma_string_filter' #48 + │ ├─ variant_0: string #32 + │ ├─ variant_1: struct #37 + │ │ └─ [equals]: string #32 + │ ├─ variant_2: struct #38 + │ │ └─ [not]: string #32 + │ ├─ variant_3: struct #39 + │ │ └─ [in]: list 'list_35' #36 + │ │ └─ item: string #32 + │ ├─ variant_4: struct #40 + │ │ └─ [notIn]: list 'list_35' #36 + │ │ └─ item: string #32 + │ ├─ variant_5: struct #44 + │ │ ├─ [contains]: string #32 + │ │ └─ [mode]: optional 'optional_42' #43 + │ │ └─ item: string #41 enum{ '"insensitive"' } + │ ├─ variant_6: struct #45 + │ │ └─ [search]: string #32 + │ └─ variant_7: struct #46 + │ ├─ [endsWith]: optional 'optional_33' #34 + │ │ └─ item: string #32 + │ └─ [startsWith]: optional 'optional_33' #34 + │ └─ item: string #32 + └─ variant_2: struct #230 + └─ [none]: optional 'optional_228' #229 + └─ item: struct 'Post_where_excluding_User' #221 + ├─ [author]: optional 'optional_218' #219 + │ └─ item: struct 'User_where_excluding_User_and_Post_where_excluding_User' #217 + │ ├─ [id]: optional 'optional_199' #200 + │ │ └─ item: optional '_prisma_integer_filter_ex' #74 + │ │ └─ item: union #71 + │ │ ├─ variant_0: either '_prisma_integer_filter' #69 + │ │ │ ├─ variant_0: integer #58 + │ │ │ ├─ variant_1: struct #63 + │ │ │ │ └─ [equals]: integer #58 + │ │ │ ├─ variant_2: struct #64 + │ │ │ │ └─ [not]: integer #58 + │ │ │ ├─ variant_3: struct #65 + │ │ │ │ ├─ [gt]: optional 'optional_59' #60 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ ├─ [gte]: optional 'optional_59' #60 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ ├─ [lt]: optional 'optional_59' #60 + │ │ │ │ │ └─ item: integer #58 + │ │ │ │ └─ [lte]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ variant_4: struct #66 + │ │ │ │ └─ [in]: list 'list_61' #62 + │ │ │ │ └─ item: integer #58 + │ │ │ └─ variant_5: struct #67 + │ │ │ └─ [notIn]: list 'list_61' #62 + │ │ │ └─ item: integer #58 + │ │ └─ variant_1: struct #70 + │ │ └─ [not]: either '_prisma_integer_filter' #69 + │ │ ├─ variant_0: integer #58 + │ │ ├─ variant_1: struct #63 + │ │ │ └─ [equals]: integer #58 + │ │ ├─ variant_2: struct #64 + │ │ │ └─ [not]: integer #58 + │ │ ├─ variant_3: struct #65 + │ │ │ ├─ [gt]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ [gte]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ [lt]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ └─ [lte]: optional 'optional_59' #60 + │ │ │ └─ item: integer #58 + │ │ ├─ variant_4: struct #66 + │ │ │ └─ [in]: list 'list_61' #62 + │ │ │ └─ item: integer #58 + │ │ └─ variant_5: struct #67 + │ │ └─ [notIn]: list 'list_61' #62 + │ │ └─ item: integer #58 + │ ├─ [name]: optional 'optional_201' #202 + │ │ └─ item: optional '_prisma_string_filter_ex' #53 + │ │ └─ item: union #50 + │ │ ├─ variant_0: union '_prisma_string_filter' #48 + │ │ │ ├─ variant_0: string #32 + │ │ │ ├─ variant_1: struct #37 + │ │ │ │ └─ [equals]: string #32 + │ │ │ ├─ variant_2: struct #38 + │ │ │ │ └─ [not]: string #32 + │ │ │ ├─ variant_3: struct #39 + │ │ │ │ └─ [in]: list 'list_35' #36 + │ │ │ │ └─ item: string #32 + │ │ │ ├─ variant_4: struct #40 + │ │ │ │ └─ [notIn]: list 'list_35' #36 + │ │ │ │ └─ item: string #32 + │ │ │ ├─ variant_5: struct #44 + │ │ │ │ ├─ [contains]: string #32 + │ │ │ │ └─ [mode]: optional 'optional_42' #43 + │ │ │ │ └─ item: string #41 enum{ '"insensitive"' } + │ │ │ ├─ variant_6: struct #45 + │ │ │ │ └─ [search]: string #32 + │ │ │ └─ variant_7: struct #46 + │ │ │ ├─ [endsWith]: optional 'optional_33' #34 + │ │ │ │ └─ item: string #32 + │ │ │ └─ [startsWith]: optional 'optional_33' #34 + │ │ │ └─ item: string #32 + │ │ └─ variant_1: struct #49 + │ │ └─ [not]: union '_prisma_string_filter' #48 + │ │ ├─ variant_0: string #32 + │ │ ├─ variant_1: struct #37 + │ │ │ └─ [equals]: string #32 + │ │ ├─ variant_2: struct #38 + │ │ │ └─ [not]: string #32 + │ │ ├─ variant_3: struct #39 + │ │ │ └─ [in]: list 'list_35' #36 + │ │ │ └─ item: string #32 + │ │ ├─ variant_4: struct #40 + │ │ │ └─ [notIn]: list 'list_35' #36 + │ │ │ └─ item: string #32 + │ │ ├─ variant_5: struct #44 + │ │ │ ├─ [contains]: string #32 + │ │ │ └─ [mode]: optional 'optional_42' #43 + │ │ │ └─ item: string #41 enum{ '"insensitive"' } + │ │ ├─ variant_6: struct #45 + │ │ │ └─ [search]: string #32 + │ │ └─ variant_7: struct #46 + │ │ ├─ [endsWith]: optional 'optional_33' #34 + │ │ │ └─ item: string #32 + │ │ └─ [startsWith]: optional 'optional_33' #34 + │ │ └─ item: string #32 + │ └─ [posts]: optional 'optional_214' #215 + │ └─ item: union #213 + │ ├─ variant_0: struct #206 + │ │ └─ [every]: optional 'optional_204' #205 + │ │ └─ item: &Post_where_excluding_User #203 + │ ├─ variant_1: struct #209 + │ │ └─ [some]: optional 'optional_207' #208 + │ │ └─ item: &Post_where_excluding_User #203 + │ └─ variant_2: struct #212 + │ └─ [none]: optional 'optional_210' #211 + │ └─ item: &Post_where_excluding_User #203 + ├─ [id]: optional 'optional_195' #196 + │ └─ item: optional '_prisma_integer_filter_ex' #74 + │ └─ item: union #71 + │ ├─ variant_0: either '_prisma_integer_filter' #69 + │ │ ├─ variant_0: integer #58 + │ │ ├─ variant_1: struct #63 + │ │ │ └─ [equals]: integer #58 + │ │ ├─ variant_2: struct #64 + │ │ │ └─ [not]: integer #58 + │ │ ├─ variant_3: struct #65 + │ │ │ ├─ [gt]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ [gte]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ ├─ [lt]: optional 'optional_59' #60 + │ │ │ │ └─ item: integer #58 + │ │ │ └─ [lte]: optional 'optional_59' #60 + │ │ │ └─ item: integer #58 + │ │ ├─ variant_4: struct #66 + │ │ │ └─ [in]: list 'list_61' #62 + │ │ │ └─ item: integer #58 + │ │ └─ variant_5: struct #67 + │ │ └─ [notIn]: list 'list_61' #62 + │ │ └─ item: integer #58 + │ └─ variant_1: struct #70 + │ └─ [not]: either '_prisma_integer_filter' #69 + │ ├─ variant_0: integer #58 + │ ├─ variant_1: struct #63 + │ │ └─ [equals]: integer #58 + │ ├─ variant_2: struct #64 + │ │ └─ [not]: integer #58 + │ ├─ variant_3: struct #65 + │ │ ├─ [gt]: optional 'optional_59' #60 + │ │ │ └─ item: integer #58 + │ │ ├─ [gte]: optional 'optional_59' #60 + │ │ │ └─ item: integer #58 + │ │ ├─ [lt]: optional 'optional_59' #60 + │ │ │ └─ item: integer #58 + │ │ └─ [lte]: optional 'optional_59' #60 + │ │ └─ item: integer #58 + │ ├─ variant_4: struct #66 + │ │ └─ [in]: list 'list_61' #62 + │ │ └─ item: integer #58 + │ └─ variant_5: struct #67 + │ └─ [notIn]: list 'list_61' #62 + │ └─ item: integer #58 + └─ [title]: optional 'optional_197' #198 + └─ item: optional '_prisma_string_filter_ex' #53 + └─ item: union #50 + ├─ variant_0: union '_prisma_string_filter' #48 + │ ├─ variant_0: string #32 + │ ├─ variant_1: struct #37 + │ │ └─ [equals]: string #32 + │ ├─ variant_2: struct #38 + │ │ └─ [not]: string #32 + │ ├─ variant_3: struct #39 + │ │ └─ [in]: list 'list_35' #36 + │ │ └─ item: string #32 + │ ├─ variant_4: struct #40 + │ │ └─ [notIn]: list 'list_35' #36 + │ │ └─ item: string #32 + │ ├─ variant_5: struct #44 + │ │ ├─ [contains]: string #32 + │ │ └─ [mode]: optional 'optional_42' #43 + │ │ └─ item: string #41 enum{ '"insensitive"' } + │ ├─ variant_6: struct #45 + │ │ └─ [search]: string #32 + │ └─ variant_7: struct #46 + │ ├─ [endsWith]: optional 'optional_33' #34 + │ │ └─ item: string #32 + │ └─ [startsWith]: optional 'optional_33' #34 + │ └─ item: string #32 + └─ variant_1: struct #49 + └─ [not]: union '_prisma_string_filter' #48 + ├─ variant_0: string #32 + ├─ variant_1: struct #37 + │ └─ [equals]: string #32 + ├─ variant_2: struct #38 + │ └─ [not]: string #32 + ├─ variant_3: struct #39 + │ └─ [in]: list 'list_35' #36 + │ └─ item: string #32 + ├─ variant_4: struct #40 + │ └─ [notIn]: list 'list_35' #36 + │ └─ item: string #32 + ├─ variant_5: struct #44 + │ ├─ [contains]: string #32 + │ └─ [mode]: optional 'optional_42' #43 + │ └─ item: string #41 enum{ '"insensitive"' } + ├─ variant_6: struct #45 + │ └─ [search]: string #32 + └─ variant_7: struct #46 + ├─ [endsWith]: optional 'optional_33' #34 + │ └─ item: string #32 + └─ [startsWith]: optional 'optional_33' #34 + └─ item: string #32 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__where___test__where Post.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__where___test__where Post.snap index ad7d720d37..1a01a72bc4 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__where___test__where Post.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__where___test__where Post.snap @@ -2,209 +2,503 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/where_.rs expression: "tree::print(context.generate(&Where::new(post))?)" --- -root: struct 'Post_where' #83 -├── [author]: optional 'optional_82' #82 -│ └── item: struct 'User_where_excluding_Post' #81 -│ ├── [id]: optional 'optional_70' #70 -│ │ └── item: optional '_prisma_integer_filter_ex' #37 -│ │ └── item: union #36 -│ │ ├── variant_0: either '_prisma_integer_filter' #34 -│ │ │ ├── variant_0: integer #26 -│ │ │ ├── variant_1: struct #29 -│ │ │ │ └── [equals]: integer #26 -│ │ │ ├── variant_2: struct #30 -│ │ │ │ └── [not]: integer #26 -│ │ │ ├── variant_3: struct #31 -│ │ │ │ ├── [gt]: optional 'optional_27' #27 -│ │ │ │ │ └── item: integer #26 -│ │ │ │ ├── [gte]: optional 'optional_27' #27 -│ │ │ │ │ └── item: integer #26 -│ │ │ │ ├── [lt]: optional 'optional_27' #27 -│ │ │ │ │ └── item: integer #26 -│ │ │ │ └── [lte]: optional 'optional_27' #27 -│ │ │ │ └── item: integer #26 -│ │ │ ├── variant_4: struct #32 -│ │ │ │ └── [in]: list 'list_28' #28 -│ │ │ │ └── item: integer #26 -│ │ │ └── variant_5: struct #33 -│ │ │ └── [notIn]: list 'list_28' #28 -│ │ │ └── item: integer #26 -│ │ └── variant_1: struct #35 -│ │ └── [not]: either '_prisma_integer_filter' #34 -│ │ ├── variant_0: integer #26 -│ │ ├── variant_1: struct #29 -│ │ │ └── [equals]: integer #26 -│ │ ├── variant_2: struct #30 -│ │ │ └── [not]: integer #26 -│ │ ├── variant_3: struct #31 -│ │ │ ├── [gt]: optional 'optional_27' #27 -│ │ │ │ └── item: integer #26 -│ │ │ ├── [gte]: optional 'optional_27' #27 -│ │ │ │ └── item: integer #26 -│ │ │ ├── [lt]: optional 'optional_27' #27 -│ │ │ │ └── item: integer #26 -│ │ │ └── [lte]: optional 'optional_27' #27 -│ │ │ └── item: integer #26 -│ │ ├── variant_4: struct #32 -│ │ │ └── [in]: list 'list_28' #28 -│ │ │ └── item: integer #26 -│ │ └── variant_5: struct #33 -│ │ └── [notIn]: list 'list_28' #28 -│ │ └── item: integer #26 -│ ├── [name]: optional 'optional_71' #71 -│ │ └── item: optional '_prisma_string_filter_ex' #23 -│ │ └── item: union #22 -│ │ ├── variant_0: union '_prisma_string_filter' #20 -│ │ │ ├── variant_0: string #8 -│ │ │ ├── variant_1: struct #11 -│ │ │ │ └── [equals]: string #8 -│ │ │ ├── variant_2: struct #12 -│ │ │ │ └── [not]: string #8 -│ │ │ ├── variant_3: struct #13 -│ │ │ │ └── [in]: list 'list_10' #10 -│ │ │ │ └── item: string #8 -│ │ │ ├── variant_4: struct #14 -│ │ │ │ └── [notIn]: list 'list_10' #10 -│ │ │ │ └── item: string #8 -│ │ │ ├── variant_5: struct #17 -│ │ │ │ ├── [contains]: string #8 -│ │ │ │ └── [mode]: optional 'optional_16' #16 -│ │ │ │ └── item: string #15 enum{ '"insensitive"' } -│ │ │ ├── variant_6: struct #18 -│ │ │ │ └── [search]: string #8 -│ │ │ └── variant_7: struct #19 -│ │ │ ├── [endsWith]: optional 'optional_9' #9 -│ │ │ │ └── item: string #8 -│ │ │ └── [startsWith]: optional 'optional_9' #9 -│ │ │ └── item: string #8 -│ │ └── variant_1: struct #21 -│ │ └── [not]: union '_prisma_string_filter' #20 -│ │ ├── variant_0: string #8 -│ │ ├── variant_1: struct #11 -│ │ │ └── [equals]: string #8 -│ │ ├── variant_2: struct #12 -│ │ │ └── [not]: string #8 -│ │ ├── variant_3: struct #13 -│ │ │ └── [in]: list 'list_10' #10 -│ │ │ └── item: string #8 -│ │ ├── variant_4: struct #14 -│ │ │ └── [notIn]: list 'list_10' #10 -│ │ │ └── item: string #8 -│ │ ├── variant_5: struct #17 -│ │ │ ├── [contains]: string #8 -│ │ │ └── [mode]: optional 'optional_16' #16 -│ │ │ └── item: string #15 enum{ '"insensitive"' } -│ │ ├── variant_6: struct #18 -│ │ │ └── [search]: string #8 -│ │ └── variant_7: struct #19 -│ │ ├── [endsWith]: optional 'optional_9' #9 -│ │ │ └── item: string #8 -│ │ └── [startsWith]: optional 'optional_9' #9 -│ │ └── item: string #8 -│ └── [posts]: optional 'optional_80' #80 -│ └── item: union #79 -│ ├── variant_0: struct #74 -│ │ └── [every]: optional 'optional_73' #73 -│ │ └── item: &Post_where #72 -│ ├── variant_1: struct #76 -│ │ └── [some]: optional 'optional_75' #75 -│ │ └── item: &Post_where #72 -│ └── variant_2: struct #78 -│ └── [none]: optional 'optional_77' #77 -│ └── item: &Post_where #72 -├── [id]: optional 'optional_68' #68 -│ └── item: optional '_prisma_integer_filter_ex' #37 -│ └── item: union #36 -│ ├── variant_0: either '_prisma_integer_filter' #34 -│ │ ├── variant_0: integer #26 -│ │ ├── variant_1: struct #29 -│ │ │ └── [equals]: integer #26 -│ │ ├── variant_2: struct #30 -│ │ │ └── [not]: integer #26 -│ │ ├── variant_3: struct #31 -│ │ │ ├── [gt]: optional 'optional_27' #27 -│ │ │ │ └── item: integer #26 -│ │ │ ├── [gte]: optional 'optional_27' #27 -│ │ │ │ └── item: integer #26 -│ │ │ ├── [lt]: optional 'optional_27' #27 -│ │ │ │ └── item: integer #26 -│ │ │ └── [lte]: optional 'optional_27' #27 -│ │ │ └── item: integer #26 -│ │ ├── variant_4: struct #32 -│ │ │ └── [in]: list 'list_28' #28 -│ │ │ └── item: integer #26 -│ │ └── variant_5: struct #33 -│ │ └── [notIn]: list 'list_28' #28 -│ │ └── item: integer #26 -│ └── variant_1: struct #35 -│ └── [not]: either '_prisma_integer_filter' #34 -│ ├── variant_0: integer #26 -│ ├── variant_1: struct #29 -│ │ └── [equals]: integer #26 -│ ├── variant_2: struct #30 -│ │ └── [not]: integer #26 -│ ├── variant_3: struct #31 -│ │ ├── [gt]: optional 'optional_27' #27 -│ │ │ └── item: integer #26 -│ │ ├── [gte]: optional 'optional_27' #27 -│ │ │ └── item: integer #26 -│ │ ├── [lt]: optional 'optional_27' #27 -│ │ │ └── item: integer #26 -│ │ └── [lte]: optional 'optional_27' #27 -│ │ └── item: integer #26 -│ ├── variant_4: struct #32 -│ │ └── [in]: list 'list_28' #28 -│ │ └── item: integer #26 -│ └── variant_5: struct #33 -│ └── [notIn]: list 'list_28' #28 -│ └── item: integer #26 -└── [title]: optional 'optional_69' #69 - └── item: optional '_prisma_string_filter_ex' #23 - └── item: union #22 - ├── variant_0: union '_prisma_string_filter' #20 - │ ├── variant_0: string #8 - │ ├── variant_1: struct #11 - │ │ └── [equals]: string #8 - │ ├── variant_2: struct #12 - │ │ └── [not]: string #8 - │ ├── variant_3: struct #13 - │ │ └── [in]: list 'list_10' #10 - │ │ └── item: string #8 - │ ├── variant_4: struct #14 - │ │ └── [notIn]: list 'list_10' #10 - │ │ └── item: string #8 - │ ├── variant_5: struct #17 - │ │ ├── [contains]: string #8 - │ │ └── [mode]: optional 'optional_16' #16 - │ │ └── item: string #15 enum{ '"insensitive"' } - │ ├── variant_6: struct #18 - │ │ └── [search]: string #8 - │ └── variant_7: struct #19 - │ ├── [endsWith]: optional 'optional_9' #9 - │ │ └── item: string #8 - │ └── [startsWith]: optional 'optional_9' #9 - │ └── item: string #8 - └── variant_1: struct #21 - └── [not]: union '_prisma_string_filter' #20 - ├── variant_0: string #8 - ├── variant_1: struct #11 - │ └── [equals]: string #8 - ├── variant_2: struct #12 - │ └── [not]: string #8 - ├── variant_3: struct #13 - │ └── [in]: list 'list_10' #10 - │ └── item: string #8 - ├── variant_4: struct #14 - │ └── [notIn]: list 'list_10' #10 - │ └── item: string #8 - ├── variant_5: struct #17 - │ ├── [contains]: string #8 - │ └── [mode]: optional 'optional_16' #16 - │ └── item: string #15 enum{ '"insensitive"' } - ├── variant_6: struct #18 - │ └── [search]: string #8 - └── variant_7: struct #19 - ├── [endsWith]: optional 'optional_9' #9 - │ └── item: string #8 - └── [startsWith]: optional 'optional_9' #9 - └── item: string #8 +root: struct 'Post_where' #154 +├── [author]: optional 'optional_151' #152 +│ └── item: struct 'User_where_excluding_Post' #150 +│ ├── [id]: optional 'optional_124' #125 +│ │ └── item: optional '_prisma_integer_filter_ex' #53 +│ │ └── item: union #50 +│ │ ├── variant_0: either '_prisma_integer_filter' #48 +│ │ │ ├── variant_0: integer #37 +│ │ │ ├── variant_1: struct #42 +│ │ │ │ └── [equals]: integer #37 +│ │ │ ├── variant_2: struct #43 +│ │ │ │ └── [not]: integer #37 +│ │ │ ├── variant_3: struct #44 +│ │ │ │ ├── [gt]: optional 'optional_38' #39 +│ │ │ │ │ └── item: integer #37 +│ │ │ │ ├── [gte]: optional 'optional_38' #39 +│ │ │ │ │ └── item: integer #37 +│ │ │ │ ├── [lt]: optional 'optional_38' #39 +│ │ │ │ │ └── item: integer #37 +│ │ │ │ └── [lte]: optional 'optional_38' #39 +│ │ │ │ └── item: integer #37 +│ │ │ ├── variant_4: struct #45 +│ │ │ │ └── [in]: list 'list_40' #41 +│ │ │ │ └── item: integer #37 +│ │ │ └── variant_5: struct #46 +│ │ │ └── [notIn]: list 'list_40' #41 +│ │ │ └── item: integer #37 +│ │ └── variant_1: struct #49 +│ │ └── [not]: either '_prisma_integer_filter' #48 +│ │ ├── variant_0: integer #37 +│ │ ├── variant_1: struct #42 +│ │ │ └── [equals]: integer #37 +│ │ ├── variant_2: struct #43 +│ │ │ └── [not]: integer #37 +│ │ ├── variant_3: struct #44 +│ │ │ ├── [gt]: optional 'optional_38' #39 +│ │ │ │ └── item: integer #37 +│ │ │ ├── [gte]: optional 'optional_38' #39 +│ │ │ │ └── item: integer #37 +│ │ │ ├── [lt]: optional 'optional_38' #39 +│ │ │ │ └── item: integer #37 +│ │ │ └── [lte]: optional 'optional_38' #39 +│ │ │ └── item: integer #37 +│ │ ├── variant_4: struct #45 +│ │ │ └── [in]: list 'list_40' #41 +│ │ │ └── item: integer #37 +│ │ └── variant_5: struct #46 +│ │ └── [notIn]: list 'list_40' #41 +│ │ └── item: integer #37 +│ ├── [name]: optional 'optional_126' #127 +│ │ └── item: optional '_prisma_string_filter_ex' #32 +│ │ └── item: union #29 +│ │ ├── variant_0: union '_prisma_string_filter' #27 +│ │ │ ├── variant_0: string #11 +│ │ │ ├── variant_1: struct #16 +│ │ │ │ └── [equals]: string #11 +│ │ │ ├── variant_2: struct #17 +│ │ │ │ └── [not]: string #11 +│ │ │ ├── variant_3: struct #18 +│ │ │ │ └── [in]: list 'list_14' #15 +│ │ │ │ └── item: string #11 +│ │ │ ├── variant_4: struct #19 +│ │ │ │ └── [notIn]: list 'list_14' #15 +│ │ │ │ └── item: string #11 +│ │ │ ├── variant_5: struct #23 +│ │ │ │ ├── [contains]: string #11 +│ │ │ │ └── [mode]: optional 'optional_21' #22 +│ │ │ │ └── item: string #20 enum{ '"insensitive"' } +│ │ │ ├── variant_6: struct #24 +│ │ │ │ └── [search]: string #11 +│ │ │ └── variant_7: struct #25 +│ │ │ ├── [endsWith]: optional 'optional_12' #13 +│ │ │ │ └── item: string #11 +│ │ │ └── [startsWith]: optional 'optional_12' #13 +│ │ │ └── item: string #11 +│ │ └── variant_1: struct #28 +│ │ └── [not]: union '_prisma_string_filter' #27 +│ │ ├── variant_0: string #11 +│ │ ├── variant_1: struct #16 +│ │ │ └── [equals]: string #11 +│ │ ├── variant_2: struct #17 +│ │ │ └── [not]: string #11 +│ │ ├── variant_3: struct #18 +│ │ │ └── [in]: list 'list_14' #15 +│ │ │ └── item: string #11 +│ │ ├── variant_4: struct #19 +│ │ │ └── [notIn]: list 'list_14' #15 +│ │ │ └── item: string #11 +│ │ ├── variant_5: struct #23 +│ │ │ ├── [contains]: string #11 +│ │ │ └── [mode]: optional 'optional_21' #22 +│ │ │ └── item: string #20 enum{ '"insensitive"' } +│ │ ├── variant_6: struct #24 +│ │ │ └── [search]: string #11 +│ │ └── variant_7: struct #25 +│ │ ├── [endsWith]: optional 'optional_12' #13 +│ │ │ └── item: string #11 +│ │ └── [startsWith]: optional 'optional_12' #13 +│ │ └── item: string #11 +│ └── [posts]: optional 'optional_147' #148 +│ └── item: union #146 +│ ├── variant_0: struct #139 +│ │ └── [every]: optional 'optional_137' #138 +│ │ └── item: struct 'Post_where_excluding_Post_and_User_where_excluding_Post' #136 +│ │ ├── [author]: optional 'optional_133' #134 +│ │ │ └── item: &User_where_excluding_Post #132 +│ │ ├── [id]: optional 'optional_128' #129 +│ │ │ └── item: optional '_prisma_integer_filter_ex' #53 +│ │ │ └── item: union #50 +│ │ │ ├── variant_0: either '_prisma_integer_filter' #48 +│ │ │ │ ├── variant_0: integer #37 +│ │ │ │ ├── variant_1: struct #42 +│ │ │ │ │ └── [equals]: integer #37 +│ │ │ │ ├── variant_2: struct #43 +│ │ │ │ │ └── [not]: integer #37 +│ │ │ │ ├── variant_3: struct #44 +│ │ │ │ │ ├── [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ └── item: integer #37 +│ │ │ │ │ ├── [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ └── item: integer #37 +│ │ │ │ │ ├── [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ └── item: integer #37 +│ │ │ │ │ └── [lte]: optional 'optional_38' #39 +│ │ │ │ │ └── item: integer #37 +│ │ │ │ ├── variant_4: struct #45 +│ │ │ │ │ └── [in]: list 'list_40' #41 +│ │ │ │ │ └── item: integer #37 +│ │ │ │ └── variant_5: struct #46 +│ │ │ │ └── [notIn]: list 'list_40' #41 +│ │ │ │ └── item: integer #37 +│ │ │ └── variant_1: struct #49 +│ │ │ └── [not]: either '_prisma_integer_filter' #48 +│ │ │ ├── variant_0: integer #37 +│ │ │ ├── variant_1: struct #42 +│ │ │ │ └── [equals]: integer #37 +│ │ │ ├── variant_2: struct #43 +│ │ │ │ └── [not]: integer #37 +│ │ │ ├── variant_3: struct #44 +│ │ │ │ ├── [gt]: optional 'optional_38' #39 +│ │ │ │ │ └── item: integer #37 +│ │ │ │ ├── [gte]: optional 'optional_38' #39 +│ │ │ │ │ └── item: integer #37 +│ │ │ │ ├── [lt]: optional 'optional_38' #39 +│ │ │ │ │ └── item: integer #37 +│ │ │ │ └── [lte]: optional 'optional_38' #39 +│ │ │ │ └── item: integer #37 +│ │ │ ├── variant_4: struct #45 +│ │ │ │ └── [in]: list 'list_40' #41 +│ │ │ │ └── item: integer #37 +│ │ │ └── variant_5: struct #46 +│ │ │ └── [notIn]: list 'list_40' #41 +│ │ │ └── item: integer #37 +│ │ └── [title]: optional 'optional_130' #131 +│ │ └── item: optional '_prisma_string_filter_ex' #32 +│ │ └── item: union #29 +│ │ ├── variant_0: union '_prisma_string_filter' #27 +│ │ │ ├── variant_0: string #11 +│ │ │ ├── variant_1: struct #16 +│ │ │ │ └── [equals]: string #11 +│ │ │ ├── variant_2: struct #17 +│ │ │ │ └── [not]: string #11 +│ │ │ ├── variant_3: struct #18 +│ │ │ │ └── [in]: list 'list_14' #15 +│ │ │ │ └── item: string #11 +│ │ │ ├── variant_4: struct #19 +│ │ │ │ └── [notIn]: list 'list_14' #15 +│ │ │ │ └── item: string #11 +│ │ │ ├── variant_5: struct #23 +│ │ │ │ ├── [contains]: string #11 +│ │ │ │ └── [mode]: optional 'optional_21' #22 +│ │ │ │ └── item: string #20 enum{ '"insensitive"' } +│ │ │ ├── variant_6: struct #24 +│ │ │ │ └── [search]: string #11 +│ │ │ └── variant_7: struct #25 +│ │ │ ├── [endsWith]: optional 'optional_12' #13 +│ │ │ │ └── item: string #11 +│ │ │ └── [startsWith]: optional 'optional_12' #13 +│ │ │ └── item: string #11 +│ │ └── variant_1: struct #28 +│ │ └── [not]: union '_prisma_string_filter' #27 +│ │ ├── variant_0: string #11 +│ │ ├── variant_1: struct #16 +│ │ │ └── [equals]: string #11 +│ │ ├── variant_2: struct #17 +│ │ │ └── [not]: string #11 +│ │ ├── variant_3: struct #18 +│ │ │ └── [in]: list 'list_14' #15 +│ │ │ └── item: string #11 +│ │ ├── variant_4: struct #19 +│ │ │ └── [notIn]: list 'list_14' #15 +│ │ │ └── item: string #11 +│ │ ├── variant_5: struct #23 +│ │ │ ├── [contains]: string #11 +│ │ │ └── [mode]: optional 'optional_21' #22 +│ │ │ └── item: string #20 enum{ '"insensitive"' } +│ │ ├── variant_6: struct #24 +│ │ │ └── [search]: string #11 +│ │ └── variant_7: struct #25 +│ │ ├── [endsWith]: optional 'optional_12' #13 +│ │ │ └── item: string #11 +│ │ └── [startsWith]: optional 'optional_12' #13 +│ │ └── item: string #11 +│ ├── variant_1: struct #142 +│ │ └── [some]: optional 'optional_140' #141 +│ │ └── item: struct 'Post_where_excluding_Post_and_User_where_excluding_Post' #136 +│ │ ├── [author]: optional 'optional_133' #134 +│ │ │ └── item: &User_where_excluding_Post #132 +│ │ ├── [id]: optional 'optional_128' #129 +│ │ │ └── item: optional '_prisma_integer_filter_ex' #53 +│ │ │ └── item: union #50 +│ │ │ ├── variant_0: either '_prisma_integer_filter' #48 +│ │ │ │ ├── variant_0: integer #37 +│ │ │ │ ├── variant_1: struct #42 +│ │ │ │ │ └── [equals]: integer #37 +│ │ │ │ ├── variant_2: struct #43 +│ │ │ │ │ └── [not]: integer #37 +│ │ │ │ ├── variant_3: struct #44 +│ │ │ │ │ ├── [gt]: optional 'optional_38' #39 +│ │ │ │ │ │ └── item: integer #37 +│ │ │ │ │ ├── [gte]: optional 'optional_38' #39 +│ │ │ │ │ │ └── item: integer #37 +│ │ │ │ │ ├── [lt]: optional 'optional_38' #39 +│ │ │ │ │ │ └── item: integer #37 +│ │ │ │ │ └── [lte]: optional 'optional_38' #39 +│ │ │ │ │ └── item: integer #37 +│ │ │ │ ├── variant_4: struct #45 +│ │ │ │ │ └── [in]: list 'list_40' #41 +│ │ │ │ │ └── item: integer #37 +│ │ │ │ └── variant_5: struct #46 +│ │ │ │ └── [notIn]: list 'list_40' #41 +│ │ │ │ └── item: integer #37 +│ │ │ └── variant_1: struct #49 +│ │ │ └── [not]: either '_prisma_integer_filter' #48 +│ │ │ ├── variant_0: integer #37 +│ │ │ ├── variant_1: struct #42 +│ │ │ │ └── [equals]: integer #37 +│ │ │ ├── variant_2: struct #43 +│ │ │ │ └── [not]: integer #37 +│ │ │ ├── variant_3: struct #44 +│ │ │ │ ├── [gt]: optional 'optional_38' #39 +│ │ │ │ │ └── item: integer #37 +│ │ │ │ ├── [gte]: optional 'optional_38' #39 +│ │ │ │ │ └── item: integer #37 +│ │ │ │ ├── [lt]: optional 'optional_38' #39 +│ │ │ │ │ └── item: integer #37 +│ │ │ │ └── [lte]: optional 'optional_38' #39 +│ │ │ │ └── item: integer #37 +│ │ │ ├── variant_4: struct #45 +│ │ │ │ └── [in]: list 'list_40' #41 +│ │ │ │ └── item: integer #37 +│ │ │ └── variant_5: struct #46 +│ │ │ └── [notIn]: list 'list_40' #41 +│ │ │ └── item: integer #37 +│ │ └── [title]: optional 'optional_130' #131 +│ │ └── item: optional '_prisma_string_filter_ex' #32 +│ │ └── item: union #29 +│ │ ├── variant_0: union '_prisma_string_filter' #27 +│ │ │ ├── variant_0: string #11 +│ │ │ ├── variant_1: struct #16 +│ │ │ │ └── [equals]: string #11 +│ │ │ ├── variant_2: struct #17 +│ │ │ │ └── [not]: string #11 +│ │ │ ├── variant_3: struct #18 +│ │ │ │ └── [in]: list 'list_14' #15 +│ │ │ │ └── item: string #11 +│ │ │ ├── variant_4: struct #19 +│ │ │ │ └── [notIn]: list 'list_14' #15 +│ │ │ │ └── item: string #11 +│ │ │ ├── variant_5: struct #23 +│ │ │ │ ├── [contains]: string #11 +│ │ │ │ └── [mode]: optional 'optional_21' #22 +│ │ │ │ └── item: string #20 enum{ '"insensitive"' } +│ │ │ ├── variant_6: struct #24 +│ │ │ │ └── [search]: string #11 +│ │ │ └── variant_7: struct #25 +│ │ │ ├── [endsWith]: optional 'optional_12' #13 +│ │ │ │ └── item: string #11 +│ │ │ └── [startsWith]: optional 'optional_12' #13 +│ │ │ └── item: string #11 +│ │ └── variant_1: struct #28 +│ │ └── [not]: union '_prisma_string_filter' #27 +│ │ ├── variant_0: string #11 +│ │ ├── variant_1: struct #16 +│ │ │ └── [equals]: string #11 +│ │ ├── variant_2: struct #17 +│ │ │ └── [not]: string #11 +│ │ ├── variant_3: struct #18 +│ │ │ └── [in]: list 'list_14' #15 +│ │ │ └── item: string #11 +│ │ ├── variant_4: struct #19 +│ │ │ └── [notIn]: list 'list_14' #15 +│ │ │ └── item: string #11 +│ │ ├── variant_5: struct #23 +│ │ │ ├── [contains]: string #11 +│ │ │ └── [mode]: optional 'optional_21' #22 +│ │ │ └── item: string #20 enum{ '"insensitive"' } +│ │ ├── variant_6: struct #24 +│ │ │ └── [search]: string #11 +│ │ └── variant_7: struct #25 +│ │ ├── [endsWith]: optional 'optional_12' #13 +│ │ │ └── item: string #11 +│ │ └── [startsWith]: optional 'optional_12' #13 +│ │ └── item: string #11 +│ └── variant_2: struct #145 +│ └── [none]: optional 'optional_143' #144 +│ └── item: struct 'Post_where_excluding_Post_and_User_where_excluding_Post' #136 +│ ├── [author]: optional 'optional_133' #134 +│ │ └── item: &User_where_excluding_Post #132 +│ ├── [id]: optional 'optional_128' #129 +│ │ └── item: optional '_prisma_integer_filter_ex' #53 +│ │ └── item: union #50 +│ │ ├── variant_0: either '_prisma_integer_filter' #48 +│ │ │ ├── variant_0: integer #37 +│ │ │ ├── variant_1: struct #42 +│ │ │ │ └── [equals]: integer #37 +│ │ │ ├── variant_2: struct #43 +│ │ │ │ └── [not]: integer #37 +│ │ │ ├── variant_3: struct #44 +│ │ │ │ ├── [gt]: optional 'optional_38' #39 +│ │ │ │ │ └── item: integer #37 +│ │ │ │ ├── [gte]: optional 'optional_38' #39 +│ │ │ │ │ └── item: integer #37 +│ │ │ │ ├── [lt]: optional 'optional_38' #39 +│ │ │ │ │ └── item: integer #37 +│ │ │ │ └── [lte]: optional 'optional_38' #39 +│ │ │ │ └── item: integer #37 +│ │ │ ├── variant_4: struct #45 +│ │ │ │ └── [in]: list 'list_40' #41 +│ │ │ │ └── item: integer #37 +│ │ │ └── variant_5: struct #46 +│ │ │ └── [notIn]: list 'list_40' #41 +│ │ │ └── item: integer #37 +│ │ └── variant_1: struct #49 +│ │ └── [not]: either '_prisma_integer_filter' #48 +│ │ ├── variant_0: integer #37 +│ │ ├── variant_1: struct #42 +│ │ │ └── [equals]: integer #37 +│ │ ├── variant_2: struct #43 +│ │ │ └── [not]: integer #37 +│ │ ├── variant_3: struct #44 +│ │ │ ├── [gt]: optional 'optional_38' #39 +│ │ │ │ └── item: integer #37 +│ │ │ ├── [gte]: optional 'optional_38' #39 +│ │ │ │ └── item: integer #37 +│ │ │ ├── [lt]: optional 'optional_38' #39 +│ │ │ │ └── item: integer #37 +│ │ │ └── [lte]: optional 'optional_38' #39 +│ │ │ └── item: integer #37 +│ │ ├── variant_4: struct #45 +│ │ │ └── [in]: list 'list_40' #41 +│ │ │ └── item: integer #37 +│ │ └── variant_5: struct #46 +│ │ └── [notIn]: list 'list_40' #41 +│ │ └── item: integer #37 +│ └── [title]: optional 'optional_130' #131 +│ └── item: optional '_prisma_string_filter_ex' #32 +│ └── item: union #29 +│ ├── variant_0: union '_prisma_string_filter' #27 +│ │ ├── variant_0: string #11 +│ │ ├── variant_1: struct #16 +│ │ │ └── [equals]: string #11 +│ │ ├── variant_2: struct #17 +│ │ │ └── [not]: string #11 +│ │ ├── variant_3: struct #18 +│ │ │ └── [in]: list 'list_14' #15 +│ │ │ └── item: string #11 +│ │ ├── variant_4: struct #19 +│ │ │ └── [notIn]: list 'list_14' #15 +│ │ │ └── item: string #11 +│ │ ├── variant_5: struct #23 +│ │ │ ├── [contains]: string #11 +│ │ │ └── [mode]: optional 'optional_21' #22 +│ │ │ └── item: string #20 enum{ '"insensitive"' } +│ │ ├── variant_6: struct #24 +│ │ │ └── [search]: string #11 +│ │ └── variant_7: struct #25 +│ │ ├── [endsWith]: optional 'optional_12' #13 +│ │ │ └── item: string #11 +│ │ └── [startsWith]: optional 'optional_12' #13 +│ │ └── item: string #11 +│ └── variant_1: struct #28 +│ └── [not]: union '_prisma_string_filter' #27 +│ ├── variant_0: string #11 +│ ├── variant_1: struct #16 +│ │ └── [equals]: string #11 +│ ├── variant_2: struct #17 +│ │ └── [not]: string #11 +│ ├── variant_3: struct #18 +│ │ └── [in]: list 'list_14' #15 +│ │ └── item: string #11 +│ ├── variant_4: struct #19 +│ │ └── [notIn]: list 'list_14' #15 +│ │ └── item: string #11 +│ ├── variant_5: struct #23 +│ │ ├── [contains]: string #11 +│ │ └── [mode]: optional 'optional_21' #22 +│ │ └── item: string #20 enum{ '"insensitive"' } +│ ├── variant_6: struct #24 +│ │ └── [search]: string #11 +│ └── variant_7: struct #25 +│ ├── [endsWith]: optional 'optional_12' #13 +│ │ └── item: string #11 +│ └── [startsWith]: optional 'optional_12' #13 +│ └── item: string #11 +├── [id]: optional 'optional_120' #121 +│ └── item: optional '_prisma_integer_filter_ex' #53 +│ └── item: union #50 +│ ├── variant_0: either '_prisma_integer_filter' #48 +│ │ ├── variant_0: integer #37 +│ │ ├── variant_1: struct #42 +│ │ │ └── [equals]: integer #37 +│ │ ├── variant_2: struct #43 +│ │ │ └── [not]: integer #37 +│ │ ├── variant_3: struct #44 +│ │ │ ├── [gt]: optional 'optional_38' #39 +│ │ │ │ └── item: integer #37 +│ │ │ ├── [gte]: optional 'optional_38' #39 +│ │ │ │ └── item: integer #37 +│ │ │ ├── [lt]: optional 'optional_38' #39 +│ │ │ │ └── item: integer #37 +│ │ │ └── [lte]: optional 'optional_38' #39 +│ │ │ └── item: integer #37 +│ │ ├── variant_4: struct #45 +│ │ │ └── [in]: list 'list_40' #41 +│ │ │ └── item: integer #37 +│ │ └── variant_5: struct #46 +│ │ └── [notIn]: list 'list_40' #41 +│ │ └── item: integer #37 +│ └── variant_1: struct #49 +│ └── [not]: either '_prisma_integer_filter' #48 +│ ├── variant_0: integer #37 +│ ├── variant_1: struct #42 +│ │ └── [equals]: integer #37 +│ ├── variant_2: struct #43 +│ │ └── [not]: integer #37 +│ ├── variant_3: struct #44 +│ │ ├── [gt]: optional 'optional_38' #39 +│ │ │ └── item: integer #37 +│ │ ├── [gte]: optional 'optional_38' #39 +│ │ │ └── item: integer #37 +│ │ ├── [lt]: optional 'optional_38' #39 +│ │ │ └── item: integer #37 +│ │ └── [lte]: optional 'optional_38' #39 +│ │ └── item: integer #37 +│ ├── variant_4: struct #45 +│ │ └── [in]: list 'list_40' #41 +│ │ └── item: integer #37 +│ └── variant_5: struct #46 +│ └── [notIn]: list 'list_40' #41 +│ └── item: integer #37 +└── [title]: optional 'optional_122' #123 + └── item: optional '_prisma_string_filter_ex' #32 + └── item: union #29 + ├── variant_0: union '_prisma_string_filter' #27 + │ ├── variant_0: string #11 + │ ├── variant_1: struct #16 + │ │ └── [equals]: string #11 + │ ├── variant_2: struct #17 + │ │ └── [not]: string #11 + │ ├── variant_3: struct #18 + │ │ └── [in]: list 'list_14' #15 + │ │ └── item: string #11 + │ ├── variant_4: struct #19 + │ │ └── [notIn]: list 'list_14' #15 + │ │ └── item: string #11 + │ ├── variant_5: struct #23 + │ │ ├── [contains]: string #11 + │ │ └── [mode]: optional 'optional_21' #22 + │ │ └── item: string #20 enum{ '"insensitive"' } + │ ├── variant_6: struct #24 + │ │ └── [search]: string #11 + │ └── variant_7: struct #25 + │ ├── [endsWith]: optional 'optional_12' #13 + │ │ └── item: string #11 + │ └── [startsWith]: optional 'optional_12' #13 + │ └── item: string #11 + └── variant_1: struct #28 + └── [not]: union '_prisma_string_filter' #27 + ├── variant_0: string #11 + ├── variant_1: struct #16 + │ └── [equals]: string #11 + ├── variant_2: struct #17 + │ └── [not]: string #11 + ├── variant_3: struct #18 + │ └── [in]: list 'list_14' #15 + │ └── item: string #11 + ├── variant_4: struct #19 + │ └── [notIn]: list 'list_14' #15 + │ └── item: string #11 + ├── variant_5: struct #23 + │ ├── [contains]: string #11 + │ └── [mode]: optional 'optional_21' #22 + │ └── item: string #20 enum{ '"insensitive"' } + ├── variant_6: struct #24 + │ └── [search]: string #11 + └── variant_7: struct #25 + ├── [endsWith]: optional 'optional_12' #13 + │ └── item: string #11 + └── [startsWith]: optional 'optional_12' #13 + └── item: string #11 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__where___test__where Record.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__where___test__where Record.snap index 814205c056..1e00a0af8e 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__where___test__where Record.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__where___test__where Record.snap @@ -2,200 +2,200 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/where_.rs expression: "tree::print(where_type)" --- -root: struct 'Record_where' #40 -├── [age]: optional 'optional_38' #38 -│ └── item: optional '_prisma_integer_filter_ex' #37 -│ └── item: union #36 -│ ├── variant_0: either '_prisma_integer_filter' #34 -│ │ ├── variant_0: integer #26 -│ │ ├── variant_1: struct #29 -│ │ │ └── [equals]: integer #26 -│ │ ├── variant_2: struct #30 -│ │ │ └── [not]: integer #26 -│ │ ├── variant_3: struct #31 -│ │ │ ├── [gt]: optional 'optional_27' #27 -│ │ │ │ └── item: integer #26 -│ │ │ ├── [gte]: optional 'optional_27' #27 -│ │ │ │ └── item: integer #26 -│ │ │ ├── [lt]: optional 'optional_27' #27 -│ │ │ │ └── item: integer #26 -│ │ │ └── [lte]: optional 'optional_27' #27 -│ │ │ └── item: integer #26 -│ │ ├── variant_4: struct #32 -│ │ │ └── [in]: list 'list_28' #28 -│ │ │ └── item: integer #26 -│ │ └── variant_5: struct #33 -│ │ └── [notIn]: list 'list_28' #28 -│ │ └── item: integer #26 -│ └── variant_1: struct #35 -│ └── [not]: either '_prisma_integer_filter' #34 -│ ├── variant_0: integer #26 -│ ├── variant_1: struct #29 -│ │ └── [equals]: integer #26 -│ ├── variant_2: struct #30 -│ │ └── [not]: integer #26 -│ ├── variant_3: struct #31 -│ │ ├── [gt]: optional 'optional_27' #27 -│ │ │ └── item: integer #26 -│ │ ├── [gte]: optional 'optional_27' #27 -│ │ │ └── item: integer #26 -│ │ ├── [lt]: optional 'optional_27' #27 -│ │ │ └── item: integer #26 -│ │ └── [lte]: optional 'optional_27' #27 -│ │ └── item: integer #26 -│ ├── variant_4: struct #32 -│ │ └── [in]: list 'list_28' #28 -│ │ └── item: integer #26 -│ └── variant_5: struct #33 -│ └── [notIn]: list 'list_28' #28 -│ └── item: integer #26 -├── [created_at]: optional 'optional_39' #39 -│ └── item: optional '_prisma_string_filter_ex' #23 -│ └── item: union #22 -│ ├── variant_0: union '_prisma_string_filter' #20 -│ │ ├── variant_0: string #8 -│ │ ├── variant_1: struct #11 -│ │ │ └── [equals]: string #8 -│ │ ├── variant_2: struct #12 -│ │ │ └── [not]: string #8 -│ │ ├── variant_3: struct #13 -│ │ │ └── [in]: list 'list_10' #10 -│ │ │ └── item: string #8 -│ │ ├── variant_4: struct #14 -│ │ │ └── [notIn]: list 'list_10' #10 -│ │ │ └── item: string #8 -│ │ ├── variant_5: struct #17 -│ │ │ ├── [contains]: string #8 -│ │ │ └── [mode]: optional 'optional_16' #16 -│ │ │ └── item: string #15 enum{ '"insensitive"' } -│ │ ├── variant_6: struct #18 -│ │ │ └── [search]: string #8 -│ │ └── variant_7: struct #19 -│ │ ├── [endsWith]: optional 'optional_9' #9 -│ │ │ └── item: string #8 -│ │ └── [startsWith]: optional 'optional_9' #9 -│ │ └── item: string #8 -│ └── variant_1: struct #21 -│ └── [not]: union '_prisma_string_filter' #20 -│ ├── variant_0: string #8 -│ ├── variant_1: struct #11 -│ │ └── [equals]: string #8 -│ ├── variant_2: struct #12 -│ │ └── [not]: string #8 -│ ├── variant_3: struct #13 -│ │ └── [in]: list 'list_10' #10 -│ │ └── item: string #8 -│ ├── variant_4: struct #14 -│ │ └── [notIn]: list 'list_10' #10 -│ │ └── item: string #8 -│ ├── variant_5: struct #17 -│ │ ├── [contains]: string #8 -│ │ └── [mode]: optional 'optional_16' #16 -│ │ └── item: string #15 enum{ '"insensitive"' } -│ ├── variant_6: struct #18 -│ │ └── [search]: string #8 -│ └── variant_7: struct #19 -│ ├── [endsWith]: optional 'optional_9' #9 -│ │ └── item: string #8 -│ └── [startsWith]: optional 'optional_9' #9 -│ └── item: string #8 -├── [id]: optional 'optional_24' #24 -│ └── item: optional '_prisma_string_filter_ex' #23 -│ └── item: union #22 -│ ├── variant_0: union '_prisma_string_filter' #20 -│ │ ├── variant_0: string #8 -│ │ ├── variant_1: struct #11 -│ │ │ └── [equals]: string #8 -│ │ ├── variant_2: struct #12 -│ │ │ └── [not]: string #8 -│ │ ├── variant_3: struct #13 -│ │ │ └── [in]: list 'list_10' #10 -│ │ │ └── item: string #8 -│ │ ├── variant_4: struct #14 -│ │ │ └── [notIn]: list 'list_10' #10 -│ │ │ └── item: string #8 -│ │ ├── variant_5: struct #17 -│ │ │ ├── [contains]: string #8 -│ │ │ └── [mode]: optional 'optional_16' #16 -│ │ │ └── item: string #15 enum{ '"insensitive"' } -│ │ ├── variant_6: struct #18 -│ │ │ └── [search]: string #8 -│ │ └── variant_7: struct #19 -│ │ ├── [endsWith]: optional 'optional_9' #9 -│ │ │ └── item: string #8 -│ │ └── [startsWith]: optional 'optional_9' #9 -│ │ └── item: string #8 -│ └── variant_1: struct #21 -│ └── [not]: union '_prisma_string_filter' #20 -│ ├── variant_0: string #8 -│ ├── variant_1: struct #11 -│ │ └── [equals]: string #8 -│ ├── variant_2: struct #12 -│ │ └── [not]: string #8 -│ ├── variant_3: struct #13 -│ │ └── [in]: list 'list_10' #10 -│ │ └── item: string #8 -│ ├── variant_4: struct #14 -│ │ └── [notIn]: list 'list_10' #10 -│ │ └── item: string #8 -│ ├── variant_5: struct #17 -│ │ ├── [contains]: string #8 -│ │ └── [mode]: optional 'optional_16' #16 -│ │ └── item: string #15 enum{ '"insensitive"' } -│ ├── variant_6: struct #18 -│ │ └── [search]: string #8 -│ └── variant_7: struct #19 -│ ├── [endsWith]: optional 'optional_9' #9 -│ │ └── item: string #8 -│ └── [startsWith]: optional 'optional_9' #9 -│ └── item: string #8 -└── [name]: optional 'optional_25' #25 - └── item: optional '_prisma_string_filter_ex' #23 - └── item: union #22 - ├── variant_0: union '_prisma_string_filter' #20 - │ ├── variant_0: string #8 - │ ├── variant_1: struct #11 - │ │ └── [equals]: string #8 - │ ├── variant_2: struct #12 - │ │ └── [not]: string #8 - │ ├── variant_3: struct #13 - │ │ └── [in]: list 'list_10' #10 - │ │ └── item: string #8 - │ ├── variant_4: struct #14 - │ │ └── [notIn]: list 'list_10' #10 - │ │ └── item: string #8 - │ ├── variant_5: struct #17 - │ │ ├── [contains]: string #8 - │ │ └── [mode]: optional 'optional_16' #16 - │ │ └── item: string #15 enum{ '"insensitive"' } - │ ├── variant_6: struct #18 - │ │ └── [search]: string #8 - │ └── variant_7: struct #19 - │ ├── [endsWith]: optional 'optional_9' #9 - │ │ └── item: string #8 - │ └── [startsWith]: optional 'optional_9' #9 - │ └── item: string #8 - └── variant_1: struct #21 - └── [not]: union '_prisma_string_filter' #20 - ├── variant_0: string #8 - ├── variant_1: struct #11 - │ └── [equals]: string #8 - ├── variant_2: struct #12 - │ └── [not]: string #8 - ├── variant_3: struct #13 - │ └── [in]: list 'list_10' #10 - │ └── item: string #8 - ├── variant_4: struct #14 - │ └── [notIn]: list 'list_10' #10 - │ └── item: string #8 - ├── variant_5: struct #17 - │ ├── [contains]: string #8 - │ └── [mode]: optional 'optional_16' #16 - │ └── item: string #15 enum{ '"insensitive"' } - ├── variant_6: struct #18 - │ └── [search]: string #8 - └── variant_7: struct #19 - ├── [endsWith]: optional 'optional_9' #9 - │ └── item: string #8 - └── [startsWith]: optional 'optional_9' #9 - └── item: string #8 +root: struct 'Record_where' #59 +├── [age]: optional 'optional_54' #55 +│ └── item: optional '_prisma_integer_filter_ex' #53 +│ └── item: union #50 +│ ├── variant_0: either '_prisma_integer_filter' #48 +│ │ ├── variant_0: integer #37 +│ │ ├── variant_1: struct #42 +│ │ │ └── [equals]: integer #37 +│ │ ├── variant_2: struct #43 +│ │ │ └── [not]: integer #37 +│ │ ├── variant_3: struct #44 +│ │ │ ├── [gt]: optional 'optional_38' #39 +│ │ │ │ └── item: integer #37 +│ │ │ ├── [gte]: optional 'optional_38' #39 +│ │ │ │ └── item: integer #37 +│ │ │ ├── [lt]: optional 'optional_38' #39 +│ │ │ │ └── item: integer #37 +│ │ │ └── [lte]: optional 'optional_38' #39 +│ │ │ └── item: integer #37 +│ │ ├── variant_4: struct #45 +│ │ │ └── [in]: list 'list_40' #41 +│ │ │ └── item: integer #37 +│ │ └── variant_5: struct #46 +│ │ └── [notIn]: list 'list_40' #41 +│ │ └── item: integer #37 +│ └── variant_1: struct #49 +│ └── [not]: either '_prisma_integer_filter' #48 +│ ├── variant_0: integer #37 +│ ├── variant_1: struct #42 +│ │ └── [equals]: integer #37 +│ ├── variant_2: struct #43 +│ │ └── [not]: integer #37 +│ ├── variant_3: struct #44 +│ │ ├── [gt]: optional 'optional_38' #39 +│ │ │ └── item: integer #37 +│ │ ├── [gte]: optional 'optional_38' #39 +│ │ │ └── item: integer #37 +│ │ ├── [lt]: optional 'optional_38' #39 +│ │ │ └── item: integer #37 +│ │ └── [lte]: optional 'optional_38' #39 +│ │ └── item: integer #37 +│ ├── variant_4: struct #45 +│ │ └── [in]: list 'list_40' #41 +│ │ └── item: integer #37 +│ └── variant_5: struct #46 +│ └── [notIn]: list 'list_40' #41 +│ └── item: integer #37 +├── [created_at]: optional 'optional_56' #57 +│ └── item: optional '_prisma_string_filter_ex' #32 +│ └── item: union #29 +│ ├── variant_0: union '_prisma_string_filter' #27 +│ │ ├── variant_0: string #11 +│ │ ├── variant_1: struct #16 +│ │ │ └── [equals]: string #11 +│ │ ├── variant_2: struct #17 +│ │ │ └── [not]: string #11 +│ │ ├── variant_3: struct #18 +│ │ │ └── [in]: list 'list_14' #15 +│ │ │ └── item: string #11 +│ │ ├── variant_4: struct #19 +│ │ │ └── [notIn]: list 'list_14' #15 +│ │ │ └── item: string #11 +│ │ ├── variant_5: struct #23 +│ │ │ ├── [contains]: string #11 +│ │ │ └── [mode]: optional 'optional_21' #22 +│ │ │ └── item: string #20 enum{ '"insensitive"' } +│ │ ├── variant_6: struct #24 +│ │ │ └── [search]: string #11 +│ │ └── variant_7: struct #25 +│ │ ├── [endsWith]: optional 'optional_12' #13 +│ │ │ └── item: string #11 +│ │ └── [startsWith]: optional 'optional_12' #13 +│ │ └── item: string #11 +│ └── variant_1: struct #28 +│ └── [not]: union '_prisma_string_filter' #27 +│ ├── variant_0: string #11 +│ ├── variant_1: struct #16 +│ │ └── [equals]: string #11 +│ ├── variant_2: struct #17 +│ │ └── [not]: string #11 +│ ├── variant_3: struct #18 +│ │ └── [in]: list 'list_14' #15 +│ │ └── item: string #11 +│ ├── variant_4: struct #19 +│ │ └── [notIn]: list 'list_14' #15 +│ │ └── item: string #11 +│ ├── variant_5: struct #23 +│ │ ├── [contains]: string #11 +│ │ └── [mode]: optional 'optional_21' #22 +│ │ └── item: string #20 enum{ '"insensitive"' } +│ ├── variant_6: struct #24 +│ │ └── [search]: string #11 +│ └── variant_7: struct #25 +│ ├── [endsWith]: optional 'optional_12' #13 +│ │ └── item: string #11 +│ └── [startsWith]: optional 'optional_12' #13 +│ └── item: string #11 +├── [id]: optional 'optional_33' #34 +│ └── item: optional '_prisma_string_filter_ex' #32 +│ └── item: union #29 +│ ├── variant_0: union '_prisma_string_filter' #27 +│ │ ├── variant_0: string #11 +│ │ ├── variant_1: struct #16 +│ │ │ └── [equals]: string #11 +│ │ ├── variant_2: struct #17 +│ │ │ └── [not]: string #11 +│ │ ├── variant_3: struct #18 +│ │ │ └── [in]: list 'list_14' #15 +│ │ │ └── item: string #11 +│ │ ├── variant_4: struct #19 +│ │ │ └── [notIn]: list 'list_14' #15 +│ │ │ └── item: string #11 +│ │ ├── variant_5: struct #23 +│ │ │ ├── [contains]: string #11 +│ │ │ └── [mode]: optional 'optional_21' #22 +│ │ │ └── item: string #20 enum{ '"insensitive"' } +│ │ ├── variant_6: struct #24 +│ │ │ └── [search]: string #11 +│ │ └── variant_7: struct #25 +│ │ ├── [endsWith]: optional 'optional_12' #13 +│ │ │ └── item: string #11 +│ │ └── [startsWith]: optional 'optional_12' #13 +│ │ └── item: string #11 +│ └── variant_1: struct #28 +│ └── [not]: union '_prisma_string_filter' #27 +│ ├── variant_0: string #11 +│ ├── variant_1: struct #16 +│ │ └── [equals]: string #11 +│ ├── variant_2: struct #17 +│ │ └── [not]: string #11 +│ ├── variant_3: struct #18 +│ │ └── [in]: list 'list_14' #15 +│ │ └── item: string #11 +│ ├── variant_4: struct #19 +│ │ └── [notIn]: list 'list_14' #15 +│ │ └── item: string #11 +│ ├── variant_5: struct #23 +│ │ ├── [contains]: string #11 +│ │ └── [mode]: optional 'optional_21' #22 +│ │ └── item: string #20 enum{ '"insensitive"' } +│ ├── variant_6: struct #24 +│ │ └── [search]: string #11 +│ └── variant_7: struct #25 +│ ├── [endsWith]: optional 'optional_12' #13 +│ │ └── item: string #11 +│ └── [startsWith]: optional 'optional_12' #13 +│ └── item: string #11 +└── [name]: optional 'optional_35' #36 + └── item: optional '_prisma_string_filter_ex' #32 + └── item: union #29 + ├── variant_0: union '_prisma_string_filter' #27 + │ ├── variant_0: string #11 + │ ├── variant_1: struct #16 + │ │ └── [equals]: string #11 + │ ├── variant_2: struct #17 + │ │ └── [not]: string #11 + │ ├── variant_3: struct #18 + │ │ └── [in]: list 'list_14' #15 + │ │ └── item: string #11 + │ ├── variant_4: struct #19 + │ │ └── [notIn]: list 'list_14' #15 + │ │ └── item: string #11 + │ ├── variant_5: struct #23 + │ │ ├── [contains]: string #11 + │ │ └── [mode]: optional 'optional_21' #22 + │ │ └── item: string #20 enum{ '"insensitive"' } + │ ├── variant_6: struct #24 + │ │ └── [search]: string #11 + │ └── variant_7: struct #25 + │ ├── [endsWith]: optional 'optional_12' #13 + │ │ └── item: string #11 + │ └── [startsWith]: optional 'optional_12' #13 + │ └── item: string #11 + └── variant_1: struct #28 + └── [not]: union '_prisma_string_filter' #27 + ├── variant_0: string #11 + ├── variant_1: struct #16 + │ └── [equals]: string #11 + ├── variant_2: struct #17 + │ └── [not]: string #11 + ├── variant_3: struct #18 + │ └── [in]: list 'list_14' #15 + │ └── item: string #11 + ├── variant_4: struct #19 + │ └── [notIn]: list 'list_14' #15 + │ └── item: string #11 + ├── variant_5: struct #23 + │ ├── [contains]: string #11 + │ └── [mode]: optional 'optional_21' #22 + │ └── item: string #20 enum{ '"insensitive"' } + ├── variant_6: struct #24 + │ └── [search]: string #11 + └── variant_7: struct #25 + ├── [endsWith]: optional 'optional_12' #13 + │ └── item: string #11 + └── [startsWith]: optional 'optional_12' #13 + └── item: string #11 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__where___test__where User.snap b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__where___test__where User.snap index 56a0f0a9a0..ce26ee08ee 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__where___test__where User.snap +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/snapshots/typegraph_core__runtimes__prisma__type_generation__where___test__where User.snap @@ -2,405 +2,726 @@ source: src/typegraph/core/src/runtimes/prisma/type_generation/where_.rs expression: "tree::print(context.generate(&Where::new(user))?)" --- -root: struct 'User_where' #67 -├── [id]: optional 'optional_52' #52 -│ └── item: optional '_prisma_integer_filter_ex' #37 -│ └── item: union #36 -│ ├── variant_0: either '_prisma_integer_filter' #34 -│ │ ├── variant_0: integer #26 -│ │ ├── variant_1: struct #29 -│ │ │ └── [equals]: integer #26 -│ │ ├── variant_2: struct #30 -│ │ │ └── [not]: integer #26 -│ │ ├── variant_3: struct #31 -│ │ │ ├── [gt]: optional 'optional_27' #27 -│ │ │ │ └── item: integer #26 -│ │ │ ├── [gte]: optional 'optional_27' #27 -│ │ │ │ └── item: integer #26 -│ │ │ ├── [lt]: optional 'optional_27' #27 -│ │ │ │ └── item: integer #26 -│ │ │ └── [lte]: optional 'optional_27' #27 -│ │ │ └── item: integer #26 -│ │ ├── variant_4: struct #32 -│ │ │ └── [in]: list 'list_28' #28 -│ │ │ └── item: integer #26 -│ │ └── variant_5: struct #33 -│ │ └── [notIn]: list 'list_28' #28 -│ │ └── item: integer #26 -│ └── variant_1: struct #35 -│ └── [not]: either '_prisma_integer_filter' #34 -│ ├── variant_0: integer #26 -│ ├── variant_1: struct #29 -│ │ └── [equals]: integer #26 -│ ├── variant_2: struct #30 -│ │ └── [not]: integer #26 -│ ├── variant_3: struct #31 -│ │ ├── [gt]: optional 'optional_27' #27 -│ │ │ └── item: integer #26 -│ │ ├── [gte]: optional 'optional_27' #27 -│ │ │ └── item: integer #26 -│ │ ├── [lt]: optional 'optional_27' #27 -│ │ │ └── item: integer #26 -│ │ └── [lte]: optional 'optional_27' #27 -│ │ └── item: integer #26 -│ ├── variant_4: struct #32 -│ │ └── [in]: list 'list_28' #28 -│ │ └── item: integer #26 -│ └── variant_5: struct #33 -│ └── [notIn]: list 'list_28' #28 -│ └── item: integer #26 -├── [name]: optional 'optional_53' #53 -│ └── item: optional '_prisma_string_filter_ex' #23 -│ └── item: union #22 -│ ├── variant_0: union '_prisma_string_filter' #20 -│ │ ├── variant_0: string #8 -│ │ ├── variant_1: struct #11 -│ │ │ └── [equals]: string #8 -│ │ ├── variant_2: struct #12 -│ │ │ └── [not]: string #8 -│ │ ├── variant_3: struct #13 -│ │ │ └── [in]: list 'list_10' #10 -│ │ │ └── item: string #8 -│ │ ├── variant_4: struct #14 -│ │ │ └── [notIn]: list 'list_10' #10 -│ │ │ └── item: string #8 -│ │ ├── variant_5: struct #17 -│ │ │ ├── [contains]: string #8 -│ │ │ └── [mode]: optional 'optional_16' #16 -│ │ │ └── item: string #15 enum{ '"insensitive"' } -│ │ ├── variant_6: struct #18 -│ │ │ └── [search]: string #8 -│ │ └── variant_7: struct #19 -│ │ ├── [endsWith]: optional 'optional_9' #9 -│ │ │ └── item: string #8 -│ │ └── [startsWith]: optional 'optional_9' #9 -│ │ └── item: string #8 -│ └── variant_1: struct #21 -│ └── [not]: union '_prisma_string_filter' #20 -│ ├── variant_0: string #8 -│ ├── variant_1: struct #11 -│ │ └── [equals]: string #8 -│ ├── variant_2: struct #12 -│ │ └── [not]: string #8 -│ ├── variant_3: struct #13 -│ │ └── [in]: list 'list_10' #10 -│ │ └── item: string #8 -│ ├── variant_4: struct #14 -│ │ └── [notIn]: list 'list_10' #10 -│ │ └── item: string #8 -│ ├── variant_5: struct #17 -│ │ ├── [contains]: string #8 -│ │ └── [mode]: optional 'optional_16' #16 -│ │ └── item: string #15 enum{ '"insensitive"' } -│ ├── variant_6: struct #18 -│ │ └── [search]: string #8 -│ └── variant_7: struct #19 -│ ├── [endsWith]: optional 'optional_9' #9 -│ │ └── item: string #8 -│ └── [startsWith]: optional 'optional_9' #9 -│ └── item: string #8 -└── [posts]: optional 'optional_66' #66 - └── item: union #65 - ├── variant_0: struct #60 - │ └── [every]: optional 'optional_59' #59 - │ └── item: struct 'Post_where_excluding_User' #58 - │ ├── [author]: optional 'optional_57' #57 - │ │ └── item: &User_where #56 - │ ├── [id]: optional 'optional_54' #54 - │ │ └── item: optional '_prisma_integer_filter_ex' #37 - │ │ └── item: union #36 - │ │ ├── variant_0: either '_prisma_integer_filter' #34 - │ │ │ ├── variant_0: integer #26 - │ │ │ ├── variant_1: struct #29 - │ │ │ │ └── [equals]: integer #26 - │ │ │ ├── variant_2: struct #30 - │ │ │ │ └── [not]: integer #26 - │ │ │ ├── variant_3: struct #31 - │ │ │ │ ├── [gt]: optional 'optional_27' #27 - │ │ │ │ │ └── item: integer #26 - │ │ │ │ ├── [gte]: optional 'optional_27' #27 - │ │ │ │ │ └── item: integer #26 - │ │ │ │ ├── [lt]: optional 'optional_27' #27 - │ │ │ │ │ └── item: integer #26 - │ │ │ │ └── [lte]: optional 'optional_27' #27 - │ │ │ │ └── item: integer #26 - │ │ │ ├── variant_4: struct #32 - │ │ │ │ └── [in]: list 'list_28' #28 - │ │ │ │ └── item: integer #26 - │ │ │ └── variant_5: struct #33 - │ │ │ └── [notIn]: list 'list_28' #28 - │ │ │ └── item: integer #26 - │ │ └── variant_1: struct #35 - │ │ └── [not]: either '_prisma_integer_filter' #34 - │ │ ├── variant_0: integer #26 - │ │ ├── variant_1: struct #29 - │ │ │ └── [equals]: integer #26 - │ │ ├── variant_2: struct #30 - │ │ │ └── [not]: integer #26 - │ │ ├── variant_3: struct #31 - │ │ │ ├── [gt]: optional 'optional_27' #27 - │ │ │ │ └── item: integer #26 - │ │ │ ├── [gte]: optional 'optional_27' #27 - │ │ │ │ └── item: integer #26 - │ │ │ ├── [lt]: optional 'optional_27' #27 - │ │ │ │ └── item: integer #26 - │ │ │ └── [lte]: optional 'optional_27' #27 - │ │ │ └── item: integer #26 - │ │ ├── variant_4: struct #32 - │ │ │ └── [in]: list 'list_28' #28 - │ │ │ └── item: integer #26 - │ │ └── variant_5: struct #33 - │ │ └── [notIn]: list 'list_28' #28 - │ │ └── item: integer #26 - │ └── [title]: optional 'optional_55' #55 - │ └── item: optional '_prisma_string_filter_ex' #23 - │ └── item: union #22 - │ ├── variant_0: union '_prisma_string_filter' #20 - │ │ ├── variant_0: string #8 - │ │ ├── variant_1: struct #11 - │ │ │ └── [equals]: string #8 - │ │ ├── variant_2: struct #12 - │ │ │ └── [not]: string #8 - │ │ ├── variant_3: struct #13 - │ │ │ └── [in]: list 'list_10' #10 - │ │ │ └── item: string #8 - │ │ ├── variant_4: struct #14 - │ │ │ └── [notIn]: list 'list_10' #10 - │ │ │ └── item: string #8 - │ │ ├── variant_5: struct #17 - │ │ │ ├── [contains]: string #8 - │ │ │ └── [mode]: optional 'optional_16' #16 - │ │ │ └── item: string #15 enum{ '"insensitive"' } - │ │ ├── variant_6: struct #18 - │ │ │ └── [search]: string #8 - │ │ └── variant_7: struct #19 - │ │ ├── [endsWith]: optional 'optional_9' #9 - │ │ │ └── item: string #8 - │ │ └── [startsWith]: optional 'optional_9' #9 - │ │ └── item: string #8 - │ └── variant_1: struct #21 - │ └── [not]: union '_prisma_string_filter' #20 - │ ├── variant_0: string #8 - │ ├── variant_1: struct #11 - │ │ └── [equals]: string #8 - │ ├── variant_2: struct #12 - │ │ └── [not]: string #8 - │ ├── variant_3: struct #13 - │ │ └── [in]: list 'list_10' #10 - │ │ └── item: string #8 - │ ├── variant_4: struct #14 - │ │ └── [notIn]: list 'list_10' #10 - │ │ └── item: string #8 - │ ├── variant_5: struct #17 - │ │ ├── [contains]: string #8 - │ │ └── [mode]: optional 'optional_16' #16 - │ │ └── item: string #15 enum{ '"insensitive"' } - │ ├── variant_6: struct #18 - │ │ └── [search]: string #8 - │ └── variant_7: struct #19 - │ ├── [endsWith]: optional 'optional_9' #9 - │ │ └── item: string #8 - │ └── [startsWith]: optional 'optional_9' #9 - │ └── item: string #8 - ├── variant_1: struct #62 - │ └── [some]: optional 'optional_61' #61 - │ └── item: struct 'Post_where_excluding_User' #58 - │ ├── [author]: optional 'optional_57' #57 - │ │ └── item: &User_where #56 - │ ├── [id]: optional 'optional_54' #54 - │ │ └── item: optional '_prisma_integer_filter_ex' #37 - │ │ └── item: union #36 - │ │ ├── variant_0: either '_prisma_integer_filter' #34 - │ │ │ ├── variant_0: integer #26 - │ │ │ ├── variant_1: struct #29 - │ │ │ │ └── [equals]: integer #26 - │ │ │ ├── variant_2: struct #30 - │ │ │ │ └── [not]: integer #26 - │ │ │ ├── variant_3: struct #31 - │ │ │ │ ├── [gt]: optional 'optional_27' #27 - │ │ │ │ │ └── item: integer #26 - │ │ │ │ ├── [gte]: optional 'optional_27' #27 - │ │ │ │ │ └── item: integer #26 - │ │ │ │ ├── [lt]: optional 'optional_27' #27 - │ │ │ │ │ └── item: integer #26 - │ │ │ │ └── [lte]: optional 'optional_27' #27 - │ │ │ │ └── item: integer #26 - │ │ │ ├── variant_4: struct #32 - │ │ │ │ └── [in]: list 'list_28' #28 - │ │ │ │ └── item: integer #26 - │ │ │ └── variant_5: struct #33 - │ │ │ └── [notIn]: list 'list_28' #28 - │ │ │ └── item: integer #26 - │ │ └── variant_1: struct #35 - │ │ └── [not]: either '_prisma_integer_filter' #34 - │ │ ├── variant_0: integer #26 - │ │ ├── variant_1: struct #29 - │ │ │ └── [equals]: integer #26 - │ │ ├── variant_2: struct #30 - │ │ │ └── [not]: integer #26 - │ │ ├── variant_3: struct #31 - │ │ │ ├── [gt]: optional 'optional_27' #27 - │ │ │ │ └── item: integer #26 - │ │ │ ├── [gte]: optional 'optional_27' #27 - │ │ │ │ └── item: integer #26 - │ │ │ ├── [lt]: optional 'optional_27' #27 - │ │ │ │ └── item: integer #26 - │ │ │ └── [lte]: optional 'optional_27' #27 - │ │ │ └── item: integer #26 - │ │ ├── variant_4: struct #32 - │ │ │ └── [in]: list 'list_28' #28 - │ │ │ └── item: integer #26 - │ │ └── variant_5: struct #33 - │ │ └── [notIn]: list 'list_28' #28 - │ │ └── item: integer #26 - │ └── [title]: optional 'optional_55' #55 - │ └── item: optional '_prisma_string_filter_ex' #23 - │ └── item: union #22 - │ ├── variant_0: union '_prisma_string_filter' #20 - │ │ ├── variant_0: string #8 - │ │ ├── variant_1: struct #11 - │ │ │ └── [equals]: string #8 - │ │ ├── variant_2: struct #12 - │ │ │ └── [not]: string #8 - │ │ ├── variant_3: struct #13 - │ │ │ └── [in]: list 'list_10' #10 - │ │ │ └── item: string #8 - │ │ ├── variant_4: struct #14 - │ │ │ └── [notIn]: list 'list_10' #10 - │ │ │ └── item: string #8 - │ │ ├── variant_5: struct #17 - │ │ │ ├── [contains]: string #8 - │ │ │ └── [mode]: optional 'optional_16' #16 - │ │ │ └── item: string #15 enum{ '"insensitive"' } - │ │ ├── variant_6: struct #18 - │ │ │ └── [search]: string #8 - │ │ └── variant_7: struct #19 - │ │ ├── [endsWith]: optional 'optional_9' #9 - │ │ │ └── item: string #8 - │ │ └── [startsWith]: optional 'optional_9' #9 - │ │ └── item: string #8 - │ └── variant_1: struct #21 - │ └── [not]: union '_prisma_string_filter' #20 - │ ├── variant_0: string #8 - │ ├── variant_1: struct #11 - │ │ └── [equals]: string #8 - │ ├── variant_2: struct #12 - │ │ └── [not]: string #8 - │ ├── variant_3: struct #13 - │ │ └── [in]: list 'list_10' #10 - │ │ └── item: string #8 - │ ├── variant_4: struct #14 - │ │ └── [notIn]: list 'list_10' #10 - │ │ └── item: string #8 - │ ├── variant_5: struct #17 - │ │ ├── [contains]: string #8 - │ │ └── [mode]: optional 'optional_16' #16 - │ │ └── item: string #15 enum{ '"insensitive"' } - │ ├── variant_6: struct #18 - │ │ └── [search]: string #8 - │ └── variant_7: struct #19 - │ ├── [endsWith]: optional 'optional_9' #9 - │ │ └── item: string #8 - │ └── [startsWith]: optional 'optional_9' #9 - │ └── item: string #8 - └── variant_2: struct #64 - └── [none]: optional 'optional_63' #63 - └── item: struct 'Post_where_excluding_User' #58 - ├── [author]: optional 'optional_57' #57 - │ └── item: &User_where #56 - ├── [id]: optional 'optional_54' #54 - │ └── item: optional '_prisma_integer_filter_ex' #37 - │ └── item: union #36 - │ ├── variant_0: either '_prisma_integer_filter' #34 - │ │ ├── variant_0: integer #26 - │ │ ├── variant_1: struct #29 - │ │ │ └── [equals]: integer #26 - │ │ ├── variant_2: struct #30 - │ │ │ └── [not]: integer #26 - │ │ ├── variant_3: struct #31 - │ │ │ ├── [gt]: optional 'optional_27' #27 - │ │ │ │ └── item: integer #26 - │ │ │ ├── [gte]: optional 'optional_27' #27 - │ │ │ │ └── item: integer #26 - │ │ │ ├── [lt]: optional 'optional_27' #27 - │ │ │ │ └── item: integer #26 - │ │ │ └── [lte]: optional 'optional_27' #27 - │ │ │ └── item: integer #26 - │ │ ├── variant_4: struct #32 - │ │ │ └── [in]: list 'list_28' #28 - │ │ │ └── item: integer #26 - │ │ └── variant_5: struct #33 - │ │ └── [notIn]: list 'list_28' #28 - │ │ └── item: integer #26 - │ └── variant_1: struct #35 - │ └── [not]: either '_prisma_integer_filter' #34 - │ ├── variant_0: integer #26 - │ ├── variant_1: struct #29 - │ │ └── [equals]: integer #26 - │ ├── variant_2: struct #30 - │ │ └── [not]: integer #26 - │ ├── variant_3: struct #31 - │ │ ├── [gt]: optional 'optional_27' #27 - │ │ │ └── item: integer #26 - │ │ ├── [gte]: optional 'optional_27' #27 - │ │ │ └── item: integer #26 - │ │ ├── [lt]: optional 'optional_27' #27 - │ │ │ └── item: integer #26 - │ │ └── [lte]: optional 'optional_27' #27 - │ │ └── item: integer #26 - │ ├── variant_4: struct #32 - │ │ └── [in]: list 'list_28' #28 - │ │ └── item: integer #26 - │ └── variant_5: struct #33 - │ └── [notIn]: list 'list_28' #28 - │ └── item: integer #26 - └── [title]: optional 'optional_55' #55 - └── item: optional '_prisma_string_filter_ex' #23 - └── item: union #22 - ├── variant_0: union '_prisma_string_filter' #20 - │ ├── variant_0: string #8 - │ ├── variant_1: struct #11 - │ │ └── [equals]: string #8 - │ ├── variant_2: struct #12 - │ │ └── [not]: string #8 - │ ├── variant_3: struct #13 - │ │ └── [in]: list 'list_10' #10 - │ │ └── item: string #8 - │ ├── variant_4: struct #14 - │ │ └── [notIn]: list 'list_10' #10 - │ │ └── item: string #8 - │ ├── variant_5: struct #17 - │ │ ├── [contains]: string #8 - │ │ └── [mode]: optional 'optional_16' #16 - │ │ └── item: string #15 enum{ '"insensitive"' } - │ ├── variant_6: struct #18 - │ │ └── [search]: string #8 - │ └── variant_7: struct #19 - │ ├── [endsWith]: optional 'optional_9' #9 - │ │ └── item: string #8 - │ └── [startsWith]: optional 'optional_9' #9 - │ └── item: string #8 - └── variant_1: struct #21 - └── [not]: union '_prisma_string_filter' #20 - ├── variant_0: string #8 - ├── variant_1: struct #11 - │ └── [equals]: string #8 - ├── variant_2: struct #12 - │ └── [not]: string #8 - ├── variant_3: struct #13 - │ └── [in]: list 'list_10' #10 - │ └── item: string #8 - ├── variant_4: struct #14 - │ └── [notIn]: list 'list_10' #10 - │ └── item: string #8 - ├── variant_5: struct #17 - │ ├── [contains]: string #8 - │ └── [mode]: optional 'optional_16' #16 - │ └── item: string #15 enum{ '"insensitive"' } - ├── variant_6: struct #18 - │ └── [search]: string #8 - └── variant_7: struct #19 - ├── [endsWith]: optional 'optional_9' #9 - │ └── item: string #8 - └── [startsWith]: optional 'optional_9' #9 - └── item: string #8 +root: struct 'User_where' #119 +├── [id]: optional 'optional_75' #76 +│ └── item: optional '_prisma_integer_filter_ex' #53 +│ └── item: union #50 +│ ├── variant_0: either '_prisma_integer_filter' #48 +│ │ ├── variant_0: integer #37 +│ │ ├── variant_1: struct #42 +│ │ │ └── [equals]: integer #37 +│ │ ├── variant_2: struct #43 +│ │ │ └── [not]: integer #37 +│ │ ├── variant_3: struct #44 +│ │ │ ├── [gt]: optional 'optional_38' #39 +│ │ │ │ └── item: integer #37 +│ │ │ ├── [gte]: optional 'optional_38' #39 +│ │ │ │ └── item: integer #37 +│ │ │ ├── [lt]: optional 'optional_38' #39 +│ │ │ │ └── item: integer #37 +│ │ │ └── [lte]: optional 'optional_38' #39 +│ │ │ └── item: integer #37 +│ │ ├── variant_4: struct #45 +│ │ │ └── [in]: list 'list_40' #41 +│ │ │ └── item: integer #37 +│ │ └── variant_5: struct #46 +│ │ └── [notIn]: list 'list_40' #41 +│ │ └── item: integer #37 +│ └── variant_1: struct #49 +│ └── [not]: either '_prisma_integer_filter' #48 +│ ├── variant_0: integer #37 +│ ├── variant_1: struct #42 +│ │ └── [equals]: integer #37 +│ ├── variant_2: struct #43 +│ │ └── [not]: integer #37 +│ ├── variant_3: struct #44 +│ │ ├── [gt]: optional 'optional_38' #39 +│ │ │ └── item: integer #37 +│ │ ├── [gte]: optional 'optional_38' #39 +│ │ │ └── item: integer #37 +│ │ ├── [lt]: optional 'optional_38' #39 +│ │ │ └── item: integer #37 +│ │ └── [lte]: optional 'optional_38' #39 +│ │ └── item: integer #37 +│ ├── variant_4: struct #45 +│ │ └── [in]: list 'list_40' #41 +│ │ └── item: integer #37 +│ └── variant_5: struct #46 +│ └── [notIn]: list 'list_40' #41 +│ └── item: integer #37 +├── [name]: optional 'optional_77' #78 +│ └── item: optional '_prisma_string_filter_ex' #32 +│ └── item: union #29 +│ ├── variant_0: union '_prisma_string_filter' #27 +│ │ ├── variant_0: string #11 +│ │ ├── variant_1: struct #16 +│ │ │ └── [equals]: string #11 +│ │ ├── variant_2: struct #17 +│ │ │ └── [not]: string #11 +│ │ ├── variant_3: struct #18 +│ │ │ └── [in]: list 'list_14' #15 +│ │ │ └── item: string #11 +│ │ ├── variant_4: struct #19 +│ │ │ └── [notIn]: list 'list_14' #15 +│ │ │ └── item: string #11 +│ │ ├── variant_5: struct #23 +│ │ │ ├── [contains]: string #11 +│ │ │ └── [mode]: optional 'optional_21' #22 +│ │ │ └── item: string #20 enum{ '"insensitive"' } +│ │ ├── variant_6: struct #24 +│ │ │ └── [search]: string #11 +│ │ └── variant_7: struct #25 +│ │ ├── [endsWith]: optional 'optional_12' #13 +│ │ │ └── item: string #11 +│ │ └── [startsWith]: optional 'optional_12' #13 +│ │ └── item: string #11 +│ └── variant_1: struct #28 +│ └── [not]: union '_prisma_string_filter' #27 +│ ├── variant_0: string #11 +│ ├── variant_1: struct #16 +│ │ └── [equals]: string #11 +│ ├── variant_2: struct #17 +│ │ └── [not]: string #11 +│ ├── variant_3: struct #18 +│ │ └── [in]: list 'list_14' #15 +│ │ └── item: string #11 +│ ├── variant_4: struct #19 +│ │ └── [notIn]: list 'list_14' #15 +│ │ └── item: string #11 +│ ├── variant_5: struct #23 +│ │ ├── [contains]: string #11 +│ │ └── [mode]: optional 'optional_21' #22 +│ │ └── item: string #20 enum{ '"insensitive"' } +│ ├── variant_6: struct #24 +│ │ └── [search]: string #11 +│ └── variant_7: struct #25 +│ ├── [endsWith]: optional 'optional_12' #13 +│ │ └── item: string #11 +│ └── [startsWith]: optional 'optional_12' #13 +│ └── item: string #11 +└── [posts]: optional 'optional_116' #117 + └── item: union #115 + ├── variant_0: struct #108 + │ └── [every]: optional 'optional_106' #107 + │ └── item: struct 'Post_where_excluding_User' #105 + │ ├── [author]: optional 'optional_102' #103 + │ │ └── item: struct 'User_where_excluding_User_and_Post_where_excluding_User' #101 + │ │ ├── [id]: optional 'optional_83' #84 + │ │ │ └── item: optional '_prisma_integer_filter_ex' #53 + │ │ │ └── item: union #50 + │ │ │ ├── variant_0: either '_prisma_integer_filter' #48 + │ │ │ │ ├── variant_0: integer #37 + │ │ │ │ ├── variant_1: struct #42 + │ │ │ │ │ └── [equals]: integer #37 + │ │ │ │ ├── variant_2: struct #43 + │ │ │ │ │ └── [not]: integer #37 + │ │ │ │ ├── variant_3: struct #44 + │ │ │ │ │ ├── [gt]: optional 'optional_38' #39 + │ │ │ │ │ │ └── item: integer #37 + │ │ │ │ │ ├── [gte]: optional 'optional_38' #39 + │ │ │ │ │ │ └── item: integer #37 + │ │ │ │ │ ├── [lt]: optional 'optional_38' #39 + │ │ │ │ │ │ └── item: integer #37 + │ │ │ │ │ └── [lte]: optional 'optional_38' #39 + │ │ │ │ │ └── item: integer #37 + │ │ │ │ ├── variant_4: struct #45 + │ │ │ │ │ └── [in]: list 'list_40' #41 + │ │ │ │ │ └── item: integer #37 + │ │ │ │ └── variant_5: struct #46 + │ │ │ │ └── [notIn]: list 'list_40' #41 + │ │ │ │ └── item: integer #37 + │ │ │ └── variant_1: struct #49 + │ │ │ └── [not]: either '_prisma_integer_filter' #48 + │ │ │ ├── variant_0: integer #37 + │ │ │ ├── variant_1: struct #42 + │ │ │ │ └── [equals]: integer #37 + │ │ │ ├── variant_2: struct #43 + │ │ │ │ └── [not]: integer #37 + │ │ │ ├── variant_3: struct #44 + │ │ │ │ ├── [gt]: optional 'optional_38' #39 + │ │ │ │ │ └── item: integer #37 + │ │ │ │ ├── [gte]: optional 'optional_38' #39 + │ │ │ │ │ └── item: integer #37 + │ │ │ │ ├── [lt]: optional 'optional_38' #39 + │ │ │ │ │ └── item: integer #37 + │ │ │ │ └── [lte]: optional 'optional_38' #39 + │ │ │ │ └── item: integer #37 + │ │ │ ├── variant_4: struct #45 + │ │ │ │ └── [in]: list 'list_40' #41 + │ │ │ │ └── item: integer #37 + │ │ │ └── variant_5: struct #46 + │ │ │ └── [notIn]: list 'list_40' #41 + │ │ │ └── item: integer #37 + │ │ ├── [name]: optional 'optional_85' #86 + │ │ │ └── item: optional '_prisma_string_filter_ex' #32 + │ │ │ └── item: union #29 + │ │ │ ├── variant_0: union '_prisma_string_filter' #27 + │ │ │ │ ├── variant_0: string #11 + │ │ │ │ ├── variant_1: struct #16 + │ │ │ │ │ └── [equals]: string #11 + │ │ │ │ ├── variant_2: struct #17 + │ │ │ │ │ └── [not]: string #11 + │ │ │ │ ├── variant_3: struct #18 + │ │ │ │ │ └── [in]: list 'list_14' #15 + │ │ │ │ │ └── item: string #11 + │ │ │ │ ├── variant_4: struct #19 + │ │ │ │ │ └── [notIn]: list 'list_14' #15 + │ │ │ │ │ └── item: string #11 + │ │ │ │ ├── variant_5: struct #23 + │ │ │ │ │ ├── [contains]: string #11 + │ │ │ │ │ └── [mode]: optional 'optional_21' #22 + │ │ │ │ │ └── item: string #20 enum{ '"insensitive"' } + │ │ │ │ ├── variant_6: struct #24 + │ │ │ │ │ └── [search]: string #11 + │ │ │ │ └── variant_7: struct #25 + │ │ │ │ ├── [endsWith]: optional 'optional_12' #13 + │ │ │ │ │ └── item: string #11 + │ │ │ │ └── [startsWith]: optional 'optional_12' #13 + │ │ │ │ └── item: string #11 + │ │ │ └── variant_1: struct #28 + │ │ │ └── [not]: union '_prisma_string_filter' #27 + │ │ │ ├── variant_0: string #11 + │ │ │ ├── variant_1: struct #16 + │ │ │ │ └── [equals]: string #11 + │ │ │ ├── variant_2: struct #17 + │ │ │ │ └── [not]: string #11 + │ │ │ ├── variant_3: struct #18 + │ │ │ │ └── [in]: list 'list_14' #15 + │ │ │ │ └── item: string #11 + │ │ │ ├── variant_4: struct #19 + │ │ │ │ └── [notIn]: list 'list_14' #15 + │ │ │ │ └── item: string #11 + │ │ │ ├── variant_5: struct #23 + │ │ │ │ ├── [contains]: string #11 + │ │ │ │ └── [mode]: optional 'optional_21' #22 + │ │ │ │ └── item: string #20 enum{ '"insensitive"' } + │ │ │ ├── variant_6: struct #24 + │ │ │ │ └── [search]: string #11 + │ │ │ └── variant_7: struct #25 + │ │ │ ├── [endsWith]: optional 'optional_12' #13 + │ │ │ │ └── item: string #11 + │ │ │ └── [startsWith]: optional 'optional_12' #13 + │ │ │ └── item: string #11 + │ │ └── [posts]: optional 'optional_98' #99 + │ │ └── item: union #97 + │ │ ├── variant_0: struct #90 + │ │ │ └── [every]: optional 'optional_88' #89 + │ │ │ └── item: &Post_where_excluding_User #87 + │ │ ├── variant_1: struct #93 + │ │ │ └── [some]: optional 'optional_91' #92 + │ │ │ └── item: &Post_where_excluding_User #87 + │ │ └── variant_2: struct #96 + │ │ └── [none]: optional 'optional_94' #95 + │ │ └── item: &Post_where_excluding_User #87 + │ ├── [id]: optional 'optional_79' #80 + │ │ └── item: optional '_prisma_integer_filter_ex' #53 + │ │ └── item: union #50 + │ │ ├── variant_0: either '_prisma_integer_filter' #48 + │ │ │ ├── variant_0: integer #37 + │ │ │ ├── variant_1: struct #42 + │ │ │ │ └── [equals]: integer #37 + │ │ │ ├── variant_2: struct #43 + │ │ │ │ └── [not]: integer #37 + │ │ │ ├── variant_3: struct #44 + │ │ │ │ ├── [gt]: optional 'optional_38' #39 + │ │ │ │ │ └── item: integer #37 + │ │ │ │ ├── [gte]: optional 'optional_38' #39 + │ │ │ │ │ └── item: integer #37 + │ │ │ │ ├── [lt]: optional 'optional_38' #39 + │ │ │ │ │ └── item: integer #37 + │ │ │ │ └── [lte]: optional 'optional_38' #39 + │ │ │ │ └── item: integer #37 + │ │ │ ├── variant_4: struct #45 + │ │ │ │ └── [in]: list 'list_40' #41 + │ │ │ │ └── item: integer #37 + │ │ │ └── variant_5: struct #46 + │ │ │ └── [notIn]: list 'list_40' #41 + │ │ │ └── item: integer #37 + │ │ └── variant_1: struct #49 + │ │ └── [not]: either '_prisma_integer_filter' #48 + │ │ ├── variant_0: integer #37 + │ │ ├── variant_1: struct #42 + │ │ │ └── [equals]: integer #37 + │ │ ├── variant_2: struct #43 + │ │ │ └── [not]: integer #37 + │ │ ├── variant_3: struct #44 + │ │ │ ├── [gt]: optional 'optional_38' #39 + │ │ │ │ └── item: integer #37 + │ │ │ ├── [gte]: optional 'optional_38' #39 + │ │ │ │ └── item: integer #37 + │ │ │ ├── [lt]: optional 'optional_38' #39 + │ │ │ │ └── item: integer #37 + │ │ │ └── [lte]: optional 'optional_38' #39 + │ │ │ └── item: integer #37 + │ │ ├── variant_4: struct #45 + │ │ │ └── [in]: list 'list_40' #41 + │ │ │ └── item: integer #37 + │ │ └── variant_5: struct #46 + │ │ └── [notIn]: list 'list_40' #41 + │ │ └── item: integer #37 + │ └── [title]: optional 'optional_81' #82 + │ └── item: optional '_prisma_string_filter_ex' #32 + │ └── item: union #29 + │ ├── variant_0: union '_prisma_string_filter' #27 + │ │ ├── variant_0: string #11 + │ │ ├── variant_1: struct #16 + │ │ │ └── [equals]: string #11 + │ │ ├── variant_2: struct #17 + │ │ │ └── [not]: string #11 + │ │ ├── variant_3: struct #18 + │ │ │ └── [in]: list 'list_14' #15 + │ │ │ └── item: string #11 + │ │ ├── variant_4: struct #19 + │ │ │ └── [notIn]: list 'list_14' #15 + │ │ │ └── item: string #11 + │ │ ├── variant_5: struct #23 + │ │ │ ├── [contains]: string #11 + │ │ │ └── [mode]: optional 'optional_21' #22 + │ │ │ └── item: string #20 enum{ '"insensitive"' } + │ │ ├── variant_6: struct #24 + │ │ │ └── [search]: string #11 + │ │ └── variant_7: struct #25 + │ │ ├── [endsWith]: optional 'optional_12' #13 + │ │ │ └── item: string #11 + │ │ └── [startsWith]: optional 'optional_12' #13 + │ │ └── item: string #11 + │ └── variant_1: struct #28 + │ └── [not]: union '_prisma_string_filter' #27 + │ ├── variant_0: string #11 + │ ├── variant_1: struct #16 + │ │ └── [equals]: string #11 + │ ├── variant_2: struct #17 + │ │ └── [not]: string #11 + │ ├── variant_3: struct #18 + │ │ └── [in]: list 'list_14' #15 + │ │ └── item: string #11 + │ ├── variant_4: struct #19 + │ │ └── [notIn]: list 'list_14' #15 + │ │ └── item: string #11 + │ ├── variant_5: struct #23 + │ │ ├── [contains]: string #11 + │ │ └── [mode]: optional 'optional_21' #22 + │ │ └── item: string #20 enum{ '"insensitive"' } + │ ├── variant_6: struct #24 + │ │ └── [search]: string #11 + │ └── variant_7: struct #25 + │ ├── [endsWith]: optional 'optional_12' #13 + │ │ └── item: string #11 + │ └── [startsWith]: optional 'optional_12' #13 + │ └── item: string #11 + ├── variant_1: struct #111 + │ └── [some]: optional 'optional_109' #110 + │ └── item: struct 'Post_where_excluding_User' #105 + │ ├── [author]: optional 'optional_102' #103 + │ │ └── item: struct 'User_where_excluding_User_and_Post_where_excluding_User' #101 + │ │ ├── [id]: optional 'optional_83' #84 + │ │ │ └── item: optional '_prisma_integer_filter_ex' #53 + │ │ │ └── item: union #50 + │ │ │ ├── variant_0: either '_prisma_integer_filter' #48 + │ │ │ │ ├── variant_0: integer #37 + │ │ │ │ ├── variant_1: struct #42 + │ │ │ │ │ └── [equals]: integer #37 + │ │ │ │ ├── variant_2: struct #43 + │ │ │ │ │ └── [not]: integer #37 + │ │ │ │ ├── variant_3: struct #44 + │ │ │ │ │ ├── [gt]: optional 'optional_38' #39 + │ │ │ │ │ │ └── item: integer #37 + │ │ │ │ │ ├── [gte]: optional 'optional_38' #39 + │ │ │ │ │ │ └── item: integer #37 + │ │ │ │ │ ├── [lt]: optional 'optional_38' #39 + │ │ │ │ │ │ └── item: integer #37 + │ │ │ │ │ └── [lte]: optional 'optional_38' #39 + │ │ │ │ │ └── item: integer #37 + │ │ │ │ ├── variant_4: struct #45 + │ │ │ │ │ └── [in]: list 'list_40' #41 + │ │ │ │ │ └── item: integer #37 + │ │ │ │ └── variant_5: struct #46 + │ │ │ │ └── [notIn]: list 'list_40' #41 + │ │ │ │ └── item: integer #37 + │ │ │ └── variant_1: struct #49 + │ │ │ └── [not]: either '_prisma_integer_filter' #48 + │ │ │ ├── variant_0: integer #37 + │ │ │ ├── variant_1: struct #42 + │ │ │ │ └── [equals]: integer #37 + │ │ │ ├── variant_2: struct #43 + │ │ │ │ └── [not]: integer #37 + │ │ │ ├── variant_3: struct #44 + │ │ │ │ ├── [gt]: optional 'optional_38' #39 + │ │ │ │ │ └── item: integer #37 + │ │ │ │ ├── [gte]: optional 'optional_38' #39 + │ │ │ │ │ └── item: integer #37 + │ │ │ │ ├── [lt]: optional 'optional_38' #39 + │ │ │ │ │ └── item: integer #37 + │ │ │ │ └── [lte]: optional 'optional_38' #39 + │ │ │ │ └── item: integer #37 + │ │ │ ├── variant_4: struct #45 + │ │ │ │ └── [in]: list 'list_40' #41 + │ │ │ │ └── item: integer #37 + │ │ │ └── variant_5: struct #46 + │ │ │ └── [notIn]: list 'list_40' #41 + │ │ │ └── item: integer #37 + │ │ ├── [name]: optional 'optional_85' #86 + │ │ │ └── item: optional '_prisma_string_filter_ex' #32 + │ │ │ └── item: union #29 + │ │ │ ├── variant_0: union '_prisma_string_filter' #27 + │ │ │ │ ├── variant_0: string #11 + │ │ │ │ ├── variant_1: struct #16 + │ │ │ │ │ └── [equals]: string #11 + │ │ │ │ ├── variant_2: struct #17 + │ │ │ │ │ └── [not]: string #11 + │ │ │ │ ├── variant_3: struct #18 + │ │ │ │ │ └── [in]: list 'list_14' #15 + │ │ │ │ │ └── item: string #11 + │ │ │ │ ├── variant_4: struct #19 + │ │ │ │ │ └── [notIn]: list 'list_14' #15 + │ │ │ │ │ └── item: string #11 + │ │ │ │ ├── variant_5: struct #23 + │ │ │ │ │ ├── [contains]: string #11 + │ │ │ │ │ └── [mode]: optional 'optional_21' #22 + │ │ │ │ │ └── item: string #20 enum{ '"insensitive"' } + │ │ │ │ ├── variant_6: struct #24 + │ │ │ │ │ └── [search]: string #11 + │ │ │ │ └── variant_7: struct #25 + │ │ │ │ ├── [endsWith]: optional 'optional_12' #13 + │ │ │ │ │ └── item: string #11 + │ │ │ │ └── [startsWith]: optional 'optional_12' #13 + │ │ │ │ └── item: string #11 + │ │ │ └── variant_1: struct #28 + │ │ │ └── [not]: union '_prisma_string_filter' #27 + │ │ │ ├── variant_0: string #11 + │ │ │ ├── variant_1: struct #16 + │ │ │ │ └── [equals]: string #11 + │ │ │ ├── variant_2: struct #17 + │ │ │ │ └── [not]: string #11 + │ │ │ ├── variant_3: struct #18 + │ │ │ │ └── [in]: list 'list_14' #15 + │ │ │ │ └── item: string #11 + │ │ │ ├── variant_4: struct #19 + │ │ │ │ └── [notIn]: list 'list_14' #15 + │ │ │ │ └── item: string #11 + │ │ │ ├── variant_5: struct #23 + │ │ │ │ ├── [contains]: string #11 + │ │ │ │ └── [mode]: optional 'optional_21' #22 + │ │ │ │ └── item: string #20 enum{ '"insensitive"' } + │ │ │ ├── variant_6: struct #24 + │ │ │ │ └── [search]: string #11 + │ │ │ └── variant_7: struct #25 + │ │ │ ├── [endsWith]: optional 'optional_12' #13 + │ │ │ │ └── item: string #11 + │ │ │ └── [startsWith]: optional 'optional_12' #13 + │ │ │ └── item: string #11 + │ │ └── [posts]: optional 'optional_98' #99 + │ │ └── item: union #97 + │ │ ├── variant_0: struct #90 + │ │ │ └── [every]: optional 'optional_88' #89 + │ │ │ └── item: &Post_where_excluding_User #87 + │ │ ├── variant_1: struct #93 + │ │ │ └── [some]: optional 'optional_91' #92 + │ │ │ └── item: &Post_where_excluding_User #87 + │ │ └── variant_2: struct #96 + │ │ └── [none]: optional 'optional_94' #95 + │ │ └── item: &Post_where_excluding_User #87 + │ ├── [id]: optional 'optional_79' #80 + │ │ └── item: optional '_prisma_integer_filter_ex' #53 + │ │ └── item: union #50 + │ │ ├── variant_0: either '_prisma_integer_filter' #48 + │ │ │ ├── variant_0: integer #37 + │ │ │ ├── variant_1: struct #42 + │ │ │ │ └── [equals]: integer #37 + │ │ │ ├── variant_2: struct #43 + │ │ │ │ └── [not]: integer #37 + │ │ │ ├── variant_3: struct #44 + │ │ │ │ ├── [gt]: optional 'optional_38' #39 + │ │ │ │ │ └── item: integer #37 + │ │ │ │ ├── [gte]: optional 'optional_38' #39 + │ │ │ │ │ └── item: integer #37 + │ │ │ │ ├── [lt]: optional 'optional_38' #39 + │ │ │ │ │ └── item: integer #37 + │ │ │ │ └── [lte]: optional 'optional_38' #39 + │ │ │ │ └── item: integer #37 + │ │ │ ├── variant_4: struct #45 + │ │ │ │ └── [in]: list 'list_40' #41 + │ │ │ │ └── item: integer #37 + │ │ │ └── variant_5: struct #46 + │ │ │ └── [notIn]: list 'list_40' #41 + │ │ │ └── item: integer #37 + │ │ └── variant_1: struct #49 + │ │ └── [not]: either '_prisma_integer_filter' #48 + │ │ ├── variant_0: integer #37 + │ │ ├── variant_1: struct #42 + │ │ │ └── [equals]: integer #37 + │ │ ├── variant_2: struct #43 + │ │ │ └── [not]: integer #37 + │ │ ├── variant_3: struct #44 + │ │ │ ├── [gt]: optional 'optional_38' #39 + │ │ │ │ └── item: integer #37 + │ │ │ ├── [gte]: optional 'optional_38' #39 + │ │ │ │ └── item: integer #37 + │ │ │ ├── [lt]: optional 'optional_38' #39 + │ │ │ │ └── item: integer #37 + │ │ │ └── [lte]: optional 'optional_38' #39 + │ │ │ └── item: integer #37 + │ │ ├── variant_4: struct #45 + │ │ │ └── [in]: list 'list_40' #41 + │ │ │ └── item: integer #37 + │ │ └── variant_5: struct #46 + │ │ └── [notIn]: list 'list_40' #41 + │ │ └── item: integer #37 + │ └── [title]: optional 'optional_81' #82 + │ └── item: optional '_prisma_string_filter_ex' #32 + │ └── item: union #29 + │ ├── variant_0: union '_prisma_string_filter' #27 + │ │ ├── variant_0: string #11 + │ │ ├── variant_1: struct #16 + │ │ │ └── [equals]: string #11 + │ │ ├── variant_2: struct #17 + │ │ │ └── [not]: string #11 + │ │ ├── variant_3: struct #18 + │ │ │ └── [in]: list 'list_14' #15 + │ │ │ └── item: string #11 + │ │ ├── variant_4: struct #19 + │ │ │ └── [notIn]: list 'list_14' #15 + │ │ │ └── item: string #11 + │ │ ├── variant_5: struct #23 + │ │ │ ├── [contains]: string #11 + │ │ │ └── [mode]: optional 'optional_21' #22 + │ │ │ └── item: string #20 enum{ '"insensitive"' } + │ │ ├── variant_6: struct #24 + │ │ │ └── [search]: string #11 + │ │ └── variant_7: struct #25 + │ │ ├── [endsWith]: optional 'optional_12' #13 + │ │ │ └── item: string #11 + │ │ └── [startsWith]: optional 'optional_12' #13 + │ │ └── item: string #11 + │ └── variant_1: struct #28 + │ └── [not]: union '_prisma_string_filter' #27 + │ ├── variant_0: string #11 + │ ├── variant_1: struct #16 + │ │ └── [equals]: string #11 + │ ├── variant_2: struct #17 + │ │ └── [not]: string #11 + │ ├── variant_3: struct #18 + │ │ └── [in]: list 'list_14' #15 + │ │ └── item: string #11 + │ ├── variant_4: struct #19 + │ │ └── [notIn]: list 'list_14' #15 + │ │ └── item: string #11 + │ ├── variant_5: struct #23 + │ │ ├── [contains]: string #11 + │ │ └── [mode]: optional 'optional_21' #22 + │ │ └── item: string #20 enum{ '"insensitive"' } + │ ├── variant_6: struct #24 + │ │ └── [search]: string #11 + │ └── variant_7: struct #25 + │ ├── [endsWith]: optional 'optional_12' #13 + │ │ └── item: string #11 + │ └── [startsWith]: optional 'optional_12' #13 + │ └── item: string #11 + └── variant_2: struct #114 + └── [none]: optional 'optional_112' #113 + └── item: struct 'Post_where_excluding_User' #105 + ├── [author]: optional 'optional_102' #103 + │ └── item: struct 'User_where_excluding_User_and_Post_where_excluding_User' #101 + │ ├── [id]: optional 'optional_83' #84 + │ │ └── item: optional '_prisma_integer_filter_ex' #53 + │ │ └── item: union #50 + │ │ ├── variant_0: either '_prisma_integer_filter' #48 + │ │ │ ├── variant_0: integer #37 + │ │ │ ├── variant_1: struct #42 + │ │ │ │ └── [equals]: integer #37 + │ │ │ ├── variant_2: struct #43 + │ │ │ │ └── [not]: integer #37 + │ │ │ ├── variant_3: struct #44 + │ │ │ │ ├── [gt]: optional 'optional_38' #39 + │ │ │ │ │ └── item: integer #37 + │ │ │ │ ├── [gte]: optional 'optional_38' #39 + │ │ │ │ │ └── item: integer #37 + │ │ │ │ ├── [lt]: optional 'optional_38' #39 + │ │ │ │ │ └── item: integer #37 + │ │ │ │ └── [lte]: optional 'optional_38' #39 + │ │ │ │ └── item: integer #37 + │ │ │ ├── variant_4: struct #45 + │ │ │ │ └── [in]: list 'list_40' #41 + │ │ │ │ └── item: integer #37 + │ │ │ └── variant_5: struct #46 + │ │ │ └── [notIn]: list 'list_40' #41 + │ │ │ └── item: integer #37 + │ │ └── variant_1: struct #49 + │ │ └── [not]: either '_prisma_integer_filter' #48 + │ │ ├── variant_0: integer #37 + │ │ ├── variant_1: struct #42 + │ │ │ └── [equals]: integer #37 + │ │ ├── variant_2: struct #43 + │ │ │ └── [not]: integer #37 + │ │ ├── variant_3: struct #44 + │ │ │ ├── [gt]: optional 'optional_38' #39 + │ │ │ │ └── item: integer #37 + │ │ │ ├── [gte]: optional 'optional_38' #39 + │ │ │ │ └── item: integer #37 + │ │ │ ├── [lt]: optional 'optional_38' #39 + │ │ │ │ └── item: integer #37 + │ │ │ └── [lte]: optional 'optional_38' #39 + │ │ │ └── item: integer #37 + │ │ ├── variant_4: struct #45 + │ │ │ └── [in]: list 'list_40' #41 + │ │ │ └── item: integer #37 + │ │ └── variant_5: struct #46 + │ │ └── [notIn]: list 'list_40' #41 + │ │ └── item: integer #37 + │ ├── [name]: optional 'optional_85' #86 + │ │ └── item: optional '_prisma_string_filter_ex' #32 + │ │ └── item: union #29 + │ │ ├── variant_0: union '_prisma_string_filter' #27 + │ │ │ ├── variant_0: string #11 + │ │ │ ├── variant_1: struct #16 + │ │ │ │ └── [equals]: string #11 + │ │ │ ├── variant_2: struct #17 + │ │ │ │ └── [not]: string #11 + │ │ │ ├── variant_3: struct #18 + │ │ │ │ └── [in]: list 'list_14' #15 + │ │ │ │ └── item: string #11 + │ │ │ ├── variant_4: struct #19 + │ │ │ │ └── [notIn]: list 'list_14' #15 + │ │ │ │ └── item: string #11 + │ │ │ ├── variant_5: struct #23 + │ │ │ │ ├── [contains]: string #11 + │ │ │ │ └── [mode]: optional 'optional_21' #22 + │ │ │ │ └── item: string #20 enum{ '"insensitive"' } + │ │ │ ├── variant_6: struct #24 + │ │ │ │ └── [search]: string #11 + │ │ │ └── variant_7: struct #25 + │ │ │ ├── [endsWith]: optional 'optional_12' #13 + │ │ │ │ └── item: string #11 + │ │ │ └── [startsWith]: optional 'optional_12' #13 + │ │ │ └── item: string #11 + │ │ └── variant_1: struct #28 + │ │ └── [not]: union '_prisma_string_filter' #27 + │ │ ├── variant_0: string #11 + │ │ ├── variant_1: struct #16 + │ │ │ └── [equals]: string #11 + │ │ ├── variant_2: struct #17 + │ │ │ └── [not]: string #11 + │ │ ├── variant_3: struct #18 + │ │ │ └── [in]: list 'list_14' #15 + │ │ │ └── item: string #11 + │ │ ├── variant_4: struct #19 + │ │ │ └── [notIn]: list 'list_14' #15 + │ │ │ └── item: string #11 + │ │ ├── variant_5: struct #23 + │ │ │ ├── [contains]: string #11 + │ │ │ └── [mode]: optional 'optional_21' #22 + │ │ │ └── item: string #20 enum{ '"insensitive"' } + │ │ ├── variant_6: struct #24 + │ │ │ └── [search]: string #11 + │ │ └── variant_7: struct #25 + │ │ ├── [endsWith]: optional 'optional_12' #13 + │ │ │ └── item: string #11 + │ │ └── [startsWith]: optional 'optional_12' #13 + │ │ └── item: string #11 + │ └── [posts]: optional 'optional_98' #99 + │ └── item: union #97 + │ ├── variant_0: struct #90 + │ │ └── [every]: optional 'optional_88' #89 + │ │ └── item: &Post_where_excluding_User #87 + │ ├── variant_1: struct #93 + │ │ └── [some]: optional 'optional_91' #92 + │ │ └── item: &Post_where_excluding_User #87 + │ └── variant_2: struct #96 + │ └── [none]: optional 'optional_94' #95 + │ └── item: &Post_where_excluding_User #87 + ├── [id]: optional 'optional_79' #80 + │ └── item: optional '_prisma_integer_filter_ex' #53 + │ └── item: union #50 + │ ├── variant_0: either '_prisma_integer_filter' #48 + │ │ ├── variant_0: integer #37 + │ │ ├── variant_1: struct #42 + │ │ │ └── [equals]: integer #37 + │ │ ├── variant_2: struct #43 + │ │ │ └── [not]: integer #37 + │ │ ├── variant_3: struct #44 + │ │ │ ├── [gt]: optional 'optional_38' #39 + │ │ │ │ └── item: integer #37 + │ │ │ ├── [gte]: optional 'optional_38' #39 + │ │ │ │ └── item: integer #37 + │ │ │ ├── [lt]: optional 'optional_38' #39 + │ │ │ │ └── item: integer #37 + │ │ │ └── [lte]: optional 'optional_38' #39 + │ │ │ └── item: integer #37 + │ │ ├── variant_4: struct #45 + │ │ │ └── [in]: list 'list_40' #41 + │ │ │ └── item: integer #37 + │ │ └── variant_5: struct #46 + │ │ └── [notIn]: list 'list_40' #41 + │ │ └── item: integer #37 + │ └── variant_1: struct #49 + │ └── [not]: either '_prisma_integer_filter' #48 + │ ├── variant_0: integer #37 + │ ├── variant_1: struct #42 + │ │ └── [equals]: integer #37 + │ ├── variant_2: struct #43 + │ │ └── [not]: integer #37 + │ ├── variant_3: struct #44 + │ │ ├── [gt]: optional 'optional_38' #39 + │ │ │ └── item: integer #37 + │ │ ├── [gte]: optional 'optional_38' #39 + │ │ │ └── item: integer #37 + │ │ ├── [lt]: optional 'optional_38' #39 + │ │ │ └── item: integer #37 + │ │ └── [lte]: optional 'optional_38' #39 + │ │ └── item: integer #37 + │ ├── variant_4: struct #45 + │ │ └── [in]: list 'list_40' #41 + │ │ └── item: integer #37 + │ └── variant_5: struct #46 + │ └── [notIn]: list 'list_40' #41 + │ └── item: integer #37 + └── [title]: optional 'optional_81' #82 + └── item: optional '_prisma_string_filter_ex' #32 + └── item: union #29 + ├── variant_0: union '_prisma_string_filter' #27 + │ ├── variant_0: string #11 + │ ├── variant_1: struct #16 + │ │ └── [equals]: string #11 + │ ├── variant_2: struct #17 + │ │ └── [not]: string #11 + │ ├── variant_3: struct #18 + │ │ └── [in]: list 'list_14' #15 + │ │ └── item: string #11 + │ ├── variant_4: struct #19 + │ │ └── [notIn]: list 'list_14' #15 + │ │ └── item: string #11 + │ ├── variant_5: struct #23 + │ │ ├── [contains]: string #11 + │ │ └── [mode]: optional 'optional_21' #22 + │ │ └── item: string #20 enum{ '"insensitive"' } + │ ├── variant_6: struct #24 + │ │ └── [search]: string #11 + │ └── variant_7: struct #25 + │ ├── [endsWith]: optional 'optional_12' #13 + │ │ └── item: string #11 + │ └── [startsWith]: optional 'optional_12' #13 + │ └── item: string #11 + └── variant_1: struct #28 + └── [not]: union '_prisma_string_filter' #27 + ├── variant_0: string #11 + ├── variant_1: struct #16 + │ └── [equals]: string #11 + ├── variant_2: struct #17 + │ └── [not]: string #11 + ├── variant_3: struct #18 + │ └── [in]: list 'list_14' #15 + │ └── item: string #11 + ├── variant_4: struct #19 + │ └── [notIn]: list 'list_14' #15 + │ └── item: string #11 + ├── variant_5: struct #23 + │ ├── [contains]: string #11 + │ └── [mode]: optional 'optional_21' #22 + │ └── item: string #20 enum{ '"insensitive"' } + ├── variant_6: struct #24 + │ └── [search]: string #11 + └── variant_7: struct #25 + ├── [endsWith]: optional 'optional_12' #13 + │ └── item: string #11 + └── [startsWith]: optional 'optional_12' #13 + └── item: string #11 diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/where_.rs b/src/typegraph/core/src/runtimes/prisma/type_generation/where_.rs index a170a799f8..964ff7b5ee 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/where_.rs +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/where_.rs @@ -8,7 +8,7 @@ use crate::errors::Result; use crate::runtimes::prisma::context::PrismaContext; use crate::runtimes::prisma::model::Property; use crate::runtimes::prisma::relationship::Cardinality; -use crate::t::{self, ConcreteTypeBuilder, TypeBuilder}; +use crate::t::{self, TypeBuilder}; use crate::types::TypeId; use super::filters::{ @@ -61,9 +61,9 @@ impl TypeGen for Where { for (key, prop) in model.iter_props() { match prop { Property::Model(prop) => { - let inner = match self.skip_models.get(&prop.model_id) { + let inner = match self.skip_models.get(&prop.model_type.type_id) { Some(name) => t::ref_(name.clone(), Default::default()).build()?, - None => context.generate(&self.nested(&name, prop.model_id))?, + None => context.generate(&self.nested(&name, prop.model_type.type_id))?, }; match prop.quantifier { Cardinality::Many => { @@ -108,7 +108,7 @@ impl TypeGen for Where { } } - builder.named(self.name()).build() + builder.build_named(self.name()) } fn name(&self) -> String { diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/with_nested_count.rs b/src/typegraph/core/src/runtimes/prisma/type_generation/with_nested_count.rs index df49ae33d6..213e0f9602 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/with_nested_count.rs +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/with_nested_count.rs @@ -6,9 +6,8 @@ use crate::runtimes::prisma::context::PrismaContext; use crate::runtimes::prisma::model::Property; use crate::runtimes::prisma::relationship::Cardinality; use crate::runtimes::prisma::type_generation::count::Count; -use crate::t::{self, ConcreteTypeBuilder, TypeBuilder}; -use crate::types::{ResolveRef as _, TypeDefExt, TypeId}; -// use crate::utils::{remove_injection, remove_injections_recursive}; +use crate::t::{self, TypeBuilder as _}; +use crate::types::{AsTypeDefEx as _, TypeDefExt, TypeId}; use super::TypeGen; @@ -37,7 +36,11 @@ impl TypeGen for WithNestedCount { match prop { Property::Model(prop) => { let rel_name = model.relationships.get(key).ok_or_else(|| { - format!("relationship not registered: {}::{}", model.type_name, key) + format!( + "relationship not registered: {}::{}", + model.model_type.name(), + key + ) })?; let rel = context.relationships.get(rel_name).unwrap(); @@ -48,7 +51,7 @@ impl TypeGen for WithNestedCount { match prop.quantifier { Cardinality::Optional => { let inner = context.generate(&WithNestedCount { - model_id: prop.model_id, + model_id: prop.model_type.type_id, skip: [self.skip.as_slice(), &[rel_name.clone()]].concat(), })?; builder.propx(key, t::optional(inner))?; @@ -57,7 +60,7 @@ impl TypeGen for WithNestedCount { Cardinality::Many => { let inner = context.generate(&WithNestedCount { - model_id: prop.model_id, + model_id: prop.model_type.type_id, skip: [self.skip.as_slice(), &[rel_name.clone()]].concat(), })?; builder.propx(key, t::list(inner))?; @@ -65,13 +68,13 @@ impl TypeGen for WithNestedCount { } Cardinality::One => { - builder.prop(key, prop.model_id); + builder.prop(key, prop.model_type.type_id); } } } Property::Scalar(prop) => { - let type_id = prop.wrapper_type_id.resolve_ref()?.0.id(); + let type_id = prop.wrapper_type_id.as_xdef()?.type_def.id(); builder.prop(key, type_id); } @@ -89,7 +92,7 @@ impl TypeGen for WithNestedCount { builder.propx("_count", count)?; } - builder.named(self.name()).build() + builder.build_named(self.name()) } fn name(&self) -> String { diff --git a/src/typegraph/core/src/runtimes/prisma/type_utils.rs b/src/typegraph/core/src/runtimes/prisma/type_utils.rs index e3fee4f4eb..acdb8290cb 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_utils.rs +++ b/src/typegraph/core/src/runtimes/prisma/type_utils.rs @@ -1,40 +1,26 @@ // Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. // SPDX-License-Identifier: MPL-2.0 -use std::borrow::Cow; - use crate::errors::Result; -use crate::types::{TypeDef, TypeDefExt}; + +type JsonValue = serde_json::Value; #[derive(Debug)] -pub struct RuntimeConfig<'a>(Cow<'a, [(String, String)]>); +pub struct RuntimeConfig<'a>(pub Vec<&'a JsonValue>); impl<'a> RuntimeConfig<'a> { - pub fn new(config: Option<&'a Vec<(String, String)>>) -> Self { - Self(match config { - Some(config) => Cow::Borrowed(config.as_slice()), - None => Cow::Owned(vec![]), - }) - } - pub fn get(&self, key: &str) -> Result> where T: serde::de::DeserializeOwned, { self.0 .iter() - .filter_map(|(k, v)| if k == key { Some(v) } else { None }) - .last() - .map(|v| serde_json::from_str(v)) + .find_map(|&v| { + v.get(key).map(|v| { + serde_json::from_value(v.clone()) + .map_err(|e| format!("invalid config value for {}: {}", key, e).into()) + }) + }) .transpose() - .map_err(|e| format!("invalid config value for {}: {}", key, e).into()) - } -} - -impl<'a> TryFrom<&'a TypeDef> for RuntimeConfig<'a> { - type Error = crate::wit::core::Error; - - fn try_from(type_def: &'a TypeDef) -> Result { - Ok(Self::new(type_def.base().runtime_config.as_ref())) } } diff --git a/src/typegraph/core/src/runtimes/random.rs b/src/typegraph/core/src/runtimes/random.rs index d58ca9756a..89598ff589 100644 --- a/src/typegraph/core/src/runtimes/random.rs +++ b/src/typegraph/core/src/runtimes/random.rs @@ -1,9 +1,118 @@ // Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. // SPDX-License-Identifier: MPL-2.0 -use crate::wit::runtimes as wit; +use crate::{ + errors::Result, + types::{AsTypeDefEx as _, FindAttribute as _, TypeDef, TypeId}, + wit::runtimes as wit, +}; +use indexmap::IndexMap; +use serde::{Deserialize, Serialize}; #[derive(Debug)] pub enum RandomMaterializer { Runtime(wit::MaterializerRandom), } + +#[derive(Debug, Serialize)] +#[serde(untagged)] +pub enum RandConfigNode { + Parent { + children: IndexMap, + }, + Leaf { + gen: String, + args: IndexMap, + }, +} + +#[derive(Debug, Deserialize, Serialize)] +pub struct Generator { + pub gen: String, + #[serde(flatten)] + pub args: IndexMap, +} + +pub fn collect_random_runtime_config(out_type: TypeId) -> Result> { + let xdef = out_type.as_xdef()?; + let gen = { + let xdef = &xdef; + let attr = xdef.attributes.find_runtime_attr(""); + attr.and_then(|attr| serde_json::from_value::(attr.clone()).ok()) + }; + // TODO fail if gen is some on parent? + match xdef.type_def { + TypeDef::Struct(s) => { + let mut children = IndexMap::default(); + for (key, type_id) in &s.data.props { + let child = collect_random_runtime_config(TypeId(*type_id))?; + if let Some(child) = child { + children.insert(key.clone(), child); + } + } + if children.is_empty() { + Ok(None) + } else { + Ok(Some(RandConfigNode::Parent { children })) + } + } + TypeDef::Func(_) => { + // unmanaged + Ok(None) + } + TypeDef::List(l) => { + let child = collect_random_runtime_config(TypeId(l.data.of))?; + if let Some(child) = child { + let children = IndexMap::from_iter(vec![("_".into(), child)]); + Ok(Some(RandConfigNode::Parent { children })) + } else { + Ok(None) + } + } + TypeDef::Optional(o) => { + let child = collect_random_runtime_config(TypeId(o.data.of))?; + if let Some(child) = child { + let children = IndexMap::from_iter(vec![("_".into(), child)]); + Ok(Some(RandConfigNode::Parent { children })) + } else { + Ok(None) + } + } + TypeDef::Union(u) => { + let mut children = IndexMap::default(); + for (i, type_id) in u.data.variants.iter().enumerate() { + let child = collect_random_runtime_config(TypeId(*type_id))?; + if let Some(child) = child { + children.insert(format!("_{i}"), child); + } + } + if children.is_empty() { + Ok(None) + } else { + Ok(Some(RandConfigNode::Parent { children })) + } + } + TypeDef::Either(u) => { + let mut children = IndexMap::default(); + for (i, type_id) in u.data.variants.iter().enumerate() { + let child = collect_random_runtime_config(TypeId(*type_id))?; + if let Some(child) = child { + children.insert(format!("_{i}"), child); + } + } + if children.is_empty() { + Ok(None) + } else { + Ok(Some(RandConfigNode::Parent { children })) + } + } + TypeDef::Boolean(_) | TypeDef::Integer(_) | TypeDef::Float(_) | TypeDef::String(_) => { + Ok(gen.map(|gen| RandConfigNode::Leaf { + gen: gen.gen, + args: gen.args, + })) + } + TypeDef::File(_) => Ok(None), + // _ => Ok(None), + } +} diff --git a/src/typegraph/core/src/runtimes/substantial.rs b/src/typegraph/core/src/runtimes/substantial.rs index 5ab2f6a947..552cd78f85 100644 --- a/src/typegraph/core/src/runtimes/substantial.rs +++ b/src/typegraph/core/src/runtimes/substantial.rs @@ -4,8 +4,9 @@ use crate::conversion::runtimes::MaterializerConverter; use crate::errors::Result; use crate::global_store::Store; -use crate::t::{self, ConcreteTypeBuilder, TypeBuilder}; +use crate::t::{self, TypeBuilder}; use crate::typegraph::TypegraphContext; +use crate::types::WithRuntimeConfig; use crate::wit::core::FuncParams; use crate::wit::{ core::RuntimeId, runtimes::Effect as WitEffect, runtimes::SubstantialOperationData, @@ -214,10 +215,11 @@ fn use_arg_or_json_string(arg: Option, flag: bool) -> Result { }; t::string() - .config( - "format", - serde_json::to_string("json").map_err(|e| e.to_string())?, - ) .build() - .map(|r| r.into()) + .and_then(|r| { + r.with_config(json!({ + "format": "json" + })) + }) + .map(|r| r.id().into()) } diff --git a/src/typegraph/core/src/snapshots/typegraph_core__tests__successful_serialization.snap b/src/typegraph/core/src/snapshots/typegraph_core__tests__successful_serialization.snap index 9cbe7f1da2..6b2de1f5eb 100644 --- a/src/typegraph/core/src/snapshots/typegraph_core__tests__successful_serialization.snap +++ b/src/typegraph/core/src/snapshots/typegraph_core__tests__successful_serialization.snap @@ -7,9 +7,7 @@ expression: typegraph.0 { "type": "object", "title": "test", - "runtime": 0, "policies": [], - "config": {}, "properties": { "one": 1 }, @@ -21,11 +19,11 @@ expression: typegraph.0 { "type": "function", "title": "root_one_fn", - "runtime": 0, "policies": [], - "config": {}, "input": 2, "output": 4, + "injections": {}, + "runtimeConfig": null, "materializer": 0, "rate_weight": null, "rate_calls": false @@ -33,9 +31,7 @@ expression: typegraph.0 { "type": "object", "title": "root_one_fn_input", - "runtime": 0, "policies": [], - "config": {}, "properties": { "one": 3, "two": 4, @@ -47,42 +43,32 @@ expression: typegraph.0 { "type": "integer", "title": "root_one_fn_input_one_integer", - "runtime": 0, - "policies": [], - "config": {} + "policies": [] }, { "type": "integer", "title": "root_one_fn_input_two_integer", - "runtime": 0, "policies": [], - "config": {}, "minimum": 12, "maximum": 44 }, { "type": "optional", "title": "root_one_fn_input_three_root_one_fn_input_three_root_one_fn_input_three_float_list_optional", - "runtime": 0, "policies": [], - "config": {}, "item": 6, "default_value": null }, { "type": "list", "title": "root_one_fn_input_three_root_one_fn_input_three_float_list", - "runtime": 0, "policies": [], - "config": {}, "items": 7 }, { "type": "float", "title": "root_one_fn_input_three_float", - "runtime": 0, - "policies": [], - "config": {} + "policies": [] } ], "materializers": [ diff --git a/src/typegraph/core/src/t.rs b/src/typegraph/core/src/t.rs index 252ae2fae0..40e06b1fa0 100644 --- a/src/typegraph/core/src/t.rs +++ b/src/typegraph/core/src/t.rs @@ -4,10 +4,12 @@ use crate::errors::Result; use crate::errors::TgError; use crate::types::RefAttr; -use crate::types::{TypeId, TypeRef}; +use crate::types::TypeRefBuilder; +use crate::types::{Named as _, TypeId, TypeRef}; + use crate::wit::core::{ - Guest, TypeBase, TypeEither, TypeFloat, TypeFunc, TypeInteger, TypeList, TypeOptional, - TypeString, TypeStruct, TypeUnion, + Guest, TypeEither, TypeFloat, TypeFunc, TypeInteger, TypeList, TypeOptional, TypeString, + TypeStruct, TypeUnion, }; #[cfg(test)] use common::typegraph::{Injection, InjectionData, SingleValue}; @@ -19,6 +21,10 @@ pub trait TypeBuilder { Ok(optional(self.build()?)) } + fn build_named(&self, name: impl Into) -> Result { + Ok(self.build()?.named(name)?.id()) + } + #[cfg(test)] fn as_id(&self) -> Result { use crate::types::type_ref::AsId; @@ -34,9 +40,24 @@ pub trait TypeBuilder { #[cfg(test)] fn set_value(&mut self, val: V) -> Result { self.inject(Injection::Static(InjectionData::SingleValue(SingleValue { - value: serde_json::to_string(&val).unwrap(), + value: serde_json::to_value(&val).unwrap(), }))) } + + #[cfg(test)] + fn config( + self, + key: impl Into, + value: impl serde::ser::Serialize, + ) -> Result + where + Self: Sized, + { + Ok(TypeRef::from_type( + self.build()?.as_type()?, + RefAttr::runtime("", serde_json::json!({key.into(): value})), + )) + } } impl TypeBuilder for &mut T @@ -56,7 +77,7 @@ impl TypeBuilder for TypeId { impl TypeBuilder for TypeRef { fn build(&self) -> Result { - Ok(self.id) + Ok(self.id()) } } @@ -69,32 +90,8 @@ where } } -#[allow(unused)] -pub trait ConcreteTypeBuilder: TypeBuilder { - fn base_mut(&mut self) -> &mut TypeBase; - - fn named(&mut self, name: impl Into) -> &mut Self { - self.base_mut().name = Some(name.into()); - self - } - - fn config(&mut self, key: impl Into, value: impl Into) -> &mut Self { - let runtime_config = &mut self.base_mut().runtime_config; - if runtime_config.is_none() { - *runtime_config = Some(Default::default()); - } - runtime_config - .as_mut() - .unwrap() - .push((key.into(), value.into())); - self - } -} - #[derive(Default)] -pub struct BooleanBuilder { - base: TypeBase, -} +pub struct BooleanBuilder; pub fn boolean() -> BooleanBuilder { Default::default() @@ -102,7 +99,6 @@ pub fn boolean() -> BooleanBuilder { #[derive(Default)] pub struct IntegerBuilder { - base: TypeBase, data: TypeInteger, } @@ -152,7 +148,6 @@ pub fn integer() -> IntegerBuilder { #[derive(Default)] pub struct FloatBuilder { - base: TypeBase, data: TypeFloat, } @@ -202,7 +197,6 @@ pub fn float() -> FloatBuilder { #[derive(Default)] pub struct StringBuilder { - base: TypeBase, data: TypeString, } @@ -243,7 +237,6 @@ impl StringBuilder { #[derive(Default)] pub struct OptionalBuilder { - base: TypeBase, data: TypeOptional, } @@ -258,7 +251,6 @@ impl Default for TypeOptional { pub fn optional(ty: TypeId) -> OptionalBuilder { OptionalBuilder { - base: TypeBase::default(), data: TypeOptional { of: ty.into(), default_item: None, @@ -272,7 +264,6 @@ pub fn optionalx(item_builder: impl TypeBuilder) -> Result { #[derive(Default)] pub struct ListBuilder { - base: TypeBase, data: TypeList, } @@ -289,7 +280,6 @@ impl Default for TypeList { pub fn list(ty: TypeId) -> ListBuilder { ListBuilder { - base: TypeBase::default(), data: TypeList { of: ty.into(), ..Default::default() @@ -303,7 +293,6 @@ pub fn listx(item_builder: impl TypeBuilder) -> Result { #[derive(Default)] pub struct UnionBuilder { - base: TypeBase, data: TypeUnion, } @@ -333,7 +322,6 @@ pub fn union(variants: impl IntoIterator) -> UnionBuilder { data: TypeUnion { variants: variants.into_iter().map(|tid| tid.0).collect(), }, - ..Default::default() } } @@ -350,7 +338,6 @@ pub(crate) use unionx; #[derive(Default)] pub struct EitherBuilder { - base: TypeBase, data: TypeEither, } @@ -368,7 +355,6 @@ pub fn either(variants: impl IntoIterator) -> EitherBuilder { data: TypeEither { variants: variants.into_iter().map(|tid| tid.0).collect(), }, - ..Default::default() } } @@ -385,7 +371,6 @@ pub(crate) use eitherx; #[derive(Default)] pub struct StructBuilder { - base: TypeBase, data: TypeStruct, } @@ -412,7 +397,6 @@ pub fn struct_extends(ty: TypeId) -> Result { props: ty.as_struct().map(|typ| typ.data.props.clone())?, ..Default::default() }, - ..Default::default() }) } @@ -452,8 +436,6 @@ impl StructBuilder { #[derive(Default)] pub struct FuncBuilder { - #[allow(dead_code)] - base: TypeBase, data: TypeFunc, } @@ -479,7 +461,6 @@ pub fn func(inp: TypeId, out: TypeId, mat: u32) -> Result { mat, ..Default::default() }, - ..Default::default() } .build() } @@ -500,16 +481,10 @@ macro_rules! impl_type_builder { ( $ty:ty, $build:ident ) => { impl TypeBuilder for $ty { fn build(&self) -> Result { - let res = $crate::Lib::$build(self.data.clone(), self.base.clone())?; + let res = $crate::Lib::$build(self.data.clone())?; Ok(res.into()) } } - - impl ConcreteTypeBuilder for $ty { - fn base_mut(&mut self) -> &mut TypeBase { - &mut self.base - } - } }; ( $ty:ty, $build:ident, true ) => { @@ -523,17 +498,11 @@ macro_rules! impl_type_builder { } impl TypeBuilder for BooleanBuilder { fn build(&self) -> Result { - let res = crate::Lib::booleanb(self.base.clone())?; + let res = crate::Lib::booleanb()?; Ok(res.into()) } } -impl ConcreteTypeBuilder for BooleanBuilder { - fn base_mut(&mut self) -> &mut TypeBase { - &mut self.base - } -} - impl_type_builder!(IntegerBuilder, integerb); impl_type_builder!(FloatBuilder, floatb); impl_type_builder!(OptionalBuilder, optionalb); @@ -555,3 +524,9 @@ impl TypeBuilder for RefBuilder { .into()) } } + +impl TypeBuilder for TypeRefBuilder { + fn build(&self) -> Result { + (*self).clone().register().map(|r| r.id()) + } +} diff --git a/src/typegraph/core/src/test_utils.rs b/src/typegraph/core/src/test_utils.rs index 71a4c79a46..11fce422f6 100644 --- a/src/typegraph/core/src/test_utils.rs +++ b/src/typegraph/core/src/test_utils.rs @@ -24,12 +24,15 @@ pub mod models { use common::typegraph::{EffectType, Injection, InjectionData}; use crate::errors::Result; - use crate::t::{self, ConcreteTypeBuilder, TypeBuilder}; + use crate::t::{self, TypeBuilder}; use crate::types::TypeId; pub fn simple_record() -> Result { let mut created_at_injection_map = BTreeMap::new(); - created_at_injection_map.insert(EffectType::Create, "now".to_string()); + created_at_injection_map.insert( + EffectType::Create, + serde_json::Value::String("now".to_string()), + ); let created_at = t::string() .format("date-time") .inject(Injection::Dynamic(InjectionData::ValueByEffect( @@ -38,15 +41,14 @@ pub mod models { .build()?; t::struct_() - .named("Record") .propx( "id", - t::string().format("uuid").config("auto", "true").as_id(), + t::string().format("uuid").config("auto", true).as_id(), )? .propx("name", t::string())? .propx("age", t::optionalx(t::integer())?)? .prop("created_at", created_at) - .build() + .build_named("Record") } pub fn simple_relationship() -> Result<(TypeId, TypeId)> { @@ -54,15 +56,13 @@ pub mod models { .propx("id", t::integer().as_id())? .propx("name", t::string())? .propx("posts", t::listx(t::ref_("Post", Default::default()))?)? - .named("User") - .build()?; + .build_named("User")?; let post = t::struct_() - .propx("id", t::integer().config("auto", "true").as_id())? + .propx("id", t::integer().config("auto", true).as_id())? .propx("title", t::string())? .propx("author", t::ref_("User", Default::default()))? - .named("Post") - .build()?; + .build_named("Post")?; Ok((user, post)) } @@ -157,17 +157,16 @@ pub mod tree { fn write_self(&self, f: &mut W, _style: &Style) -> std::io::Result<()> { let ty = self.type_id.as_type().unwrap(); let (name, title) = match ty { - Type::Def(type_def) => ( - type_def.data().variant_name().to_owned(), - type_def.base().name.clone(), - ), - Type::Ref(type_ref) => match type_ref.flatten().target { - FlatTypeRefTarget::Direct(def) => ( - def.data().variant_name().to_owned(), - def.base().name.clone(), - ), - FlatTypeRefTarget::Indirect(name) => (format!("&{}", name), None), - }, + Type::Def(type_def) => (type_def.data().variant_name().to_owned(), None), + Type::Ref(type_ref) => { + let flat = type_ref.flatten(); + match flat.target { + FlatTypeRefTarget::Direct(def) => { + (def.data().variant_name().to_owned(), flat.name) + } + FlatTypeRefTarget::Indirect(name) => (format!("&{}", name), None), + } + } }; let enum_variants: Option> = @@ -209,23 +208,30 @@ pub mod tree { } fn children(&self) -> Cow<[Self::Child]> { + let type_def = match self.type_id.as_type().unwrap() { + Type::Def(type_def) => type_def, + Type::Ref(type_ref) => { + let flat = type_ref.flatten(); + match flat.target { + FlatTypeRefTarget::Indirect(_) => return Cow::Owned(vec![]), + FlatTypeRefTarget::Direct(d) => d, + } + } + }; + if self .parents .iter() - .any(|&parent_id| parent_id == self.type_id) + .any(|&parent_id| parent_id == type_def.id()) { Cow::Owned(vec![]) } else { let parents = { let mut p = (*self.parents).clone(); - p.push(self.type_id); + p.push(type_def.id()); Rc::new(p) }; - let Type::Def(type_def) = self.type_id.as_type().unwrap() else { - return Cow::Owned(vec![]); - }; - match type_def { TypeDef::Integer(_) | TypeDef::Float(_) diff --git a/src/typegraph/core/src/typedef/boolean.rs b/src/typegraph/core/src/typedef/boolean.rs index 05e9814c78..652e761b7f 100644 --- a/src/typegraph/core/src/typedef/boolean.rs +++ b/src/typegraph/core/src/typedef/boolean.rs @@ -11,29 +11,21 @@ use crate::{ }, errors, typegraph::TypegraphContext, - types::{Boolean, FindAttribute as _, RefAttrs, TypeBoolean, TypeDefData}, + types::{Boolean, ExtendedTypeDef, FindAttribute as _, TypeBoolean, TypeDefData}, }; use std::hash::Hash; impl TypeConversion for Boolean { - fn convert( - &self, - ctx: &mut TypegraphContext, - runtime_id: Option, - ref_attrs: &RefAttrs, - ) -> Result { + fn convert(&self, ctx: &mut TypegraphContext, xdef: ExtendedTypeDef) -> Result { Ok(TypeNode::Boolean { base: BaseBuilderInit { ctx, base_name: "boolean", type_id: self.id, - name: self.base.name.clone(), - runtime_idx: runtime_id.unwrap(), - policies: ref_attrs.find_policy().unwrap_or(&[]), - runtime_config: self.base.runtime_config.as_deref(), + name: xdef.get_owned_name(), + policies: xdef.attributes.find_policy().unwrap_or(&[]), } .init_builder()? - .inject(ref_attrs.find_injection())? .build()?, }) } @@ -52,7 +44,6 @@ impl Hashable for TypeBoolean { &self, hasher: &mut crate::conversion::hash::Hasher, _tg: &mut TypegraphContext, - _runtime_id: Option, ) -> Result<()> { "boolean".hash(hasher); Ok(()) diff --git a/src/typegraph/core/src/typedef/either.rs b/src/typegraph/core/src/typedef/either.rs index 02108efb95..afae92ca06 100644 --- a/src/typegraph/core/src/typedef/either.rs +++ b/src/typegraph/core/src/typedef/either.rs @@ -13,38 +13,28 @@ use crate::{ }, errors, typegraph::TypegraphContext, - types::{Either, FindAttribute as _, RefAttrs, TypeDefData, TypeId}, + types::{Either, ExtendedTypeDef, FindAttribute as _, TypeDefData, TypeId}, wit::core::TypeEither, }; impl TypeConversion for Either { - fn convert( - &self, - ctx: &mut TypegraphContext, - runtime_id: Option, - ref_attrs: &RefAttrs, - ) -> Result { + fn convert(&self, ctx: &mut TypegraphContext, xdef: ExtendedTypeDef) -> Result { Ok(TypeNode::Either { base: BaseBuilderInit { ctx, base_name: "either", type_id: self.id, - name: self.base.name.clone(), - runtime_idx: runtime_id.unwrap(), - policies: ref_attrs.find_policy().unwrap_or(&[]), - runtime_config: self.base.runtime_config.as_deref(), + name: xdef.get_owned_name(), + policies: xdef.attributes.find_policy().unwrap_or(&[]), } .init_builder()? - .inject(ref_attrs.find_injection())? .build()?, data: EitherTypeData { one_of: self .data .variants .iter() - .map(|&vid| -> Result<_> { - Ok(ctx.register_type(TypeId(vid), runtime_id)?.into()) - }) + .map(|&vid| -> Result<_> { Ok(ctx.register_type(TypeId(vid))?.into()) }) .collect::>>()?, }, }) @@ -68,12 +58,11 @@ impl Hashable for TypeEither { &self, hasher: &mut crate::conversion::hash::Hasher, tg: &mut TypegraphContext, - runtime_id: Option, ) -> Result<()> { "either".hash(hasher); for (index, type_id) in self.variants.iter().enumerate() { index.hash(hasher); - TypeId(*type_id).hash_child_type(hasher, tg, runtime_id)?; + TypeId(*type_id).hash_child_type(hasher, tg)?; } Ok(()) } diff --git a/src/typegraph/core/src/typedef/file.rs b/src/typegraph/core/src/typedef/file.rs index 36b135f177..f1550a63af 100644 --- a/src/typegraph/core/src/typedef/file.rs +++ b/src/typegraph/core/src/typedef/file.rs @@ -9,7 +9,7 @@ use crate::conversion::hash::Hashable; use crate::conversion::types::{BaseBuilderInit, TypeConversion}; use crate::errors::Result; use crate::typegraph::TypegraphContext; -use crate::types::{File, FindAttribute as _, RefAttrs, TypeDefData}; +use crate::types::{ExtendedTypeDef, File, FindAttribute as _, TypeDefData}; use crate::wit::core::TypeFile; impl TypeDefData for TypeFile { @@ -40,7 +40,6 @@ impl Hashable for TypeFile { &self, hasher: &mut crate::conversion::hash::Hasher, _tg: &mut TypegraphContext, - _runtime_id: Option, ) -> Result<()> { self.min.hash(hasher); self.max.hash(hasher); @@ -50,22 +49,15 @@ impl Hashable for TypeFile { } impl TypeConversion for File { - fn convert( - &self, - ctx: &mut TypegraphContext, - runtime_id: Option, - ref_attrs: &RefAttrs, - ) -> Result { + fn convert(&self, ctx: &mut TypegraphContext, xdef: ExtendedTypeDef) -> Result { Ok(TypeNode::File { // TODO should `as_id` be supported? base: BaseBuilderInit { ctx, base_name: "file", type_id: self.id, - name: self.base.name.clone(), - runtime_idx: runtime_id.unwrap(), - policies: ref_attrs.find_policy().unwrap_or(&[]), - runtime_config: self.base.runtime_config.as_deref(), + name: xdef.get_owned_name(), + policies: xdef.attributes.find_policy().unwrap_or(&[]), } .init_builder()? .build()?, diff --git a/src/typegraph/core/src/typedef/float.rs b/src/typegraph/core/src/typedef/float.rs index c14e8e0f54..d7e5f24891 100644 --- a/src/typegraph/core/src/typedef/float.rs +++ b/src/typegraph/core/src/typedef/float.rs @@ -14,30 +14,22 @@ use crate::{ }, errors, typegraph::TypegraphContext, - types::{FindAttribute as _, Float, RefAttrs, TypeDefData}, + types::{ExtendedTypeDef, FindAttribute as _, Float, TypeDefData}, wit::core::TypeFloat, }; impl TypeConversion for Float { - fn convert( - &self, - ctx: &mut TypegraphContext, - runtime_id: Option, - ref_attrs: &RefAttrs, - ) -> Result { + fn convert(&self, ctx: &mut TypegraphContext, xdef: ExtendedTypeDef) -> Result { Ok(TypeNode::Float { base: BaseBuilderInit { ctx, base_name: "float", type_id: self.id, - name: self.base.name.clone(), - runtime_idx: runtime_id.unwrap(), - policies: ref_attrs.find_policy().unwrap_or(&[]), - runtime_config: self.base.runtime_config.as_deref(), + name: xdef.get_owned_name(), + policies: xdef.attributes.find_policy().unwrap_or(&[]), } .init_builder()? .enum_(self.data.enumeration.as_deref()) - .inject(ref_attrs.find_injection())? .build()?, data: FloatTypeData { minimum: self.data.min, @@ -79,7 +71,6 @@ impl Hashable for TypeFloat { &self, hasher: &mut crate::conversion::hash::Hasher, _tg: &mut TypegraphContext, - _runtime_id: Option, ) -> Result<()> { "float".hash(hasher); self.min.map(OrderedFloat).hash(hasher); diff --git a/src/typegraph/core/src/typedef/func.rs b/src/typegraph/core/src/typedef/func.rs index 4d785c8b1f..d04a8aa2c2 100644 --- a/src/typegraph/core/src/typedef/func.rs +++ b/src/typegraph/core/src/typedef/func.rs @@ -1,44 +1,43 @@ // Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. // SPDX-License-Identifier: MPL-2.0 -use std::hash::Hash as _; - -use common::typegraph::{ - parameter_transform::FunctionParameterTransform, FunctionTypeData, TypeNode, -}; - use crate::conversion::hash::Hashable; use crate::conversion::parameter_transform::convert_tree; use crate::conversion::types::{BaseBuilderInit, TypeConversion}; use crate::errors::{self, Result, TgError}; +use crate::global_store::Store; use crate::params::apply::ParameterTransformNode; +use crate::runtimes::random::collect_random_runtime_config; +use crate::runtimes::Runtime; use crate::typegraph::TypegraphContext; use crate::types::{ - FindAttribute as _, Func, RefAttrs, ResolveRef as _, TypeDef, TypeDefData, TypeId, + AsTypeDefEx as _, ExtendedTypeDef, FindAttribute as _, Func, InjectionTree, RefAttr, Struct, + TypeDef, TypeDefData, TypeId, }; use crate::wit::core::TypeFunc; +use common::typegraph::{ + parameter_transform::FunctionParameterTransform, FunctionTypeData, TypeNode, +}; +use common::typegraph::{Injection, InjectionData, InjectionNode}; +use indexmap::IndexMap; +use std::collections::HashSet; +use std::hash::Hash as _; +use std::rc::Rc; impl TypeConversion for Func { - fn convert( - &self, - ctx: &mut TypegraphContext, - _runtime_id: Option, - ref_attrs: &RefAttrs, - ) -> Result { - let (mat_id, runtime_id) = ctx.register_materializer(self.data.mat)?; - - let input = { - let inp_id = TypeId(self.data.inp); - match TypeId(self.data.inp).resolve_ref()?.0 { - TypeDef::Struct(_) => Ok(ctx.register_type(inp_id, Some(runtime_id))?), - _ => Err(errors::invalid_input_type(&inp_id.repr()?)), - } - }? - .into(); + fn convert(&self, ctx: &mut TypegraphContext, xdef: ExtendedTypeDef) -> Result { + let mat_id = ctx.register_materializer(self.data.mat)?; + + let inp_id = TypeId(self.data.inp); + let (input, mut injection_tree) = match TypeId(self.data.inp).as_xdef()?.type_def { + TypeDef::Struct(s) => ( + ctx.register_type(inp_id)?.into(), + collect_injections(s, Default::default())?, + ), + _ => return Err(errors::invalid_input_type(&inp_id.repr()?)), + }; - let output = ctx - .register_type(TypeId(self.data.out), Some(runtime_id))? - .into(); + let output = ctx.register_type(TypeId(self.data.out))?.into(); let parameter_transform = self .data @@ -51,12 +50,10 @@ impl TypeConversion for Func { TgError::from(format!("Failed to parse transform_root: {}", e)) })?; - let transform_root = convert_tree(ctx, &transform_root, runtime_id)?; + let transform_root = convert_tree(ctx, &transform_root)?; Ok(FunctionParameterTransform { - resolver_input: match resolver_input.resolve_ref()?.0 { - TypeDef::Struct(_) => { - ctx.register_type(resolver_input, Some(runtime_id))? - } + resolver_input: match resolver_input.as_xdef()?.type_def { + TypeDef::Struct(_) => ctx.register_type(resolver_input)?, _ => return Err(errors::invalid_input_type(&resolver_input.repr()?)), } .into(), @@ -64,15 +61,17 @@ impl TypeConversion for Func { }) }) .transpose()?; + for reduce_tree in xdef.attributes.find_reduce_trees() { + InjectionTree::merge(&mut injection_tree.0, reduce_tree.0.clone()); + } + Ok(TypeNode::Function { base: BaseBuilderInit { ctx, base_name: "func", type_id: self.id, - name: self.base.name.clone(), - runtime_idx: runtime_id, - policies: ref_attrs.find_policy().unwrap_or(&[]), - runtime_config: self.base.runtime_config.as_deref(), + name: xdef.get_owned_name(), + policies: xdef.attributes.find_policy().unwrap_or(&[]), } .init_builder()? .build()?, @@ -80,6 +79,8 @@ impl TypeConversion for Func { input, parameter_transform, output, + injections: injection_tree.0, + runtime_config: self.collect_runtime_config(ctx)?, materializer: mat_id, rate_calls: self.data.rate_calls, rate_weight: self.data.rate_weight, @@ -103,7 +104,6 @@ impl Hashable for TypeFunc { &self, hasher: &mut crate::conversion::hash::Hasher, tg: &mut TypegraphContext, - runtime_id: Option, ) -> Result<()> { "func".hash(hasher); self.mat.hash(hasher); @@ -111,10 +111,105 @@ impl Hashable for TypeFunc { self.rate_weight.hash(hasher); if let Some(transform) = &self.parameter_transform { transform.transform_tree.hash(hasher); - TypeId(transform.resolver_input).hash_child_type(hasher, tg, runtime_id)?; + TypeId(transform.resolver_input).hash_child_type(hasher, tg)?; } - TypeId(self.inp).hash_child_type(hasher, tg, runtime_id)?; - TypeId(self.out).hash_child_type(hasher, tg, runtime_id)?; + TypeId(self.inp).hash_child_type(hasher, tg)?; + TypeId(self.out).hash_child_type(hasher, tg)?; Ok(()) } } + +/// Note: only direct children of t.struct support injections; only if they +/// are not part of a polymorphic type (unions) +// FIXME: emit a warning if any other type has injections -- (typegraph-ng) +fn collect_injections( + input_type: Rc, + mut visited: HashSet, +) -> Result { + if !visited.insert(input_type.id) { + return Ok(Default::default()); + } + let mut res = IndexMap::new(); + + for (name, prop_id) in input_type.data.props.iter() { + let xdef = TypeId(*prop_id).as_xdef()?; + let injection = xdef.attributes.find_injection(); + if let Some(injection) = injection { + let mut injection = injection.clone(); + if let Injection::Random(random_inj) = &mut injection { + let value = collect_random_runtime_config(TypeId(*prop_id))? + .map(|gen| { + serde_json::to_value(gen).map_err(|e| { + format!("Failed to serialize random runtime config: {}", e) + }) + }) + .transpose()? + .unwrap_or(serde_json::Value::Null); + match random_inj { + InjectionData::SingleValue(v) => { + v.value = value; + } + InjectionData::ValueByEffect(vv) => vv.values_mut().for_each(|v| { + *v = value.clone(); + }), + } + } + res.insert(name.clone(), InjectionNode::Leaf { injection }); + } else { + let type_def = resolve_quantifiers(xdef.type_def, |_| ())?; + match type_def { + TypeDef::Struct(s) => { + let children = collect_injections(s, visited.clone())?; + if !children.0.is_empty() { + res.insert( + name.clone(), + InjectionNode::Parent { + children: children.0, + }, + ); + } + } + _ => { + // TODO emit a warning if any descendant have injections + } + } + } + } + + Ok(InjectionTree(res)) +} + +fn resolve_quantifiers( + type_def: TypeDef, + consume_attributes: impl Fn(Vec>), +) -> Result { + match type_def { + TypeDef::Optional(inner) => { + let xdef = TypeId(inner.data.of).as_xdef()?; + consume_attributes(xdef.attributes); + resolve_quantifiers(xdef.type_def, consume_attributes) + } + TypeDef::List(inner) => { + let xdef = TypeId(inner.data.of).as_xdef()?; + consume_attributes(xdef.attributes); + resolve_quantifiers(xdef.type_def, consume_attributes) + } + _ => Ok(type_def), + } +} + +impl Func { + fn collect_runtime_config(&self, _ctx: &mut TypegraphContext) -> Result { + let mat = Store::get_materializer(self.data.mat)?; + let runtime = Store::get_runtime(mat.runtime_id)?; + match runtime { + Runtime::Random(_) => Self::collect_random_runtime_config(TypeId(self.data.out)), + _ => Ok(serde_json::Value::Null), + } + } + + fn collect_random_runtime_config(out_type: TypeId) -> Result { + serde_json::to_value(&collect_random_runtime_config(out_type)?) + .map_err(|e| format!("Failed to serialize random runtime config: {}", e).into()) + } +} diff --git a/src/typegraph/core/src/typedef/integer.rs b/src/typegraph/core/src/typedef/integer.rs index a941233e41..5108b8573b 100644 --- a/src/typegraph/core/src/typedef/integer.rs +++ b/src/typegraph/core/src/typedef/integer.rs @@ -13,30 +13,22 @@ use crate::{ }, errors, typegraph::TypegraphContext, - types::{FindAttribute as _, Integer, RefAttrs, TypeDefData}, + types::{ExtendedTypeDef, FindAttribute as _, Integer, TypeDefData}, wit::core::TypeInteger, }; impl TypeConversion for Integer { - fn convert( - &self, - ctx: &mut TypegraphContext, - runtime_id: Option, - ref_attrs: &RefAttrs, - ) -> Result { + fn convert(&self, ctx: &mut TypegraphContext, xdef: ExtendedTypeDef) -> Result { Ok(TypeNode::Integer { base: BaseBuilderInit { ctx, base_name: "integer", type_id: self.id, - name: self.base.name.clone(), - runtime_idx: runtime_id.unwrap(), - policies: ref_attrs.find_policy().unwrap_or(&[]), - runtime_config: self.base.runtime_config.as_deref(), + name: xdef.get_owned_name(), + policies: xdef.attributes.find_policy().unwrap_or(&[]), } .init_builder()? .enum_(self.data.enumeration.as_deref()) - .inject(ref_attrs.find_injection())? .build()?, data: IntegerTypeData { minimum: self.data.min, @@ -78,7 +70,6 @@ impl Hashable for TypeInteger { &self, hasher: &mut crate::conversion::hash::Hasher, _tg: &mut TypegraphContext, - _runtime_id: Option, ) -> Result<()> { "integer".hash(hasher); self.min.hash(hasher); diff --git a/src/typegraph/core/src/typedef/list.rs b/src/typegraph/core/src/typedef/list.rs index b87a75e06f..069cb79faf 100644 --- a/src/typegraph/core/src/typedef/list.rs +++ b/src/typegraph/core/src/typedef/list.rs @@ -12,32 +12,24 @@ use crate::{ }, errors::Result, typegraph::TypegraphContext, - types::{FindAttribute as _, List, RefAttrs, TypeDefData, TypeId}, + types::{ExtendedTypeDef, FindAttribute as _, List, TypeDefData, TypeId}, wit::core::TypeList, }; impl TypeConversion for List { - fn convert( - &self, - ctx: &mut TypegraphContext, - runtime_id: Option, - ref_attrs: &RefAttrs, - ) -> Result { + fn convert(&self, ctx: &mut TypegraphContext, xdef: ExtendedTypeDef) -> Result { Ok(TypeNode::List { base: BaseBuilderInit { ctx, base_name: "list", type_id: self.id, - name: self.base.name.clone(), - runtime_idx: runtime_id.unwrap(), - policies: ref_attrs.find_policy().unwrap_or(&[]), - runtime_config: self.base.runtime_config.as_deref(), + name: xdef.get_owned_name(), + policies: xdef.attributes.find_policy().unwrap_or(&[]), } .init_builder()? - .inject(ref_attrs.find_injection())? .build()?, data: ListTypeData { - items: ctx.register_type(TypeId(self.data.of), runtime_id)?.into(), + items: ctx.register_type(TypeId(self.data.of))?.into(), max_items: self.data.max, min_items: self.data.min, unique_items: self.data.unique_items, @@ -70,13 +62,12 @@ impl Hashable for TypeList { &self, hasher: &mut crate::conversion::hash::Hasher, tg: &mut TypegraphContext, - runtime_id: Option, ) -> Result<()> { "list".hash(hasher); self.min.hash(hasher); self.max.hash(hasher); self.unique_items.hash(hasher); - TypeId(self.of).hash_child_type(hasher, tg, runtime_id)?; + TypeId(self.of).hash_child_type(hasher, tg)?; Ok(()) } } diff --git a/src/typegraph/core/src/typedef/optional.rs b/src/typegraph/core/src/typedef/optional.rs index 3234423152..662ad64058 100644 --- a/src/typegraph/core/src/typedef/optional.rs +++ b/src/typegraph/core/src/typedef/optional.rs @@ -13,17 +13,12 @@ use crate::{ }, errors, typegraph::TypegraphContext, - types::{FindAttribute as _, Optional, RefAttrs, TypeDefData, TypeId}, + types::{ExtendedTypeDef, FindAttribute as _, Optional, TypeDefData, TypeId}, wit::core::TypeOptional, }; impl TypeConversion for Optional { - fn convert( - &self, - ctx: &mut TypegraphContext, - runtime_id: Option, - ref_attrs: &RefAttrs, - ) -> Result { + fn convert(&self, ctx: &mut TypegraphContext, xdef: ExtendedTypeDef) -> Result { let default_value = match self.data.default_item.clone() { Some(value) => { let ret = serde_json::from_str(&value).map_err(|s| s.to_string())?; @@ -37,16 +32,13 @@ impl TypeConversion for Optional { ctx, base_name: "optional", type_id: self.id, - name: self.base.name.clone(), - runtime_idx: runtime_id.unwrap(), - policies: ref_attrs.find_policy().unwrap_or(&[]), - runtime_config: self.base.runtime_config.as_deref(), + name: xdef.get_owned_name(), + policies: xdef.attributes.find_policy().unwrap_or(&[]), } .init_builder()? - .inject(ref_attrs.find_injection())? .build()?, data: OptionalTypeData { - item: ctx.register_type(TypeId(self.data.of), runtime_id)?.into(), + item: ctx.register_type(TypeId(self.data.of))?.into(), default_value, }, }) @@ -77,10 +69,9 @@ impl Hashable for TypeOptional { &self, hasher: &mut crate::conversion::hash::Hasher, tg: &mut TypegraphContext, - runtime_id: Option, ) -> Result<()> { self.default_item.hash(hasher); - TypeId(self.of).hash_child_type(hasher, tg, runtime_id)?; + TypeId(self.of).hash_child_type(hasher, tg)?; Ok(()) } } diff --git a/src/typegraph/core/src/typedef/string.rs b/src/typegraph/core/src/typedef/string.rs index 7769a85338..49afb6f13f 100644 --- a/src/typegraph/core/src/typedef/string.rs +++ b/src/typegraph/core/src/typedef/string.rs @@ -13,17 +13,12 @@ use crate::{ }, errors, typegraph::TypegraphContext, - types::{FindAttribute as _, RefAttrs, StringT, TypeDefData}, + types::{ExtendedTypeDef, FindAttribute as _, StringT, TypeDefData}, wit::core::TypeString, }; impl TypeConversion for StringT { - fn convert( - &self, - ctx: &mut TypegraphContext, - runtime_id: Option, - ref_attrs: &RefAttrs, - ) -> Result { + fn convert(&self, ctx: &mut TypegraphContext, xdef: ExtendedTypeDef) -> Result { let format: Option = match self.data.format.clone() { Some(format) => { let ret = @@ -38,14 +33,11 @@ impl TypeConversion for StringT { ctx, base_name: "string", type_id: self.id, - name: self.base.name.clone(), - runtime_idx: runtime_id.unwrap(), - policies: ref_attrs.find_policy().unwrap_or(&[]), - runtime_config: self.base.runtime_config.as_deref(), + name: xdef.get_owned_name(), + policies: xdef.attributes.find_policy().unwrap_or(&[]), } .init_builder()? .enum_(self.data.enumeration.as_deref()) - .inject(ref_attrs.find_injection())? .build()?, data: StringTypeData { min_length: self.data.min, @@ -83,7 +75,6 @@ impl Hashable for TypeString { &self, hasher: &mut crate::conversion::hash::Hasher, _tg: &mut TypegraphContext, - _runtime_id: Option, ) -> Result<()> { "string".hash(hasher); self.min.hash(hasher); diff --git a/src/typegraph/core/src/typedef/struct_.rs b/src/typegraph/core/src/typedef/struct_.rs index dfa6f1e1c5..c1481bcba5 100644 --- a/src/typegraph/core/src/typedef/struct_.rs +++ b/src/typegraph/core/src/typedef/struct_.rs @@ -1,23 +1,16 @@ // Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. // SPDX-License-Identifier: MPL-2.0 -use std::hash::Hash as _; - +use crate::conversion::hash::Hashable; +use crate::conversion::types::{BaseBuilderInit, TypeConversion}; +use crate::types::{ + AsTypeDefEx as _, ExtendedTypeDef, FindAttribute as _, IdKind, Struct, TypeDefData, TypeId, +}; +use crate::{errors, typegraph::TypegraphContext, wit::core::TypeStruct}; use common::typegraph::{ObjectTypeData, TypeNode}; use errors::Result; use indexmap::IndexMap; - -use crate::{ - conversion::{ - hash::Hashable, - types::{BaseBuilderInit, TypeConversion}, - }, - errors, - global_store::Store, - typegraph::TypegraphContext, - types::{FindAttribute as _, IdKind, RefAttrs, Struct, Type, TypeDefData, TypeId}, - wit::core::TypeStruct, -}; +use std::hash::Hash as _; impl TypeStruct { pub fn get_prop(&self, key: &str) -> Option { @@ -33,34 +26,33 @@ impl TypeStruct { let mut res = Vec::new(); let mut kind = None; for (name, type_id) in &self.props { - if let Type::Ref(type_ref) = TypeId(*type_id).as_type()? { - match kind { - None => match type_ref.id_kind()? { - Some(IdKind::Simple) => { - res.push(name.clone()); - kind = Some(IdKind::Simple); - } - Some(IdKind::Composite) => { - res.push(name.clone()); - kind = Some(IdKind::Composite); - } - None => {} - }, + let xdef = TypeId(*type_id).as_xdef()?; + match kind { + None => match xdef.id_kind()? { Some(IdKind::Simple) => { - if type_ref.id_kind()?.is_some() { - return Err("Multiple id fields found".into()); - } + res.push(name.clone()); + kind = Some(IdKind::Simple); + } + Some(IdKind::Composite) => { + res.push(name.clone()); + kind = Some(IdKind::Composite); + } + None => {} + }, + Some(IdKind::Simple) => { + if xdef.id_kind()?.is_some() { + return Err("Multiple id fields found".into()); } - Some(IdKind::Composite) => match type_ref.id_kind()? { - Some(IdKind::Simple) => { - return Err("Inconsistent id fields".into()); - } - Some(IdKind::Composite) => { - res.push(name.clone()); - } - None => {} - }, } + Some(IdKind::Composite) => match xdef.id_kind()? { + Some(IdKind::Simple) => { + return Err("Inconsistent id fields".into()); + } + Some(IdKind::Composite) => { + res.push(name.clone()); + } + None => {} + }, } } Ok(res) @@ -68,38 +60,23 @@ impl TypeStruct { } impl TypeConversion for Struct { - fn convert( - &self, - ctx: &mut TypegraphContext, - runtime_id: Option, - ref_attrs: &RefAttrs, - ) -> Result { - let runtime_id = match runtime_id { - Some(runtime_id) => runtime_id, - None => ctx.register_runtime(Store::get_deno_runtime())?, - }; + fn convert(&self, ctx: &mut TypegraphContext, xdef: ExtendedTypeDef) -> Result { Ok(TypeNode::Object { base: BaseBuilderInit { ctx, base_name: "object", type_id: self.id, - name: self.base.name.clone(), - runtime_idx: runtime_id, - policies: ref_attrs.find_policy().unwrap_or(&[]), - runtime_config: self.base.runtime_config.as_deref(), + name: xdef.get_owned_name(), + policies: xdef.attributes.find_policy().unwrap_or(&[]), } .init_builder()? .enum_(self.data.enumeration.as_deref()) - .inject(ref_attrs.find_injection())? .build()?, data: ObjectTypeData { properties: self .iter_props() .map(|(name, type_id)| -> Result<(String, u32)> { - Ok(( - name.to_string(), - ctx.register_type(type_id, Some(runtime_id))?.into(), - )) + Ok((name.to_string(), ctx.register_type(type_id)?.into())) }) .collect::>>()?, id: self.data.find_id_fields()?, @@ -132,12 +109,11 @@ impl Hashable for TypeStruct { &self, hasher: &mut crate::conversion::hash::Hasher, tg: &mut TypegraphContext, - runtime_id: Option, ) -> Result<()> { "struct".hash(hasher); for (name, tpe_id) in &self.props { name.hash(hasher); - TypeId(*tpe_id).hash_child_type(hasher, tg, runtime_id)?; + TypeId(*tpe_id).hash_child_type(hasher, tg)?; } Ok(()) } diff --git a/src/typegraph/core/src/typedef/union.rs b/src/typegraph/core/src/typedef/union.rs index 81ea0995b4..c037202fcd 100644 --- a/src/typegraph/core/src/typedef/union.rs +++ b/src/typegraph/core/src/typedef/union.rs @@ -13,38 +13,28 @@ use crate::{ }, errors, typegraph::TypegraphContext, - types::{FindAttribute as _, RefAttrs, TypeDefData, TypeId, Union}, + types::{ExtendedTypeDef, FindAttribute as _, TypeDefData, TypeId, Union}, wit::core::TypeUnion, }; impl TypeConversion for Union { - fn convert( - &self, - ctx: &mut TypegraphContext, - runtime_id: Option, - ref_attrs: &RefAttrs, - ) -> Result { + fn convert(&self, ctx: &mut TypegraphContext, xdef: ExtendedTypeDef) -> Result { Ok(TypeNode::Union { base: BaseBuilderInit { ctx, base_name: "union", type_id: self.id, - name: self.base.name.clone(), - runtime_idx: runtime_id.unwrap(), - policies: ref_attrs.find_policy().unwrap_or(&[]), - runtime_config: self.base.runtime_config.as_deref(), + name: xdef.get_owned_name(), + policies: xdef.attributes.find_policy().unwrap_or(&[]), } .init_builder()? - .inject(ref_attrs.find_injection())? .build()?, data: UnionTypeData { any_of: self .data .variants .iter() - .map(|vid| -> Result<_> { - Ok(ctx.register_type(TypeId(*vid), runtime_id)?.into()) - }) + .map(|vid| -> Result<_> { Ok(ctx.register_type(TypeId(*vid))?.into()) }) .collect::>>()?, }, }) @@ -68,12 +58,11 @@ impl Hashable for TypeUnion { &self, hasher: &mut crate::conversion::hash::Hasher, tg: &mut TypegraphContext, - runtime_id: Option, ) -> Result<()> { "union".hash(hasher); for (index, type_id) in self.variants.iter().enumerate() { index.hash(hasher); - TypeId(*type_id).hash_child_type(hasher, tg, runtime_id)?; + TypeId(*type_id).hash_child_type(hasher, tg)?; } Ok(()) } diff --git a/src/typegraph/core/src/typegraph.rs b/src/typegraph/core/src/typegraph.rs index a249c2c2f3..e9f7b79ae7 100644 --- a/src/typegraph/core/src/typegraph.rs +++ b/src/typegraph/core/src/typegraph.rs @@ -3,10 +3,10 @@ use crate::conversion::hash::Hasher; use crate::conversion::runtimes::{convert_materializer, convert_runtime, ConvertedRuntime}; -use crate::conversion::types::TypeConversion; +use crate::conversion::types::TypeConversion as _; use crate::global_store::SavedState; use crate::types::{ - FindAttribute as _, PolicySpec, ResolveRef as _, Type, TypeDef, TypeDefExt, TypeId, WithPolicy, + AsTypeDefEx as _, FindAttribute as _, PolicySpec, TypeDef, TypeDefExt, TypeId, WithPolicy, }; use crate::utils::postprocess::naming::NamingProcessor; use crate::utils::postprocess::{PostProcessor, TypegraphPostProcessor}; @@ -122,16 +122,13 @@ pub fn init(params: TypegraphInitParams) -> Result<()> { }; // register the deno runtime - let default_runtime_idx = ctx.register_runtime(Store::get_deno_runtime())?; + let _default_runtime_idx = ctx.register_runtime(Store::get_deno_runtime())?; ctx.types.push(Some(TypeNode::Object { base: TypeNodeBase { - config: [].into_iter().collect(), description: None, enumeration: None, - injection: None, policies: Default::default(), - runtime: default_runtime_idx, title: params.name, }, data: ObjectTypeData { @@ -167,7 +164,7 @@ pub fn finalize_auths(ctx: &mut TypegraphContext) -> Result Result<(String, Vec)> } fn ensure_valid_export(export_key: String, type_id: TypeId) -> Result<()> { - match type_id.resolve_ref()?.0 { + match &type_id.as_xdef()?.type_def { TypeDef::Struct(inner) => { // namespace for (prop_name, prop_type_id) in inner.iter_props() { @@ -289,18 +286,16 @@ pub fn expose( let fields = fields .into_iter() .map(|(key, type_id)| -> Result<_> { - let (_, attrs) = type_id.resolve_ref()?; - let policy_chain = attrs.find_policy().unwrap_or(&[]); + let xdef = type_id.as_xdef()?; + let policy_chain = xdef.attributes.find_policy().unwrap_or(&[]); let has_policy = !policy_chain.is_empty(); // TODO how to set default policy on a namespace? Or will it inherit // the policies of the namespace? let type_id: TypeId = match (has_policy, default_policy.as_ref()) { - (false, Some(default_policy)) => { - type_id - .with_policy(default_policy.clone().into_iter().map(Into::into).collect())? - .id - } + (false, Some(default_policy)) => type_id + .with_policy(default_policy.clone().into_iter().map(Into::into).collect())? + .id(), _ => type_id, }; @@ -325,7 +320,7 @@ pub fn expose( } ensure_valid_export(key.clone(), type_id)?; - let type_idx = ctx.register_type(type_id, None)?; + let type_idx = ctx.register_type(type_id)?; root_data.properties.insert(key.clone(), type_idx.into()); root_data.required.push(key); Ok(()) @@ -343,45 +338,31 @@ pub fn set_seed(seed: Option) -> Result<()> { } impl TypegraphContext { - pub fn hash_type(&mut self, type_id: TypeId, runtime_id: Option) -> Result { + pub fn hash_type(&mut self, type_id: TypeId) -> Result { // let type_id = type_def.id().into(); if let Some(hash) = self.mapping.types_to_hash.get(&type_id.into()) { Ok(*hash) } else { let mut hasher = Hasher::new(); - match type_id.as_type()? { - Type::Def(type_def) => { - type_def.hash_type(&mut hasher, self, runtime_id)?; - } - Type::Ref(type_ref) => { - type_ref.hash_type(&mut hasher, self, runtime_id)?; - } - } + let xdef = type_id.as_xdef()?; + xdef.hash_type(&mut hasher, self)?; let hash = hasher.finish(); self.mapping.types_to_hash.insert(type_id.into(), hash); Ok(hash) } } - pub fn register_type( - &mut self, - type_id: TypeId, - runtime_id: Option, - ) -> Result { - let (mut type_def, ref_attrs) = type_id.resolve_ref()?; + pub fn register_type(&mut self, type_id: TypeId) -> Result { // we remove the name before hashing if it's not // user named - let user_named = if let Some(name) = type_def.name() { - if let Some(true) = Store::is_user_named(name) { - true - } else { - type_def = type_def.with_name(None); - false - } + let xdef = type_id.as_xdef()?; + let is_user_named = if let Some(name) = xdef.name.as_deref() { + Store::is_user_named(name).unwrap_or(false) } else { false }; - let hash = self.hash_type(type_id, runtime_id)?; + let xdef = type_id.as_xdef()?; + let hash = self.hash_type(type_id)?; match self.mapping.hash_to_type.entry(hash) { Entry::Vacant(e) => { @@ -396,10 +377,10 @@ impl TypegraphContext { // let tpe = id.as_type()?; - let type_node = type_def.convert(self, runtime_id, &ref_attrs)?; + let type_node = xdef.type_def.clone().convert(self, xdef)?; self.types[idx] = Some(type_node); - if user_named { + if is_user_named { self.user_named_types.insert(idx as u32); } @@ -410,24 +391,19 @@ impl TypegraphContext { } } - pub fn register_materializer( - &mut self, - id: u32, - ) -> Result<(MaterializerId, RuntimeId), TgError> { + pub fn register_materializer(&mut self, id: u32) -> Result { match self.mapping.materializers.entry(id) { Entry::Vacant(e) => { let idx = self.materializers.len(); e.insert(idx as u32); self.materializers.push(None); let converted = convert_materializer(self, Store::get_materializer(id)?)?; - let runtime_id = converted.runtime; self.materializers[idx] = Some(converted); - Ok((idx as MaterializerId, runtime_id as RuntimeId)) + Ok(idx as MaterializerId) } Entry::Occupied(e) => { let mat_idx = *e.get(); - let mat = self.materializers[mat_idx as usize].as_ref().unwrap(); - Ok((mat_idx, mat.runtime)) + Ok(mat_idx) } } } @@ -492,7 +468,7 @@ impl TypegraphContext { // we allocate first a slot in the array, as the lazy conversion might register // other runtimes self.runtimes.push(TGRuntime::Unknown(Default::default())); - let rt = lazy(id, idx as u32, self)?; + let rt = lazy(id, self)?; self.runtimes[idx] = rt; } }; @@ -506,7 +482,7 @@ impl TypegraphContext { } pub fn get_correct_id(&self, id: TypeId) -> Result { - let id = id.resolve_ref()?.0.id(); + let id = id.as_xdef()?.type_def.id(); self.find_type_index_by_store_id(id) .ok_or(format!("unable to find type for store id {}", u32::from(id)).into()) } diff --git a/src/typegraph/core/src/types/mod.rs b/src/typegraph/core/src/types/mod.rs index af2f0e4d05..b54916918a 100644 --- a/src/typegraph/core/src/types/mod.rs +++ b/src/typegraph/core/src/types/mod.rs @@ -5,7 +5,7 @@ pub mod type_def; pub mod type_id; pub mod type_ref; -use std::borrow::Cow; +use std::rc::Rc; pub use type_def::*; pub use type_id::*; @@ -30,15 +30,17 @@ impl From for Type { } impl Type { - fn name(&self) -> Option> { + pub fn id(&self) -> TypeId { match self { - Type::Ref(typ) => match typ.flatten().target { - FlatTypeRefTarget::Direct(type_def) => { - type_def.name().map(ToString::to_string).map(Into::into) - } - FlatTypeRefTarget::Indirect(name) => Some(name.into()), - }, - Type::Def(typ) => typ.name().map(Into::into), + Type::Ref(type_ref) => type_ref.id(), + Type::Def(type_def) => type_def.id(), + } + } + + pub fn name(&self) -> Option> { + match self { + Type::Ref(type_ref) => type_ref.flatten().name, + Type::Def(_) => None, } } diff --git a/src/typegraph/core/src/types/type_def.rs b/src/typegraph/core/src/types/type_def.rs index a71c1c33f4..a18a103dfe 100644 --- a/src/typegraph/core/src/types/type_def.rs +++ b/src/typegraph/core/src/types/type_def.rs @@ -3,16 +3,16 @@ use std::rc::Rc; -use super::{ResolveRef as _, TypeId}; +use super::{AsTypeDefEx as _, TypeId}; use crate::conversion::hash::{Hashable, Hasher}; use crate::conversion::types::TypeConversion; use crate::errors::Result; -use crate::global_store::{NameRegistration, Store}; +use crate::global_store::Store; use crate::typegraph::TypegraphContext; -use crate::types::RefAttrs; +use crate::types::ExtendedTypeDef; use crate::wit::core::{ - TypeBase, TypeEither, TypeFile, TypeFloat, TypeFunc, TypeInteger, TypeList, TypeOptional, - TypeString, TypeStruct, TypeUnion, + TypeEither, TypeFile, TypeFloat, TypeFunc, TypeInteger, TypeList, TypeOptional, TypeString, + TypeStruct, TypeUnion, }; use common::typegraph::TypeNode; use enum_dispatch::enum_dispatch; @@ -27,7 +27,6 @@ pub trait TypeDefData: Hashable { #[derive(Debug)] pub struct NonRefType { pub id: TypeId, - pub base: TypeBase, pub data: T, } @@ -36,31 +35,7 @@ where Rc>: Into, { pub fn type_with_data(&self, data: T) -> Result { - let base = TypeBase { - name: None, // different name -- since it is now a different type - ..self.base.clone() - }; - Store::register_type_def( - |type_id| { - Rc::new(Self { - id: type_id, - base, - data, - }) - .into() - }, - NameRegistration(false), - ) - } -} - -#[allow(clippy::derivable_impls)] -impl Default for TypeBase { - fn default() -> Self { - Self { - name: None, - runtime_config: None, - } + Store::register_type_def(|type_id| Rc::new(Self { id: type_id, data }).into()) } } @@ -98,8 +73,8 @@ pub enum TypeDef { impl TypeDef { pub fn resolve_quantifier(&self) -> Result { match self { - TypeDef::List(inner) => Ok(TypeId(inner.data.of).resolve_ref()?.0), - TypeDef::Optional(inner) => Ok(TypeId(inner.data.of).resolve_ref()?.0), + TypeDef::List(inner) => Ok(TypeId(inner.data.of).as_xdef()?.type_def), + TypeDef::Optional(inner) => Ok(TypeId(inner.data.of).as_xdef()?.type_def), _ => Ok(self.clone()), } } @@ -108,29 +83,17 @@ impl TypeDef { #[enum_dispatch] pub trait TypeDefExt { fn id(&self) -> TypeId; - fn base(&self) -> &TypeBase; fn data(&self) -> &dyn TypeDefData; - fn hash_type( - &self, - hasher: &mut Hasher, - tg: &mut TypegraphContext, - runtime_id: Option, - ) -> Result<()>; + fn hash_type(&self, hasher: &mut Hasher, tg: &mut TypegraphContext) -> Result<()>; // fn to_string(&self) -> String; - fn name(&self) -> Option<&str> { - self.base().name.as_deref() - } - fn variant_name(&self) -> &'static str; - fn with_base(&self, id: TypeId, base: TypeBase) -> TypeDef; - - fn with_name(&self, name: Option) -> TypeDef { - let mut base = self.base().clone(); - base.name = name; - self.with_base(self.id(), base) - } + // fn with_name(&self, name: Option) -> TypeDef { + // let mut base = self.base().clone(); + // base.name = name; + // self.with_base(self.id(), base) + // } fn repr(&self) -> String; } @@ -140,31 +103,18 @@ impl TypeDefExt for Rc { (**self).id() } - fn base(&self) -> &TypeBase { - (**self).base() - } - fn data(&self) -> &dyn TypeDefData { (**self).data() } - fn hash_type( - &self, - hasher: &mut Hasher, - tg: &mut TypegraphContext, - runtime_id: Option, - ) -> Result<()> { - (**self).hash_type(hasher, tg, runtime_id) + fn hash_type(&self, hasher: &mut Hasher, tg: &mut TypegraphContext) -> Result<()> { + (**self).hash_type(hasher, tg) } fn variant_name(&self) -> &'static str { (**self).variant_name() } - fn with_base(&self, id: TypeId, base: TypeBase) -> TypeDef { - (**self).with_base(id, base) - } - fn repr(&self) -> String { (**self).repr() } @@ -183,19 +133,6 @@ where &self.data } - fn base(&self) -> &TypeBase { - &self.base - } - - fn with_base(&self, id: TypeId, base: TypeBase) -> TypeDef { - Rc::new(Self { - id, - base, - data: self.data.clone(), - }) - .into() - } - fn variant_name(&self) -> &'static str { self.data().variant_name() } @@ -208,37 +145,27 @@ where format!("{}({})", self.data.variant_name(), params.join(", ")) } - fn hash_type( - &self, - hasher: &mut Hasher, - tg: &mut TypegraphContext, - runtime_id: Option, - ) -> Result<()> { - // unicity of name - if let Some(name) = &self.base.name { - "named".hash(hasher); - name.hash(hasher); - runtime_id.hash(hasher); // hum?? XD - } else { - "unnamed".hash(hasher); - self.base.hash(hasher, tg, runtime_id)?; - self.data.hash(hasher, tg, runtime_id)?; - runtime_id.hash(hasher); - } + fn hash_type(&self, hasher: &mut Hasher, tg: &mut TypegraphContext) -> Result<()> { + "unnamed".hash(hasher); + self.data.hash(hasher, tg)?; Ok(()) } } -impl Hashable for TypeBase { - fn hash( - &self, - hasher: &mut Hasher, - _tg: &mut TypegraphContext, - _runtime_id: Option, - ) -> Result<()> { - // self.name.hash(hasher); // see TypeDefExt::hash_type - self.runtime_config.hash(hasher); - - Ok(()) +impl TypeDef { + pub fn as_struct(&self) -> Result> { + match self { + TypeDef::Struct(s) => Ok(s.clone()), + _ => Err(crate::errors::invalid_type("struct", &self.repr())), + } } } + +// impl Hashable for TypeBase { +// fn hash(&self, hasher: &mut Hasher, _tg: &mut TypegraphContext) -> Result<()> { +// // self.name.hash(hasher); // see TypeDefExt::hash_type +// self.runtime_config.hash(hasher); +// +// Ok(()) +// } +// } diff --git a/src/typegraph/core/src/types/type_id.rs b/src/typegraph/core/src/types/type_id.rs index 4a601f6168..e4c1e6231a 100644 --- a/src/typegraph/core/src/types/type_id.rs +++ b/src/typegraph/core/src/types/type_id.rs @@ -1,11 +1,10 @@ // Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. // SPDX-License-Identifier: MPL-2.0 -use super::{ResolveRef as _, TypeDefExt}; use super::{Type, TypeDef}; use crate::errors::Result; -use crate::errors::TgError; use crate::typegraph::TypegraphContext; +use crate::types::AsTypeDefEx as _; use crate::wit::core::TypeId as CoreTypeId; use std::fmt::Debug; @@ -63,25 +62,16 @@ impl TypeId { &self, state: &mut crate::conversion::hash::Hasher, tg: &mut TypegraphContext, - runtime_id: Option, ) -> Result<()> { - let typ = self.as_type()?; - match typ { - Type::Ref(type_ref) => { - type_ref.hash_type(state, tg, runtime_id)?; - } - Type::Def(type_def) => { - type_def.hash_type(state, tg, runtime_id)?; - } - } - Ok(()) + let xdef = self.as_xdef()?; + xdef.hash_type(state, tg) } } -impl TryFrom for TypeDef { - type Error = TgError; - - fn try_from(type_id: TypeId) -> std::result::Result { - Ok(type_id.resolve_ref()?.0) - } -} +// impl TryFrom for TypeDef { +// type Error = TgError; +// +// fn try_from(type_id: TypeId) -> std::result::Result { +// Ok(type_id.resolve_ref()?.0) +// } +// } diff --git a/src/typegraph/core/src/types/type_ref.rs b/src/typegraph/core/src/types/type_ref.rs index 231dfa02bf..aa4a0b09ac 100644 --- a/src/typegraph/core/src/types/type_ref.rs +++ b/src/typegraph/core/src/types/type_ref.rs @@ -4,26 +4,21 @@ use std::rc::Rc; use super::Type; use crate::errors::Result; use crate::global_store::Store; -use crate::typegraph::TypegraphContext; use crate::types::{TypeDef, TypeDefExt as _, TypeId}; -pub use as_id::{AsId, IdKind}; use common::typegraph::Injection; -pub use injection::WithInjection; -pub use policy::{PolicySpec, WithPolicy}; -pub use resolve_ref::ResolveRef; use serde::{Deserialize, Serialize}; +pub use as_id::{AsId, IdKind}; +pub use injection::{InjectionTree, OverrideInjections, WithInjection}; +pub use policy::{PolicySpec, WithPolicy}; +pub use runtime_config::WithRuntimeConfig; +pub use xdef::{AsTypeDefEx, ExtendedTypeDef}; + mod as_id; mod injection; mod policy; -mod resolve_ref; - -#[derive(Clone, Debug)] -pub enum RefTarget { - Direct(TypeDef), - Indirect(String), - Link(TypeRef), -} +mod runtime_config; +mod xdef; type JsonValue = serde_json::Value; @@ -32,6 +27,7 @@ type JsonValue = serde_json::Value; pub enum RefAttr { AsId(IdKind), Injection(Injection), + Reduce(InjectionTree), Policy(Vec), RuntimeConfig { runtime: String, data: JsonValue }, } @@ -54,15 +50,63 @@ impl RefAttr { } #[derive(Clone, Debug)] -pub struct TypeRef { +pub struct DirectTypeRef { pub id: TypeId, - pub target: Box, - pub attribute: Option>, + pub target: TypeDef, + pub attribute: Rc, } -pub struct TypeRefBuilder { - target: RefTarget, - attribute: Option, +#[derive(Clone, Debug)] +pub struct LinkTypeRef { + pub id: TypeId, + pub target: Box, + pub attribute: Rc, +} + +#[derive(Clone, Debug)] +pub struct IndirectTypeRef { + pub id: TypeId, + pub name: Rc, + pub attributes: Vec>, +} + +#[derive(Clone, Debug)] +pub struct NamedTypeRef { + pub id: TypeId, + pub name: Rc, + pub target: Box, +} + +#[derive(Clone, Debug)] +pub enum TypeRef { + Direct(DirectTypeRef), + Link(LinkTypeRef), + Indirect(IndirectTypeRef), + Named(NamedTypeRef), +} + +#[derive(Clone)] +pub struct DirectRefBuilder { + target: TypeDef, + attribute: Rc, +} + +#[derive(Clone)] +pub struct LinkRefBuilder { + target: TypeRef, + attribute: Rc, +} + +#[derive(Clone)] +pub struct IndirectRefBuilder { + name: String, + attributes: Vec>, +} + +#[derive(Clone)] +pub struct NamedRefBuilder { + pub name: Rc, + target: Type, } pub enum FlatTypeRefTarget { @@ -74,254 +118,157 @@ pub struct FlatTypeRef { pub id: TypeId, pub target: FlatTypeRefTarget, pub attributes: RefAttrs, + pub name: Option>, } impl TypeRef { + pub fn id(&self) -> TypeId { + match &self { + TypeRef::Direct(direct) => direct.id, + TypeRef::Indirect(indirect) => indirect.id, + TypeRef::Link(link) => link.id, + TypeRef::Named(named) => named.id, + } + } pub fn flatten(&self) -> FlatTypeRef { - match self.target.as_ref() { - RefTarget::Direct(target) => FlatTypeRef { - id: self.id, - target: FlatTypeRefTarget::Direct(target.clone()), - attributes: self.attribute.clone().into_iter().collect(), + match &self { + TypeRef::Direct(direct) => FlatTypeRef { + id: direct.id, + target: FlatTypeRefTarget::Direct(direct.target.clone()), + attributes: vec![direct.attribute.clone()], + name: None, }, - RefTarget::Indirect(name) => FlatTypeRef { - id: self.id, - target: FlatTypeRefTarget::Indirect(name.clone()), - attributes: self.attribute.clone().into_iter().collect(), + TypeRef::Indirect(indirect) => FlatTypeRef { + id: indirect.id, + target: FlatTypeRefTarget::Indirect(indirect.name.to_string()), + attributes: indirect.attributes.clone(), + name: Some(indirect.name.clone()), }, - RefTarget::Link(target) => { - let mut flat = target.flatten(); - flat.attributes.extend(self.attribute.clone()); + TypeRef::Link(link) => { + let mut flat = link.target.flatten(); + flat.attributes.push(link.attribute.clone()); + flat.id = link.id; flat } + TypeRef::Named(named) => match named.target.as_ref() { + Type::Def(type_def) => FlatTypeRef { + id: named.id, + target: FlatTypeRefTarget::Direct(type_def.clone()), + attributes: vec![], + name: Some(named.name.clone()), + }, + Type::Ref(type_ref) => { + let mut flat = type_ref.flatten(); + flat.name = Some(named.name.clone()); + flat.id = named.id; + flat + } + }, } } } -// impl Hash for RefAttr { -// fn hash(&self, state: &mut H) { -// match self { -// RefAttr::AsId(id) => { -// "as_id".hash(state); -// id.hash(state); -// } -// RefAttr::Injection(injection) => { -// "injection".hash(state); -// injection.hash(state); -// } -// RefAttr::Runtime { runtime, data } => { -// "runtime".hash(state); -// runtime.hash(state); -// data.hash(state); -// } -// } -// } -// } - -pub type RefAttrs = Vec>; +#[derive(Clone)] +pub enum TypeRefBuilder { + Direct(DirectRefBuilder), + Link(LinkRefBuilder), + Indirect(IndirectRefBuilder), + Named(NamedRefBuilder), +} -impl RefAttr { - pub fn with_target(self, target: Type) -> TypeRefBuilder { +impl TypeRef { + pub fn from_type(target: Type, attribute: RefAttr) -> TypeRefBuilder { match target { - Type::Def(type_def) => TypeRefBuilder { - target: RefTarget::Direct(type_def), - attribute: self.into(), - }, - Type::Ref(type_ref) => TypeRefBuilder { - target: RefTarget::Link(type_ref), - attribute: self.into(), - }, + Type::Def(def) => TypeRef::direct(def, attribute), + Type::Ref(r) => TypeRef::link(r, attribute), } } -} - -impl RefTarget { - pub fn with_attr(self, attr: Option) -> TypeRefBuilder { - TypeRefBuilder { - target: self, - attribute: attr, - } + pub fn direct(target: TypeDef, attribute: RefAttr) -> TypeRefBuilder { + TypeRefBuilder::Direct(DirectRefBuilder { + target, + attribute: Rc::new(attribute), + }) + } + pub fn link(target: TypeRef, attribute: RefAttr) -> TypeRefBuilder { + TypeRefBuilder::Link(LinkRefBuilder { + target, + attribute: Rc::new(attribute), + }) + } + pub fn indirect( + name: impl Into, + attributes: impl IntoIterator, + ) -> TypeRefBuilder { + TypeRefBuilder::Indirect(IndirectRefBuilder { + name: name.into(), + attributes: attributes.into_iter().map(Rc::new).collect(), + }) + } + pub fn named(name: impl Into, target: Type) -> TypeRefBuilder { + let name: String = name.into(); + TypeRefBuilder::Named(NamedRefBuilder { + name: name.into(), + target, + }) } -} - -// impl RefAttrs { -// #[allow(clippy::wrong_self_convention)] -// pub fn as_id(mut self, id: IdKind) -> Self { -// self.0.push(RefAttr::AsId(id)); -// self -// } -// -// pub fn with_injection(mut self, injection: Injection) -> Self { -// self.0.push(RefAttr::Injection(injection)); -// self -// } -// -// pub fn runtime(mut self, key: impl Into, value: HashMap) -> Self { -// self.runtime.insert(key.into(), value); -// self -// } -// -// pub fn merge(mut self, other: RefAttrs) -> Self { -// if let Some(id) = other.as_id { -// self.as_id = Some(id); -// } -// if let Some(injection) = other.injection { -// self.injection = Some(injection); -// } -// for (k, v) in other.runtime { -// let runtime_attrs = self.runtime.entry(k).or_default(); -// for (k, v) in v { -// runtime_attrs.insert(k, v); -// } -// } -// self -// } -// -// -// pub fn direct(self, target: TypeDef) -> TypeRefBuilder { -// TypeRefBuilder { -// target: RefTarget::Direct(target), -// attributes: self, -// } -// } -// -// pub fn indirect(self, name: String) -> TypeRefBuilder { -// TypeRefBuilder { -// target: RefTarget::Indirect(name), -// attributes: self, -// } -// } -// -// pub fn wrap(self) -> Option> { -// Some(Rc::new(self)) -// } -// } - -impl TypeRef { - // pub fn collect_attributes(&self) -> RefAttrs { - // match self.target.as_ref() { - // RefTarget::Link(next) => { - // let mut attrs = next.collect_attributes(); - // attrs.push(self.attribute.clone()); - // attrs - // } - // _ => vec![self.attribute.clone()], - // } - // } - - // pub fn as_id(&self) -> Option { - // self.attributes.as_ref().and_then(|it| it.as_id) - // } - // - // pub fn runtime_attrs(&self, runtime_key: &str) -> Option<&HashMap> { - // self.attributes - // .as_ref() - // .and_then(|it| it.runtime.get(runtime_key)) - // } - // - // pub fn runtime_attr(&self, runtime_key: &str, key: &str) -> Option<&serde_json::Value> { - // self.runtime_attrs(runtime_key).and_then(|it| it.get(key)) - // } } impl TypeRefBuilder { pub fn with_id(self, id: TypeId) -> TypeRef { - TypeRef { - id, - target: self.target.into(), - attribute: self.attribute.map(Rc::new), + match self { + TypeRefBuilder::Direct(builder) => TypeRef::Direct(DirectTypeRef { + id, + target: builder.target, + attribute: builder.attribute, + }), + TypeRefBuilder::Link(builder) => TypeRef::Link(LinkTypeRef { + id, + target: Box::new(builder.target), + attribute: builder.attribute, + }), + TypeRefBuilder::Indirect(builder) => TypeRef::Indirect(IndirectTypeRef { + id, + name: builder.name.into(), + attributes: builder.attributes, + }), + TypeRefBuilder::Named(builder) => TypeRef::Named(NamedTypeRef { + id, + name: builder.name, + target: Box::new(builder.target), + }), } } - pub fn build(self) -> Result { + pub fn register(self) -> Result { Store::register_type_ref(self) } } -impl TypeRef { - pub fn new(target: Type, attribute: Option) -> Result { - // Store::register_type_ref(match target { - // Type::Def(type_def) => TypeRefBuilder { - // target: RefTarget::Direct(type_def), - // attribute, - // }, - // Type::Ref(type_ref) => TypeRefBuilder { - // target: RefTarget::Link(type_ref), - // attribute, - // }, - // }) - Store::register_type_ref( - match target { - Type::Def(type_def) => RefTarget::Direct(type_def), - Type::Ref(type_ref) => RefTarget::Link(type_ref), - } - .with_attr(attribute), - ) - } - - pub fn direct(target: TypeDef, attribute: Option) -> Result { - Store::register_type_ref(RefTarget::Direct(target).with_attr(attribute)) - } - - pub fn indirect(name: String, attribute: Option) -> Result { - Store::register_type_ref(RefTarget::Indirect(name).with_attr(attribute)) - } - - pub fn link(target: TypeRef, attribute: RefAttr) -> Result { - Store::register_type_ref(RefTarget::Link(target).with_attr(Some(attribute))) - } +pub type RefAttrs = Vec>; +impl TypeRef { pub fn repr(&self) -> String { self.flatten().repr() } - - pub fn hash_type( - &self, - hasher: &mut crate::conversion::hash::Hasher, - tg: &mut TypegraphContext, - runtime_id: Option, - ) -> Result<()> { - self.flatten().hash_type(hasher, tg, runtime_id) - } } impl FlatTypeRef { - pub fn hash_type( - &self, - hasher: &mut crate::conversion::hash::Hasher, - tg: &mut TypegraphContext, - runtime_id: Option, - ) -> Result<()> { - match &self.target { - FlatTypeRefTarget::Direct(type_def) => { - type_def.hash_type(hasher, tg, runtime_id)?; - } - FlatTypeRefTarget::Indirect(name) => { - "named".hash(hasher); - name.hash(hasher); - runtime_id.hash(hasher); - } - } - if !self.attributes.is_empty() { - "ref".hash(hasher); - for attr in self.attributes.iter().rev() { - attr.as_ref().hash(hasher); - } - } - Ok(()) - } - fn repr(&self) -> String { let mut attrs = "".to_string(); for attr in self.attributes.iter().rev() { attrs.push_str(&format!(", {}", attr.repr())); } + let name = if let Some(name) = self.name.as_deref() { + format!("&{}", name) + } else { + "".to_string() + }; match &self.target { FlatTypeRefTarget::Direct(type_def) => { - format!("ref(#{}{attrs}) to {}", self.id.0, type_def.repr()) + format!("ref(#{}{name}{attrs}) to {}", self.id.0, type_def.repr()) } - FlatTypeRefTarget::Indirect(name) => { - format!("ref(#{} , target_name: '{}'{attrs})", self.id.0, name) + FlatTypeRefTarget::Indirect(_) => { + format!("ref(#{}{name}(indirect){attrs})", self.id.0) } } } @@ -346,6 +293,9 @@ impl RefAttr { RefAttr::RuntimeConfig { runtime, data } => { format!("rt/{}: {}", runtime, serde_json::to_string(data).unwrap()) } + RefAttr::Reduce(tree) => { + format!("reduce: {}", serde_json::to_string(tree).unwrap()) + } } } } @@ -391,6 +341,13 @@ pub trait FindAttribute { _ => None, }) } + + fn find_reduce_trees(&self) -> Vec<&InjectionTree> { + self.find_attrs(|attr| match attr { + RefAttr::Reduce(tree) => Some(tree), + _ => None, + }) + } } impl FindAttribute for RefAttrs { @@ -408,3 +365,17 @@ impl FindAttribute for RefAttrs { .collect() } } + +pub trait Named { + fn named(self, name: impl Into) -> Result; +} + +impl Named for T +where + T: TryInto, + crate::errors::TgError: From<>::Error>, +{ + fn named(self, name: impl Into) -> Result { + TypeRef::named(name, self.try_into()?).register() + } +} diff --git a/src/typegraph/core/src/types/type_ref/as_id.rs b/src/typegraph/core/src/types/type_ref/as_id.rs index ca25119c43..c5d2160eae 100644 --- a/src/typegraph/core/src/types/type_ref/as_id.rs +++ b/src/typegraph/core/src/types/type_ref/as_id.rs @@ -1,6 +1,6 @@ use serde::{Deserialize, Serialize}; -use super::{FindAttribute as _, RefAttr, ResolveRef as _, TypeRef}; +use super::{ExtendedTypeDef, FindAttribute as _, RefAttr, TypeRef}; use crate::errors::Result; use crate::types::{Type, TypeDef, TypeDefExt}; @@ -16,15 +16,15 @@ where { #[allow(clippy::wrong_self_convention)] fn as_id(self, composite: bool) -> Result { - TypeRef::new( + TypeRef::from_type( self.try_into()?, RefAttr::AsId(if composite { IdKind::Composite } else { IdKind::Simple - }) - .into(), + }), ) + .register() } } @@ -36,11 +36,10 @@ pub enum IdKind { Composite, } -impl TypeRef { +impl ExtendedTypeDef { pub fn id_kind(&self) -> Result> { - let (type_def, attrs) = self.resolve_ref()?; - if let Some(as_id) = attrs.find_id_kind() { - match type_def { + if let Some(as_id) = self.attributes.find_id_kind() { + match &self.type_def { TypeDef::Integer(_) | TypeDef::String(_) => Ok(Some(as_id)), TypeDef::Boolean(_) => { if as_id == IdKind::Composite { @@ -48,24 +47,28 @@ impl TypeRef { } else { Err(format!( "Type {:?} cannot be used as id unless composite", - type_def.variant_name() + self.type_def.variant_name() ) .into()) } } - _ => Err(format!("Type {:?} cannot be used as id", type_def.variant_name()).into()), + _ => Err(format!( + "Type {:?} cannot be used as id", + self.type_def.variant_name() + ) + .into()), } } else { Ok(None) } } - pub fn is_id(&self) -> Result { - self.id_kind().map(|it| matches!(it, Some(IdKind::Simple))) - } - - pub fn is_part_of_id(&self) -> Result { - self.id_kind() - .map(|it| matches!(it, Some(IdKind::Composite))) - } + // pub fn is_id(&self) -> Result { + // self.id_kind().map(|it| matches!(it, Some(IdKind::Simple))) + // } + // + // pub fn is_part_of_id(&self) -> Result { + // self.id_kind() + // .map(|it| matches!(it, Some(IdKind::Composite))) + // } } diff --git a/src/typegraph/core/src/types/type_ref/injection.rs b/src/typegraph/core/src/types/type_ref/injection.rs index 7761307d6b..9ae2846057 100644 --- a/src/typegraph/core/src/types/type_ref/injection.rs +++ b/src/typegraph/core/src/types/type_ref/injection.rs @@ -1,7 +1,16 @@ use super::{RefAttr, TypeRef}; -use crate::errors::Result; use crate::types::Type; -use common::typegraph::Injection; +use crate::wit::utils::ReduceEntry; +use crate::{errors::Result, wit::core::Error}; +use common::typegraph::{Injection, InjectionNode}; +use indexmap::{map::Entry, IndexMap}; +use serde::{Deserialize, Serialize}; +use std::hash::{Hash, Hasher}; + +#[derive(Clone, Debug, Serialize, Deserialize, Default)] +pub struct InjectionTree(pub IndexMap); + +type InjectionTreeMap = IndexMap; pub trait WithInjection { fn with_injection(self, injection: Injection) -> Result; @@ -13,8 +22,130 @@ where crate::errors::TgError: From<>::Error>, { fn with_injection(self, injection: Injection) -> Result { - RefAttr::Injection(injection) - .with_target(self.try_into()?) - .build() + TypeRef::from_type(self.try_into()?, RefAttr::Injection(injection)).register() + } +} + +pub trait OverrideInjections { + fn override_injections(self, tree: InjectionTree) -> Result; +} + +impl OverrideInjections for T +where + T: TryInto, + crate::errors::TgError: From<>::Error>, +{ + fn override_injections(self, tree: InjectionTree) -> Result { + TypeRef::from_type(self.try_into()?, RefAttr::Reduce(tree)).register() + } +} + +impl TryFrom> for InjectionTree { + type Error = Error; + fn try_from(entries: Vec) -> Result { + let mut tree = InjectionTree::default(); + for entry in entries { + tree.add_reduce_entry(&entry.path, entry.injection_data)?; + } + Ok(tree) + } +} + +impl InjectionTree { + fn add_reduce_entry(&mut self, path: &[String], data: String) -> Result<()> { + let injection = serde_json::from_str(&data).map_err(|e| e.to_string())?; + InjectionTree::add_reduce_entry_at(&mut self.0, path, injection) + } + + fn add_reduce_entry_at( + parent: &mut IndexMap, + path: &[String], + injection: Injection, + ) -> Result<()> { + match path.len() { + 0 => unreachable!(), + 1 => { + let key = path[0].clone(); + match parent.entry(key) { + Entry::Occupied(_) => { + Err(format!("Duplicate injection at path {:?}", path).into()) + } + Entry::Vacant(entry) => { + entry.insert(InjectionNode::Leaf { injection }); + Ok(()) + } + } + } + 2.. => { + let key = path[0].clone(); + let node = parent.entry(key).or_insert(InjectionNode::Parent { + children: IndexMap::new(), + }); + match node { + InjectionNode::Leaf { .. } => { + Err(format!("Injection already exists at path {:?}", path).into()) + } + InjectionNode::Parent { children } => { + InjectionTree::add_reduce_entry_at(children, &path[1..], injection) + } + } + } + } + } + + pub fn merge(left: &mut InjectionTreeMap, right: InjectionTreeMap) { + for (key, node) in right { + match left.entry(key) { + Entry::Occupied(mut entry) => match entry.get_mut() { + InjectionNode::Leaf { .. } => { + entry.insert(node); // replace + } + InjectionNode::Parent { children } => { + if let InjectionNode::Parent { + children: right_children, + } = node + { + InjectionTree::merge(children, right_children); + } else { + entry.insert(node); + } + } + }, + Entry::Vacant(entry) => { + entry.insert(node); + } + } + } + } +} + +impl Hash for InjectionTree { + fn hash(&self, state: &mut H) { + let mut keys = self.0.keys().collect::>(); + keys.sort(); + + for key in keys { + key.hash(state); + let node = self.0.get(key).unwrap(); + hash_injection_node(node, state); + } + } +} + +fn hash_injection_node(node: &InjectionNode, state: &mut H) { + match node { + InjectionNode::Leaf { injection } => { + "leaf".hash(state); + injection.hash(state); + } + InjectionNode::Parent { children } => { + "parent".hash(state); + let mut keys = children.keys().collect::>(); + keys.sort(); + for key in keys { + key.hash(state); + hash_injection_node(&children[key], state); + } + } } } diff --git a/src/typegraph/core/src/types/type_ref/policy.rs b/src/typegraph/core/src/types/type_ref/policy.rs index 5b9162e07b..18e965fc23 100644 --- a/src/typegraph/core/src/types/type_ref/policy.rs +++ b/src/typegraph/core/src/types/type_ref/policy.rs @@ -1,4 +1,4 @@ -use crate::errors::Result; +use crate::errors::{Result, TgError}; use crate::types::Type; use serde::{Deserialize, Serialize}; @@ -43,11 +43,9 @@ pub trait WithPolicy { impl WithPolicy for T where - T: TryInto, + T: TryInto, { fn with_policy(self, policy: Vec) -> Result { - RefAttr::Policy(policy) - .with_target(self.try_into().map_err(|_e| "failed to get type")?) - .build() + TypeRef::from_type(self.try_into()?, RefAttr::Policy(policy)).register() } } diff --git a/src/typegraph/core/src/types/type_ref/resolve_ref.rs b/src/typegraph/core/src/types/type_ref/resolve_ref.rs deleted file mode 100644 index 08fd9910d2..0000000000 --- a/src/typegraph/core/src/types/type_ref/resolve_ref.rs +++ /dev/null @@ -1,68 +0,0 @@ -use super::{FlatTypeRef, FlatTypeRefTarget, RefAttrs, TypeRef}; -use crate::errors::{self, Result}; -use crate::global_store::Store; -use crate::types::{Type, TypeDef, TypeId}; - -pub trait ResolveRef { - fn resolve_ref(&self) -> Result<(TypeDef, RefAttrs)>; - fn try_resolve_ref(&self) -> Result>; -} - -impl FlatTypeRef { - fn resolve(self) -> Result<(TypeDef, RefAttrs)> { - match self.target { - FlatTypeRefTarget::Direct(type_def) => Ok((type_def, self.attributes)), - FlatTypeRefTarget::Indirect(name) => { - let type_def = Store::get_type_by_name(&name) - .ok_or_else(|| errors::unregistered_type_name(&name))?; - Ok((type_def, self.attributes)) - } - } - } - - fn try_resolve(self) -> Result> { - match self.target { - FlatTypeRefTarget::Direct(type_def) => Ok(Some((type_def, self.attributes))), - FlatTypeRefTarget::Indirect(name) => { - let type_def = Store::get_type_by_name(&name); - Ok(type_def.map(|type_def| (type_def, self.attributes))) - } - } - } -} - -impl ResolveRef for TypeRef { - fn resolve_ref(&self) -> Result<(TypeDef, RefAttrs)> { - self.flatten().resolve() - } - - fn try_resolve_ref(&self) -> Result> { - self.flatten().try_resolve() - } -} - -impl ResolveRef for Type { - fn resolve_ref(&self) -> Result<(TypeDef, RefAttrs)> { - match self { - Type::Ref(type_ref) => type_ref.resolve_ref(), - Type::Def(type_def) => Ok((type_def.clone(), vec![])), - } - } - - fn try_resolve_ref(&self) -> Result> { - match self { - Type::Ref(type_ref) => type_ref.try_resolve_ref(), - Type::Def(type_def) => Ok(Some((type_def.clone(), vec![]))), - } - } -} - -impl ResolveRef for TypeId { - fn resolve_ref(&self) -> Result<(TypeDef, RefAttrs)> { - self.as_type()?.resolve_ref() - } - - fn try_resolve_ref(&self) -> Result> { - self.as_type()?.try_resolve_ref() - } -} diff --git a/src/typegraph/core/src/types/type_ref/runtime_config.rs b/src/typegraph/core/src/types/type_ref/runtime_config.rs new file mode 100644 index 0000000000..fc26313706 --- /dev/null +++ b/src/typegraph/core/src/types/type_ref/runtime_config.rs @@ -0,0 +1,16 @@ +use super::{RefAttr, TypeRef}; +use crate::errors::{Result, TgError}; +use crate::types::Type; + +pub trait WithRuntimeConfig { + fn with_config(self, runtime_config: serde_json::Value) -> Result; +} + +impl WithRuntimeConfig for T +where + T: TryInto, +{ + fn with_config(self, runtime_config: serde_json::Value) -> Result { + TypeRef::from_type(self.try_into()?, RefAttr::runtime("", runtime_config)).register() + } +} diff --git a/src/typegraph/core/src/types/type_ref/xdef.rs b/src/typegraph/core/src/types/type_ref/xdef.rs new file mode 100644 index 0000000000..0cf7ce5960 --- /dev/null +++ b/src/typegraph/core/src/types/type_ref/xdef.rs @@ -0,0 +1,145 @@ +use super::{FlatTypeRef, FlatTypeRefTarget, RefAttr, RefAttrs, TypeRef}; +use crate::errors::Result; +use crate::global_store::Store; +use crate::typegraph::TypegraphContext; +use crate::types::{Type, TypeDef, TypeDefExt as _, TypeId}; +use std::hash::Hash as _; +use std::rc::Rc; + +#[derive(Debug)] +pub struct ExtendedTypeDef { + pub id: TypeId, + pub type_def: TypeDef, + pub attributes: RefAttrs, + pub name: Option>, +} + +impl ExtendedTypeDef { + pub fn get_owned_name(&self) -> Option { + self.name.as_deref().map(|s| s.to_string()) + } + + pub fn hash_type( + &self, + hasher: &mut crate::conversion::hash::Hasher, + tg: &mut TypegraphContext, + ) -> Result<()> { + if let Some(name) = self.name.as_deref() { + "named".hash(hasher); + name.hash(hasher); + return Ok(()); + } + + self.type_def.hash_type(hasher, tg)?; + // hashable attributes -- only the ones that affect the type + let attributes = self + .attributes + .iter() + .filter(|a| matches!(a.as_ref(), RefAttr::Policy(_) | RefAttr::Reduce(_))) + .collect::>(); + if !attributes.is_empty() { + "attributes".hash(hasher); + for attr in attributes.iter().rev() { + attr.as_ref().hash(hasher); + } + } + Ok(()) + } +} + +pub trait AsTypeDefEx { + fn as_xdef(&self) -> Result; +} + +impl AsTypeDefEx for TypeId { + fn as_xdef(&self) -> Result { + self.as_type()?.as_xdef() + } +} + +impl AsTypeDefEx for Type { + fn as_xdef(&self) -> Result { + match self { + Type::Def(d) => d.as_xdef(), + Type::Ref(r) => r.as_xdef(), + } + } +} + +impl AsTypeDefEx for TypeDef { + fn as_xdef(&self) -> Result { + Ok(ExtendedTypeDef { + id: self.id(), + type_def: self.clone(), + attributes: Default::default(), + name: None, + }) + } +} + +impl AsTypeDefEx for TypeRef { + fn as_xdef(&self) -> Result { + let flat = self.flatten(); + use FlatTypeRefTarget as T; + match flat.target { + T::Direct(d) => Ok(ExtendedTypeDef { + id: flat.id, + type_def: d.clone(), + attributes: flat.attributes, + name: flat.name, + }), + T::Indirect(name) => { + let resolved = Store::get_type_by_name(&name) + .ok_or_else(|| crate::errors::unregistered_type_name(&name))?; + match resolved.target.as_ref() { + Type::Def(type_def) => Ok(ExtendedTypeDef { + id: flat.id, + type_def: type_def.clone(), + attributes: flat.attributes, + name: Some(name.into()), + }), + Type::Ref(type_ref) => { + let inner = type_ref.as_xdef()?; + let mut attributes = inner.attributes; + attributes.extend(flat.attributes.iter().cloned()); + Ok(ExtendedTypeDef { + id: flat.id, + type_def: inner.type_def, + attributes, + name: Some(name.into()), + }) + } + } + } + } + } +} + +impl TryFrom for ExtendedTypeDef { + type Error = crate::errors::TgError; + + fn try_from(value: FlatTypeRef) -> Result { + match value.target { + FlatTypeRefTarget::Direct(def) => Ok(ExtendedTypeDef { + id: value.id, + type_def: def.clone(), + attributes: value.attributes, + name: value.name, + }), + FlatTypeRefTarget::Indirect(name) => { + let name_ref = Store::get_type_by_name(&name) + .ok_or_else(|| crate::errors::unregistered_type_name(&name))?; + // TODO inner.name is dropped?? + let inner = name_ref.target.as_ref().as_xdef()?; + let mut attributes = inner.attributes; + attributes.extend(value.attributes); + Ok(ExtendedTypeDef { + id: value.id, + type_def: inner.type_def, + attributes, + name: value.name, + }) + } + } + } +} diff --git a/src/typegraph/core/src/utils/mod.rs b/src/typegraph/core/src/utils/mod.rs index cdfa245992..adf2613405 100644 --- a/src/typegraph/core/src/utils/mod.rs +++ b/src/typegraph/core/src/utils/mod.rs @@ -1,7 +1,6 @@ // Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. // SPDX-License-Identifier: MPL-2.0 -use std::collections::HashMap; use std::path::PathBuf; use crate::utils::metagen_utils::RawTgResolver; @@ -13,10 +12,12 @@ use serde_json::json; use self::oauth2::std::{named_provider, Oauth2Builder}; use crate::errors::Result; use crate::global_store::{get_sdk_version, Store}; +use crate::types::type_ref::InjectionTree; +use crate::types::type_ref::OverrideInjections; + use crate::types::TypeId; -use crate::wit::core::{Guest, TypeBase, TypeId as CoreTypeId, TypeStruct}; -use crate::wit::utils::{Auth as WitAuth, FdkConfig, FdkOutput, QueryDeployParams}; -use crate::Lib; +use crate::wit::core::TypeId as CoreTypeId; +use crate::wit::utils::{Auth as WitAuth, FdkConfig, FdkOutput, QueryDeployParams, ReduceEntry}; use std::path::Path; mod archive; @@ -26,34 +27,6 @@ pub mod metagen_utils; mod oauth2; mod pathlib; pub mod postprocess; -pub mod reduce; - -fn find_missing_props( - supertype_id: TypeId, - new_props: &Vec<(String, u32)>, -) -> Result> { - let old_props = supertype_id - .as_struct()? - .iter_props() - .map(|(k, v)| (k.to_string(), v)) - .collect::>(); - - let mut missing_props = vec![]; - for (k_old, v_old) in old_props { - let mut is_missing = true; - for (k_new, _) in new_props { - if k_old.eq(k_new) { - is_missing = false; - break; - } - } - if is_missing { - missing_props.push((k_old, v_old.into())); - } - } - - Ok(missing_props) -} struct Oauth2Params<'a> { name: &'a str, @@ -90,83 +63,12 @@ impl TryFrom> for String { } impl crate::wit::utils::Guest for crate::Lib { - fn gen_reduceb( - supertype_id: CoreTypeId, - reduce: crate::wit::utils::Reduce, - ) -> Result { - if reduce.paths.is_empty() { - return Err("reduce object is empty".into()); - } - let reduce_tree = reduce::PathTree::build_from(&reduce)?; - let mut item_list = reduce::flatten_to_sorted_items_array(&reduce_tree)?; - let p2c_indices = reduce::build_parent_to_child_indices(&item_list); - // item_list index => (node name, store id) - let mut idx_to_store_id_cache: HashMap = HashMap::new(); - - while !item_list.is_empty() { - let item = match item_list.pop() { - Some(value) => value, - None => break, - }; - - if item.node.is_leaf() { - let path_infos = item.node.path_infos.clone(); - let reduce_value = path_infos.value.clone(); - let id = Store::get_type_by_path(supertype_id.into(), &path_infos.path)?.1; - - if reduce_value.inherit && reduce_value.payload.is_none() { - // if inherit and no injection, keep original id - idx_to_store_id_cache.insert(item.index, (item.node.name.clone(), id.into())); - } else { - // has injection - let payload = reduce_value.payload.ok_or(format!( - "cannot set undefined value at {:?}", - path_infos.path.join(".") - ))?; - let new_id = Lib::with_injection(id.into(), payload)?; - - idx_to_store_id_cache.insert(item.index, (item.node.name.clone(), new_id)); - } - } else { - // parent node => must be a struct - let child_indices = p2c_indices.get(&item.index).unwrap(); - if child_indices.is_empty() { - return Err(format!("parent item at index {} has no child", item.index).into()); - } - - let mut props = vec![]; - for idx in child_indices { - // cache must hit - let prop = idx_to_store_id_cache.get(idx).ok_or(format!( - "store id for item at index {idx} was not yet generated" - ))?; - props.push(prop.clone()); - } - - if item.parent_index.is_none() { - // if root, props g.inherit() should be implicit - let missing_props = find_missing_props(supertype_id.into(), &props)?; - for pair in missing_props { - props.push(pair); - } - } - - let id = Lib::structb( - TypeStruct { - props, - ..Default::default() - }, - TypeBase::default(), - )?; - idx_to_store_id_cache.insert(item.index, (item.node.name.clone(), id)); - } - } - - let (_root_name, root_id) = idx_to_store_id_cache - .get(&0) - .ok_or("root type does not have any field".to_string())?; - - Ok(*root_id) + fn reduceb(fn_type_id: CoreTypeId, entries: Vec) -> Result { + let injection_tree = InjectionTree::try_from(entries)?; + Ok(TypeId(fn_type_id) + .override_injections(injection_tree)? + .id() + .into()) } fn add_graphql_endpoint(graphql: String) -> Result { @@ -297,10 +199,3 @@ impl crate::wit::utils::Guest for crate::Lib { Ok(()) } } - -pub fn clear_name(base: &TypeBase) -> TypeBase { - TypeBase { - name: None, - ..base.clone() - } -} diff --git a/src/typegraph/core/src/utils/postprocess/naming.rs b/src/typegraph/core/src/utils/postprocess/naming.rs index 80a6121931..708a38581a 100644 --- a/src/typegraph/core/src/utils/postprocess/naming.rs +++ b/src/typegraph/core/src/utils/postprocess/naming.rs @@ -37,7 +37,7 @@ impl super::PostProcessor for NamingProcessor { acc.path.push(( PathSegment { from: 0, - edge: Edge::ObjectProp(&key[..]), + edge: Edge::ObjectProp(key.clone()), }, Rc::from("root"), )); @@ -56,16 +56,12 @@ struct VisitContext<'a> { tg: &'a Typegraph, user_named: HashSet, } -struct VisitCollector<'b> { +struct VisitCollector { named_types: HashMap>, - path: Vec<(PathSegment<'b>, Rc)>, + path: Vec<(PathSegment, Rc)>, } -fn visit_type<'a: 'b, 'b>( - cx: &'a VisitContext, - acc: &mut VisitCollector<'b>, - id: u32, -) -> anyhow::Result> { +fn visit_type(cx: &VisitContext, acc: &mut VisitCollector, id: u32) -> anyhow::Result> { if let Some(name) = acc.named_types.get(&id) { return Ok(name.clone()); } @@ -112,7 +108,7 @@ fn visit_type<'a: 'b, 'b>( acc.path.push(( PathSegment { from: id, - edge: Edge::ObjectProp(&key[..]), + edge: Edge::ObjectProp(key.clone()), }, name.clone(), )); @@ -215,12 +211,7 @@ fn visit_type<'a: 'b, 'b>( Ok(name) } -fn gen_name<'a: 'b, 'b>( - cx: &'a VisitContext, - acc: &mut VisitCollector<'b>, - id: u32, - ty_name: &str, -) -> Rc { +fn gen_name(cx: &VisitContext, acc: &mut VisitCollector, id: u32, ty_name: &str) -> Rc { let name: Rc = if cx.user_named.contains(&id) { let node = &cx.tg.types[id as usize]; node.base().title.clone().into() @@ -230,7 +221,7 @@ fn gen_name<'a: 'b, 'b>( loop { last -= 1; let (last_segment, last_name) = &acc.path[last]; - title = match last_segment.edge { + title = match &last_segment.edge { // we don't include optional and list nodes in // generated names (useless but also, they might be placeholders) Edge::OptionalItem | Edge::ArrayItem => continue, diff --git a/src/typegraph/core/src/utils/reduce.rs b/src/typegraph/core/src/utils/reduce.rs deleted file mode 100644 index 6bec8a3235..0000000000 --- a/src/typegraph/core/src/utils/reduce.rs +++ /dev/null @@ -1,198 +0,0 @@ -// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. -// SPDX-License-Identifier: MPL-2.0 - -use std::collections::HashMap; - -use crate::{ - errors::Result, - wit::utils::{Reduce, ReducePath, ReduceValue}, -}; - -#[derive(Debug, Clone)] -pub struct PathTree { - pub entries: Vec, - pub name: String, - pub path_infos: ReducePath, -} - -impl PathTree { - fn new(name: String, path_infos: ReducePath) -> PathTree { - Self { - entries: vec![], - name, - path_infos, - } - } - - pub fn is_leaf(&self) -> bool { - self.entries.is_empty() - } - - fn build_helper( - parent: &mut PathTree, - description: &ReducePath, - depth: usize, - ) -> Result<(), String> { - if depth < description.path.len() { - let chunk = &description.path[depth]; - let child = match parent.find(chunk) { - Some(child) => child, - None => { - parent.add(PathTree::new(chunk.to_string(), description.clone())); - parent - .find(chunk) - .ok_or("node incorrectly added into tree".to_string())? - } - }; - PathTree::build_helper(child, description, depth + 1)? - } - Ok(()) - } - - pub fn build_from(reduce: &Reduce) -> Result { - let mut root = PathTree::new( - "root".to_string(), - ReducePath { - path: vec![], - value: ReduceValue { - inherit: false, - payload: None, - }, - }, - ); - for descr in reduce.paths.iter() { - PathTree::build_helper(&mut root, descr, 0)?; - } - Ok(root) - } - - pub fn find(&mut self, other_name: &str) -> Option<&mut PathTree> { - self.entries - .iter_mut() - .find(|entry| entry.name.eq(other_name)) - } - - pub fn add(&mut self, entry: PathTree) { - self.entries.push(entry); - } - - fn print_helper( - lines: &mut impl core::fmt::Write, - node: &PathTree, - depth: u32, - ) -> Result<(), core::fmt::Error> { - if depth >= 1 { - let payload = node.path_infos.value.payload.as_deref().unwrap_or("--"); - let spaces = 4; - let symbol = if node.entries.len() == 1 || depth != 0 { - "└─" - } else { - "├─" - }; - write!( - lines, - "{:indent$}{symbol} [{name} ({payload})]", - "", - name = node.name, - indent = ((depth as usize) - 1) * spaces - )?; - } else { - write!(lines, "{}", node.name)?; - } - - for entry in node.entries.iter() { - PathTree::print_helper(lines, entry, depth + 1)?; - } - Ok(()) - } -} - -impl core::fmt::Display for PathTree { - fn fmt(&self, fmt: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - PathTree::print_helper(fmt, self, 0) - } -} - -// Type utility for wrapping a node with index information -#[derive(Debug, Clone)] -pub struct ItemNode<'a> { - pub parent_index: Option, - pub index: u32, - pub node: &'a PathTree, -} - -// Scheme similar to `types: TypeNode[]` in typegate -// Item node wrappers are ordered in such a way that -// 1. The last items are the leaves -// 2. The first item is guaranteed to be the root node -pub fn flatten_to_sorted_items_array(path_tree: &PathTree) -> Result, String> { - let mut index = 0; - let mut levels = vec![vec![ItemNode { - parent_index: None, - index, - node: path_tree, - }]]; - - loop { - let previous_level = levels.last(); - match previous_level { - Some(parents) => { - let mut current_level = vec![]; - for parent in parents { - for entry in parent.node.entries.iter() { - index += 1; - current_level.push(ItemNode { - parent_index: Some(parent.index), - index, - node: entry, - }); - } - } - if current_level.is_empty() { - // all nodes traversed - break; - } - levels.push(current_level); - } - None => panic!("first level must be populated"), - } - } - - // flatten the tree to a 1D array - let final_size = (index + 1) as usize; - let mut tmp_result = vec![None; final_size]; - - for level in levels { - for item in level { - let pos = item.index as usize; - match tmp_result.get(pos).unwrap() { - None => { - tmp_result[pos] = Some(item); - } - Some(value) => { - return Err(format!( - "index {} is already filled with {:?}", - item.index, value - )) - } - } - } - } - - let mut result = vec![]; - for (i, item) in tmp_result.iter().enumerate() { - result.push(item.clone().ok_or(format!("index {} is vacant", i))?) - } - - Ok(result) -} - -pub fn build_parent_to_child_indices(item_list: &Vec) -> HashMap> { - let mut map: HashMap> = HashMap::new(); - for item in item_list { - if let Some(parent_index) = item.parent_index { - map.entry(parent_index).or_default().push(item.index); - } - } - map -} diff --git a/src/typegraph/core/src/validation/materializers.rs b/src/typegraph/core/src/validation/materializers.rs index 8079249aa5..23c3023b4f 100644 --- a/src/typegraph/core/src/validation/materializers.rs +++ b/src/typegraph/core/src/validation/materializers.rs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: MPL-2.0 use crate::runtimes::{DenoMaterializer, MaterializerData, Runtime}; -use crate::types::{ResolveRef as _, TypeDef, TypeId}; +use crate::types::{AsTypeDefEx as _, TypeDef, TypeId}; use crate::wit::core::TypeFunc; use crate::Result; use crate::{global_store::Store, runtimes::Materializer}; @@ -38,8 +38,8 @@ impl Materializer { } "true" | "false" => { - if let Ok((out_type, _)) = TypeId(func.out).resolve_ref() { - let TypeDef::Boolean(_) = out_type else { + if let Ok(xdef) = TypeId(func.out).as_xdef() { + let TypeDef::Boolean(_) = xdef.type_def else { return Err(errors::invalid_output_type_predefined( &predef.name, "bool", diff --git a/src/typegraph/core/src/validation/types.rs b/src/typegraph/core/src/validation/types.rs index e0969604b3..4f8ecde93d 100644 --- a/src/typegraph/core/src/validation/types.rs +++ b/src/typegraph/core/src/validation/types.rs @@ -2,15 +2,15 @@ // SPDX-License-Identifier: MPL-2.0 use crate::global_store::Store; -use crate::types::{ResolveRef as _, Type, TypeDef, TypeDefExt, TypeId}; +use crate::types::{AsTypeDefEx as _, Type, TypeDef, TypeId}; use crate::wit::core::TypeFunc; use crate::{errors, Result}; impl TypeFunc { pub fn validate(&self) -> Result<()> { - if let Ok((inp_type, _)) = TypeId(self.inp).resolve_ref() { - let TypeDef::Struct(_) = inp_type else { - return Err(errors::invalid_input_type(&inp_type.id().repr()?)); + if let Ok(xdef) = TypeId(self.inp).as_xdef() { + let TypeDef::Struct(_) = xdef.type_def else { + return Err(errors::invalid_input_type(&xdef.id.repr()?)); }; } @@ -22,7 +22,7 @@ impl TypeFunc { } pub fn validate_value(value: &serde_json::Value, type_id: TypeId, path: String) -> Result<()> { - match TypeDef::try_from(type_id)? { + match &type_id.as_xdef()?.type_def { TypeDef::Func(_) => Err("cannot validate function".into()), TypeDef::Struct(inner) => { @@ -157,7 +157,7 @@ pub fn validate_value(value: &serde_json::Value, type_id: TypeId, path: String) } pub(super) mod utils { - use crate::types::{RefTarget, TypeId}; + use crate::types::{FlatTypeRefTarget, TypeDefExt as _, TypeId}; use super::*; @@ -165,22 +165,25 @@ pub(super) mod utils { if left == right { Ok(true) } else { - match left.resolve_ref() { - Ok((left_type, _)) => Ok(right - .resolve_ref() - .map_or(left_type.id() == right, |(right_type, _)| { - left_type.id() == right_type.id() + match left.as_xdef() { + Ok(left_xdef) => Ok(right + .as_xdef() + .map_or(left_xdef.type_def.id() == right, |right_xdef| { + left_xdef.type_def.id() == right_xdef.type_def.id() })), // left is a proxy that could not be resolved // -> right must be a proxy for the types to be equal Err(_) => match (left.as_type()?, right.as_type()?) { (Type::Ref(left_proxy), Type::Ref(right_proxy)) => { - match (left_proxy.target.as_ref(), right_proxy.target.as_ref()) { - (RefTarget::Indirect(left_name), RefTarget::Indirect(right_name)) => { + let left_proxy = left_proxy.flatten(); + let right_proxy = right_proxy.flatten(); + use FlatTypeRefTarget as FRT; + match (left_proxy.target, right_proxy.target) { + (FRT::Indirect(left_name), FRT::Indirect(right_name)) => { Ok(left_name == right_name) } - (RefTarget::Direct(left_def), RefTarget::Direct(right_def)) => { + (FRT::Direct(left_def), FRT::Direct(right_def)) => { Ok(left_def.id() == right_def.id()) } _ => Ok(false), diff --git a/src/typegraph/core/wit/typegraph.wit b/src/typegraph/core/wit/typegraph.wit index 9039965bb1..766757e8bf 100644 --- a/src/typegraph/core/wit/typegraph.wit +++ b/src/typegraph/core/wit/typegraph.wit @@ -66,14 +66,11 @@ interface core { serialize-typegraph: func(params: serialize-params) -> result>, error>; type type-id = u32; - record type-base { - name: option, - // string => json string - runtime-config: option>>, - } with-injection: func(type-id: type-id, injection: string) -> result; + with-config: func(type-id: type-id, config: string) -> result; + record type-proxy { name: string, extras: list>, @@ -88,7 +85,7 @@ interface core { multiple-of: option, enumeration: option> } - integerb: func(data: type-integer, base: type-base) -> result; + integerb: func(data: type-integer) -> result; record type-float { min: option, @@ -98,9 +95,9 @@ interface core { multiple-of: option, enumeration: option> } - floatb: func(data: type-float, base: type-base) -> result; + floatb: func(data: type-float) -> result; - booleanb: func(base: type-base) -> result; + booleanb: func() -> result; record type-string { min: option, @@ -109,7 +106,7 @@ interface core { pattern: option, enumeration: option> } - stringb: func(data: type-string, base: type-base) -> result; + stringb: func(data: type-string) -> result; as-id: func(id: type-id, composite: bool) -> result; @@ -118,7 +115,7 @@ interface core { max: option, allow: option>, } - fileb: func(data: type-file, base: type-base) -> result; + fileb: func(data: type-file) -> result; record type-list { @@ -127,23 +124,23 @@ interface core { max: option, unique-items: option } - listb: func(data: type-list, base: type-base) -> result; + listb: func(data: type-list) -> result; record type-optional { of: type-id, default-item: option } - optionalb: func(data: type-optional, base: type-base) -> result; + optionalb: func(data: type-optional) -> result; record type-union { variants: list, } - unionb: func(data: type-union, base: type-base) -> result; + unionb: func(data: type-union) -> result; record type-either { variants: list, } - eitherb: func(data: type-either, base: type-base) -> result; + eitherb: func(data: type-either) -> result; record type-struct { props: list>, @@ -152,7 +149,7 @@ interface core { max: option, enumeration: option>, } - structb: func(data: type-struct, base: type-base) -> result; + structb: func(data: type-struct) -> result; extend-struct: func(tpe: type-id, props: list>) -> result; get-type-repr: func(id: type-id) -> result; @@ -604,31 +601,11 @@ interface utils { use core.{error}; type type-id = u32; - - // Example: - // reduce({a: 1, { b: {c: g.inherit(), d: [1, 2, 3]}}) - // produces a list of reduce-path - // [ - // { path: [a], value: { inherit: false, payload: 1 } } - // { path: [a, b, c], value: { inherit: true } } - // { path: [a, b, d], value: { inherit: false, payload: [1, 2, 3] } } - // ] - record reduce-value { - inherit: bool, - // json string - payload: option - } - - record reduce-path { + record reduce-entry { path: list, - value: reduce-value, - } - - record reduce { - paths: list + injection-data: string, } - - gen-reduceb: func(supertype-id: type-id, data: reduce) -> result; + reduceb: func(fn-type-id: type-id, entries: list) -> result; add-graphql-endpoint: func(graphql: string) -> result; diff --git a/src/typegraph/deno/deno.json b/src/typegraph/deno/deno.json index 13e720e555..87c6666285 100644 --- a/src/typegraph/deno/deno.json +++ b/src/typegraph/deno/deno.json @@ -1,6 +1,6 @@ { "name": "@typegraph/sdk", - "version": "0.4.11-rc.0", + "version": "0.5.0-rc.1", "publish": { "exclude": [ "!src/gen", diff --git a/src/typegraph/deno/src/providers/prisma.ts b/src/typegraph/deno/src/providers/prisma.ts index f7b780d07e..790d59d07a 100644 --- a/src/typegraph/deno/src/providers/prisma.ts +++ b/src/typegraph/deno/src/providers/prisma.ts @@ -192,5 +192,5 @@ function prismaLink( targetField: arg.field, unique: arg.unique, }); - return new Typedef(typeId, {}); + return new Typedef(typeId); } diff --git a/src/typegraph/deno/src/typegraph.ts b/src/typegraph/deno/src/typegraph.ts index 198918da4e..dd729fff9b 100644 --- a/src/typegraph/deno/src/typegraph.ts +++ b/src/typegraph/deno/src/typegraph.ts @@ -273,5 +273,5 @@ export function genRef(name: string): t.Typedef { if (typeof value == "object") { throw new Error(JSON.stringify(value)); } - return new t.Typedef(value, { name }); + return new t.Typedef(value); } diff --git a/src/typegraph/deno/src/types.ts b/src/typegraph/deno/src/types.ts index 2b56bbfb89..c5065f57a2 100644 --- a/src/typegraph/deno/src/types.ts +++ b/src/typegraph/deno/src/types.ts @@ -6,7 +6,6 @@ import { ParameterTransform, PolicyPerEffect, PolicySpec as WitPolicySpec, - TypeBase, TypeEither, TypeFile, TypeFloat, @@ -16,12 +15,17 @@ import { TypeString, TypeUnion, } from "./gen/typegraph_core.d.ts"; -import { Reduce } from "./gen/typegraph_core.d.ts"; import { FuncParams } from "./gen/typegraph_core.d.ts"; import { Materializer } from "./runtimes/mod.ts"; import { mapValues } from "./deps/mod.ts"; import Policy, { PolicyPerEffectObject } from "./policy.ts"; -import { buildReduceData, serializeRecordValues } from "./utils/func_utils.ts"; +import { + AsIdField, + Base, + BaseEx, + buildReduceEntries, + withBase, +} from "./utils/func_utils.ts"; import { serializeFromParentInjection, serializeGenericInjection, @@ -49,18 +53,6 @@ export type PolicySpec = export type Simplified = Omit; -export type SimplifiedBase = - & { config?: Record } - & Omit< - T, - "runtimeConfig" - >; - -export type AsId = { - asId?: AsIdField; -}; -type AsIdField = boolean | "simple" | "composite"; - export type SimplifiedNumericData = & { enumeration?: number[] } & Omit< @@ -89,13 +81,9 @@ export function getPolicyChain( export class Typedef { readonly name?: string; - readonly runtimeConfig?: Array<[string, string]>; policy: Policy[] | null = null; - constructor(public readonly _id: number, base: Omit) { - this.name = base.name; - this.runtimeConfig = base.runtimeConfig; - } + constructor(public readonly _id: number) {} get repr(): string | null { return core.getTypeRepr(this._id); @@ -135,7 +123,7 @@ export class Typedef { } asTypedef(): Typedef { - return new Typedef(this._id, { name: this.name }); + return new Typedef(this._id); } optional(data: Simplified = {}): Optional { @@ -194,18 +182,16 @@ export class Typedef { } class Boolean extends Typedef { - constructor(_id: number, base: TypeBase) { - super(_id, base); + constructor(_id: number) { + super(_id); } } /** boolean type */ -export function boolean(base: SimplifiedBase = {}): Boolean { - const completeBase = { - ...base, - runtimeConfig: base.config && serializeRecordValues(base.config), - }; - return new Boolean(core.booleanb(completeBase), completeBase); +export function boolean( + base: Base = {}, +): Boolean { + return new Boolean(withBase(core.booleanb(), base)); } class Integer extends Typedef implements Readonly { @@ -216,8 +202,8 @@ class Integer extends Typedef implements Readonly { readonly multipleOf?: number; readonly enumeration?: Int32Array; - constructor(_id: number, data: TypeInteger, base: TypeBase) { - super(_id, base); + constructor(_id: number, data: TypeInteger) { + super(_id); this.min = data.min; this.max = data.max; this.exclusiveMinimum = data.exclusiveMinimum; @@ -228,14 +214,14 @@ class Integer extends Typedef implements Readonly { id(asId: AsIdField = true): Typedef { const id = core.asId(this._id, asId === "composite"); - return new Typedef(id, { name: this.name }); + return new Typedef(id); } } /** integer type */ export function integer( data: SimplifiedNumericData = {}, - base: SimplifiedBase & AsId = {}, + base: BaseEx = {}, ): Integer { const completeData = { ...data, @@ -243,15 +229,7 @@ export function integer( ? new Int32Array(data.enumeration) : undefined, }; - const completeBase = { - ...base, - runtimeConfig: base.config && serializeRecordValues(base.config), - }; - let id = core.integerb(completeData, completeBase); - if (base.asId) { - id = core.asId(id, base.asId === "composite"); - } - return new Integer(id, completeData, completeBase); + return new Integer(withBase(core.integerb(completeData), base), completeData); } class Float extends Typedef implements Readonly { @@ -262,8 +240,8 @@ class Float extends Typedef implements Readonly { readonly multipleOf?: number; readonly enumeration?: Float64Array; - constructor(_id: number, data: TypeFloat, base: TypeBase) { - super(_id, base); + constructor(_id: number, data: TypeFloat) { + super(_id); this.min = data.min; this.max = data.max; this.exclusiveMinimum = data.exclusiveMinimum; @@ -276,7 +254,7 @@ class Float extends Typedef implements Readonly { /** floating-point type */ export function float( data: SimplifiedNumericData = {}, - base: SimplifiedBase = {}, + base: Base = {}, ): Float { const completeData = { ...data, @@ -284,14 +262,9 @@ export function float( ? new Float64Array(data.enumeration) : undefined, }; - const completeBase = { - ...base, - runtimeConfig: base.config && serializeRecordValues(base.config), - }; return new Float( - core.floatb(completeData, completeBase), + withBase(core.floatb(completeData), base), completeData, - completeBase, ); } @@ -302,8 +275,8 @@ class StringT extends Typedef implements Readonly { readonly pattern?: string; readonly enumeration?: string[]; - constructor(_id: number, data: TypeString, base: TypeBase) { - super(_id, base); + constructor(_id: number, data: TypeString) { + super(_id); this.min = data.min; this.max = data.max; this.pattern = data.pattern; @@ -313,28 +286,20 @@ class StringT extends Typedef implements Readonly { id(asId: AsIdField = true): Typedef { const id = core.asId(this._id, asId === "composite"); - return new Typedef(id, { name: this.name }); + return new Typedef(id); } } /** string type */ export function string( data: TypeString = {}, - base: SimplifiedBase & AsId = {}, + base: BaseEx = {}, ): StringT { - const completeBase = { - ...base, - runtimeConfig: base.config && serializeRecordValues(base.config), - }; - let id = core.stringb(data, completeBase); - if (base.asId) { - id = core.asId(id, base.asId === "composite"); - } - return new StringT(id, data, completeBase); + return new StringT(withBase(core.stringb(data), base), data); } /** uuid type */ -export function uuid(base: SimplifiedBase & AsId = {}): StringT { +export function uuid(base: BaseEx = {}): StringT { return string({ format: "uuid" }, base); } @@ -382,7 +347,7 @@ export function phone(): StringT { /** string enum type */ export function enum_( variants: string[], - base: SimplifiedBase = {}, + base: Base = {}, ): StringT { return string( { @@ -397,8 +362,8 @@ class File extends Typedef { readonly max?: number; readonly allow?: string[]; - constructor(_id: number, data: TypeFile, base: TypeBase) { - super(_id, base); + constructor(_id: number, data: TypeFile) { + super(_id); this.min = data.min; this.max = data.max; this.allow = data.allow; @@ -408,13 +373,12 @@ class File extends Typedef { /** file type */ export function file( data: Simplified = {}, - base: SimplifiedBase = {}, + base: Base = {}, ): File { - const completeBase = { - ...base, - runtimeConfig: base.config && serializeRecordValues(base.config), - }; - return new File(core.fileb(data, completeBase), data, completeBase); + return new File( + withBase(core.fileb(data), base), + data, + ); } class List extends Typedef { @@ -423,8 +387,8 @@ class List extends Typedef { readonly items?: number; readonly uniqueItems?: boolean; - constructor(_id: number, data: TypeList, base: TypeBase) { - super(_id, base); + constructor(_id: number, data: TypeList) { + super(_id); this.min = data.min; this.max = data.max; this.items = data.of; @@ -436,20 +400,15 @@ class List extends Typedef { export function list( variant: Typedef, data: Simplified = {}, - base: SimplifiedBase = {}, + base: Base = {}, ): List { const completeData = { of: variant._id, ...data, } as TypeList; - const completeBase = { - ...base, - runtimeConfig: base.config && serializeRecordValues(base.config), - }; return new List( - core.listb(completeData, completeBase), + withBase(core.listb(completeData), base), completeData, - completeBase, ); } @@ -457,8 +416,8 @@ class Optional extends Typedef { readonly item?: number; readonly defaultItem?: string; - constructor(_id: number, data: TypeOptional, base: TypeBase) { - super(_id, base); + constructor(_id: number, data: TypeOptional) { + super(_id); this.item = data.of; this.defaultItem = data.defaultItem; } @@ -468,29 +427,24 @@ class Optional extends Typedef { export function optional( variant: Typedef, data: Simplified = {}, - base: SimplifiedBase = {}, + base: Base = {}, ): Optional { const completeData = { of: variant._id, ...data, defaultItem: JSON.stringify(data.defaultItem), } as TypeOptional; - const completeBase = { - ...base, - runtimeConfig: base.config && serializeRecordValues(base.config), - }; return new Optional( - core.optionalb(completeData, completeBase), + withBase(core.optionalb(completeData), base), completeData, - completeBase, ); } class Union extends Typedef { readonly variants: Array; - constructor(_id: number, data: TypeUnion, base: TypeBase) { - super(_id, base); + constructor(_id: number, data: TypeUnion) { + super(_id); this.variants = Array.from(data.variants); } } @@ -498,23 +452,19 @@ class Union extends Typedef { /** union type */ export function union( variants: Array, - base: SimplifiedBase = {}, + base: Base = {}, ): Union { const data = { variants: new Uint32Array(variants.map((variant) => variant._id)), }; - const completeBase = { - ...base, - runtimeConfig: base.config && serializeRecordValues(base.config), - }; - return new Union(core.unionb(data, completeBase), data, completeBase); + return new Union(withBase(core.unionb(data), base), data); } class Either extends Typedef { readonly variants: Array; - constructor(_id: number, data: TypeEither, base: TypeBase) { - super(_id, base); + constructor(_id: number, data: TypeEither) { + super(_id); this.variants = Array.from(data.variants); } } @@ -522,22 +472,18 @@ class Either extends Typedef { /** either type */ export function either( variants: Array, - base: SimplifiedBase = {}, + base: Base = {}, ): Either { const data = { variants: new Uint32Array(variants.map((variant) => variant._id)), }; - const completeBase = { - ...base, - runtimeConfig: base.config && serializeRecordValues(base.config), - }; - return new Either(core.eitherb(data, completeBase), data, completeBase); + return new Either(withBase(core.eitherb(data), base), data); } export class Struct

extends Typedef { props: P; - constructor(_id: number, { props }: { props: P }, base: TypeBase) { - super(_id, base); + constructor(_id: number, { props }: { props: P }) { + super(_id); this.props = props; } } @@ -545,24 +491,19 @@ export class Struct

extends Typedef { /** struct type */ export function struct

( props: P, - base: SimplifiedBase & { additionalProps?: boolean } = {}, + { additionalProps, ...base }: Base & { + additionalProps?: boolean; + } = {}, ): Struct

{ - const completeBase = { - ...base, - runtimeConfig: base.config && serializeRecordValues(base.config), - }; return new Struct( - core.structb( - { + withBase( + core.structb({ props: Object.entries(props).map(([name, typ]) => [name, typ._id]), - additionalProps: completeBase.additionalProps ?? false, - }, - completeBase, + additionalProps: additionalProps ?? false, + }), + base, ), - { - props, - }, - completeBase, + { props }, ); } @@ -628,7 +569,7 @@ export class Func< parameterTransform: ParameterTransform | null = null, config: FuncConfig | null = null, ) { - super(_id, {}); + super(_id); this.inp = inp; this.out = out; this.mat = mat; @@ -646,7 +587,7 @@ export class Func< return func( this.inp, - new Typedef(output, {}), + new Typedef(output), this.mat, this.parameterTransform, this.config, @@ -657,13 +598,19 @@ export class Func< * see [parameter transformations](https://metatype.dev/docs/reference/types/parameter-transformations) */ reduce(value: Record): Func { - const data: Reduce = { - paths: buildReduceData(value), - }; - - const reducedId = wit_utils.genReduceb(this.inp._id, data); + const reducedId = wit_utils.reduceb( + this._id, + buildReduceEntries(value), + ); - return func(new Typedef(reducedId, {}), this.out, this.mat); + return new Func( + reducedId, + this.inp, + this.out, + this.mat, + this.parameterTransform, + this.config, + ); } /** apply injections to the input type; @@ -682,7 +629,7 @@ export class Func< const transformData = core.getTransformData(this.inp._id, transformTree); return func( - new Typedef(transformData.queryInput, {}), + new Typedef(transformData.queryInput), this.out, this.mat, transformData.parameterTransform, @@ -701,8 +648,8 @@ export class Func< /** */ static fromTypeFunc(data: FuncParams): Func { return func( - new Typedef(data.inp, {}) as Struct<{ [key: string]: Typedef }>, - new Typedef(data.out, {}), + new Typedef(data.inp) as Struct<{ [key: string]: Typedef }>, + new Typedef(data.out), { _id: data.mat }, ); } diff --git a/src/typegraph/deno/src/utils/func_utils.ts b/src/typegraph/deno/src/utils/func_utils.ts index 0fbed23e34..7f39df0c2b 100644 --- a/src/typegraph/deno/src/utils/func_utils.ts +++ b/src/typegraph/deno/src/utils/func_utils.ts @@ -6,10 +6,11 @@ import { TgFinalizationResult, TypegraphOutput, } from "../typegraph.ts"; -import { ReducePath } from "../gen/typegraph_core.d.ts"; +import { ReduceEntry } from "../gen/typegraph_core.d.ts"; import { serializeStaticInjection } from "./injection_utils.ts"; import { SerializeParams } from "../gen/typegraph_core.d.ts"; import { log } from "../io.ts"; +import { core } from "../wit.ts"; export function stringifySymbol(symbol: symbol): string { const name = symbol.toString().match(/\((.+)\)/)?.[1]; @@ -19,49 +20,107 @@ export function stringifySymbol(symbol: symbol): string { return name; } +export type ConfigSpec = + | Record + | Array>; + +export function serializeConfig(config: ConfigSpec | undefined): string | null { + if (!config) { + return null; + } + const array = Array.isArray(config) ? config : [config]; + if (array.length === 0) { + return null; + } + return JSON.stringify(array.reduce>((acc, item) => { + if (typeof item === "string") { + return { ...acc, [item]: true }; + } else { + return { ...acc, ...item }; + } + }, {} as Record)); +} + +export type AsIdField = boolean | "simple" | "composite"; +export interface Base { + config?: ConfigSpec; + name?: string; +} +export interface BaseEx extends Base { + asId?: AsIdField; +} + +function withConfig(id: number, config: ConfigSpec | undefined): number { + if (!config) { + return id; + } + const serialized = serializeConfig(config); + if (!serialized) { + return id; + } + return core.withConfig(id, serialized); +} + +export function withBase(id: number, base: BaseEx): number { + let newId = id; + if (base.asId) { + newId = core.asId(newId, base.asId === "composite"); + } + if (base.config) { + newId = withConfig(newId, base.config); + } + if (base.name) { + newId = core.renameType(newId, base.name); + } + return newId; +} + export function serializeRecordValues( obj: Record, ): Array<[string, string]> { return Object.entries(obj).map(([k, v]) => [k, JSON.stringify(v)]); } -export function buildReduceData( +export function buildReduceEntries( node: InheritDef | unknown, - paths: ReducePath[] = [], + entries: ReduceEntry[] = [], currPath: string[] = [], -): ReducePath[] { +): ReduceEntry[] { if (node === null || node === undefined) { throw new Error(`unsupported value "${node}" at ${currPath.join(".")}`); } if (node instanceof InheritDef) { - paths.push({ + if (!node.payload) { + return entries; + } + entries.push({ path: currPath, - value: { inherit: true, payload: node.payload }, + injectionData: node.payload, }); - return paths; + return entries; } if (typeof node === "object") { if (Array.isArray(node)) { - paths.push({ + entries.push({ path: currPath, - value: { inherit: false, payload: serializeStaticInjection(node) }, + injectionData: serializeStaticInjection(node), }); - return paths; + return entries; } for (const [k, v] of Object.entries(node)) { - buildReduceData(v, paths, [...currPath, k]); + buildReduceEntries(v, entries, [...currPath, k]); } - return paths; + return entries; } const allowed = ["number", "string", "boolean"]; if (allowed.includes(typeof node)) { - paths.push({ + entries.push({ path: currPath, - value: { inherit: false, payload: serializeStaticInjection(node) }, + injectionData: serializeStaticInjection(node), }); - return paths; + return entries; } throw new Error(`unsupported type "${typeof node}" at ${currPath.join(".")}`); } diff --git a/src/typegraph/deno/src/utils/injection_utils.ts b/src/typegraph/deno/src/utils/injection_utils.ts index 278d2f4e28..6bb05242cb 100644 --- a/src/typegraph/deno/src/utils/injection_utils.ts +++ b/src/typegraph/deno/src/utils/injection_utils.ts @@ -4,7 +4,6 @@ import { CREATE, DELETE, READ, UPDATE } from "../effects.ts"; import { InjectionSource, InjectionValue } from "./type_utils.ts"; import { stringifySymbol } from "./func_utils.ts"; -import { genRef } from "./../typegraph.ts"; export function serializeInjection( source: InjectionSource, @@ -33,7 +32,7 @@ export function serializeInjection( } if (value === null) { - return JSON.stringify({ source, data: {} }); + return JSON.stringify({ source, data: { value: null } }); } return JSON.stringify({ source, diff --git a/src/typegraph/python/pyproject.toml b/src/typegraph/python/pyproject.toml index ff368e350f..3f610adc99 100644 --- a/src/typegraph/python/pyproject.toml +++ b/src/typegraph/python/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "typegraph" -version = "0.4.11-rc.0" +version = "0.5.0-rc.1" description = "Declarative API development platform. Build backend components with WASM, Typescript and Python, no matter where and how your (legacy) systems are." authors = ["Metatype Contributors "] license = "MPL-2.0" diff --git a/src/typegraph/python/typegraph/__init__.py b/src/typegraph/python/typegraph/__init__.py index e501ed3a30..34cc618028 100644 --- a/src/typegraph/python/typegraph/__init__.py +++ b/src/typegraph/python/typegraph/__init__.py @@ -5,4 +5,4 @@ from typegraph.policy import Policy # noqa from typegraph import effects as fx # noqa -version = "0.4.11-rc.0" +version = "0.5.0-rc.1" diff --git a/src/typegraph/python/typegraph/injection.py b/src/typegraph/python/typegraph/injection.py index 5ec8156b27..611d42b861 100644 --- a/src/typegraph/python/typegraph/injection.py +++ b/src/typegraph/python/typegraph/injection.py @@ -2,7 +2,7 @@ # SPDX-License-Identifier: MPL-2.0 import json -from typing import Callable, Dict, Union +from typing import Callable, Dict, Union, Optional from typegraph.effects import EffectType @@ -23,7 +23,7 @@ def serialize_injection( return json.dumps({"source": source, "data": value_per_effect}) if value is None: - return json.dumps({"source": source, "data": {}}) + return json.dumps({"source": source, "data": {"value": None}}) return json.dumps({"source": source, "data": {"value": value_mapper(value)}}) @@ -56,7 +56,7 @@ def serialize_parent_injection(value: Union[str, Dict[EffectType, str]]): class InheritDef: - payload: str = None + payload: Optional[str] = None def set(self, value: Union[any, Dict[EffectType, any]]): self.payload = serialize_static_injection(value) diff --git a/src/typegraph/python/typegraph/t.py b/src/typegraph/python/typegraph/t.py index 860b254068..71ff9ffa91 100644 --- a/src/typegraph/python/typegraph/t.py +++ b/src/typegraph/python/typegraph/t.py @@ -12,7 +12,6 @@ FuncParams, ParameterTransform, TypeList, - TypeBase, TypeEither, TypeFile, TypeFloat, @@ -25,7 +24,6 @@ PolicySpec as WitPolicySpec, ) from typegraph.gen.exports.runtimes import EffectRead -from typegraph.gen.exports.utils import Reduce from typegraph.gen.types import Err from typegraph.graph.typegraph import ( core, @@ -36,6 +34,7 @@ ApplyFromSecret, ApplyFromStatic, ) +from typegraph.io import Log from typegraph.injection import ( serialize_generic_injection, serialize_parent_injection, @@ -45,25 +44,24 @@ from typegraph.runtimes.deno import Materializer from typegraph.utils import ( ConfigSpec, - build_reduce_data, + build_reduce_entries, serialize_config, ) from typegraph.wit import wit_utils # TODO: better approach? og_list = list +og_float = float class typedef: _id: int - runtime_config: Optional[List[Tuple[str, str]]] injection: Optional[str] policy_chain: Optional[List[WitPolicySpec]] name: Optional[str] def __init__(self, id: int): self._id = id - self.runtime_config = None self.injection = None self.policy_chain = None self.name = None @@ -176,6 +174,33 @@ def __getattr__(self, name): AsId = Union[bool, Literal["simple", "composite"]] +def _with_ext( + type_id: int, + as_id: Optional[AsId], + raw_config: Optional[ConfigSpec], + name: Optional[str], +) -> int: + if as_id: + res = core.as_id(store, type_id, as_id == "composite") + if isinstance(res, Err): + raise Exception(res.value) + type_id = res.value + config = serialize_config(raw_config) + if config: + res = core.with_config(store, type_id, config) + if isinstance(res, Err): + raise Exception(res.value) + type_id = res.value + if name: + res = core.rename_type(store, type_id, name) + if isinstance(res, Err): + raise Exception(res.value) + type_id = res.value + if name == "ExtendedProfile": + Log.info(f">>> type#{type_id}; as_id={as_id}; config={config}; name={name}") + return type_id + + class integer(typedef): min: Optional[int] = None max: Optional[int] = None @@ -206,26 +231,19 @@ def __init__( multiple_of=multiple_of, enumeration=enum, ) - runtime_config = serialize_config(config) res = core.integerb( store, data, - TypeBase(name=name, runtime_config=runtime_config), ) if isinstance(res, Err): raise Exception(res.value) - if as_id: - res = core.as_id(store, res.value, as_id == "composite") - if isinstance(res, Err): - raise Exception(res.value) - super().__init__(res.value) + super().__init__(_with_ext(res.value, as_id, config, name)) self.min = min self.max = max self.exclusive_minimum = exclusive_minimum self.exclusive_maximum = exclusive_maximum self.multiple_of = multiple_of self.enumeration = enum - self.runtime_config = runtime_config self.as_id = as_id def id(self, as_id: AsId = True) -> "typedef": # "integer" @@ -256,41 +274,40 @@ def __init__( config: Optional[ConfigSpec] = None, ): data = TypeFloat( - min=min, - max=max, - exclusive_minimum=exclusive_minimum, - exclusive_maximum=exclusive_maximum, - multiple_of=multiple_of, + min=og_float(min) if min is not None else None, + max=og_float(max) if max is not None else None, + exclusive_minimum=og_float(exclusive_minimum) + if exclusive_minimum is not None + else None, + exclusive_maximum=og_float(exclusive_maximum) + if exclusive_maximum is not None + else None, + multiple_of=og_float(multiple_of) if multiple_of is not None else None, enumeration=enum, ) - runtime_config = serialize_config(config) res = core.floatb( store, data, - TypeBase(name=name, runtime_config=runtime_config), ) if isinstance(res, Err): raise Exception(res.value) - super().__init__(res.value) + super().__init__(_with_ext(res.value, None, config, name)) self.min = min self.max = max self.exclusive_minimum = exclusive_minimum self.exclusive_maximum = exclusive_maximum self.multiple_of = multiple_of self.enumeration = enum - self.runtime_config = runtime_config class boolean(typedef): def __init__( self, *, name: Optional[str] = None, config: Optional[ConfigSpec] = None ): - runtime_config = serialize_config(config) - res = core.booleanb(store, TypeBase(name=name, runtime_config=runtime_config)) + res = core.booleanb(store) if isinstance(res, Err): raise Exception(res.value) - super().__init__(res.value) - self.runtime_config = runtime_config + super().__init__(_with_ext(res.value, None, config, name)) class string(typedef): @@ -321,25 +338,18 @@ def __init__( min=min, max=max, pattern=pattern, format=format, enumeration=enum_variants ) - runtime_config = serialize_config(config) res = core.stringb( store, data, - TypeBase(name=name, runtime_config=runtime_config), ) if isinstance(res, Err): raise Exception(res.value) - if as_id: - res = core.as_id(store, res.value, as_id == "composite") - if isinstance(res, Err): - raise Exception(res.value) - super().__init__(res.value) + super().__init__(_with_ext(res.value, as_id, config, name)) self.min = min self.max = max self.pattern = pattern self.format = format self.enumeration = enum - self.runtime_config = runtime_config self.as_id = as_id def id(self, as_id: AsId = True) -> "typedef": # "integer" @@ -410,6 +420,7 @@ def __init__( max: Optional[int] = None, allow: Optional[List[str]] = None, config: Optional[ConfigSpec] = None, + name: Optional[str] = None, ): data = TypeFile( min=min, @@ -417,16 +428,14 @@ def __init__( allow=allow, ) - runtime_config = serialize_config(config) res = core.fileb( store, data, - TypeBase(name=None, runtime_config=runtime_config), ) if isinstance(res, Err): raise Exception(res.value) - super().__init__(res.value) + super().__init__(_with_ext(res.value, None, config, name)) self.min = min self.max = max self.allow = allow @@ -454,20 +463,17 @@ def __init__( unique_items=unique_items, ) - runtime_config = serialize_config(config) res = core.listb( store, data, - TypeBase(name=name, runtime_config=runtime_config), ) if isinstance(res, Err): raise Exception(res.value) - super().__init__(res.value) + super().__init__(_with_ext(res.value, None, config, name)) self.min = min self.max = max self.items = items self.unique_items = unique_items - self.runtime_config = runtime_config class optional(typedef): @@ -486,18 +492,15 @@ def __init__( default_item=None if default_item is None else JsonLib.dumps(default_item), ) - runtime_config = serialize_config(config) res = core.optionalb( store, data, - TypeBase(name=name, runtime_config=runtime_config), ) if isinstance(res, Err): raise Exception(res.value) - super().__init__(res.value) + super().__init__(_with_ext(res.value, None, config, name)) self.item = item self.default_item = default_item - self.runtime_config = runtime_config class union(typedef): @@ -511,17 +514,14 @@ def __init__( ): data = TypeUnion(variants=og_list(map(lambda v: v._id, variants))) - runtime_config = serialize_config(config) res = core.unionb( store, data, - TypeBase(name=name, runtime_config=runtime_config), ) if isinstance(res, Err): raise Exception(res.value) - super().__init__(res.value) + super().__init__(_with_ext(res.value, None, config, name)) self.variants = variants - self.runtime_config = runtime_config class either(typedef): @@ -534,18 +534,14 @@ def __init__( config: Optional[ConfigSpec] = None, ): data = TypeEither(variants=og_list(map(lambda v: v._id, variants))) - - runtime_config = serialize_config(config) res = core.eitherb( store, data, - TypeBase(name=name, runtime_config=runtime_config), ) if isinstance(res, Err): raise Exception(res.value) - super().__init__(res.value) + super().__init__(_with_ext(res.value, None, config, name)) self.variants = variants - self.runtime_config = runtime_config class struct(typedef): @@ -614,17 +610,14 @@ def __init__( enumeration=[JsonLib.dumps(v) for v in enum] if enum else None, ) - runtime_config = serialize_config(config) res = core.structb( store, data, - base=TypeBase(name=name, runtime_config=runtime_config), ) if isinstance(res, Err): raise Exception(res.value) - super().__init__(res.value) + super().__init__(_with_ext(res.value, None, config, name)) self.props = props - self.runtime_config = runtime_config self.enumeration = enum def extend(self, props: Dict[str, typedef]): @@ -679,19 +672,24 @@ def __init__( rate_calls: bool = False, rate_weight: Optional[int] = None, parameter_transform: Optional[ParameterTransform] = None, + type_id: Optional[int] = None, ): - data = TypeFunc( - inp=inp._id, - out=out._id, - parameter_transform=parameter_transform, - mat=mat.id, - rate_calls=rate_calls, - rate_weight=rate_weight, - ) - res = core.funcb(store, data) - if isinstance(res, Err): - raise Exception(res.value) - id = res.value + def register(): + data = TypeFunc( + inp=inp._id, + out=out._id, + parameter_transform=parameter_transform, + mat=mat.id, + rate_calls=rate_calls, + rate_weight=rate_weight, + ) + res = core.funcb(store, data) + if isinstance(res, Err): + raise Exception(res.value) + return res.value + + id = register() if type_id is None else type_id + super().__init__(id) self.inp = inp self.out = out @@ -729,20 +727,21 @@ def extend(self, props: Dict[str, typedef]): ) def reduce(self, value: Dict[str, Any]) -> "func": - data = Reduce(paths=build_reduce_data(value, [], [])) - reduced_id = wit_utils.gen_reduceb(store, self.inp._id, data=data) + reduce_entries = build_reduce_entries(value, [], []) + reduced_id = wit_utils.reduceb(store, self._id, reduce_entries) if isinstance(reduced_id, Err): raise Exception(reduced_id.value) # TODO typedef(...).as_struct() return func( - typedef(id=reduced_id.value), + self.inp, self.out, self.mat, parameter_transform=self.parameter_transform, rate_calls=self.rate_calls, rate_weight=self.rate_weight, + type_id=reduced_id.value, ) def apply(self, value: ApplyParamObjectNode) -> "func": diff --git a/src/typegraph/python/typegraph/utils.py b/src/typegraph/python/typegraph/utils.py index d67097c23e..c7b091a733 100644 --- a/src/typegraph/python/typegraph/utils.py +++ b/src/typegraph/python/typegraph/utils.py @@ -3,10 +3,10 @@ import json from functools import reduce -from typing import Any, Dict, List, Optional, Tuple, Union +from typing import Any, Dict, List, Optional, Union from typegraph.gen.exports.core import SerializeParams -from typegraph.gen.exports.utils import ReducePath, ReduceValue +from typegraph.gen.exports.utils import ReduceEntry from typegraph.graph.shared_types import FinalizationResult, TypegraphOutput from typegraph.injection import InheritDef, serialize_static_injection from typegraph.wit import store, wit_utils @@ -18,57 +18,55 @@ ConfigSpec = Union[List[Union[str, Dict[str, Any]]], Dict[str, Any]] -def serialize_config(config: Optional[ConfigSpec]) -> Optional[List[Tuple[str, str]]]: +def serialize_config(config: Optional[ConfigSpec]) -> Optional[str]: if config is None: return None if isinstance(config, list): - return reduce( - lambda acc, c: ( - acc + [(c, "true")] if isinstance(c, str) else acc + serialize_config(c) - ), - config, - [], - ) + lst = config + else: + lst = [config] + + if len(lst) == 0: + return None - return [(k, json.dumps(v)) for k, v in config.items()] + config_object = reduce( + lambda acc, conf: acc | ({conf: True} if isinstance(conf, str) else conf), + lst, + {}, + ) + return json.dumps(config_object) -def build_reduce_data(node: Any, paths: List[ReducePath], curr_path: List[str]): +def build_reduce_entries(node: Any, paths: List[ReduceEntry], curr_path: List[str]): if node is None: raise Exception(f"unsupported value {str(node)} at {'.'.join(curr_path)},") if isinstance(node, InheritDef): - paths.append( - ReducePath( - path=curr_path, value=ReduceValue(inherit=True, payload=node.payload) - ) - ) + if node.payload is None: + return paths + paths.append(ReduceEntry(path=curr_path, injection_data=node.payload)) return paths if isinstance(node, list): paths.append( - ReducePath( + ReduceEntry( path=curr_path, - value=ReduceValue( - inherit=False, payload=serialize_static_injection(node) - ), + injection_data=serialize_static_injection(node), ) ) return paths if isinstance(node, dict): for k, v in node.items(): - build_reduce_data(v, paths, curr_path + [k]) + build_reduce_entries(v, paths, curr_path + [k]) return paths if isinstance(node, int) or isinstance(node, str) or isinstance(node, bool): paths.append( - ReducePath( + ReduceEntry( path=curr_path, - value=ReduceValue( - inherit=False, payload=serialize_static_injection(node) - ), + injection_data=serialize_static_injection(node), ) ) return paths diff --git a/src/xtask/Cargo.toml b/src/xtask/Cargo.toml index 9f5665d386..1c4e7b1578 100644 --- a/src/xtask/Cargo.toml +++ b/src/xtask/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "xtask" -version = "0.4.11-rc.0" +version = "0.5.0-rc.1" edition = "2021" # this allows us to exclude the rust files diff --git a/tests/dedup/dedup_test.ts b/tests/dedup/dedup_test.ts index e0a8f1c597..c6985433f9 100644 --- a/tests/dedup/dedup_test.ts +++ b/tests/dedup/dedup_test.ts @@ -25,7 +25,7 @@ Meta.test({ } assertEquals(ints.length, 2); assert(ints.some((ty) => ty.title == "namedInt")); - assertEquals(strs.length, 4); + assertEquals(strs.length, 3); assert(strs.some((ty) => ty.format == "uuid")); - assertEquals(strs.filter((ty) => ty.format == "date-time").length, 2); + assertEquals(strs.filter((ty) => ty.format == "date-time").length, 1); }); diff --git a/tests/e2e/cli/dev_test.ts b/tests/e2e/cli/dev_test.ts index fcb959e924..b55555bd34 100644 --- a/tests/e2e/cli/dev_test.ts +++ b/tests/e2e/cli/dev_test.ts @@ -273,7 +273,6 @@ Meta.test({ }, async (t) => { await $`bash build.sh`.cwd(examplesDir.join("typegraphs/metagen/rs")); - const port = String(t.port + 1); const metadev = new Deno.Command("meta-full", { cwd: examplesDir.toString(), args: [ @@ -282,7 +281,7 @@ Meta.test({ import.meta.resolve("../../../src/typegate/src/main.ts"), `--import-map-url`, import.meta.resolve("../../../import_map.json"), - `--gate=http://localhost:${port}`, + `--gate=http://localhost:0`, ], stdout: "piped", stderr: "piped", diff --git a/tests/e2e/typegraph/__snapshots__/typegraph_test.ts.snap b/tests/e2e/typegraph/__snapshots__/typegraph_test.ts.snap index 9b0427aeac..2f6d86db09 100644 --- a/tests/e2e/typegraph/__snapshots__/typegraph_test.ts.snap +++ b/tests/e2e/typegraph/__snapshots__/typegraph_test.ts.snap @@ -7,9 +7,7 @@ snapshot[`typegraphs creation 1`] = ` { "type": "object", "title": "test-complex-types", - "runtime": 0, "policies": [], - "config": {}, "properties": { "test": 1 }, @@ -21,13 +19,13 @@ snapshot[`typegraphs creation 1`] = ` { "type": "function", "title": "root_test_fn", - "runtime": 0, "policies": [ 0 ], - "config": {}, "input": 2, "output": 18, + "injections": {}, + "runtimeConfig": null, "materializer": 0, "rate_weight": null, "rate_calls": false @@ -35,9 +33,7 @@ snapshot[`typegraphs creation 1`] = ` { "type": "object", "title": "ComplexType", - "runtime": 0, "policies": [], - "config": {}, "properties": { "a_string": 3, "a_float": 4, @@ -55,60 +51,46 @@ snapshot[`typegraphs creation 1`] = ` { "type": "string", "title": "ComplexType_a_string_string", - "runtime": 0, - "policies": [], - "config": {} + "policies": [] }, { "type": "float", "title": "ComplexType_a_float_float", - "runtime": 0, "policies": [], - "config": {}, "minimum": 1.0, "multipleOf": 2.0 }, { "type": "string", "title": "ComplexType_an_enum_string_enum", - "runtime": 0, "policies": [], "enum": [ "\\\\"one\\\\"", "\\\\"two\\\\"" - ], - "config": {} + ] }, { "type": "integer", "title": "ComplexType_an_integer_enum_integer_enum", - "runtime": 0, "policies": [], "enum": [ "1", "2" - ], - "config": { - "key": "value" - } + ] }, { "type": "float", "title": "ComplexType_a_float_enum_float", - "runtime": 0, "policies": [], "enum": [ "1.5", "2.5" - ], - "config": {} + ] }, { "type": "object", "title": "ComplexType_a_struct_struct", - "runtime": 0, "policies": [], - "config": {}, "properties": { "value": 9 }, @@ -118,33 +100,25 @@ snapshot[`typegraphs creation 1`] = ` { "type": "float", "title": "ComplexType_a_struct_struct_value_float", - "runtime": 0, - "policies": [], - "config": {} + "policies": [] }, { "type": "optional", "title": "ComplexType_nested_ComplexType_nested_ComplexType_nested_either_list_optional", - "runtime": 0, "policies": [], - "config": {}, "item": 11, "default_value": null }, { "type": "list", "title": "ComplexType_nested_ComplexType_nested_either_list", - "runtime": 0, "policies": [], - "config": {}, "items": 12 }, { "type": "either", "title": "ComplexType_nested_either", - "runtime": 0, "policies": [], - "config": {}, "oneOf": [ 3, 13 @@ -153,16 +127,12 @@ snapshot[`typegraphs creation 1`] = ` { "type": "integer", "title": "ComplexType_nested_either_t1_integer", - "runtime": 0, - "policies": [], - "config": {} + "policies": [] }, { "type": "object", "title": "SomeType", - "runtime": 0, "policies": [], - "config": {}, "properties": { "one": 15, "two": 16 @@ -173,35 +143,27 @@ snapshot[`typegraphs creation 1`] = ` { "type": "list", "title": "Two", - "runtime": 0, "policies": [], - "config": {}, "items": 13, "minItems": 3 }, { "type": "optional", "title": "SomeType_two_SomeType_optional", - "runtime": 0, "policies": [], - "config": {}, "item": 14, "default_value": null }, { "type": "string", "title": "ComplexType_an_email_string_email", - "runtime": 0, "policies": [], - "config": {}, "format": "email" }, { "type": "boolean", "title": "root_test_fn_output", - "runtime": 0, - "policies": [], - "config": {} + "policies": [] } ], "materializers": [ @@ -309,9 +271,7 @@ snapshot[`typegraphs creation 2`] = ` { "type": "object", "title": "test-multiple-runtimes", - "runtime": 0, "policies": [], - "config": {}, "properties": { "add": 1, "multiply": 4 @@ -325,13 +285,13 @@ snapshot[`typegraphs creation 2`] = ` { "type": "function", "title": "root_add_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, "input": 2, "output": 3, + "injections": {}, + "runtimeConfig": null, "materializer": 0, "rate_weight": null, "rate_calls": false @@ -339,9 +299,7 @@ snapshot[`typegraphs creation 2`] = ` { "type": "object", "title": "root_add_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { "first": 3, "second": 3 @@ -352,43 +310,21 @@ snapshot[`typegraphs creation 2`] = ` { "type": "float", "title": "root_add_fn_input_first_float", - "runtime": 1, - "policies": [], - "config": {} + "policies": [] }, { "type": "function", "title": "root_multiply_fn", - "runtime": 0, "policies": [ 0 ], - "config": {}, - "input": 5, - "output": 6, + "input": 2, + "output": 3, + "injections": {}, + "runtimeConfig": null, "materializer": 2, "rate_weight": null, "rate_calls": false - }, - { - "type": "object", - "title": "root_multiply_fn_input", - "runtime": 0, - "policies": [], - "config": {}, - "properties": { - "first": 6, - "second": 6 - }, - "id": [], - "required": [] - }, - { - "type": "float", - "title": "root_multiply_fn_input_first_float", - "runtime": 0, - "policies": [], - "config": {} } ], "materializers": [ @@ -481,9 +417,7 @@ snapshot[`typegraphs creation 3`] = ` { "type": "object", "title": "test-types", - "runtime": 0, "policies": [], - "config": {}, "properties": { "one": 1, "two": 6, @@ -499,13 +433,13 @@ snapshot[`typegraphs creation 3`] = ` { "type": "function", "title": "root_one_fn", - "runtime": 0, "policies": [ 0 ], - "config": {}, "input": 2, "output": 5, + "injections": {}, + "runtimeConfig": null, "materializer": 0, "rate_weight": null, "rate_calls": false @@ -513,9 +447,7 @@ snapshot[`typegraphs creation 3`] = ` { "type": "object", "title": "root_one_fn_input", - "runtime": 0, "policies": [], - "config": {}, "properties": { "a": 3, "b": 4 @@ -526,37 +458,31 @@ snapshot[`typegraphs creation 3`] = ` { "type": "integer", "title": "root_one_fn_input_a_integer", - "runtime": 0, - "policies": [], - "config": {} + "policies": [] }, { "type": "integer", "title": "root_one_fn_input_b_integer", - "runtime": 0, "policies": [], - "config": {}, "minimum": 12 }, { "type": "integer", "title": "root_one_fn_output", - "runtime": 0, "policies": [], - "config": {}, "minimum": 12, "maximum": 43 }, { "type": "function", "title": "root_two_fn", - "runtime": 0, "policies": [ 1 ], - "config": {}, "input": 7, "output": 8, + "injections": {}, + "runtimeConfig": null, "materializer": 2, "rate_weight": null, "rate_calls": false @@ -564,9 +490,7 @@ snapshot[`typegraphs creation 3`] = ` { "type": "object", "title": "User", - "runtime": 0, "policies": [], - "config": {}, "properties": { "id": 3, "post": 8 @@ -577,9 +501,7 @@ snapshot[`typegraphs creation 3`] = ` { "type": "object", "title": "Post", - "runtime": 0, "policies": [], - "config": {}, "properties": { "id": 3, "author": 7 @@ -590,13 +512,13 @@ snapshot[`typegraphs creation 3`] = ` { "type": "function", "title": "root_three_fn", - "runtime": 0, "policies": [ 2 ], - "config": {}, "input": 2, "output": 2, + "injections": {}, + "runtimeConfig": null, "materializer": 4, "rate_weight": null, "rate_calls": false @@ -748,9 +670,7 @@ snapshot[`typegraphs creation 4`] = ` { "type": "object", "title": "test-complex-types", - "runtime": 0, "policies": [], - "config": {}, "properties": { "test": 1 }, @@ -762,13 +682,13 @@ snapshot[`typegraphs creation 4`] = ` { "type": "function", "title": "root_test_fn", - "runtime": 0, "policies": [ 0 ], - "config": {}, "input": 2, "output": 18, + "injections": {}, + "runtimeConfig": null, "materializer": 0, "rate_weight": null, "rate_calls": false @@ -776,9 +696,7 @@ snapshot[`typegraphs creation 4`] = ` { "type": "object", "title": "ComplexType", - "runtime": 0, "policies": [], - "config": {}, "properties": { "a_string": 3, "a_float": 4, @@ -796,60 +714,46 @@ snapshot[`typegraphs creation 4`] = ` { "type": "string", "title": "ComplexType_a_string_string", - "runtime": 0, - "policies": [], - "config": {} + "policies": [] }, { "type": "float", "title": "ComplexType_a_float_float", - "runtime": 0, "policies": [], - "config": {}, "minimum": 1.0, "multipleOf": 2.0 }, { "type": "string", "title": "ComplexType_an_enum_string_enum", - "runtime": 0, "policies": [], "enum": [ "\\\\"one\\\\"", "\\\\"two\\\\"" - ], - "config": {} + ] }, { "type": "integer", "title": "ComplexType_an_integer_enum_integer_enum", - "runtime": 0, "policies": [], "enum": [ "1", "2" - ], - "config": { - "key": "value" - } + ] }, { "type": "float", "title": "ComplexType_a_float_enum_float", - "runtime": 0, "policies": [], "enum": [ "1.5", "2.5" - ], - "config": {} + ] }, { "type": "object", "title": "ComplexType_a_struct_struct", - "runtime": 0, "policies": [], - "config": {}, "properties": { "value": 9 }, @@ -859,33 +763,25 @@ snapshot[`typegraphs creation 4`] = ` { "type": "float", "title": "ComplexType_a_struct_struct_value_float", - "runtime": 0, - "policies": [], - "config": {} + "policies": [] }, { "type": "optional", "title": "ComplexType_nested_ComplexType_nested_ComplexType_nested_either_list_optional", - "runtime": 0, "policies": [], - "config": {}, "item": 11, "default_value": null }, { "type": "list", "title": "ComplexType_nested_ComplexType_nested_either_list", - "runtime": 0, "policies": [], - "config": {}, "items": 12 }, { "type": "either", "title": "ComplexType_nested_either", - "runtime": 0, "policies": [], - "config": {}, "oneOf": [ 3, 13 @@ -894,16 +790,12 @@ snapshot[`typegraphs creation 4`] = ` { "type": "integer", "title": "ComplexType_nested_either_t1_integer", - "runtime": 0, - "policies": [], - "config": {} + "policies": [] }, { "type": "object", "title": "SomeType", - "runtime": 0, "policies": [], - "config": {}, "properties": { "one": 15, "two": 16 @@ -914,35 +806,27 @@ snapshot[`typegraphs creation 4`] = ` { "type": "list", "title": "Two", - "runtime": 0, "policies": [], - "config": {}, "items": 13, "minItems": 3 }, { "type": "optional", "title": "SomeType_two_SomeType_optional", - "runtime": 0, "policies": [], - "config": {}, "item": 14, "default_value": null }, { "type": "string", "title": "ComplexType_an_email_string_email", - "runtime": 0, "policies": [], - "config": {}, "format": "email" }, { "type": "boolean", "title": "root_test_fn_output", - "runtime": 0, - "policies": [], - "config": {} + "policies": [] } ], "materializers": [ @@ -1050,9 +934,7 @@ snapshot[`typegraphs creation 5`] = ` { "type": "object", "title": "test-multiple-runtimes", - "runtime": 0, "policies": [], - "config": {}, "properties": { "add": 1, "multiply": 4 @@ -1066,13 +948,13 @@ snapshot[`typegraphs creation 5`] = ` { "type": "function", "title": "root_add_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, "input": 2, "output": 3, + "injections": {}, + "runtimeConfig": null, "materializer": 0, "rate_weight": null, "rate_calls": false @@ -1080,9 +962,7 @@ snapshot[`typegraphs creation 5`] = ` { "type": "object", "title": "root_add_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { "first": 3, "second": 3 @@ -1093,43 +973,21 @@ snapshot[`typegraphs creation 5`] = ` { "type": "float", "title": "root_add_fn_input_first_float", - "runtime": 1, - "policies": [], - "config": {} + "policies": [] }, { "type": "function", "title": "root_multiply_fn", - "runtime": 0, "policies": [ 0 ], - "config": {}, - "input": 5, - "output": 6, + "input": 2, + "output": 3, + "injections": {}, + "runtimeConfig": null, "materializer": 2, "rate_weight": null, "rate_calls": false - }, - { - "type": "object", - "title": "root_multiply_fn_input", - "runtime": 0, - "policies": [], - "config": {}, - "properties": { - "first": 6, - "second": 6 - }, - "id": [], - "required": [] - }, - { - "type": "float", - "title": "root_multiply_fn_input_first_float", - "runtime": 0, - "policies": [], - "config": {} } ], "materializers": [ @@ -1222,9 +1080,7 @@ snapshot[`typegraphs creation 6`] = ` { "type": "object", "title": "test-types", - "runtime": 0, "policies": [], - "config": {}, "properties": { "one": 1, "two": 6, @@ -1240,13 +1096,13 @@ snapshot[`typegraphs creation 6`] = ` { "type": "function", "title": "root_one_fn", - "runtime": 0, "policies": [ 0 ], - "config": {}, "input": 2, "output": 5, + "injections": {}, + "runtimeConfig": null, "materializer": 0, "rate_weight": null, "rate_calls": false @@ -1254,9 +1110,7 @@ snapshot[`typegraphs creation 6`] = ` { "type": "object", "title": "root_one_fn_input", - "runtime": 0, "policies": [], - "config": {}, "properties": { "a": 3, "b": 4 @@ -1267,37 +1121,31 @@ snapshot[`typegraphs creation 6`] = ` { "type": "integer", "title": "root_one_fn_input_a_integer", - "runtime": 0, - "policies": [], - "config": {} + "policies": [] }, { "type": "integer", "title": "root_one_fn_input_b_integer", - "runtime": 0, "policies": [], - "config": {}, "minimum": 12 }, { "type": "integer", "title": "root_one_fn_output", - "runtime": 0, "policies": [], - "config": {}, "minimum": 12, "maximum": 43 }, { "type": "function", "title": "root_two_fn", - "runtime": 0, "policies": [ 1 ], - "config": {}, "input": 7, "output": 8, + "injections": {}, + "runtimeConfig": null, "materializer": 2, "rate_weight": null, "rate_calls": false @@ -1305,9 +1153,7 @@ snapshot[`typegraphs creation 6`] = ` { "type": "object", "title": "User", - "runtime": 0, "policies": [], - "config": {}, "properties": { "id": 3, "post": 8 @@ -1318,9 +1164,7 @@ snapshot[`typegraphs creation 6`] = ` { "type": "object", "title": "Post", - "runtime": 0, "policies": [], - "config": {}, "properties": { "id": 3, "author": 7 @@ -1331,13 +1175,13 @@ snapshot[`typegraphs creation 6`] = ` { "type": "function", "title": "root_three_fn", - "runtime": 0, "policies": [ 2 ], - "config": {}, "input": 2, "output": 2, + "injections": {}, + "runtimeConfig": null, "materializer": 4, "rate_weight": null, "rate_calls": false diff --git a/tests/injection/injection_test.ts b/tests/injection/injection_test.ts index 88a06bcdfb..1805ee2595 100644 --- a/tests/injection/injection_test.ts +++ b/tests/injection/injection_test.ts @@ -300,6 +300,7 @@ Meta.test("Deno: value injection", async (t) => { input: { a: 12, context: "123", + optional_context: null, raw_int: 4, raw_obj: { in: -1 }, alt_raw: "2", diff --git a/tests/random/injection/random_injection.py b/tests/injection/random_injection.py similarity index 100% rename from tests/random/injection/random_injection.py rename to tests/injection/random_injection.py diff --git a/tests/random/injection/random_injection.ts b/tests/injection/random_injection.ts similarity index 95% rename from tests/random/injection/random_injection.ts rename to tests/injection/random_injection.ts index dd9644a5c6..dec1a051e0 100644 --- a/tests/random/injection/random_injection.ts +++ b/tests/injection/random_injection.ts @@ -12,7 +12,7 @@ const user = t.struct({ married: t.boolean().fromRandom(), email: t.string({ format: "email" }).fromRandom(), birthday: t.datetime().fromRandom(), - friends: t.list(t.string({}, { config: { gen: "name" } })).fromRandom(), + friends: t.list(t.string({}, { config: { gen: "first" } })).fromRandom(), phone: t.string({}, { config: { gen: "phone" } }).fromRandom(), gender: t.string({}, { config: { gen: "gender" } }).fromRandom(), firstname: t.string({}, { config: { gen: "first" } }).fromRandom(), diff --git a/tests/injection/random_injection_test.ts b/tests/injection/random_injection_test.ts new file mode 100644 index 0000000000..285ae8ff93 --- /dev/null +++ b/tests/injection/random_injection_test.ts @@ -0,0 +1,167 @@ +// Copyright Metatype OÜ, licensed under the Elastic License 2.0. +// SPDX-License-Identifier: Elastic-2.0 + +import { gql, Meta } from "test-utils/mod.ts"; + +const cases = [ + { + key: "python", + typegraph: "injection/random_injection.py", + testName: "Python: Random injection", + }, + { + key: "deno", + typegraph: "injection/random_injection.ts", + testName: "Deno: Random injection", + }, +]; + +for (const testCase of cases) { + Meta.test({ + name: testCase.testName, + only: false, + }, async (t) => { + const engine = await t.engine(testCase.typegraph); + + await t.should("generate random values", async () => { + await gql` + query { + randomUser { + id + ean + name + age + married + birthday + phone + gender + firstname + lastname + friends + occupation + street + city + postcode + country + uri + hostname + } + } + ` + .expectData({ + randomUser: { + id: "1069ace0-cdb1-5c1f-8193-81f53d29da35", + ean: "0497901391205", + name: "Landon Glover", + age: 38, + married: true, + birthday: "2124-06-22T22:00:07.302Z", + phone: "(587) 901-3720", + gender: "Male", + firstname: "Landon", + lastname: "Mengoni", + friends: ["Hettie", "Mary", "Lydia", "Ethel", "Jennie"], + occupation: "Health Care Manager", + street: "837 Wubju Drive", + city: "Urbahfec", + postcode: "IM9 9AD", + country: "Indonesia", + uri: "http://wubju.bs/ma", + hostname: "wubju.bs", + }, + }) + .on(engine); + }); + }); +} + +Meta.test("random injection on unions", async (t) => { + const engine = await t.engine("injection/random_injection.py"); + + await t.should("work on random lists", async () => { + await gql` + query { + randomList { + names + } + } + `.expectData({ + randomList: { + names: [ + "Hettie Huff", + "Ada Mills", + "Ethel Marshall", + "Emily Gonzales", + "Lottie Barber", + ], + }, + }).on(engine); + }); + + await t.should( + "generate random values for enums, either and union variants", + async () => { + await gql` + query { + testEnumStr { + educationLevel + }, + testEnumInt { + bits + }, + testEnumFloat { + cents + }, + testEither { + toy { + ... on Toygun { + color + } + ... on Rubix { + name, + size + } + } + }, + testUnion { + field { + ... on Rgb { + R + G + B + } + ... on Vec { + x + y + z + } + } + } + } + `.expectData({ + testEnumStr: { + educationLevel: "secondary", + }, + testEnumInt: { + bits: 0, + }, + testEnumFloat: { + cents: 0.5, + }, + testEither: { + toy: { + name: "1*ajw]krgDnCzXD*N!Fx", + size: 3336617896968192, + }, + }, + testUnion: { + field: { + B: 779226068287.488, + G: 396901315143.2704, + R: 895648526657.1263, + }, + }, + }).on(engine); + }, + ); +}); diff --git a/tests/metagen/__snapshots__/metagen_test.ts.snap b/tests/metagen/__snapshots__/metagen_test.ts.snap index 9b2ecbda7a..c3c126e329 100644 --- a/tests/metagen/__snapshots__/metagen_test.ts.snap +++ b/tests/metagen/__snapshots__/metagen_test.ts.snap @@ -448,7 +448,7 @@ impl Router { } pub fn init(&self, args: InitArgs) -> Result { - static MT_VERSION: &str = "0.4.11-rc.0"; + static MT_VERSION: &str = "0.5.0-rc.1"; if args.metatype_version != MT_VERSION { return Err(InitError::VersionMismatch(MT_VERSION.into())); } @@ -1254,7 +1254,7 @@ impl Router { } pub fn init(&self, args: InitArgs) -> Result { - static MT_VERSION: &str = "0.4.11-rc.0"; + static MT_VERSION: &str = "0.5.0-rc.1"; if args.metatype_version != MT_VERSION { return Err(InitError::VersionMismatch(MT_VERSION.into())); } diff --git a/tests/multi_typegraph/multi_typegraph_test.ts b/tests/multi_typegraph/multi_typegraph_test.ts index 94fe6548d7..485dd4ef24 100644 --- a/tests/multi_typegraph/multi_typegraph_test.ts +++ b/tests/multi_typegraph/multi_typegraph_test.ts @@ -54,15 +54,16 @@ Meta.test("Deno: Multi-typegraph file - Random typegraph", async (t) => { .expectData({ test2: { field: { - B: 333661789696.8192, - G: -336376534925.312, - R: -145566213550.8992, + B: 779226068287.488, + G: 396901315143.2704, + R: 895648526657.1263, }, toy: { - color: "PFk*o570)7xg", + name: "w]krgDn", + size: -2019220594360320, }, - cents: 0.5, - educationLevel: "tertiary", + cents: 1, + educationLevel: "secondary", }, }) .on(e); diff --git a/tests/params/apply_test.ts b/tests/params/apply_test.ts index d1d8260067..78e41f716f 100644 --- a/tests/params/apply_test.ts +++ b/tests/params/apply_test.ts @@ -248,7 +248,7 @@ Meta.test("nested context access", async (t) => { profile: { datum: 123 }, }) .expectData({ - optional: {}, + optional: { optional: null }, }) .on(e); }); diff --git a/tests/planner/__snapshots__/planner_test.ts.snap b/tests/planner/__snapshots__/planner_test.ts.snap index ed3b9d1635..9ccdd48046 100644 --- a/tests/planner/__snapshots__/planner_test.ts.snap +++ b/tests/planner/__snapshots__/planner_test.ts.snap @@ -97,7 +97,7 @@ snapshot[`planner 2`] = ` { one: { funcType: { - config: {}, + injections: {}, input: 2, materializer: 0, output: 3, @@ -106,7 +106,7 @@ snapshot[`planner 2`] = ` ], rate_calls: false, rate_weight: null, - runtime: 0, + runtimeConfig: null, title: "root_one_fn", type: "function", }, @@ -273,28 +273,28 @@ snapshot[`planner: dependencies 6`] = ` snapshot[`planner: dependencies in union/either 1`] = ` [ "three three three object root_three_fn_output false", - "three.id id three/id integer root_three_fn_output_id_integer false", + "three.id id three/id integer root_one_fn_output_union1_union_t0_integer false", "three.user user three/user either root_three_fn_output_user_either false", - "three.user\$RegisteredUser.id id three/user\$RegisteredUser/id string RegisteredUser_id_string_uuid false", + "three.user\$RegisteredUser.id id three/user\$RegisteredUser/id string root_one_fn_output_id_string_uuid false", "three.user\$RegisteredUser.email email three/user\$RegisteredUser/email string root_one_fn_output_email_string_email false", "three.user\$RegisteredUser.profile profile three/user\$RegisteredUser/profile object RegisteredUser_profile_fn_output false", "three.user\$RegisteredUser.profile.email email three/user\$RegisteredUser/profile/email string root_one_fn_output_email_string_email false", "three.user\$RegisteredUser.profile.displayName displayName three/user\$RegisteredUser/profile/displayName string root_one_fn_output_nested_struct_first_string false", "three.user\$RegisteredUser.profile.profilePic profilePic three/user\$RegisteredUser/profile/profilePic string root_one_fn_output_nested_struct_first_string false", - "three.user\$GuestUser.id id three/user\$GuestUser/id string RegisteredUser_id_string_uuid false", + "three.user\$GuestUser.id id three/user\$GuestUser/id string root_one_fn_output_id_string_uuid false", ] `; snapshot[`planner: dependencies in union/either 2`] = ` [ "three three three object root_three_fn_output false", - "three.id id three/id integer root_three_fn_output_id_integer false", + "three.id id three/id integer root_one_fn_output_union1_union_t0_integer false", "three.user user three/user either root_three_fn_output_user_either false", - "three.user\$RegisteredUser.id id three/user\$RegisteredUser/id string RegisteredUser_id_string_uuid false", + "three.user\$RegisteredUser.id id three/user\$RegisteredUser/id string root_one_fn_output_id_string_uuid false", "three.user\$RegisteredUser.email email three/user\$RegisteredUser/email string root_one_fn_output_email_string_email true", "three.user\$RegisteredUser.profile profile three/user\$RegisteredUser/profile object RegisteredUser_profile_fn_output false", "three.user\$RegisteredUser.profile.email email three/user\$RegisteredUser/profile/email string root_one_fn_output_email_string_email false", "three.user\$RegisteredUser.profile.displayName displayName three/user\$RegisteredUser/profile/displayName string root_one_fn_output_nested_struct_first_string false", - "three.user\$GuestUser.id id three/user\$GuestUser/id string RegisteredUser_id_string_uuid false", + "three.user\$GuestUser.id id three/user\$GuestUser/id string root_one_fn_output_id_string_uuid false", ] `; diff --git a/tests/prisma-migrations/injection/prisma/migration_lock.toml b/tests/prisma-migrations/injection/prisma/migration_lock.toml index 99e4f20090..fbffa92c2b 100644 --- a/tests/prisma-migrations/injection/prisma/migration_lock.toml +++ b/tests/prisma-migrations/injection/prisma/migration_lock.toml @@ -1,3 +1,3 @@ # Please do not edit this file manually # It should be added in your version-control system (i.e. Git) -provider = "postgresql" +provider = "postgresql" \ No newline at end of file diff --git a/tests/query_parsers/__snapshots__/query_parsers_test.ts.snap b/tests/query_parsers/__snapshots__/query_parsers_test.ts.snap index c8966f91be..5e58126d63 100644 --- a/tests/query_parsers/__snapshots__/query_parsers_test.ts.snap +++ b/tests/query_parsers/__snapshots__/query_parsers_test.ts.snap @@ -3,7 +3,6 @@ export const snapshot = {}; snapshot[`GraphQL parser 1`] = ` [ { - config: {}, id: [], policies: [], properties: { @@ -13,12 +12,10 @@ snapshot[`GraphQL parser 1`] = ` required: [ "user", ], - runtime: 0, title: "graphql_namespaces", type: "object", }, { - config: {}, id: [], policies: [ 0, @@ -29,12 +26,11 @@ snapshot[`GraphQL parser 1`] = ` update: 7, }, required: [], - runtime: 0, title: "UserNamespace", type: "object", }, { - config: {}, + injections: {}, input: 3, materializer: 1, output: 5, @@ -43,12 +39,11 @@ snapshot[`GraphQL parser 1`] = ` ], rate_calls: false, rate_weight: null, - runtime: 1, + runtimeConfig: null, title: "UserNamespace_find_fn", type: "function", }, { - config: {}, id: [ "id", ], @@ -57,19 +52,15 @@ snapshot[`GraphQL parser 1`] = ` id: 4, }, required: [], - runtime: 1, title: "UserNamespace_find_fn_input", type: "object", }, { - config: {}, policies: [], - runtime: 1, title: "UserId", type: "string", }, { - config: {}, id: [ "id", ], @@ -79,19 +70,16 @@ snapshot[`GraphQL parser 1`] = ` name: 6, }, required: [], - runtime: 1, title: "User", type: "object", }, { - config: {}, policies: [], - runtime: 1, title: "User_name_string", type: "string", }, { - config: {}, + injections: {}, input: 5, materializer: 2, output: 5, @@ -100,12 +88,11 @@ snapshot[`GraphQL parser 1`] = ` ], rate_calls: false, rate_weight: null, - runtime: 1, + runtimeConfig: null, title: "UserNamespace_update_fn", type: "function", }, { - config: {}, id: [], policies: [], properties: { @@ -113,12 +100,11 @@ snapshot[`GraphQL parser 1`] = ` setPicture: 12, }, required: [], - runtime: 0, title: "ProfileNamespace", type: "object", }, { - config: {}, + injections: {}, input: 3, materializer: 3, output: 10, @@ -127,12 +113,11 @@ snapshot[`GraphQL parser 1`] = ` ], rate_calls: false, rate_weight: null, - runtime: 1, + runtimeConfig: null, title: "ProfileNamespace_picture_fn", type: "function", }, { - config: {}, id: [ "id", ], @@ -142,20 +127,17 @@ snapshot[`GraphQL parser 1`] = ` url: 11, }, required: [], - runtime: 1, title: "Picture", type: "object", }, { - config: {}, format: "uri", policies: [], - runtime: 1, title: "Picture_url_string_uri", type: "string", }, { - config: {}, + injections: {}, input: 10, materializer: 4, output: 10, @@ -164,14 +146,11 @@ snapshot[`GraphQL parser 1`] = ` ], rate_calls: false, rate_weight: null, - runtime: 1, + runtimeConfig: null, title: "ProfileNamespace_setPicture_fn", type: "function", }, { - config: { - __namespace: true, - }, id: [], policies: [ 0, @@ -180,14 +159,10 @@ snapshot[`GraphQL parser 1`] = ` picture: 9, }, required: [], - runtime: 0, title: "UserNamespace_q", type: "object", }, { - config: { - __namespace: true, - }, id: [], policies: [ 0, @@ -196,14 +171,10 @@ snapshot[`GraphQL parser 1`] = ` setPicture: 12, }, required: [], - runtime: 0, title: "UserNamespace_m", type: "object", }, { - config: { - __namespace: true, - }, id: [], policies: [], properties: { @@ -213,14 +184,10 @@ snapshot[`GraphQL parser 1`] = ` required: [ "user", ], - runtime: 0, title: "graphql_namespaces_q", type: "object", }, { - config: { - __namespace: true, - }, id: [], policies: [], properties: { @@ -230,14 +197,10 @@ snapshot[`GraphQL parser 1`] = ` required: [ "user", ], - runtime: 0, title: "graphql_namespaces_m", type: "object", }, { - config: { - __namespace: true, - }, id: [], policies: [], properties: { @@ -246,14 +209,10 @@ snapshot[`GraphQL parser 1`] = ` required: [ "user", ], - runtime: 0, title: "Query", type: "object", }, { - config: { - __namespace: true, - }, id: [], policies: [], properties: { @@ -262,7 +221,6 @@ snapshot[`GraphQL parser 1`] = ` required: [ "user", ], - runtime: 0, title: "Mutation", type: "object", }, diff --git a/tests/random/injection/random_injection_test.ts b/tests/random/injection/random_injection_test.ts deleted file mode 100644 index 1ab8f7397b..0000000000 --- a/tests/random/injection/random_injection_test.ts +++ /dev/null @@ -1,205 +0,0 @@ -// Copyright Metatype OÜ, licensed under the Elastic License 2.0. -// SPDX-License-Identifier: Elastic-2.0 - -import { gql, Meta } from "../../utils/mod.ts"; - -Meta.test("Python: Random Injection", async (metaTest) => { - const engine = await metaTest.engine("random/injection/random_injection.py"); - - await metaTest.should("generate random values", async () => { - await gql` - query { - randomUser { - id - ean - name - age - married - birthday - phone - gender - firstname - lastname - friends - occupation - street - city - postcode - country - uri - hostname - } - } - ` - .expectData({ - randomUser: { - id: "1069ace0-cdb1-5c1f-8193-81f53d29da35", - ean: "0497901391205", - name: "Landon Glover", - age: 38, - married: true, - birthday: "2124-06-22T22:00:07.302Z", - phone: "(587) 901-3720", - gender: "Male", - firstname: "Landon", - lastname: "Mengoni", - friends: ["Hettie", "Mary", "Sean", "Ethel", "Joshua"], - occupation: "Health Care Manager", - street: "837 Wubju Drive", - city: "Urbahfec", - postcode: "IM9 9AD", - country: "Indonesia", - uri: "http://wubju.bs/ma", - hostname: "wubju.bs", - }, - }) - .on(engine); - }); - - await metaTest.should("work on random lists", async () => { - await gql` - query { - randomList { - names - } - } - `.expectData({ - randomList: { - names: [ - "Hettie Huff", - "Nicholas Mills", - "Ethel Marshall", - "Phillip Gonzales", - "Russell Barber", - ], - }, - }).on(engine); - }); - - await metaTest.should( - "generate random values for enums, either and union variants", - async () => { - await gql` - query { - testEnumStr { - educationLevel - }, - testEnumInt { - bits - }, - testEnumFloat { - cents - }, - testEither { - toy { - ... on Toygun { - color - } - ... on Rubix { - name, - size - } - } - }, - testUnion { - field { - ... on Rgb { - R - G - B - } - ... on Vec { - x - y - z - } - } - } - } - `.expectData({ - testEnumStr: { - educationLevel: "secondary", - }, - testEnumInt: { - bits: 0, - }, - testEnumFloat: { - cents: 0.5, - }, - testEither: { - toy: { - name: "1*ajw]krgDnCzXD*N!Fx", - size: 3336617896968192, - }, - }, - testUnion: { - field: { - B: 779226068287.488, - G: 396901315143.2704, - R: 895648526657.1263, - }, - }, - }).on(engine); - }, - ); -}); - -Meta.test("Deno: Random Injection", async (metaTest) => { - const engine = await metaTest.engine("random/injection/random_injection.ts"); - - await metaTest.should("work", async () => { - await gql` - query { - randomUser { - id - ean - name - age - married - birthday - phone - gender - firstname - lastname - friends - occupation - street - city - postcode - country - uri - hostname - } - } - ` - .expectData({ - randomUser: { - id: "1069ace0-cdb1-5c1f-8193-81f53d29da35", - ean: "0497901391205", - name: "Landon Glover", - age: 38, - married: true, - birthday: "2124-06-22T22:00:07.302Z", - phone: "(587) 901-3720", - gender: "Male", - firstname: "Landon", - lastname: "Mengoni", - friends: [ - "Hettie Huff", - "Nicholas Mills", - "Ethel Marshall", - "Phillip Gonzales", - "Russell Barber", - ], - occupation: "Health Care Manager", - street: "837 Wubju Drive", - city: "Urbahfec", - postcode: "IM9 9AD", - country: "Indonesia", - uri: "http://wubju.bs/ma", - hostname: "wubju.bs", - }, - }) - .on(engine); - }); -}); diff --git a/tests/random/random_test.ts b/tests/random/random_test.ts deleted file mode 100644 index 542b14d246..0000000000 --- a/tests/random/random_test.ts +++ /dev/null @@ -1,198 +0,0 @@ -// Copyright Metatype OÜ, licensed under the Elastic License 2.0. -// SPDX-License-Identifier: Elastic-2.0 - -import { gql, Meta } from "../utils/mod.ts"; - -Meta.test("Python: Random", async (t) => { - const e = await t.engine("random/random_.py"); - - await t.should("work", async () => { - await gql` - query { - randomRec { - uuid - int - str - email - } - } - ` - .expectData({ - randomRec: { - email: "vu@jel.ml", - int: 7360602246742016, - str: "v%vijM", - uuid: "415013d6-efc5-5781-aa74-056ee27dbb22", - }, - }) - .on(e); - }); - - await t.should("work with custom generation params", async () => { - await gql` - query { - randomUser { - id - name - age - address { - street - city - postcode - country - } - } - } - ` - .expectData({ - randomUser: { - age: 35, - id: "190a524b-b70b-52f4-911d-7974ea74cf43", - name: "Chase Dennis", - address: { - city: "Peehhiz", - country: "Mexico", - postcode: "TA2G 2CP", - street: "103 Pafma Circle", - }, - }, - }) - .on(e); - }); - - await t.should("work for nested arrays", async () => { - await gql` - query { - randomList { - array_of_array_of_names - } - } - ` - .expectData( - { - randomList: { - array_of_array_of_names: [ - [ - "Ethel Casey", - "Della Garner", - "Ronald Wade", - "Clayton Tate", - "Martin Neal", - "Charlie Soto", - ], - [ - "Jessie Fleming", - ], - [ - "Bertha Watts", - "Cecelia Neal", - "Gabriel Ramirez", - "Jean Carpenter", - "Alfred Jenkins", - "Cecilia Bradley", - "Lee Potter", - "Eunice Cox", - ], - [ - "Mable Leonard", - "Belle Olson", - "Susie Hart", - "Nelle Banks", - "Loretta Davis", - "Delia Love", - "Jeffrey Adkins", - "Laura Harvey", - "Jeffery Figueroa", - ], - [ - "Arthur Patton", - "Minerva Miles", - "James Maldonado", - "Myrtle Gardner", - "Evelyn Brown", - ], - [ - "Belle Dean", - "Lilly Steele", - "Michael Mason", - "Gussie Burgess", - "Rosalie Adams", - "Cody Gray", - "Olivia Alexander", - "Lola Scott", - "Miguel Pearson", - ], - ], - }, - }, - ) - .on(e); - }); -}); - -Meta.test("Deno: Random", async (t) => { - const e = await t.engine("random/random.ts"); - - await t.should("work", async () => { - await gql` - query { - test1 { - email - country - } - } - ` - .expectData({ - test1: { - country: "Turkey", - email: "mummer@nubi.no", - }, - }) - .on(e); - }); - - await t.should("work on enum, union, and either types", async () => { - await gql` - query { - test2 { - field { - ... on Rgb { - R - G - B - } - ... on Vec { - x - y - z - } - } - toy { - ... on Rubix { - name - size - } - ... on Toygun { - color - } - } - educationLevel - cents - } - } - `.expectData({ - test2: { - field: { - x: -158908830187.52, - y: 59745273852.7232, - z: -544843873281.6384, - }, - toy: { - color: "]W3wuH6qhfHI^h", - }, - cents: 1, - educationLevel: "primary", - }, - }).on(e); - }); -}); diff --git a/tests/runtimes/graphql/__snapshots__/graphql_test.ts.snap b/tests/runtimes/graphql/__snapshots__/graphql_test.ts.snap index d857aa5c76..db69a81df8 100644 --- a/tests/runtimes/graphql/__snapshots__/graphql_test.ts.snap +++ b/tests/runtimes/graphql/__snapshots__/graphql_test.ts.snap @@ -6,15 +6,13 @@ snapshot[`Typegraph generation with GraphQL runtime 1`] = ` { "type": "object", "title": "graphql", - "runtime": 0, "policies": [], - "config": {}, "properties": { "user": 1, - "users": 6, - "createUser": 10, - "create_message": 13, - "messages": 26 + "users": 5, + "createUser": 9, + "create_message": 12, + "messages": 21 }, "id": [], "required": [ @@ -28,13 +26,13 @@ snapshot[`Typegraph generation with GraphQL runtime 1`] = ` { "type": "function", "title": "root_user_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, "input": 2, "output": 4, + "injections": {}, + "runtimeConfig": null, "materializer": 0, "rate_weight": null, "rate_calls": false @@ -42,9 +40,7 @@ snapshot[`Typegraph generation with GraphQL runtime 1`] = ` { "type": "object", "title": "root_user_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { "id": 3 }, @@ -56,42 +52,31 @@ snapshot[`Typegraph generation with GraphQL runtime 1`] = ` { "type": "string", "title": "root_user_fn_input_id_string", - "runtime": 1, - "policies": [], - "config": {} + "policies": [] }, { "type": "object", "title": "User", - "runtime": 1, "policies": [], - "config": {}, "properties": { "id": 3, - "name": 5 + "name": 3 }, "id": [ "id" ], "required": [] }, - { - "type": "string", - "title": "User_name_string", - "runtime": 1, - "policies": [], - "config": {} - }, { "type": "function", "title": "root_users_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, - "input": 7, - "output": 8, + "input": 6, + "output": 7, + "injections": {}, + "runtimeConfig": null, "materializer": 2, "rate_weight": null, "rate_calls": false @@ -99,9 +84,7 @@ snapshot[`Typegraph generation with GraphQL runtime 1`] = ` { "type": "object", "title": "root_users_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": {}, "id": [], "required": [] @@ -109,11 +92,9 @@ snapshot[`Typegraph generation with GraphQL runtime 1`] = ` { "type": "object", "title": "root_users_fn_output", - "runtime": 1, "policies": [], - "config": {}, "properties": { - "data": 9 + "data": 8 }, "id": [], "required": [] @@ -121,21 +102,19 @@ snapshot[`Typegraph generation with GraphQL runtime 1`] = ` { "type": "list", "title": "root_users_fn_output_data_User_list", - "runtime": 1, "policies": [], - "config": {}, "items": 4 }, { "type": "function", "title": "root_createUser_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, - "input": 11, + "input": 10, "output": 4, + "injections": {}, + "runtimeConfig": null, "materializer": 3, "rate_weight": null, "rate_calls": false @@ -143,11 +122,9 @@ snapshot[`Typegraph generation with GraphQL runtime 1`] = ` { "type": "object", "title": "root_createUser_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { - "input": 12 + "input": 11 }, "id": [], "required": [] @@ -155,13 +132,11 @@ snapshot[`Typegraph generation with GraphQL runtime 1`] = ` { "type": "object", "title": "CreateUserInput", - "runtime": 1, "policies": [], - "config": {}, "properties": { - "name": 5, - "username": 5, - "email": 5 + "name": 3, + "username": 3, + "email": 3 }, "id": [], "required": [] @@ -169,13 +144,13 @@ snapshot[`Typegraph generation with GraphQL runtime 1`] = ` { "type": "function", "title": "root_create_message_fn", - "runtime": 2, "policies": [ 0 ], - "config": {}, - "input": 21, - "output": 25, + "input": 17, + "output": 20, + "injections": {}, + "runtimeConfig": null, "materializer": 4, "rate_weight": null, "rate_calls": false @@ -183,14 +158,12 @@ snapshot[`Typegraph generation with GraphQL runtime 1`] = ` { "type": "object", "title": "message", - "runtime": 2, "policies": [], - "config": {}, "properties": { - "id": 15, - "title": 16, - "user_id": 16, - "user": 17 + "id": 14, + "title": 3, + "user_id": 3, + "user": 15 }, "id": [ "id" @@ -199,76 +172,43 @@ snapshot[`Typegraph generation with GraphQL runtime 1`] = ` }, { "type": "integer", - "title": "message_output_id_integer", - "runtime": 2, - "policies": [], - "config": { - "auto": true - } - }, - { - "type": "string", - "title": "message_create_input_title_string", - "runtime": 2, - "policies": [], - "config": {} + "title": "message_create_input_id_integer", + "policies": [] }, { "type": "function", "title": "message_output_user_fn", - "runtime": 1, "policies": [], - "config": {}, - "input": 18, - "output": 20, + "input": 2, + "output": 16, + "injections": { + "id": { + "injection": { + "source": "parent", + "data": { + "value": "user_id" + } + } + } + }, + "runtimeConfig": null, "materializer": 5, "rate_weight": null, "rate_calls": false }, - { - "type": "object", - "title": "message_output_user_fn_input", - "runtime": 1, - "policies": [], - "config": {}, - "properties": { - "id": 19 - }, - "id": [ - "id" - ], - "required": [] - }, - { - "type": "string", - "title": "message_output_user_fn_input_id_string", - "runtime": 1, - "policies": [], - "injection": { - "source": "parent", - "data": { - "value": "user_id" - } - }, - "config": {} - }, { "type": "optional", "title": "message_output_user_fn_output", - "runtime": 1, "policies": [], - "config": {}, "item": 4, "default_value": null }, { "type": "object", "title": "root_create_message_fn_input", - "runtime": 2, "policies": [], - "config": {}, "properties": { - "data": 22 + "data": 18 }, "id": [], "required": [] @@ -276,13 +216,11 @@ snapshot[`Typegraph generation with GraphQL runtime 1`] = ` { "type": "object", "title": "message_create_input", - "runtime": 2, "policies": [], - "config": {}, "properties": { - "id": 23, - "title": 16, - "user_id": 16 + "id": 19, + "title": 3, + "user_id": 3 }, "id": [], "required": [] @@ -290,32 +228,19 @@ snapshot[`Typegraph generation with GraphQL runtime 1`] = ` { "type": "optional", "title": "message_create_input_id_message_create_input_id_integer_optional", - "runtime": 2, "policies": [], - "config": {}, - "item": 24, + "item": 14, "default_value": null }, - { - "type": "integer", - "title": "message_create_input_id_integer", - "runtime": 2, - "policies": [], - "config": { - "auto": true - } - }, { "type": "object", "title": "message_output", - "runtime": 2, "policies": [], - "config": {}, "properties": { - "id": 15, - "title": 16, - "user_id": 16, - "user": 17 + "id": 14, + "title": 3, + "user_id": 3, + "user": 15 }, "id": [ "id" @@ -325,13 +250,13 @@ snapshot[`Typegraph generation with GraphQL runtime 1`] = ` { "type": "function", "title": "root_messages_fn", - "runtime": 2, "policies": [ 0 ], - "config": {}, - "input": 27, - "output": 82, + "input": 22, + "output": 76, + "injections": {}, + "runtimeConfig": null, "materializer": 6, "rate_weight": null, "rate_calls": false @@ -339,16 +264,14 @@ snapshot[`Typegraph generation with GraphQL runtime 1`] = ` { "type": "object", "title": "message_query_input", - "runtime": 2, "policies": [], - "config": {}, "properties": { - "where": 28, - "orderBy": 63, - "take": 70, - "skip": 72, - "cursor": 74, - "distinct": 79 + "where": 23, + "orderBy": 57, + "take": 64, + "skip": 66, + "cursor": 68, + "distinct": 73 }, "id": [], "required": [] @@ -356,25 +279,21 @@ snapshot[`Typegraph generation with GraphQL runtime 1`] = ` { "type": "optional", "title": "message_query_input_where_message_query_where_input_optional", - "runtime": 2, "policies": [], - "config": {}, - "item": 29, + "item": 24, "default_value": null }, { "type": "object", "title": "message_query_where_input", - "runtime": 2, "policies": [], - "config": {}, "properties": { - "id": 30, - "title": 43, - "user_id": 59, - "AND": 60, - "OR": 60, - "NOT": 62 + "id": 25, + "title": 37, + "user_id": 53, + "AND": 54, + "OR": 54, + "NOT": 56 }, "id": [], "required": [] @@ -382,62 +301,45 @@ snapshot[`Typegraph generation with GraphQL runtime 1`] = ` { "type": "optional", "title": "message_query_where_input_id__prisma_integer_filter_ex_optional", - "runtime": 2, "policies": [], - "config": {}, - "item": 31, + "item": 26, "default_value": null }, { "type": "optional", "title": "_prisma_integer_filter_ex", - "runtime": 2, "policies": [], - "config": {}, - "item": 32, + "item": 27, "default_value": null }, { "type": "union", "title": "message_query_where_input_id_union", - "runtime": 2, "policies": [], - "config": {}, "anyOf": [ - 33, - 42 + 28, + 36 ] }, { "type": "either", "title": "_prisma_integer_filter", - "runtime": 2, "policies": [], - "config": {}, "oneOf": [ - 34, - 35, - 36, - 37, - 39, - 41 + 14, + 29, + 30, + 31, + 33, + 35 ] }, - { - "type": "integer", - "title": "_prisma_integer_filter_t0_integer", - "runtime": 2, - "policies": [], - "config": {} - }, { "type": "object", "title": "_prisma_integer_filter_t1_struct", - "runtime": 2, "policies": [], - "config": {}, "properties": { - "equals": 34 + "equals": 14 }, "id": [], "required": [] @@ -445,11 +347,9 @@ snapshot[`Typegraph generation with GraphQL runtime 1`] = ` { "type": "object", "title": "_prisma_integer_filter_t2_struct", - "runtime": 2, "policies": [], - "config": {}, "properties": { - "not": 34 + "not": 14 }, "id": [], "required": [] @@ -457,55 +357,45 @@ snapshot[`Typegraph generation with GraphQL runtime 1`] = ` { "type": "object", "title": "_prisma_integer_filter_t3_struct", - "runtime": 2, "policies": [], - "config": {}, "properties": { - "lt": 38, - "gt": 38, - "lte": 38, - "gte": 38 + "lt": 32, + "gt": 32, + "lte": 32, + "gte": 32 }, "id": [], "required": [] }, { "type": "optional", - "title": "_prisma_integer_filter_t3_struct_lt__prisma_integer_filter_t0_integer_optional", - "runtime": 2, + "title": "_prisma_integer_filter_t3_struct_lt_message_create_input_id_integer_optional", "policies": [], - "config": {}, - "item": 34, + "item": 14, "default_value": null }, { "type": "object", "title": "_prisma_integer_filter_t4_struct", - "runtime": 2, "policies": [], - "config": {}, "properties": { - "in": 40 + "in": 34 }, "id": [], "required": [] }, { "type": "list", - "title": "_prisma_integer_filter_t4_struct_in__prisma_integer_filter_t0_integer_list", - "runtime": 2, + "title": "_prisma_integer_filter_t4_struct_in_message_create_input_id_integer_list", "policies": [], - "config": {}, - "items": 34 + "items": 14 }, { "type": "object", "title": "_prisma_integer_filter_t5_struct", - "runtime": 2, "policies": [], - "config": {}, "properties": { - "notIn": 40 + "notIn": 34 }, "id": [], "required": [] @@ -513,11 +403,9 @@ snapshot[`Typegraph generation with GraphQL runtime 1`] = ` { "type": "object", "title": "message_query_where_input_id_union_t1_struct", - "runtime": 2, "policies": [], - "config": {}, "properties": { - "not": 33 + "not": 28 }, "id": [], "required": [] @@ -525,57 +413,47 @@ snapshot[`Typegraph generation with GraphQL runtime 1`] = ` { "type": "optional", "title": "message_query_where_input_title__prisma_string_filter_ex_optional", - "runtime": 2, "policies": [], - "config": {}, - "item": 44, + "item": 38, "default_value": null }, { "type": "optional", "title": "_prisma_string_filter_ex", - "runtime": 2, "policies": [], - "config": {}, - "item": 45, + "item": 39, "default_value": null }, { "type": "union", "title": "message_query_where_input_title_union", - "runtime": 2, "policies": [], - "config": {}, "anyOf": [ - 46, - 58 + 40, + 52 ] }, { "type": "union", "title": "_prisma_string_filter", - "runtime": 2, "policies": [], - "config": {}, "anyOf": [ - 16, - 47, - 48, + 3, + 41, + 42, + 43, + 45, + 46, 49, - 51, - 52, - 55, - 56 + 50 ] }, { "type": "object", "title": "_prisma_string_filter_t1_struct", - "runtime": 2, "policies": [], - "config": {}, "properties": { - "equals": 16 + "equals": 3 }, "id": [], "required": [] @@ -583,11 +461,9 @@ snapshot[`Typegraph generation with GraphQL runtime 1`] = ` { "type": "object", "title": "_prisma_string_filter_t2_struct", - "runtime": 2, "policies": [], - "config": {}, "properties": { - "not": 16 + "not": 3 }, "id": [], "required": [] @@ -595,31 +471,25 @@ snapshot[`Typegraph generation with GraphQL runtime 1`] = ` { "type": "object", "title": "_prisma_string_filter_t3_struct", - "runtime": 2, "policies": [], - "config": {}, "properties": { - "in": 50 + "in": 44 }, "id": [], "required": [] }, { "type": "list", - "title": "_prisma_string_filter_t3_struct_in_message_create_input_title_string_list", - "runtime": 2, + "title": "_prisma_string_filter_t3_struct_in_root_user_fn_input_id_string_list", "policies": [], - "config": {}, - "items": 16 + "items": 3 }, { "type": "object", "title": "_prisma_string_filter_t4_struct", - "runtime": 2, "policies": [], - "config": {}, "properties": { - "notIn": 50 + "notIn": 44 }, "id": [], "required": [] @@ -627,12 +497,10 @@ snapshot[`Typegraph generation with GraphQL runtime 1`] = ` { "type": "object", "title": "_prisma_string_filter_t5_struct", - "runtime": 2, "policies": [], - "config": {}, "properties": { - "contains": 16, - "mode": 53 + "contains": 3, + "mode": 47 }, "id": [], "required": [] @@ -640,30 +508,24 @@ snapshot[`Typegraph generation with GraphQL runtime 1`] = ` { "type": "optional", "title": "_prisma_string_filter_t5_struct_mode__prisma_string_filter_t5_struct_mode_string_enum_optional", - "runtime": 2, "policies": [], - "config": {}, - "item": 54, + "item": 48, "default_value": null }, { "type": "string", "title": "_prisma_string_filter_t5_struct_mode_string_enum", - "runtime": 2, "policies": [], "enum": [ "\\\\"insensitive\\\\"" - ], - "config": {} + ] }, { "type": "object", "title": "_prisma_string_filter_t6_struct", - "runtime": 2, "policies": [], - "config": {}, "properties": { - "search": 16 + "search": 3 }, "id": [], "required": [] @@ -671,33 +533,27 @@ snapshot[`Typegraph generation with GraphQL runtime 1`] = ` { "type": "object", "title": "_prisma_string_filter_t7_struct", - "runtime": 2, "policies": [], - "config": {}, "properties": { - "startsWith": 57, - "endsWith": 57 + "startsWith": 51, + "endsWith": 51 }, "id": [], "required": [] }, { "type": "optional", - "title": "_prisma_string_filter_t7_struct_startsWith_message_create_input_title_string_optional", - "runtime": 2, + "title": "_prisma_string_filter_t7_struct_startsWith_root_user_fn_input_id_string_optional", "policies": [], - "config": {}, - "item": 16, + "item": 3, "default_value": null }, { "type": "object", "title": "message_query_where_input_title_union_t1_struct", - "runtime": 2, "policies": [], - "config": {}, "properties": { - "not": 46 + "not": 40 }, "id": [], "required": [] @@ -705,65 +561,51 @@ snapshot[`Typegraph generation with GraphQL runtime 1`] = ` { "type": "optional", "title": "message_query_where_input_user_id__prisma_string_filter_ex_optional", - "runtime": 2, "policies": [], - "config": {}, - "item": 44, + "item": 38, "default_value": null }, { "type": "optional", "title": "message_query_where_input_AND_message_query_where_input_AND_message_query_where_input_list_optional", - "runtime": 2, "policies": [], - "config": {}, - "item": 61, + "item": 55, "default_value": null }, { "type": "list", "title": "message_query_where_input_AND_message_query_where_input_list", - "runtime": 2, "policies": [], - "config": {}, - "items": 29 + "items": 24 }, { "type": "optional", "title": "message_query_where_input_NOT_message_query_where_input_optional", - "runtime": 2, "policies": [], - "config": {}, - "item": 29, + "item": 24, "default_value": null }, { "type": "optional", "title": "message_query_input_orderBy_message_order_by_optional", - "runtime": 2, "policies": [], - "config": {}, - "item": 64, + "item": 58, "default_value": null }, { "type": "list", "title": "message_order_by", - "runtime": 2, "policies": [], - "config": {}, - "items": 65 + "items": 59 }, { "type": "object", "title": "message_query_input_orderBy_struct", - "runtime": 2, "policies": [], - "config": {}, "properties": { - "id": 66, - "title": 66, - "user_id": 66 + "id": 60, + "title": 60, + "user_id": 60 }, "id": [], "required": [] @@ -771,31 +613,25 @@ snapshot[`Typegraph generation with GraphQL runtime 1`] = ` { "type": "optional", "title": "_prisma_sort", - "runtime": 2, "policies": [], - "config": {}, - "item": 67, + "item": 61, "default_value": null }, { "type": "union", "title": "message_query_input_orderBy_struct_id_union", - "runtime": 2, "policies": [], - "config": {}, "anyOf": [ - 68, - 69 + 62, + 63 ] }, { "type": "object", "title": "message_query_input_orderBy_struct_id_union_t0_struct", - "runtime": 2, "policies": [], - "config": {}, "properties": { - "sort": 69 + "sort": 63 }, "id": [], "required": [] @@ -803,89 +639,73 @@ snapshot[`Typegraph generation with GraphQL runtime 1`] = ` { "type": "string", "title": "_prisma_sort_order", - "runtime": 2, "policies": [], "enum": [ "\\\\"asc\\\\"", "\\\\"desc\\\\"" - ], - "config": {} + ] }, { "type": "optional", "title": "message_query_input_take__take_optional", - "runtime": 2, "policies": [], - "config": {}, - "item": 71, + "item": 65, "default_value": null }, { "type": "integer", "title": "_take", - "runtime": 2, "policies": [], - "config": {}, "exclusiveMinimum": 0 }, { "type": "optional", "title": "message_query_input_skip__skip_optional", - "runtime": 2, "policies": [], - "config": {}, - "item": 73, + "item": 67, "default_value": null }, { "type": "integer", "title": "_skip", - "runtime": 2, "policies": [], - "config": {}, "minimum": 0 }, { "type": "optional", "title": "message_query_input_cursor_message_cursor_optional", - "runtime": 2, "policies": [], - "config": {}, - "item": 75, + "item": 69, "default_value": null }, { "type": "union", "title": "message_cursor", - "runtime": 2, "policies": [], - "config": {}, "anyOf": [ - 76, - 77, - 78 + 70, + 71, + 72 ] }, { "type": "object", "title": "message_cursor_t0_struct", - "runtime": 2, "policies": [], - "config": {}, "properties": { - "id": 24 + "id": 14 }, - "id": [], + "id": [ + "id" + ], "required": [] }, { "type": "object", "title": "message_cursor_t1_struct", - "runtime": 2, "policies": [], - "config": {}, "properties": { - "title": 16 + "title": 3 }, "id": [], "required": [] @@ -893,11 +713,9 @@ snapshot[`Typegraph generation with GraphQL runtime 1`] = ` { "type": "object", "title": "message_cursor_t2_struct", - "runtime": 2, "policies": [], - "config": {}, "properties": { - "user_id": 16 + "user_id": 3 }, "id": [], "required": [] @@ -905,51 +723,41 @@ snapshot[`Typegraph generation with GraphQL runtime 1`] = ` { "type": "optional", "title": "message_query_input_distinct_message_keys_union_optional", - "runtime": 2, "policies": [], - "config": {}, - "item": 80, + "item": 74, "default_value": null }, { "type": "list", "title": "message_keys_union", - "runtime": 2, "policies": [], - "config": {}, - "items": 81 + "items": 75 }, { "type": "string", "title": "message_query_input_distinct_string_enum", - "runtime": 2, "policies": [], "enum": [ "\\\\"id\\\\"", "\\\\"title\\\\"", "\\\\"user_id\\\\"" - ], - "config": {} + ] }, { "type": "list", "title": "root_messages_fn_output", - "runtime": 2, "policies": [], - "config": {}, - "items": 83 + "items": 77 }, { "type": "object", "title": "message_with_nested_count", - "runtime": 2, "policies": [], - "config": {}, "properties": { - "id": 24, - "title": 16, - "user_id": 16, - "user": 17 + "id": 14, + "title": 3, + "user_id": 3, + "user": 15 }, "id": [], "required": [] @@ -1057,7 +865,7 @@ snapshot[`Typegraph generation with GraphQL runtime 1`] = ` "connection_string_secret": "POSTGRES", "models": [ { - "typeIdx": 14, + "typeIdx": 13, "typeName": "message", "props": [ { @@ -1067,7 +875,7 @@ snapshot[`Typegraph generation with GraphQL runtime 1`] = ` "type": "Int" }, "cardinality": "one", - "typeIdx": 15, + "typeIdx": 14, "injection": null, "unique": false, "auto": true, @@ -1081,7 +889,7 @@ snapshot[`Typegraph generation with GraphQL runtime 1`] = ` "format": "Plain" }, "cardinality": "one", - "typeIdx": 16, + "typeIdx": 3, "injection": null, "unique": false, "auto": false, @@ -1095,7 +903,7 @@ snapshot[`Typegraph generation with GraphQL runtime 1`] = ` "format": "Plain" }, "cardinality": "one", - "typeIdx": 16, + "typeIdx": 3, "injection": null, "unique": false, "auto": false, diff --git a/tests/runtimes/grpc/__snapshots__/grpc_test.ts.snap b/tests/runtimes/grpc/__snapshots__/grpc_test.ts.snap index f88450d120..1d6c7690fb 100644 --- a/tests/runtimes/grpc/__snapshots__/grpc_test.ts.snap +++ b/tests/runtimes/grpc/__snapshots__/grpc_test.ts.snap @@ -7,9 +7,7 @@ snapshot[`Typegraph using grpc 1`] = ` { "type": "object", "title": "helloworld", - "runtime": 0, "policies": [], - "config": {}, "properties": { "greet": 1 }, @@ -21,13 +19,13 @@ snapshot[`Typegraph using grpc 1`] = ` { "type": "function", "title": "root_greet_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, "input": 2, "output": 5, + "injections": {}, + "runtimeConfig": null, "materializer": 0, "rate_weight": null, "rate_calls": false @@ -35,9 +33,7 @@ snapshot[`Typegraph using grpc 1`] = ` { "type": "object", "title": "root_greet_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { "name": 3 }, @@ -47,25 +43,19 @@ snapshot[`Typegraph using grpc 1`] = ` { "type": "optional", "title": "root_greet_fn_input_name_root_greet_fn_input_name_string_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 4, "default_value": null }, { "type": "string", "title": "root_greet_fn_input_name_string", - "runtime": 1, - "policies": [], - "config": {} + "policies": [] }, { "type": "object", "title": "root_greet_fn_output", - "runtime": 1, "policies": [], - "config": {}, "properties": { "message": 6 }, @@ -75,9 +65,7 @@ snapshot[`Typegraph using grpc 1`] = ` { "type": "optional", "title": "root_greet_fn_output_message_root_greet_fn_input_name_string_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 4, "default_value": null } @@ -160,9 +148,7 @@ snapshot[`Typegraph using grpc 2`] = ` { "type": "object", "title": "helloworld", - "runtime": 0, "policies": [], - "config": {}, "properties": { "greet": 1 }, @@ -174,13 +160,13 @@ snapshot[`Typegraph using grpc 2`] = ` { "type": "function", "title": "root_greet_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, "input": 2, "output": 5, + "injections": {}, + "runtimeConfig": null, "materializer": 0, "rate_weight": null, "rate_calls": false @@ -188,9 +174,7 @@ snapshot[`Typegraph using grpc 2`] = ` { "type": "object", "title": "root_greet_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { "name": 3 }, @@ -200,25 +184,19 @@ snapshot[`Typegraph using grpc 2`] = ` { "type": "optional", "title": "root_greet_fn_input_name_root_greet_fn_input_name_string_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 4, "default_value": null }, { "type": "string", "title": "root_greet_fn_input_name_string", - "runtime": 1, - "policies": [], - "config": {} + "policies": [] }, { "type": "object", "title": "root_greet_fn_output", - "runtime": 1, "policies": [], - "config": {}, "properties": { "message": 6 }, @@ -228,9 +206,7 @@ snapshot[`Typegraph using grpc 2`] = ` { "type": "optional", "title": "root_greet_fn_output_message_root_greet_fn_input_name_string_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 4, "default_value": null } diff --git a/tests/runtimes/kv/__snapshots__/kv_test.ts.snap b/tests/runtimes/kv/__snapshots__/kv_test.ts.snap index 00d609d838..4501a8ab5f 100644 --- a/tests/runtimes/kv/__snapshots__/kv_test.ts.snap +++ b/tests/runtimes/kv/__snapshots__/kv_test.ts.snap @@ -7,9 +7,7 @@ snapshot[`Typegraph using kv 1`] = ` { "type": "object", "title": "kv", - "runtime": 0, "policies": [], - "config": {}, "properties": { "get": 1, "set": 4, @@ -29,13 +27,13 @@ snapshot[`Typegraph using kv 1`] = ` { "type": "function", "title": "root_get_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, "input": 2, "output": 3, + "injections": {}, + "runtimeConfig": null, "materializer": 0, "rate_weight": null, "rate_calls": false @@ -43,9 +41,7 @@ snapshot[`Typegraph using kv 1`] = ` { "type": "object", "title": "root_get_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { "key": 3 }, @@ -55,20 +51,18 @@ snapshot[`Typegraph using kv 1`] = ` { "type": "string", "title": "root_get_fn_input_key_string", - "runtime": 1, - "policies": [], - "config": {} + "policies": [] }, { "type": "function", "title": "root_set_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, "input": 5, "output": 3, + "injections": {}, + "runtimeConfig": null, "materializer": 2, "rate_weight": null, "rate_calls": false @@ -76,9 +70,7 @@ snapshot[`Typegraph using kv 1`] = ` { "type": "object", "title": "root_set_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { "key": 3, "value": 3 @@ -89,13 +81,13 @@ snapshot[`Typegraph using kv 1`] = ` { "type": "function", "title": "root_delete_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, "input": 2, "output": 7, + "injections": {}, + "runtimeConfig": null, "materializer": 3, "rate_weight": null, "rate_calls": false @@ -103,20 +95,18 @@ snapshot[`Typegraph using kv 1`] = ` { "type": "integer", "title": "root_delete_fn_output", - "runtime": 1, - "policies": [], - "config": {} + "policies": [] }, { "type": "function", "title": "root_keys_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, "input": 9, "output": 11, + "injections": {}, + "runtimeConfig": null, "materializer": 4, "rate_weight": null, "rate_calls": false @@ -124,9 +114,7 @@ snapshot[`Typegraph using kv 1`] = ` { "type": "object", "title": "root_keys_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { "filter": 10 }, @@ -136,30 +124,26 @@ snapshot[`Typegraph using kv 1`] = ` { "type": "optional", "title": "root_keys_fn_input_filter_root_get_fn_input_key_string_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 3, "default_value": null }, { "type": "list", "title": "root_keys_fn_output", - "runtime": 1, "policies": [], - "config": {}, "items": 3 }, { "type": "function", "title": "root_values_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, "input": 13, "output": 15, + "injections": {}, + "runtimeConfig": null, "materializer": 5, "rate_weight": null, "rate_calls": false @@ -167,9 +151,7 @@ snapshot[`Typegraph using kv 1`] = ` { "type": "object", "title": "root_values_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { "filter": 14 }, @@ -179,18 +161,14 @@ snapshot[`Typegraph using kv 1`] = ` { "type": "optional", "title": "root_values_fn_input_filter_root_get_fn_input_key_string_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 3, "default_value": null }, { "type": "list", "title": "root_values_fn_output", - "runtime": 1, "policies": [], - "config": {}, "items": 3 } ], @@ -305,9 +283,7 @@ snapshot[`Typegraph using kv 2`] = ` { "type": "object", "title": "kv", - "runtime": 0, "policies": [], - "config": {}, "properties": { "get": 1, "set": 4, @@ -327,13 +303,13 @@ snapshot[`Typegraph using kv 2`] = ` { "type": "function", "title": "root_get_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, "input": 2, "output": 3, + "injections": {}, + "runtimeConfig": null, "materializer": 0, "rate_weight": null, "rate_calls": false @@ -341,9 +317,7 @@ snapshot[`Typegraph using kv 2`] = ` { "type": "object", "title": "root_get_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { "key": 3 }, @@ -353,20 +327,18 @@ snapshot[`Typegraph using kv 2`] = ` { "type": "string", "title": "root_get_fn_input_key_string", - "runtime": 1, - "policies": [], - "config": {} + "policies": [] }, { "type": "function", "title": "root_set_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, "input": 5, "output": 3, + "injections": {}, + "runtimeConfig": null, "materializer": 2, "rate_weight": null, "rate_calls": false @@ -374,9 +346,7 @@ snapshot[`Typegraph using kv 2`] = ` { "type": "object", "title": "root_set_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { "key": 3, "value": 3 @@ -387,13 +357,13 @@ snapshot[`Typegraph using kv 2`] = ` { "type": "function", "title": "root_delete_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, "input": 2, "output": 7, + "injections": {}, + "runtimeConfig": null, "materializer": 3, "rate_weight": null, "rate_calls": false @@ -401,20 +371,18 @@ snapshot[`Typegraph using kv 2`] = ` { "type": "integer", "title": "root_delete_fn_output", - "runtime": 1, - "policies": [], - "config": {} + "policies": [] }, { "type": "function", "title": "root_keys_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, "input": 9, "output": 11, + "injections": {}, + "runtimeConfig": null, "materializer": 4, "rate_weight": null, "rate_calls": false @@ -422,9 +390,7 @@ snapshot[`Typegraph using kv 2`] = ` { "type": "object", "title": "root_keys_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { "filter": 10 }, @@ -434,30 +400,26 @@ snapshot[`Typegraph using kv 2`] = ` { "type": "optional", "title": "root_keys_fn_input_filter_root_get_fn_input_key_string_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 3, "default_value": null }, { "type": "list", "title": "root_keys_fn_output", - "runtime": 1, "policies": [], - "config": {}, "items": 3 }, { "type": "function", "title": "root_values_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, "input": 13, "output": 15, + "injections": {}, + "runtimeConfig": null, "materializer": 5, "rate_weight": null, "rate_calls": false @@ -465,9 +427,7 @@ snapshot[`Typegraph using kv 2`] = ` { "type": "object", "title": "root_values_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { "filter": 14 }, @@ -477,18 +437,14 @@ snapshot[`Typegraph using kv 2`] = ` { "type": "optional", "title": "root_values_fn_input_filter_root_get_fn_input_key_string_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 3, "default_value": null }, { "type": "list", "title": "root_values_fn_output", - "runtime": 1, "policies": [], - "config": {}, "items": 3 } ], diff --git a/tests/runtimes/prisma/mixed_runtime_test.ts b/tests/runtimes/prisma/mixed_runtime_test.ts index ca47a1e645..8c1607dd45 100644 --- a/tests/runtimes/prisma/mixed_runtime_test.ts +++ b/tests/runtimes/prisma/mixed_runtime_test.ts @@ -135,7 +135,7 @@ Meta.test("prisma mixed runtime", async (t) => { id: "1", title: "Test", }, - user: { age: 65, name: "Nicholas Mills" }, + user: { age: 62, name: "Landon Glover" }, }, }) .on(e); diff --git a/tests/random/random.ts b/tests/runtimes/random/random.ts similarity index 100% rename from tests/random/random.ts rename to tests/runtimes/random/random.ts diff --git a/tests/random/random_.py b/tests/runtimes/random/random_.py similarity index 100% rename from tests/random/random_.py rename to tests/runtimes/random/random_.py diff --git a/tests/runtimes/random/random_test.ts b/tests/runtimes/random/random_test.ts new file mode 100644 index 0000000000..4975ca6e0e --- /dev/null +++ b/tests/runtimes/random/random_test.ts @@ -0,0 +1,193 @@ +// Copyright Metatype OÜ, licensed under the Elastic License 2.0. +// SPDX-License-Identifier: Elastic-2.0 + +import { gql, Meta } from "test-utils/mod.ts"; + +Meta.test("Python: Random", async (t) => { + const e = await t.engine("runtimes/random/random_.py"); + + await t.should("work", async () => { + await gql` + query { + randomRec { + uuid + int + str + email + } + } + ` + .expectData({ + randomRec: { + email: "vi@itabefir.bb", + int: 7457276839329792, + str: "HPFk*o570)7", + uuid: "1069ace0-cdb1-5c1f-8193-81f53d29da35", + }, + }) + .on(e); + }); + + await t.should("work with custom generation params", async () => { + await gql` + query { + randomUser { + id + name + age + address { + street + city + postcode + country + } + } + } + ` + .expectData({ + randomUser: { + age: 61, + id: "415013d6-efc5-5781-aa74-056ee27dbb22", + name: "Gertrude Robertson", + address: { + city: "Igpisi", + country: "Croatia", + postcode: "NR1 5GS", + street: "579 Dico Turnpike", + }, + }, + }) + .on(e); + }); + + await t.should("work for nested arrays", async () => { + await gql` + query { + randomList { + array_of_array_of_names + } + } + ` + .expectData( + { + randomList: { + array_of_array_of_names: [ + [ + "Olivia Smith", + "Lydia Atkins", + "Stella Parker", + "Daisy Chavez", + "Essie Franklin", + "Betty Gill", + "Susan Reeves", + "Rosa Hansen", + "Blanche White", + "Essie Marsh", + ], + [ + "Inez Meyer", + "Ophelia Hayes", + "Bernice Delgado", + "Bernice Rose", + "Rena Vargas", + ], + [ + "Marguerite Tyler", + "Adeline Robinson", + "Lucy King", + "Essie Collins", + "Henrietta Cummings", + "Esther Wade", + "Rena Holmes", + "Louise Warner", + "Gussie Castillo", + ], + [ + "Lelia Curry", + ], + [ + "Lelia Daniels", + "Augusta Webster", + "Hattie Baker", + "Sophia Owen", + "Caroline Poole", + "Catherine Ward", + "Margaret Perez", + "Verna Wallace", + "Flora Daniels", + "Cornelia Allen", + ], + ], + }, + }, + ) + .on(e); + }); +}); + +Meta.test("Deno: Random", async (t) => { + const e = await t.engine("runtimes/random/random.ts"); + + await t.should("work", async () => { + await gql` + query { + test1 { + email + country + } + } + ` + .expectData({ + test1: { + country: "Guyana", + email: "wubju@de.cg", + }, + }) + .on(e); + }); + + await t.should("work on enum, union, and either types", async () => { + await gql` + query { + test2 { + field { + ... on Rgb { + R + G + B + } + ... on Vec { + x + y + z + } + } + toy { + ... on Rubix { + name + size + } + ... on Toygun { + color + } + } + educationLevel + cents + } + } + `.expectData({ + test2: { + field: { + B: 784597442048.8192, + G: -185967195874.9184, + R: 305787281657.0368, + }, + toy: { + color: "FxYMpG#qcNX^EHPFk*", + }, + cents: 1, + educationLevel: "primary", + }, + }).on(e); + }); +}); diff --git a/tests/runtimes/s3/__snapshots__/s3_test.ts.snap b/tests/runtimes/s3/__snapshots__/s3_test.ts.snap index 556441c48a..6db6d67019 100644 --- a/tests/runtimes/s3/__snapshots__/s3_test.ts.snap +++ b/tests/runtimes/s3/__snapshots__/s3_test.ts.snap @@ -6,9 +6,7 @@ snapshot[`s3 typegraphs 1`] = ` { "type": "object", "title": "s3", - "runtime": 0, "policies": [], - "config": {}, "properties": { "listObjects": 1, "getDownloadUrl": 10, @@ -28,13 +26,13 @@ snapshot[`s3 typegraphs 1`] = ` { "type": "function", "title": "root_listObjects_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, "input": 2, "output": 5, + "injections": {}, + "runtimeConfig": null, "materializer": 0, "rate_weight": null, "rate_calls": false @@ -42,9 +40,7 @@ snapshot[`s3 typegraphs 1`] = ` { "type": "object", "title": "root_listObjects_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { "path": 3 }, @@ -54,25 +50,19 @@ snapshot[`s3 typegraphs 1`] = ` { "type": "optional", "title": "root_listObjects_fn_input_path_root_listObjects_fn_input_path_string_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 4, "default_value": null }, { "type": "string", "title": "root_listObjects_fn_input_path_string", - "runtime": 1, - "policies": [], - "config": {} + "policies": [] }, { "type": "object", "title": "root_listObjects_fn_output", - "runtime": 1, "policies": [], - "config": {}, "properties": { "keys": 6, "prefix": 9 @@ -83,17 +73,13 @@ snapshot[`s3 typegraphs 1`] = ` { "type": "list", "title": "root_listObjects_fn_output_keys_root_listObjects_fn_output_keys_struct_list", - "runtime": 1, "policies": [], - "config": {}, "items": 7 }, { "type": "object", "title": "root_listObjects_fn_output_keys_struct", - "runtime": 1, "policies": [], - "config": {}, "properties": { "key": 4, "size": 8 @@ -104,28 +90,24 @@ snapshot[`s3 typegraphs 1`] = ` { "type": "integer", "title": "root_listObjects_fn_output_keys_struct_size_integer", - "runtime": 1, - "policies": [], - "config": {} + "policies": [] }, { "type": "list", "title": "root_listObjects_fn_output_prefix_root_listObjects_fn_input_path_string_list", - "runtime": 1, "policies": [], - "config": {}, "items": 4 }, { "type": "function", "title": "root_getDownloadUrl_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, "input": 11, "output": 12, + "injections": {}, + "runtimeConfig": null, "materializer": 2, "rate_weight": null, "rate_calls": false @@ -133,9 +115,7 @@ snapshot[`s3 typegraphs 1`] = ` { "type": "object", "title": "root_getDownloadUrl_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { "path": 4 }, @@ -145,21 +125,19 @@ snapshot[`s3 typegraphs 1`] = ` { "type": "string", "title": "root_getDownloadUrl_fn_output", - "runtime": 1, "policies": [], - "config": {}, "format": "uri" }, { "type": "function", "title": "root_signTextUploadUrl_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, "input": 14, "output": 12, + "injections": {}, + "runtimeConfig": null, "materializer": 3, "rate_weight": null, "rate_calls": false @@ -167,9 +145,7 @@ snapshot[`s3 typegraphs 1`] = ` { "type": "object", "title": "root_signTextUploadUrl_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { "length": 8, "path": 4 @@ -180,13 +156,13 @@ snapshot[`s3 typegraphs 1`] = ` { "type": "function", "title": "root_upload_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, "input": 16, "output": 19, + "injections": {}, + "runtimeConfig": null, "materializer": 4, "rate_weight": null, "rate_calls": false @@ -194,9 +170,7 @@ snapshot[`s3 typegraphs 1`] = ` { "type": "object", "title": "root_upload_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { "file": 17, "path": 18 @@ -207,9 +181,7 @@ snapshot[`s3 typegraphs 1`] = ` { "type": "file", "title": "root_upload_fn_input_file_file", - "runtime": 1, "policies": [], - "config": {}, "mimeTypes": [ "text/plain" ] @@ -217,29 +189,25 @@ snapshot[`s3 typegraphs 1`] = ` { "type": "optional", "title": "root_upload_fn_input_path_root_listObjects_fn_input_path_string_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 4, "default_value": null }, { "type": "boolean", "title": "root_upload_fn_output", - "runtime": 1, - "policies": [], - "config": {} + "policies": [] }, { "type": "function", "title": "root_uploadMany_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, "input": 21, "output": 19, + "injections": {}, + "runtimeConfig": null, "materializer": 5, "rate_weight": null, "rate_calls": false @@ -247,9 +215,7 @@ snapshot[`s3 typegraphs 1`] = ` { "type": "object", "title": "root_uploadMany_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { "prefix": 22, "files": 23 @@ -260,26 +226,20 @@ snapshot[`s3 typegraphs 1`] = ` { "type": "optional", "title": "root_uploadMany_fn_input_prefix_root_listObjects_fn_input_path_string_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 4, "default_value": "" }, { "type": "list", "title": "root_uploadMany_fn_input_files_root_uploadMany_fn_input_files_file_list", - "runtime": 1, "policies": [], - "config": {}, "items": 24 }, { "type": "file", "title": "root_uploadMany_fn_input_files_file", - "runtime": 1, - "policies": [], - "config": {} + "policies": [] } ], "materializers": [ diff --git a/tests/runtimes/substantial/redis_test.ts b/tests/runtimes/substantial/redis_test.ts index 07091fc641..1732898635 100644 --- a/tests/runtimes/substantial/redis_test.ts +++ b/tests/runtimes/substantial/redis_test.ts @@ -2,21 +2,21 @@ // SPDX-License-Identifier: Elastic-2.0 import { - SUB_REDIS, basicTestTemplate, childWorkflowTestTemplate, concurrentWorkflowTestTemplate, redisCleanup, retrySaveTestTemplate, + SUB_REDIS, } from "./common.ts"; basicTestTemplate( "redis", { - delays: { awaitSleepCompleteSec: 8 }, + delays: { awaitSleepCompleteSec: 16 }, secrets: { SUB_REDIS }, }, - redisCleanup(SUB_REDIS) + redisCleanup(SUB_REDIS), ); concurrentWorkflowTestTemplate( @@ -25,7 +25,7 @@ concurrentWorkflowTestTemplate( delays: { awaitEmailCompleteSec: 12 }, secrets: { SUB_REDIS }, }, - redisCleanup(SUB_REDIS) + redisCleanup(SUB_REDIS), ); retrySaveTestTemplate( @@ -36,8 +36,7 @@ retrySaveTestTemplate( }, secrets: { SUB_REDIS }, }, - - redisCleanup(SUB_REDIS) + redisCleanup(SUB_REDIS), ); childWorkflowTestTemplate( @@ -49,5 +48,5 @@ childWorkflowTestTemplate( secrets: { SUB_REDIS }, }, - redisCleanup(SUB_REDIS) + redisCleanup(SUB_REDIS), ); diff --git a/tests/runtimes/temporal/__snapshots__/temporal_test.ts.snap b/tests/runtimes/temporal/__snapshots__/temporal_test.ts.snap index 67f1370d40..ecc325b509 100644 --- a/tests/runtimes/temporal/__snapshots__/temporal_test.ts.snap +++ b/tests/runtimes/temporal/__snapshots__/temporal_test.ts.snap @@ -7,14 +7,12 @@ snapshot[`Typegraph using temporal 1`] = ` { "type": "object", "title": "temporal", - "runtime": 0, "policies": [], - "config": {}, "properties": { "start": 1, "query": 6, "signal": 9, - "describe": 14 + "describe": 13 }, "id": [], "required": [ @@ -27,13 +25,13 @@ snapshot[`Typegraph using temporal 1`] = ` { "type": "function", "title": "root_start_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, "input": 2, "output": 3, + "injections": {}, + "runtimeConfig": null, "materializer": 0, "rate_weight": null, "rate_calls": false @@ -41,9 +39,7 @@ snapshot[`Typegraph using temporal 1`] = ` { "type": "object", "title": "root_start_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { "workflow_id": 3, "task_queue": 3, @@ -55,24 +51,18 @@ snapshot[`Typegraph using temporal 1`] = ` { "type": "string", "title": "root_start_fn_input_workflow_id_string", - "runtime": 1, - "policies": [], - "config": {} + "policies": [] }, { "type": "list", "title": "root_start_fn_input_args_root_start_fn_input_args_struct_list", - "runtime": 1, "policies": [], - "config": {}, "items": 5 }, { "type": "object", "title": "root_start_fn_input_args_struct", - "runtime": 1, "policies": [], - "config": {}, "properties": { "some_field": 3 }, @@ -82,13 +72,13 @@ snapshot[`Typegraph using temporal 1`] = ` { "type": "function", "title": "root_query_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, "input": 7, "output": 3, + "injections": {}, + "runtimeConfig": null, "materializer": 2, "rate_weight": null, "rate_calls": false @@ -96,9 +86,7 @@ snapshot[`Typegraph using temporal 1`] = ` { "type": "object", "title": "root_query_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { "workflow_id": 3, "run_id": 3, @@ -110,21 +98,28 @@ snapshot[`Typegraph using temporal 1`] = ` { "type": "list", "title": "root_query_fn_input_args_root_start_fn_input_args_struct_list", - "runtime": 1, "policies": [], - "config": {}, "items": 5 }, { "type": "function", "title": "root_signal_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, "input": 10, - "output": 13, + "output": 12, + "injections": { + "workflow_id": { + "injection": { + "source": "static", + "data": { + "value": "\\\\"1234\\\\"" + } + } + } + }, + "runtimeConfig": null, "materializer": 3, "rate_weight": null, "rate_calls": false @@ -132,55 +127,36 @@ snapshot[`Typegraph using temporal 1`] = ` { "type": "object", "title": "root_signal_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { - "workflow_id": 11, + "workflow_id": 3, "run_id": 3, - "args": 12 + "args": 11 }, "id": [], "required": [] }, - { - "type": "string", - "title": "root_signal_fn_input_workflow_id_string", - "runtime": 1, - "policies": [], - "injection": { - "source": "static", - "data": { - "value": "\\\\"1234\\\\"" - } - }, - "config": {} - }, { "type": "list", "title": "root_signal_fn_input_args_root_start_fn_input_args_struct_list", - "runtime": 1, "policies": [], - "config": {}, "items": 5 }, { "type": "boolean", "title": "root_signal_fn_output", - "runtime": 1, - "policies": [], - "config": {} + "policies": [] }, { "type": "function", "title": "root_describe_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, - "input": 15, - "output": 16, + "input": 14, + "output": 15, + "injections": {}, + "runtimeConfig": null, "materializer": 4, "rate_weight": null, "rate_calls": false @@ -188,9 +164,7 @@ snapshot[`Typegraph using temporal 1`] = ` { "type": "object", "title": "root_describe_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { "workflow_id": 3, "run_id": 3 @@ -201,13 +175,11 @@ snapshot[`Typegraph using temporal 1`] = ` { "type": "object", "title": "root_describe_fn_output", - "runtime": 1, "policies": [], - "config": {}, "properties": { - "start_time": 17, - "close_time": 19, - "state": 20 + "start_time": 16, + "close_time": 18, + "state": 19 }, "id": [], "required": [] @@ -215,35 +187,27 @@ snapshot[`Typegraph using temporal 1`] = ` { "type": "optional", "title": "root_describe_fn_output_start_time_root_describe_fn_output_start_time_integer_optional", - "runtime": 1, "policies": [], - "config": {}, - "item": 18, + "item": 17, "default_value": null }, { "type": "integer", "title": "root_describe_fn_output_start_time_integer", - "runtime": 1, - "policies": [], - "config": {} + "policies": [] }, { "type": "optional", "title": "root_describe_fn_output_close_time_root_describe_fn_output_start_time_integer_optional", - "runtime": 1, "policies": [], - "config": {}, - "item": 18, + "item": 17, "default_value": null }, { "type": "optional", "title": "root_describe_fn_output_state_root_describe_fn_output_start_time_integer_optional", - "runtime": 1, "policies": [], - "config": {}, - "item": 18, + "item": 17, "default_value": null } ], @@ -357,9 +321,7 @@ snapshot[`Typegraph using temporal 2`] = ` { "type": "object", "title": "temporal", - "runtime": 0, "policies": [], - "config": {}, "properties": { "startKv": 1, "query": 6, @@ -377,13 +339,13 @@ snapshot[`Typegraph using temporal 2`] = ` { "type": "function", "title": "root_startKv_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, "input": 2, "output": 3, + "injections": {}, + "runtimeConfig": null, "materializer": 0, "rate_weight": null, "rate_calls": false @@ -391,9 +353,7 @@ snapshot[`Typegraph using temporal 2`] = ` { "type": "object", "title": "root_startKv_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { "workflow_id": 3, "task_queue": 3, @@ -405,24 +365,18 @@ snapshot[`Typegraph using temporal 2`] = ` { "type": "string", "title": "root_startKv_fn_input_workflow_id_string", - "runtime": 1, - "policies": [], - "config": {} + "policies": [] }, { "type": "list", "title": "root_startKv_fn_input_args_root_startKv_fn_input_args_struct_list", - "runtime": 1, "policies": [], - "config": {}, "items": 5 }, { "type": "object", "title": "root_startKv_fn_input_args_struct", - "runtime": 1, "policies": [], - "config": {}, "properties": {}, "id": [], "required": [] @@ -430,13 +384,13 @@ snapshot[`Typegraph using temporal 2`] = ` { "type": "function", "title": "root_query_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, "input": 7, "output": 9, + "injections": {}, + "runtimeConfig": null, "materializer": 2, "rate_weight": null, "rate_calls": false @@ -444,9 +398,7 @@ snapshot[`Typegraph using temporal 2`] = ` { "type": "object", "title": "root_query_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { "workflow_id": 3, "run_id": 3, @@ -458,30 +410,26 @@ snapshot[`Typegraph using temporal 2`] = ` { "type": "list", "title": "root_query_fn_input_args_root_startKv_fn_input_workflow_id_string_list", - "runtime": 1, "policies": [], - "config": {}, "items": 3 }, { "type": "optional", "title": "root_query_fn_output", - "runtime": 1, "policies": [], - "config": {}, "item": 3, "default_value": null }, { "type": "function", "title": "root_signal_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, "input": 11, "output": 14, + "injections": {}, + "runtimeConfig": null, "materializer": 3, "rate_weight": null, "rate_calls": false @@ -489,9 +437,7 @@ snapshot[`Typegraph using temporal 2`] = ` { "type": "object", "title": "root_signal_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { "workflow_id": 3, "run_id": 3, @@ -503,17 +449,13 @@ snapshot[`Typegraph using temporal 2`] = ` { "type": "list", "title": "root_signal_fn_input_args_root_signal_fn_input_args_struct_list", - "runtime": 1, "policies": [], - "config": {}, "items": 13 }, { "type": "object", "title": "root_signal_fn_input_args_struct", - "runtime": 1, "policies": [], - "config": {}, "properties": { "key": 3, "value": 3 @@ -524,20 +466,18 @@ snapshot[`Typegraph using temporal 2`] = ` { "type": "boolean", "title": "root_signal_fn_output", - "runtime": 1, - "policies": [], - "config": {} + "policies": [] }, { "type": "function", "title": "root_describe_fn", - "runtime": 1, "policies": [ 0 ], - "config": {}, "input": 16, "output": 17, + "injections": {}, + "runtimeConfig": null, "materializer": 4, "rate_weight": null, "rate_calls": false @@ -545,9 +485,7 @@ snapshot[`Typegraph using temporal 2`] = ` { "type": "object", "title": "root_describe_fn_input", - "runtime": 1, "policies": [], - "config": {}, "properties": { "workflow_id": 3, "run_id": 3 @@ -558,9 +496,7 @@ snapshot[`Typegraph using temporal 2`] = ` { "type": "object", "title": "root_describe_fn_output", - "runtime": 1, "policies": [], - "config": {}, "properties": { "start_time": 18, "close_time": 20, @@ -572,34 +508,26 @@ snapshot[`Typegraph using temporal 2`] = ` { "type": "optional", "title": "root_describe_fn_output_start_time_root_describe_fn_output_start_time_integer_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 19, "default_value": null }, { "type": "integer", "title": "root_describe_fn_output_start_time_integer", - "runtime": 1, - "policies": [], - "config": {} + "policies": [] }, { "type": "optional", "title": "root_describe_fn_output_close_time_root_describe_fn_output_start_time_integer_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 19, "default_value": null }, { "type": "optional", "title": "root_describe_fn_output_state_root_describe_fn_output_start_time_integer_optional", - "runtime": 1, "policies": [], - "config": {}, "item": 19, "default_value": null } diff --git a/tests/runtimes/typegate/__snapshots__/typegate_prisma_test.ts.snap b/tests/runtimes/typegate/__snapshots__/typegate_prisma_test.ts.snap index 9ec19be272..9805f719b8 100644 --- a/tests/runtimes/typegate/__snapshots__/typegate_prisma_test.ts.snap +++ b/tests/runtimes/typegate/__snapshots__/typegate_prisma_test.ts.snap @@ -2,362 +2,13 @@ export const snapshot = {}; snapshot[`typegate: find available operations 1`] = ` { - data: { - findPrismaModels: [ - { - fields: [ - { - as_id: true, - name: "id", - type: { - config: '{"auto":true}', - default: null, - enum: null, - format: "uuid", - optional: false, - policies: [], - runtime: "prisma", - title: "record_output_id_string_uuid", - type: "string", - }, - }, - { - as_id: false, - name: "name", - type: { - config: "{}", - default: null, - enum: null, - format: null, - optional: false, - policies: [], - runtime: "prisma", - title: "_prisma_string_filter_t0_string", - type: "string", - }, - }, - { - as_id: false, - name: "age", - type: { - config: "{}", - default: null, - enum: null, - format: null, - optional: true, - policies: [], - runtime: "prisma", - title: "_prisma_integer_filter_t0_integer", - type: "integer", - }, - }, - { - as_id: false, - name: "createdAt", - type: { - config: "{}", - default: null, - enum: null, - format: "date-time", - optional: false, - policies: [ - '{"create":"__public"}', - ], - runtime: "prisma", - title: "record_create_input_createdAt_string_datetime", - type: "string", - }, - }, - ], - name: "record", - runtime: "prisma", - }, - { - fields: [ - { - as_id: true, - name: "id", - type: { - config: '{"auto":true}', - default: null, - enum: null, - format: "uuid", - optional: false, - policies: [], - runtime: "prisma", - title: "record_output_id_string_uuid", - type: "string", - }, - }, - { - as_id: false, - name: "name", - type: { - config: "{}", - default: null, - enum: null, - format: null, - optional: false, - policies: [], - runtime: "prisma", - title: "_prisma_string_filter_t0_string", - type: "string", - }, - }, - { - as_id: false, - name: "age", - type: { - config: "{}", - default: null, - enum: null, - format: null, - optional: true, - policies: [], - runtime: "prisma", - title: "_prisma_integer_filter_t0_integer", - type: "integer", - }, - }, - { - as_id: false, - name: "createdAt", - type: { - config: "{}", - default: null, - enum: null, - format: "date-time", - optional: false, - policies: [ - '{"create":"__public"}', - ], - runtime: "prisma", - title: "record_create_input_createdAt_string_datetime", - type: "string", - }, - }, - ], - name: "renamed_record", - runtime: "prisma", - }, - { - fields: [ - { - as_id: true, - name: "id", - type: { - config: '{"auto":true}', - default: null, - enum: null, - format: null, - optional: false, - policies: [], - runtime: "prisma", - title: "users_output_id_integer", - type: "integer", - }, - }, - { - as_id: false, - name: "identities", - type: { - config: "{}", - default: null, - enum: null, - format: null, - optional: false, - policies: [], - runtime: "prisma", - title: "users_identities_user_identity_list", - type: "list", - }, - }, - { - as_id: false, - name: "email", - type: { - config: "{}", - default: null, - enum: null, - format: null, - optional: false, - policies: [], - runtime: "prisma", - title: "_prisma_string_filter_t0_string", - type: "string", - }, - }, - { - as_id: false, - name: "name", - type: { - config: "{}", - default: null, - enum: null, - format: null, - optional: false, - policies: [], - runtime: "prisma", - title: "_prisma_string_filter_t0_string", - type: "string", - }, - }, - { - as_id: false, - name: "messages", - type: { - config: "{}", - default: null, - enum: null, - format: null, - optional: false, - policies: [], - runtime: "prisma", - title: "users_messages_messages_list", - type: "list", - }, - }, - ], - name: "users", - runtime: "prisma", - }, - { - fields: [ - { - as_id: true, - name: "id", - type: { - config: '{"auto":true}', - default: null, - enum: null, - format: "uuid", - optional: false, - policies: [], - runtime: "prisma", - title: "record_output_id_string_uuid", - type: "string", - }, - }, - { - as_id: false, - name: "provider", - type: { - config: "{}", - default: null, - enum: [ - '"github"', - '"google"', - '"facebook"', - ], - format: null, - optional: false, - policies: [], - runtime: "prisma", - title: "user_identity_create_input_excluding_rel_user_identity_users_provider_string_enum", - type: "string", - }, - }, - { - as_id: false, - name: "identifier", - type: { - config: "{}", - default: null, - enum: null, - format: null, - optional: false, - policies: [], - runtime: "prisma", - title: "_prisma_string_filter_t0_string", - type: "string", - }, - }, - { - as_id: false, - name: "user", - type: { - config: "{}", - default: null, - enum: null, - format: null, - optional: false, - policies: [], - runtime: "prisma", - title: "users", - type: "object", - }, - }, - ], - name: "user_identity", - runtime: "prisma", - }, - { - fields: [ - { - as_id: true, - name: "id", - type: { - config: "{}", - default: null, - enum: null, - format: null, - optional: false, - policies: [], - runtime: "prisma", - title: "messages_create_input_excluding_messageSender_id_integer", - type: "integer", - }, - }, - { - as_id: false, - name: "time", - type: { - config: "{}", - default: null, - enum: null, - format: null, - optional: false, - policies: [], - runtime: "prisma", - title: "_prisma_integer_filter_t0_integer", - type: "integer", - }, - }, - { - as_id: false, - name: "message", - type: { - config: "{}", - default: null, - enum: null, - format: null, - optional: false, - policies: [], - runtime: "prisma", - title: "_prisma_string_filter_t0_string", - type: "string", - }, - }, - { - as_id: false, - name: "sender", - type: { - config: "{}", - default: null, - enum: null, - format: null, - optional: false, - policies: [], - runtime: "prisma", - title: "users", - type: "object", - }, - }, - ], - name: "messages", - runtime: "prisma", - }, - ], - }, + errors: [ + { + extensions: {}, + locations: [], + message: "'config' not found at 'FindPrismaModels.findPrismaModels.fields.type', available names are: optional, title, type, enum, default, format, policies", + path: [], + }, + ], } `; diff --git a/tests/runtimes/typegate/__snapshots__/typegate_runtime_test.ts.snap b/tests/runtimes/typegate/__snapshots__/typegate_runtime_test.ts.snap index 3101693c94..7f60ee59f3 100644 --- a/tests/runtimes/typegate/__snapshots__/typegate_runtime_test.ts.snap +++ b/tests/runtimes/typegate/__snapshots__/typegate_runtime_test.ts.snap @@ -2,635 +2,13 @@ export const snapshot = {}; snapshot[`typegate: find available operations 1`] = ` { - data: { - findAvailableOperations: [ - { - inputs: [ - { - name: "where", - type: { - config: "{}", - default: null, - enum: null, - format: null, - optional: true, - runtime: "prisma", - title: "record_query_where_unique_input", - type: "object", - }, - }, - ], - name: "findRecord", - output: { - config: "{}", - default: null, - enum: null, - fields: [ - { - subPath: [ - "id", - ], - termNode: { - config: '{"auto":true}', - default: null, - enum: null, - format: "uuid", - optional: false, - runtime: "prisma", - title: "record_with_nested_count_id_string_uuid", - type: "string", - }, - }, - { - subPath: [ - "name", - ], - termNode: { - config: "{}", - default: null, - enum: null, - format: null, - optional: false, - runtime: "prisma", - title: "_prisma_string_filter_t0_string", - type: "string", - }, - }, - { - subPath: [ - "age", - ], - termNode: { - config: "{}", - default: null, - enum: null, - format: null, - optional: true, - runtime: "prisma", - title: "_prisma_integer_filter_t0_integer", - type: "integer", - }, - }, - { - subPath: [ - "createdAt", - ], - termNode: { - config: "{}", - default: null, - enum: null, - format: "date-time", - optional: false, - runtime: "prisma", - title: "record_with_nested_count_createdAt_string_datetime", - type: "string", - }, - }, - ], - format: null, - optional: true, - runtime: "prisma", - title: "record_with_nested_count", - type: "object", - }, - outputItem: null, - }, - { - inputs: [ - { - name: "where", - type: { - config: "{}", - default: null, - enum: null, - format: null, - optional: true, - runtime: "prisma", - title: "record_query_where_input", - type: "object", - }, - }, - { - name: "orderBy", - type: { - config: "{}", - default: null, - enum: null, - format: null, - optional: true, - runtime: "prisma", - title: "record_order_by", - type: "list", - }, - }, - { - name: "take", - type: { - config: "{}", - default: null, - enum: null, - format: null, - optional: true, - runtime: "prisma", - title: "_take", - type: "integer", - }, - }, - { - name: "skip", - type: { - config: "{}", - default: null, - enum: null, - format: null, - optional: true, - runtime: "prisma", - title: "_skip", - type: "integer", - }, - }, - { - name: "cursor", - type: { - config: "{}", - default: null, - enum: null, - format: null, - optional: true, - runtime: "prisma", - title: "record_cursor", - type: "union", - }, - }, - { - name: "distinct", - type: { - config: "{}", - default: null, - enum: null, - format: null, - optional: true, - runtime: "prisma", - title: "record_keys_union", - type: "list", - }, - }, - ], - name: "findManyRecords", - output: { - config: "{}", - default: null, - enum: null, - fields: null, - format: null, - optional: false, - runtime: "prisma", - title: "root_findManyRecords_fn_output", - type: "list", - }, - outputItem: { - config: "{}", - default: null, - enum: null, - fields: [ - { - subPath: [ - "id", - ], - termNode: { - config: '{"auto":true}', - default: null, - enum: null, - format: "uuid", - optional: false, - runtime: "prisma", - title: "record_with_nested_count_id_string_uuid", - type: "string", - }, - }, - { - subPath: [ - "name", - ], - termNode: { - config: "{}", - default: null, - enum: null, - format: null, - optional: false, - runtime: "prisma", - title: "_prisma_string_filter_t0_string", - type: "string", - }, - }, - { - subPath: [ - "age", - ], - termNode: { - config: "{}", - default: null, - enum: null, - format: null, - optional: true, - runtime: "prisma", - title: "_prisma_integer_filter_t0_integer", - type: "integer", - }, - }, - { - subPath: [ - "createdAt", - ], - termNode: { - config: "{}", - default: null, - enum: null, - format: "date-time", - optional: false, - runtime: "prisma", - title: "record_with_nested_count_createdAt_string_datetime", - type: "string", - }, - }, - ], - format: null, - optional: false, - runtime: "prisma", - title: "record_with_nested_count", - type: "object", - }, - }, - { - inputs: [ - { - name: "where", - type: { - config: "{}", - default: null, - enum: null, - format: null, - optional: true, - runtime: "prisma", - title: "users_query_where_unique_input", - type: "object", - }, - }, - ], - name: "findUniqueUser", - output: { - config: "{}", - default: null, - enum: null, - fields: [ - { - subPath: [ - "id", - ], - termNode: { - config: '{"auto":true}', - default: null, - enum: null, - format: null, - optional: false, - runtime: "prisma", - title: "users_create_input_id_integer", - type: "integer", - }, - }, - { - subPath: [ - "identities", - ], - termNode: { - config: "{}", - default: null, - enum: null, - format: null, - optional: false, - runtime: "prisma", - title: "users_with_nested_count_identities_user_identity_with_nested_count_excluding_rel_user_identity_users_list", - type: "list", - }, - }, - { - subPath: [ - "email", - ], - termNode: { - config: "{}", - default: null, - enum: null, - format: null, - optional: false, - runtime: "prisma", - title: "_prisma_string_filter_t0_string", - type: "string", - }, - }, - { - subPath: [ - "name", - ], - termNode: { - config: "{}", - default: null, - enum: null, - format: null, - optional: false, - runtime: "prisma", - title: "_prisma_string_filter_t0_string", - type: "string", - }, - }, - { - subPath: [ - "messages", - ], - termNode: { - config: "{}", - default: null, - enum: null, - format: null, - optional: false, - runtime: "prisma", - title: "users_with_nested_count_messages_messages_with_nested_count_excluding_messageSender_list", - type: "list", - }, - }, - { - subPath: [ - "_count", - "identities", - ], - termNode: { - config: "{}", - default: null, - enum: null, - format: null, - optional: true, - runtime: "prisma", - title: "_prisma_integer_filter_t0_integer", - type: "integer", - }, - }, - { - subPath: [ - "_count", - "messages", - ], - termNode: { - config: "{}", - default: null, - enum: null, - format: null, - optional: true, - runtime: "prisma", - title: "_prisma_integer_filter_t0_integer", - type: "integer", - }, - }, - ], - format: null, - optional: true, - runtime: "prisma", - title: "users_with_nested_count", - type: "object", - }, - outputItem: null, - }, - { - inputs: [ - { - name: "where", - type: { - config: "{}", - default: null, - enum: null, - format: null, - optional: true, - runtime: "prisma", - title: "messages_query_where_input", - type: "object", - }, - }, - { - name: "orderBy", - type: { - config: "{}", - default: null, - enum: null, - format: null, - optional: true, - runtime: "prisma", - title: "messages_order_by", - type: "list", - }, - }, - { - name: "take", - type: { - config: "{}", - default: null, - enum: null, - format: null, - optional: true, - runtime: "prisma", - title: "_take", - type: "integer", - }, - }, - { - name: "skip", - type: { - config: "{}", - default: null, - enum: null, - format: null, - optional: true, - runtime: "prisma", - title: "_skip", - type: "integer", - }, - }, - { - name: "cursor", - type: { - config: "{}", - default: null, - enum: null, - format: null, - optional: true, - runtime: "prisma", - title: "messages_cursor", - type: "union", - }, - }, - { - name: "distinct", - type: { - config: "{}", - default: null, - enum: null, - format: null, - optional: true, - runtime: "prisma", - title: "messages_keys_union", - type: "list", - }, - }, - ], - name: "findMessages", - output: { - config: "{}", - default: null, - enum: null, - fields: null, - format: null, - optional: false, - runtime: "prisma", - title: "root_findMessages_fn_output", - type: "list", - }, - outputItem: { - config: "{}", - default: null, - enum: null, - fields: [ - { - subPath: [ - "id", - ], - termNode: { - config: "{}", - default: null, - enum: null, - format: null, - optional: false, - runtime: "prisma", - title: "_prisma_integer_filter_t0_integer", - type: "integer", - }, - }, - { - subPath: [ - "time", - ], - termNode: { - config: "{}", - default: null, - enum: null, - format: null, - optional: false, - runtime: "prisma", - title: "_prisma_integer_filter_t0_integer", - type: "integer", - }, - }, - { - subPath: [ - "message", - ], - termNode: { - config: "{}", - default: null, - enum: null, - format: null, - optional: false, - runtime: "prisma", - title: "_prisma_string_filter_t0_string", - type: "string", - }, - }, - { - subPath: [ - "sender", - "id", - ], - termNode: { - config: '{"auto":true}', - default: null, - enum: null, - format: null, - optional: false, - runtime: "prisma", - title: "users_output_id_integer", - type: "integer", - }, - }, - { - subPath: [ - "sender", - "identities", - ], - termNode: { - config: "{}", - default: null, - enum: null, - format: null, - optional: false, - runtime: "prisma", - title: "users_identities_user_identity_list", - type: "list", - }, - }, - { - subPath: [ - "sender", - "email", - ], - termNode: { - config: "{}", - default: null, - enum: null, - format: null, - optional: false, - runtime: "prisma", - title: "_prisma_string_filter_t0_string", - type: "string", - }, - }, - { - subPath: [ - "sender", - "name", - ], - termNode: { - config: "{}", - default: null, - enum: null, - format: null, - optional: false, - runtime: "prisma", - title: "_prisma_string_filter_t0_string", - type: "string", - }, - }, - { - subPath: [ - "sender", - "messages", - ], - termNode: { - config: "{}", - default: null, - enum: null, - format: null, - optional: false, - runtime: "prisma", - title: "users_messages_messages_list", - type: "list", - }, - }, - ], - format: null, - optional: false, - runtime: "prisma", - title: "messages_with_nested_count", - type: "object", - }, - }, - ], - }, + errors: [ + { + extensions: {}, + locations: [], + message: "'config' not found at 'Q.findAvailableOperations.inputs.type', available names are: optional, title, type, enum, default, format, policies, fields", + path: [], + }, + ], } `; diff --git a/tests/runtimes/typegate/typegate_prisma_test.ts b/tests/runtimes/typegate/typegate_prisma_test.ts index 7333b9d89b..b5d607cd0a 100644 --- a/tests/runtimes/typegate/typegate_prisma_test.ts +++ b/tests/runtimes/typegate/typegate_prisma_test.ts @@ -40,7 +40,6 @@ Meta.test({ title type enum - runtime config default format diff --git a/tests/runtimes/typegate/typegate_runtime_test.ts b/tests/runtimes/typegate/typegate_runtime_test.ts index f6ce90e405..3cb27cff11 100644 --- a/tests/runtimes/typegate/typegate_runtime_test.ts +++ b/tests/runtimes/typegate/typegate_runtime_test.ts @@ -29,7 +29,6 @@ Meta.test({ title type enum - runtime config default format diff --git a/tests/runtimes/wasm_reflected/rust/Cargo.toml b/tests/runtimes/wasm_reflected/rust/Cargo.toml index 87a99cb805..f01521af7e 100644 --- a/tests/runtimes/wasm_reflected/rust/Cargo.toml +++ b/tests/runtimes/wasm_reflected/rust/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rust" -version = "0.4.11-rc.0" +version = "0.5.0-rc.1" edition = "2021" [lib] diff --git a/tests/runtimes/wasm_wire/rust/fdk.rs b/tests/runtimes/wasm_wire/rust/fdk.rs index 5d03621c64..c2b9ff4707 100644 --- a/tests/runtimes/wasm_wire/rust/fdk.rs +++ b/tests/runtimes/wasm_wire/rust/fdk.rs @@ -270,9 +270,6 @@ pub mod types { pub profile: Profile, } pub type RecordCreationOutput = Vec; - #[derive(Debug, serde::Serialize, serde::Deserialize)] - pub struct RootRandomFnInput { - } pub type HundredRandomOutput = Vec; } pub mod stubs { diff --git a/tests/schema_validation/__snapshots__/type_comparison_test.ts.snap b/tests/schema_validation/__snapshots__/type_comparison_test.ts.snap index f84d9e85c1..e894470e7d 100644 --- a/tests/schema_validation/__snapshots__/type_comparison_test.ts.snap +++ b/tests/schema_validation/__snapshots__/type_comparison_test.ts.snap @@ -19,6 +19,11 @@ snapshot[`type comparison errors 1`] = ` - at type-comparison:/number_fail_3_test_type/[out]/injected/[in]/field: from_parent injection: 'multiple_of' is not a multiple of the 'multiple_of' of the supertype (12 % 12.1 != 0) - at type-comparison:/string_fail_1_test_type/[out]/injected/[in]/field: from_parent injection: 'minimum_length' is required on the subtype if it is defined on the supertype - at type-comparison:/string_fail_2_test_type/[out]/injected/[in]/field: from_parent injection: 'minimum_length' cannot be lower on the subtype: 12 < 13 +- at type-comparison:/file_fail_1_test_type/[out]/injected/[in]/field: from_parent injection: 'minimum_size' is required on the subtype if it is defined on the supertype +- at type-comparison:/file_fail_2_test_type/[out]/injected/[in]/field: from_parent injection: 'minimum_size' cannot be lower on the subtype: 12 < 13 +- at type-comparison:/file_fail_3_test_type/[out]/injected/[in]/field: from_parent injection: 'mime_types' is required on the subtype if it is defined on the supertype +- at type-comparison:/file_fail_4_test_type/[out]/injected/[in]/field: from_parent injection: 'mime_types' is required to be a subset of the supertype's +- at type-comparison:/file_fail_5_test_type/[out]/injected/[in]/field: from_parent injection: 'mime_types' is required to be a subset of the supertype's - at type-comparison:/optional_fail_1_test_type/[out]/injected/[in]/field: from_parent injection: Optional type cannot be a subtype of a non-optional type - at type-comparison:/optional_fail_2_test_type/[out]/injected/[in]/field: from_parent injection: 'minimum' is required on the subtype if it is defined on the supertype - at type-comparison:/list_fail_1_test_type/[out]/injected/[in]/field: from_parent injection: Type mismatch: list to integer diff --git a/tests/type_nodes/union_node_quantifier_test.ts b/tests/type_nodes/union_node_quantifier_test.ts index 98b4efbeed..8836ce4e6b 100644 --- a/tests/type_nodes/union_node_quantifier_test.ts +++ b/tests/type_nodes/union_node_quantifier_test.ts @@ -68,6 +68,7 @@ Meta.test( { label: "ref", content: "LG_1234", + source: null, }, ], }, diff --git a/tests/typecheck/reduce_syntax_test.ts b/tests/typecheck/reduce_syntax_test.ts index 27ff5633f0..6c63fa1f43 100644 --- a/tests/typecheck/reduce_syntax_test.ts +++ b/tests/typecheck/reduce_syntax_test.ts @@ -28,7 +28,7 @@ Meta.test("deno(sdk): reduce", async (t) => { student: { id: 1, name: "Jake", - infos: { age: 15 }, + infos: { age: 15, school: null }, }, }, }) @@ -79,7 +79,7 @@ Meta.test("deno(sdk): reduce", async (t) => { student: { id: 1234, // from reduce 1 name: "Jake", // from user - infos: { age: 15 }, // from user + infos: { age: 15, school: null }, // from user distinctions: { awards: [ // from reduce 1 @@ -136,7 +136,7 @@ Meta.test("deno(sdk): reduce", async (t) => { student: { id: 1234, // from reduce name: "Kyle", // from user - infos: { age: 17 }, // from context + infos: { age: 17, school: null }, // from context }, grades: { year: 2000, // from explicit injection set(..) @@ -191,7 +191,7 @@ Meta.test("python(sdk): reduce", async (t) => { await t.should("work with reduce composition and injections", async () => { await gql` query { - simpleInjection(two: { user: 4444 }) { + simpleInjection(two: { user: 4444, reduce: 4 }) { one two { set diff --git a/tests/typecheck/type_alias_test.ts b/tests/typecheck/type_alias_test.ts index 90e87038d1..c51ed65cf1 100644 --- a/tests/typecheck/type_alias_test.ts +++ b/tests/typecheck/type_alias_test.ts @@ -18,9 +18,9 @@ Meta.test("Random", async (t) => { ` .expectData({ get_message: { - B: -6252260489166848, - a: -6940119625891840, - title: "(eHAQ*ECr4%5Qwa5T", + B: 3336617896968192, + a: -1494798787674112, + title: "1*ajw]krgDnCzXD*N!Fx", }, }) .on(e); @@ -40,9 +40,9 @@ Meta.test("Random", async (t) => { ` .expectData({ one: { - four: 7781716965982208, - three: "ye12M52^m", - two: 2221033285222400, + four: -6252260489166848, + three: "(eHAQ*ECr4%5Qwa5T", + two: -6940119625891840, }, }) .on(e); @@ -72,18 +72,33 @@ Meta.test("Random", async (t) => { } ` .expectData({ - some_alias: { some_id: -8923192479449088, title: "tXIHACrEbD" }, + some_alias: { + some_id: -4461702699548672, + title: "3lo*RB)", + }, get_message: { - user_id: 6379176739209216, + user_id: 316945098342400, info: [ - { content: "c(3]DC39H[", title: "Rg!mCL36" }, - { content: "RJXJg7]D5%]c", title: "%Oq(27tcP0jIB" }, - { content: "5cj1TYaTNhau(5%", title: "gqLtZgHFAi8Ud7CZH42z" }, - { content: "6L^0kflTn9UZ^P]@032", title: "!uF88WUak2fSbYeRHQi" }, + { + content: "7nQg2dMG5bQeI8zVf5", + title: "sw@ON", + }, + { + content: "WQnlMI%zJq!R!xk^", + title: "0fr[dnu8##f", + }, + { + content: "sX@eElTSrxh$M", + title: "^ItqiGoJKy1ap", + }, ], }, - some_alias_2: { some_title: "KB2bni&" }, - some_alias_3: { some_title: "S#4]L*K" }, + some_alias_2: { + some_title: "qloUYOlWLk]3", + }, + some_alias_3: { + some_title: "$bNlQ3^cxB", + }, }) .on(e); }); diff --git a/tests/typecheck/typecheck_test.ts b/tests/typecheck/typecheck_test.ts index 7382750219..c351fd5186 100644 --- a/tests/typecheck/typecheck_test.ts +++ b/tests/typecheck/typecheck_test.ts @@ -25,7 +25,7 @@ Meta.test("typecheck", async (t) => { } return new ResultValidationCompiler(tg, fragments).generate( - operation.unwrap() + operation.unwrap(), ); }; @@ -49,7 +49,7 @@ Meta.test("typecheck", async (t) => { } `), Error, - "Unexpected property 'postis' at 'Query1'" + "Unexpected property 'postis' at 'Query1'", ); assertThrows( @@ -64,7 +64,7 @@ Meta.test("typecheck", async (t) => { } `), Error, - "Unexpected property 'text' at 'Query2.posts'" + "Unexpected property 'text' at 'Query2.posts'", ); }); @@ -223,7 +223,11 @@ Meta.test("typecheck", async (t) => { .expectData({ findProduct: { name: "A", - equivalent: [{ name: "B" }, { name: "C" }, { name: "D", score: 10 }], + equivalent: [{ name: "B", equivalent: null, score: null }, { + name: "C", + equivalent: null, + score: null, + }, { name: "D", equivalent: null, score: 10 }], score: null, }, }) diff --git a/tests/utils/bindings_test.ts b/tests/utils/bindings_test.ts index 8e6dc26bee..4c9a0477b4 100644 --- a/tests/utils/bindings_test.ts +++ b/tests/utils/bindings_test.ts @@ -38,9 +38,7 @@ Deno.test("typegraphValidate", () => { { "type": "object", "title": "introspection", - "runtime": 0, "policies": [], - "config": {}, "properties": { "__type": 1, "__schema": 64, @@ -54,13 +52,13 @@ Deno.test("typegraphValidate", () => { { "type": "function", "title": "func_79", - "runtime": 1, "policies": [ 0, ], - "config": {}, "input": 2, "output": 4, + "injections": {}, + "runtimeConfig": null, "materializer": 0, "rate_weight": null, "rate_calls": false, diff --git a/tools/consts.ts b/tools/consts.ts index 30cd17692d..e3dbcbcffc 100644 --- a/tools/consts.ts +++ b/tools/consts.ts @@ -1,7 +1,7 @@ // Copyright Metatype OÜ, licensed under the Elastic License 2.0. // SPDX-License-Identifier: Elastic-2.0 -export const METATYPE_VERSION = "0.4.11-rc.0"; +export const METATYPE_VERSION = "0.5.0-rc.1"; export const PUBLISHED_VERSION = "0.4.10"; export const GHJK_VERSION = "v0.2.1"; export const GHJK_ACTION_VERSION = "318209a9d215f70716a4ac89dbeb9653a2deb8bc";