diff --git a/.sqlx/query-0485ba8682dc98b714d295e5780b5e36fb0fb6224b8628c181bb23bd0c953504.json b/.sqlx/query-0485ba8682dc98b714d295e5780b5e36fb0fb6224b8628c181bb23bd0c953504.json new file mode 100644 index 0000000..1238770 --- /dev/null +++ b/.sqlx/query-0485ba8682dc98b714d295e5780b5e36fb0fb6224b8628c181bb23bd0c953504.json @@ -0,0 +1,101 @@ +{ + "db_name": "PostgreSQL", + "query": "\n SELECT\n b.id,\n b.title,\n b.lang,\n b.file_type,\n b.year,\n CASE WHEN b.file_type = 'fb2' THEN ARRAY['fb2', 'epub', 'mobi', 'fb2zip'] ELSE ARRAY[b.file_type] END AS \"available_types!: Vec\",\n b.uploaded,\n (\n SELECT\n JSON_AGG(\n JSON_BUILD_OBJECT(\n 'id', authors.id,\n 'first_name', authors.first_name,\n 'last_name', authors.last_name,\n 'middle_name', authors.middle_name,\n 'annotation_exists', EXISTS(\n SELECT * FROM author_annotations WHERE author = authors.id\n )\n )\n )\n FROM book_authors\n JOIN authors ON authors.id = book_authors.author\n WHERE book_authors.book = b.id\n ) AS \"authors!: Vec\",\n (\n SELECT\n JSON_AGG(\n JSON_BUILD_OBJECT(\n 'id', authors.id,\n 'first_name', authors.first_name,\n 'last_name', authors.last_name,\n 'middle_name', authors.middle_name,\n 'annotation_exists', EXISTS(\n SELECT * FROM author_annotations WHERE author = authors.id\n )\n )\n )\n FROM translations\n JOIN authors ON authors.id = translations.author\n WHERE translations.book = b.id\n ) AS \"translators!: Vec\",\n (\n SELECT\n JSON_AGG(\n JSON_BUILD_OBJECT(\n 'id', sequences.id,\n 'name', sequences.name\n )\n )\n FROM book_sequences\n JOIN sequences ON sequences.id = book_sequences.sequence\n WHERE book_sequences.book = b.id\n ) AS \"sequences!: Vec\",\n EXISTS(\n SELECT * FROM book_annotations WHERE book = b.id\n ) AS \"annotation_exists!: bool\",\n (\n SELECT\n JSON_BUILD_OBJECT(\n 'id', sources.id,\n 'name', sources.name\n )\n FROM sources\n WHERE sources.id = b.source\n ) AS \"source!: Source\",\n b.remote_id\n FROM books b\n WHERE lang = ANY($1) AND\n ($2::boolean IS NULL OR is_deleted = $2) AND\n ($3::date IS NULL OR uploaded >= $3) AND\n ($4::date IS NULL OR uploaded <= $4) AND\n ($5::integer IS NULL OR id >= $5) AND\n ($6::integer IS NULL OR id <= $6)\n ORDER BY b.id ASC\n OFFSET $7\n LIMIT $8\n ", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "id", + "type_info": "Int4" + }, + { + "ordinal": 1, + "name": "title", + "type_info": "Varchar" + }, + { + "ordinal": 2, + "name": "lang", + "type_info": "Varchar" + }, + { + "ordinal": 3, + "name": "file_type", + "type_info": "Varchar" + }, + { + "ordinal": 4, + "name": "year", + "type_info": "Int2" + }, + { + "ordinal": 5, + "name": "available_types!: Vec", + "type_info": "VarcharArray" + }, + { + "ordinal": 6, + "name": "uploaded", + "type_info": "Date" + }, + { + "ordinal": 7, + "name": "authors!: Vec", + "type_info": "Json" + }, + { + "ordinal": 8, + "name": "translators!: Vec", + "type_info": "Json" + }, + { + "ordinal": 9, + "name": "sequences!: Vec", + "type_info": "Json" + }, + { + "ordinal": 10, + "name": "annotation_exists!: bool", + "type_info": "Bool" + }, + { + "ordinal": 11, + "name": "source!: Source", + "type_info": "Json" + }, + { + "ordinal": 12, + "name": "remote_id", + "type_info": "Int4" + } + ], + "parameters": { + "Left": [ + "TextArray", + "Bool", + "Date", + "Date", + "Int4", + "Int4", + "Int8", + "Int8" + ] + }, + "nullable": [ + false, + false, + false, + false, + false, + null, + false, + null, + null, + null, + null, + null, + false + ] + }, + "hash": "0485ba8682dc98b714d295e5780b5e36fb0fb6224b8628c181bb23bd0c953504" +} diff --git a/.sqlx/query-078bb62c5139d159bc17d98480846591fe42a466b788e7c27e1a64a6549bfda3.json b/.sqlx/query-078bb62c5139d159bc17d98480846591fe42a466b788e7c27e1a64a6549bfda3.json new file mode 100644 index 0000000..9c87e81 --- /dev/null +++ b/.sqlx/query-078bb62c5139d159bc17d98480846591fe42a466b788e7c27e1a64a6549bfda3.json @@ -0,0 +1,23 @@ +{ + "db_name": "PostgreSQL", + "query": "SELECT COUNT(*) FROM book_sequences bs\n JOIN books b ON b.id = bs.book\n WHERE\n b.is_deleted = FALSE AND\n bs.sequence = $1 AND\n b.lang = ANY($2)", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "count", + "type_info": "Int8" + } + ], + "parameters": { + "Left": [ + "Int4", + "TextArray" + ] + }, + "nullable": [ + null + ] + }, + "hash": "078bb62c5139d159bc17d98480846591fe42a466b788e7c27e1a64a6549bfda3" +} diff --git a/.sqlx/query-0f3b01504179579a83609396a1db8423e01626183a48574a9f5a8645eabd88ec.json b/.sqlx/query-0f3b01504179579a83609396a1db8423e01626183a48574a9f5a8645eabd88ec.json new file mode 100644 index 0000000..a3908b9 --- /dev/null +++ b/.sqlx/query-0f3b01504179579a83609396a1db8423e01626183a48574a9f5a8645eabd88ec.json @@ -0,0 +1,35 @@ +{ + "db_name": "PostgreSQL", + "query": "\n SELECT\n b.id,\n CASE WHEN b.file_type = 'fb2' THEN ARRAY['fb2', 'epub', 'mobi', 'fb2zip'] ELSE ARRAY[b.file_type] END AS \"available_types!: Vec\"\n FROM books b\n WHERE lang = ANY($1) AND\n ($2::boolean IS NULL OR is_deleted = $2) AND\n ($3::date IS NULL OR uploaded >= $3) AND\n ($4::date IS NULL OR uploaded <= $4) AND\n ($5::integer IS NULL OR id >= $5) AND\n ($6::integer IS NULL OR id <= $6)\n ORDER BY b.id ASC\n OFFSET $7\n LIMIT $8\n ", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "id", + "type_info": "Int4" + }, + { + "ordinal": 1, + "name": "available_types!: Vec", + "type_info": "VarcharArray" + } + ], + "parameters": { + "Left": [ + "TextArray", + "Bool", + "Date", + "Date", + "Int4", + "Int4", + "Int8", + "Int8" + ] + }, + "nullable": [ + false, + null + ] + }, + "hash": "0f3b01504179579a83609396a1db8423e01626183a48574a9f5a8645eabd88ec" +} diff --git a/.sqlx/query-14038503cd48456847a8ba692094691cb292a41b0456323b976e996536e20819.json b/.sqlx/query-14038503cd48456847a8ba692094691cb292a41b0456323b976e996536e20819.json new file mode 100644 index 0000000..7141f18 --- /dev/null +++ b/.sqlx/query-14038503cd48456847a8ba692094691cb292a41b0456323b976e996536e20819.json @@ -0,0 +1,85 @@ +{ + "db_name": "PostgreSQL", + "query": "\n SELECT\n b.id,\n b.title,\n b.lang,\n b.file_type,\n b.year,\n CASE WHEN b.file_type = 'fb2' THEN ARRAY['fb2', 'epub', 'mobi', 'fb2zip'] ELSE ARRAY[b.file_type] END AS \"available_types!: Vec\",\n b.uploaded,\n (\n SELECT\n JSON_AGG(\n JSON_BUILD_OBJECT(\n 'id', authors.id,\n 'first_name', authors.first_name,\n 'last_name', authors.last_name,\n 'middle_name', authors.middle_name,\n 'annotation_exists', EXISTS(\n SELECT * FROM author_annotations WHERE author = authors.id\n )\n )\n )\n FROM book_authors\n JOIN authors ON authors.id = book_authors.author\n WHERE book_authors.book = b.id\n ) AS \"authors!: Vec\",\n (\n SELECT\n JSON_AGG(\n JSON_BUILD_OBJECT(\n 'id', authors.id,\n 'first_name', authors.first_name,\n 'last_name', authors.last_name,\n 'middle_name', authors.middle_name,\n 'annotation_exists', EXISTS(\n SELECT * FROM author_annotations WHERE author = authors.id\n )\n )\n )\n FROM translations\n JOIN authors ON authors.id = translations.author\n WHERE translations.book = b.id\n ) AS \"translators!: Vec\",\n EXISTS(\n SELECT * FROM book_annotations WHERE book = b.id\n ) AS \"annotation_exists!: bool\",\n bs.position\n FROM books b\n JOIN book_sequences bs ON b.id = bs.book\n WHERE\n b.is_deleted = FALSE AND\n bs.sequence = $1 AND\n b.lang = ANY($2)\n ORDER BY bs.position\n LIMIT $3 OFFSET $4\n ", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "id", + "type_info": "Int4" + }, + { + "ordinal": 1, + "name": "title", + "type_info": "Varchar" + }, + { + "ordinal": 2, + "name": "lang", + "type_info": "Varchar" + }, + { + "ordinal": 3, + "name": "file_type", + "type_info": "Varchar" + }, + { + "ordinal": 4, + "name": "year", + "type_info": "Int2" + }, + { + "ordinal": 5, + "name": "available_types!: Vec", + "type_info": "VarcharArray" + }, + { + "ordinal": 6, + "name": "uploaded", + "type_info": "Date" + }, + { + "ordinal": 7, + "name": "authors!: Vec", + "type_info": "Json" + }, + { + "ordinal": 8, + "name": "translators!: Vec", + "type_info": "Json" + }, + { + "ordinal": 9, + "name": "annotation_exists!: bool", + "type_info": "Bool" + }, + { + "ordinal": 10, + "name": "position", + "type_info": "Int2" + } + ], + "parameters": { + "Left": [ + "Int4", + "TextArray", + "Int8", + "Int8" + ] + }, + "nullable": [ + false, + false, + false, + false, + false, + null, + false, + null, + null, + null, + false + ] + }, + "hash": "14038503cd48456847a8ba692094691cb292a41b0456323b976e996536e20819" +} diff --git a/.sqlx/query-1875c11e55b61fd58e916f7663e2649e0c09ae604e620274718dd465e7958f64.json b/.sqlx/query-1875c11e55b61fd58e916f7663e2649e0c09ae604e620274718dd465e7958f64.json new file mode 100644 index 0000000..1db8bdc --- /dev/null +++ b/.sqlx/query-1875c11e55b61fd58e916f7663e2649e0c09ae604e620274718dd465e7958f64.json @@ -0,0 +1,40 @@ +{ + "db_name": "PostgreSQL", + "query": "\n SELECT\n aa.id,\n aa.title,\n aa.text,\n aa.file\n FROM author_annotations aa\n WHERE aa.author = $1\n ", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "id", + "type_info": "Int4" + }, + { + "ordinal": 1, + "name": "title", + "type_info": "Varchar" + }, + { + "ordinal": 2, + "name": "text", + "type_info": "Text" + }, + { + "ordinal": 3, + "name": "file", + "type_info": "Varchar" + } + ], + "parameters": { + "Left": [ + "Int4" + ] + }, + "nullable": [ + false, + false, + false, + true + ] + }, + "hash": "1875c11e55b61fd58e916f7663e2649e0c09ae604e620274718dd465e7958f64" +} diff --git a/.sqlx/query-1f4b55a62fe01008a2a4a040450484785509312d213ea76a0efdd23d55e69a47.json b/.sqlx/query-1f4b55a62fe01008a2a4a040450484785509312d213ea76a0efdd23d55e69a47.json new file mode 100644 index 0000000..ba314d2 --- /dev/null +++ b/.sqlx/query-1f4b55a62fe01008a2a4a040450484785509312d213ea76a0efdd23d55e69a47.json @@ -0,0 +1,29 @@ +{ + "db_name": "PostgreSQL", + "query": "\n SELECT\n b.id,\n CASE WHEN b.file_type = 'fb2' THEN ARRAY['fb2', 'epub', 'mobi', 'fb2zip'] ELSE ARRAY[b.file_type] END AS \"available_types!: Vec\"\n FROM books b\n JOIN book_authors ba ON b.id = ba.book\n WHERE\n b.is_deleted = false\n AND ba.author = $1\n AND b.lang = ANY($2)\n ", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "id", + "type_info": "Int4" + }, + { + "ordinal": 1, + "name": "available_types!: Vec", + "type_info": "VarcharArray" + } + ], + "parameters": { + "Left": [ + "Int4", + "TextArray" + ] + }, + "nullable": [ + false, + null + ] + }, + "hash": "1f4b55a62fe01008a2a4a040450484785509312d213ea76a0efdd23d55e69a47" +} diff --git a/.sqlx/query-51a16072eb796c133dc5e5986c163096084751678a86c60769849f96c79c398d.json b/.sqlx/query-51a16072eb796c133dc5e5986c163096084751678a86c60769849f96c79c398d.json new file mode 100644 index 0000000..b083ee7 --- /dev/null +++ b/.sqlx/query-51a16072eb796c133dc5e5986c163096084751678a86c60769849f96c79c398d.json @@ -0,0 +1,82 @@ +{ + "db_name": "PostgreSQL", + "query": "\n SELECT\n b.id,\n b.title,\n b.lang,\n b.file_type,\n b.year,\n CASE WHEN b.file_type = 'fb2' THEN ARRAY['fb2', 'epub', 'mobi', 'fb2zip'] ELSE ARRAY[b.file_type] END AS \"available_types!: Vec\",\n b.uploaded,\n (\n SELECT\n JSON_AGG(\n JSON_BUILD_OBJECT(\n 'id', authors.id,\n 'first_name', authors.first_name,\n 'last_name', authors.last_name,\n 'middle_name', authors.middle_name,\n 'annotation_exists', EXISTS(\n SELECT * FROM author_annotations WHERE author = authors.id\n )\n )\n )\n FROM book_authors\n JOIN authors ON authors.id = book_authors.author\n WHERE book_authors.book = b.id\n ) AS \"authors!: Vec\",\n (\n SELECT\n JSON_AGG(\n JSON_BUILD_OBJECT(\n 'id', authors.id,\n 'first_name', authors.first_name,\n 'last_name', authors.last_name,\n 'middle_name', authors.middle_name,\n 'annotation_exists', EXISTS(\n SELECT * FROM author_annotations WHERE author = authors.id\n )\n )\n )\n FROM translations\n JOIN authors ON authors.id = translations.author\n WHERE translations.book = b.id\n ) AS \"translators!: Vec\",\n (\n SELECT\n JSON_AGG(\n JSON_BUILD_OBJECT(\n 'id', sequences.id,\n 'name', sequences.name\n )\n )\n FROM book_sequences\n JOIN sequences ON sequences.id = book_sequences.sequence\n WHERE book_sequences.book = b.id\n ) AS \"sequences!: Vec\",\n EXISTS(\n SELECT * FROM book_annotations WHERE book = b.id\n ) AS \"annotation_exists!: bool\"\n FROM books b\n WHERE b.id = ANY($1)\n ", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "id", + "type_info": "Int4" + }, + { + "ordinal": 1, + "name": "title", + "type_info": "Varchar" + }, + { + "ordinal": 2, + "name": "lang", + "type_info": "Varchar" + }, + { + "ordinal": 3, + "name": "file_type", + "type_info": "Varchar" + }, + { + "ordinal": 4, + "name": "year", + "type_info": "Int2" + }, + { + "ordinal": 5, + "name": "available_types!: Vec", + "type_info": "VarcharArray" + }, + { + "ordinal": 6, + "name": "uploaded", + "type_info": "Date" + }, + { + "ordinal": 7, + "name": "authors!: Vec", + "type_info": "Json" + }, + { + "ordinal": 8, + "name": "translators!: Vec", + "type_info": "Json" + }, + { + "ordinal": 9, + "name": "sequences!: Vec", + "type_info": "Json" + }, + { + "ordinal": 10, + "name": "annotation_exists!: bool", + "type_info": "Bool" + } + ], + "parameters": { + "Left": [ + "Int4Array" + ] + }, + "nullable": [ + false, + false, + false, + false, + false, + null, + false, + null, + null, + null, + null + ] + }, + "hash": "51a16072eb796c133dc5e5986c163096084751678a86c60769849f96c79c398d" +} diff --git a/.sqlx/query-57f37e885a05ace86e5768a8ad7ac04f5d48784885db7d04d04e277d8c51970c.json b/.sqlx/query-57f37e885a05ace86e5768a8ad7ac04f5d48784885db7d04d04e277d8c51970c.json new file mode 100644 index 0000000..bd1aba8 --- /dev/null +++ b/.sqlx/query-57f37e885a05ace86e5768a8ad7ac04f5d48784885db7d04d04e277d8c51970c.json @@ -0,0 +1,28 @@ +{ + "db_name": "PostgreSQL", + "query": "\n SELECT id, name FROM sequences WHERE id = $1\n ", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "id", + "type_info": "Int4" + }, + { + "ordinal": 1, + "name": "name", + "type_info": "Varchar" + } + ], + "parameters": { + "Left": [ + "Int4" + ] + }, + "nullable": [ + false, + false + ] + }, + "hash": "57f37e885a05ace86e5768a8ad7ac04f5d48784885db7d04d04e277d8c51970c" +} diff --git a/.sqlx/query-5ed13002eed0824bd874fc889b765e6e36bcfb7343a8c945bca0f3c46999ec2d.json b/.sqlx/query-5ed13002eed0824bd874fc889b765e6e36bcfb7343a8c945bca0f3c46999ec2d.json new file mode 100644 index 0000000..fcfb6e0 --- /dev/null +++ b/.sqlx/query-5ed13002eed0824bd874fc889b765e6e36bcfb7343a8c945bca0f3c46999ec2d.json @@ -0,0 +1,113 @@ +{ + "db_name": "PostgreSQL", + "query": "\n SELECT\n b.id,\n b.title,\n b.lang,\n b.file_type,\n b.year,\n CASE WHEN b.file_type = 'fb2' THEN ARRAY['fb2', 'epub', 'mobi', 'fb2zip'] ELSE ARRAY[b.file_type] END AS \"available_types!: Vec\",\n b.uploaded,\n (\n SELECT\n JSON_AGG(\n JSON_BUILD_OBJECT(\n 'id', authors.id,\n 'first_name', authors.first_name,\n 'last_name', authors.last_name,\n 'middle_name', authors.middle_name,\n 'annotation_exists', EXISTS(\n SELECT * FROM author_annotations WHERE author = authors.id\n )\n )\n )\n FROM book_authors\n JOIN authors ON authors.id = book_authors.author\n WHERE book_authors.book = b.id\n ) AS \"authors!: Vec\",\n (\n SELECT\n JSON_AGG(\n JSON_BUILD_OBJECT(\n 'id', authors.id,\n 'first_name', authors.first_name,\n 'last_name', authors.last_name,\n 'middle_name', authors.middle_name,\n 'annotation_exists', EXISTS(\n SELECT * FROM author_annotations WHERE author = authors.id\n )\n )\n )\n FROM translations\n JOIN authors ON authors.id = translations.author\n WHERE translations.book = b.id\n ) AS \"translators!: Vec\",\n (\n SELECT\n JSON_AGG(\n JSON_BUILD_OBJECT(\n 'id', sequences.id,\n 'name', sequences.name\n )\n )\n FROM book_sequences\n JOIN sequences ON sequences.id = book_sequences.sequence\n WHERE book_sequences.book = b.id\n ) AS \"sequences!: Vec\",\n (\n SELECT\n JSON_AGG(\n JSON_BUILD_OBJECT(\n 'id', genres.id,\n 'code', genres.code,\n 'description', genres.description,\n 'meta', genres.meta,\n 'source', JSON_BUILD_OBJECT(\n 'id', sources.id,\n 'name', sources.name\n )\n )\n )\n FROM book_genres\n JOIN genres ON genres.id = book_genres.genre\n JOIN sources ON sources.id = genres.source\n WHERE book_genres.book = b.id\n ) AS \"genres!: Vec\",\n EXISTS(\n SELECT * FROM book_annotations WHERE book = b.id\n ) AS \"annotation_exists!: bool\",\n (\n SELECT\n JSON_BUILD_OBJECT(\n 'id', sources.id,\n 'name', sources.name\n )\n FROM sources\n WHERE sources.id = b.source\n ) AS \"source!: Source\",\n b.remote_id,\n b.is_deleted,\n b.pages\n FROM books b\n WHERE b.source = $1 AND b.remote_id = $2\n ", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "id", + "type_info": "Int4" + }, + { + "ordinal": 1, + "name": "title", + "type_info": "Varchar" + }, + { + "ordinal": 2, + "name": "lang", + "type_info": "Varchar" + }, + { + "ordinal": 3, + "name": "file_type", + "type_info": "Varchar" + }, + { + "ordinal": 4, + "name": "year", + "type_info": "Int2" + }, + { + "ordinal": 5, + "name": "available_types!: Vec", + "type_info": "VarcharArray" + }, + { + "ordinal": 6, + "name": "uploaded", + "type_info": "Date" + }, + { + "ordinal": 7, + "name": "authors!: Vec", + "type_info": "Json" + }, + { + "ordinal": 8, + "name": "translators!: Vec", + "type_info": "Json" + }, + { + "ordinal": 9, + "name": "sequences!: Vec", + "type_info": "Json" + }, + { + "ordinal": 10, + "name": "genres!: Vec", + "type_info": "Json" + }, + { + "ordinal": 11, + "name": "annotation_exists!: bool", + "type_info": "Bool" + }, + { + "ordinal": 12, + "name": "source!: Source", + "type_info": "Json" + }, + { + "ordinal": 13, + "name": "remote_id", + "type_info": "Int4" + }, + { + "ordinal": 14, + "name": "is_deleted", + "type_info": "Bool" + }, + { + "ordinal": 15, + "name": "pages", + "type_info": "Int4" + } + ], + "parameters": { + "Left": [ + "Int2", + "Int4" + ] + }, + "nullable": [ + false, + false, + false, + false, + false, + null, + false, + null, + null, + null, + null, + null, + null, + false, + false, + true + ] + }, + "hash": "5ed13002eed0824bd874fc889b765e6e36bcfb7343a8c945bca0f3c46999ec2d" +} diff --git a/.sqlx/query-5f884948bcf39879c8d72d979e0638445a79707f55fd5eecb000a4166b3855b4.json b/.sqlx/query-5f884948bcf39879c8d72d979e0638445a79707f55fd5eecb000a4166b3855b4.json new file mode 100644 index 0000000..0e3ff31 --- /dev/null +++ b/.sqlx/query-5f884948bcf39879c8d72d979e0638445a79707f55fd5eecb000a4166b3855b4.json @@ -0,0 +1,112 @@ +{ + "db_name": "PostgreSQL", + "query": "\n SELECT\n b.id,\n b.title,\n b.lang,\n b.file_type,\n b.year,\n CASE WHEN b.file_type = 'fb2' THEN ARRAY['fb2', 'epub', 'mobi', 'fb2zip'] ELSE ARRAY[b.file_type] END AS \"available_types!: Vec\",\n b.uploaded,\n (\n SELECT\n JSON_AGG(\n JSON_BUILD_OBJECT(\n 'id', authors.id,\n 'first_name', authors.first_name,\n 'last_name', authors.last_name,\n 'middle_name', authors.middle_name,\n 'annotation_exists', EXISTS(\n SELECT * FROM author_annotations WHERE author = authors.id\n )\n )\n )\n FROM book_authors\n JOIN authors ON authors.id = book_authors.author\n WHERE book_authors.book = b.id\n ) AS \"authors!: Vec\",\n (\n SELECT\n JSON_AGG(\n JSON_BUILD_OBJECT(\n 'id', authors.id,\n 'first_name', authors.first_name,\n 'last_name', authors.last_name,\n 'middle_name', authors.middle_name,\n 'annotation_exists', EXISTS(\n SELECT * FROM author_annotations WHERE author = authors.id\n )\n )\n )\n FROM translations\n JOIN authors ON authors.id = translations.author\n WHERE translations.book = b.id\n ) AS \"translators!: Vec\",\n (\n SELECT\n JSON_AGG(\n JSON_BUILD_OBJECT(\n 'id', sequences.id,\n 'name', sequences.name\n )\n )\n FROM book_sequences\n JOIN sequences ON sequences.id = book_sequences.sequence\n WHERE book_sequences.book = b.id\n ) AS \"sequences!: Vec\",\n (\n SELECT\n JSON_AGG(\n JSON_BUILD_OBJECT(\n 'id', genres.id,\n 'code', genres.code,\n 'description', genres.description,\n 'meta', genres.meta,\n 'source', JSON_BUILD_OBJECT(\n 'id', sources.id,\n 'name', sources.name\n )\n )\n )\n FROM book_genres\n JOIN genres ON genres.id = book_genres.genre\n JOIN sources ON sources.id = genres.source\n WHERE book_genres.book = b.id\n ) AS \"genres!: Vec\",\n EXISTS(\n SELECT * FROM book_annotations WHERE book = b.id\n ) AS \"annotation_exists!: bool\",\n (\n SELECT\n JSON_BUILD_OBJECT(\n 'id', sources.id,\n 'name', sources.name\n )\n FROM sources\n WHERE sources.id = b.source\n ) AS \"source!: Source\",\n b.remote_id,\n b.is_deleted,\n b.pages\n FROM books b\n WHERE b.id = $1\n ", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "id", + "type_info": "Int4" + }, + { + "ordinal": 1, + "name": "title", + "type_info": "Varchar" + }, + { + "ordinal": 2, + "name": "lang", + "type_info": "Varchar" + }, + { + "ordinal": 3, + "name": "file_type", + "type_info": "Varchar" + }, + { + "ordinal": 4, + "name": "year", + "type_info": "Int2" + }, + { + "ordinal": 5, + "name": "available_types!: Vec", + "type_info": "VarcharArray" + }, + { + "ordinal": 6, + "name": "uploaded", + "type_info": "Date" + }, + { + "ordinal": 7, + "name": "authors!: Vec", + "type_info": "Json" + }, + { + "ordinal": 8, + "name": "translators!: Vec", + "type_info": "Json" + }, + { + "ordinal": 9, + "name": "sequences!: Vec", + "type_info": "Json" + }, + { + "ordinal": 10, + "name": "genres!: Vec", + "type_info": "Json" + }, + { + "ordinal": 11, + "name": "annotation_exists!: bool", + "type_info": "Bool" + }, + { + "ordinal": 12, + "name": "source!: Source", + "type_info": "Json" + }, + { + "ordinal": 13, + "name": "remote_id", + "type_info": "Int4" + }, + { + "ordinal": 14, + "name": "is_deleted", + "type_info": "Bool" + }, + { + "ordinal": 15, + "name": "pages", + "type_info": "Int4" + } + ], + "parameters": { + "Left": [ + "Int4" + ] + }, + "nullable": [ + false, + false, + false, + false, + false, + null, + false, + null, + null, + null, + null, + null, + null, + false, + false, + true + ] + }, + "hash": "5f884948bcf39879c8d72d979e0638445a79707f55fd5eecb000a4166b3855b4" +} diff --git a/.sqlx/query-600cfd73a3a1c465c19d98dc4ba6381872d82f954b0733aa9518df2ee7701b6e.json b/.sqlx/query-600cfd73a3a1c465c19d98dc4ba6381872d82f954b0733aa9518df2ee7701b6e.json new file mode 100644 index 0000000..c62e6cb --- /dev/null +++ b/.sqlx/query-600cfd73a3a1c465c19d98dc4ba6381872d82f954b0733aa9518df2ee7701b6e.json @@ -0,0 +1,23 @@ +{ + "db_name": "PostgreSQL", + "query": "\n SELECT COUNT(*)\n FROM books b\n JOIN book_authors ba ON b.id = ba.book\n WHERE b.is_deleted = false AND ba.author = $1 AND b.lang = ANY($2)\n ", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "count", + "type_info": "Int8" + } + ], + "parameters": { + "Left": [ + "Int4", + "TextArray" + ] + }, + "nullable": [ + null + ] + }, + "hash": "600cfd73a3a1c465c19d98dc4ba6381872d82f954b0733aa9518df2ee7701b6e" +} diff --git a/.sqlx/query-6e1d93e7773059ec3cb4fd29259f4f0250868c3f56e7b017ba8e5c20ccffb57d.json b/.sqlx/query-6e1d93e7773059ec3cb4fd29259f4f0250868c3f56e7b017ba8e5c20ccffb57d.json new file mode 100644 index 0000000..de4176d --- /dev/null +++ b/.sqlx/query-6e1d93e7773059ec3cb4fd29259f4f0250868c3f56e7b017ba8e5c20ccffb57d.json @@ -0,0 +1,47 @@ +{ + "db_name": "PostgreSQL", + "query": "\n SELECT\n a.id,\n a.first_name,\n a.last_name,\n COALESCE(a.middle_name, '') AS \"middle_name!: String\",\n CASE\n WHEN aa.id IS NOT NULL THEN true\n ELSE false\n END AS \"annotation_exists!: bool\"\n FROM authors a\n LEFT JOIN author_annotations aa ON a.id = aa.author\n ORDER BY a.id ASC\n OFFSET $1\n LIMIT $2\n ", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "id", + "type_info": "Int4" + }, + { + "ordinal": 1, + "name": "first_name", + "type_info": "Varchar" + }, + { + "ordinal": 2, + "name": "last_name", + "type_info": "Varchar" + }, + { + "ordinal": 3, + "name": "middle_name!: String", + "type_info": "Varchar" + }, + { + "ordinal": 4, + "name": "annotation_exists!: bool", + "type_info": "Bool" + } + ], + "parameters": { + "Left": [ + "Int8", + "Int8" + ] + }, + "nullable": [ + false, + false, + false, + null, + null + ] + }, + "hash": "6e1d93e7773059ec3cb4fd29259f4f0250868c3f56e7b017ba8e5c20ccffb57d" +} diff --git a/.sqlx/query-78e41ab1e7ca7b6acaf21aec5015a75c2962f6085a5774773fba8acb5e166e2e.json b/.sqlx/query-78e41ab1e7ca7b6acaf21aec5015a75c2962f6085a5774773fba8acb5e166e2e.json new file mode 100644 index 0000000..153da23 --- /dev/null +++ b/.sqlx/query-78e41ab1e7ca7b6acaf21aec5015a75c2962f6085a5774773fba8acb5e166e2e.json @@ -0,0 +1,22 @@ +{ + "db_name": "PostgreSQL", + "query": "\n SELECT COUNT(*) FROM genres\n WHERE (meta = $1 OR $1 IS NULL)\n ", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "count", + "type_info": "Int8" + } + ], + "parameters": { + "Left": [ + "Text" + ] + }, + "nullable": [ + null + ] + }, + "hash": "78e41ab1e7ca7b6acaf21aec5015a75c2962f6085a5774773fba8acb5e166e2e" +} diff --git a/.sqlx/query-95c232a0c52d8111e763f02f17b4b2dbe2c96a79c9c99d2011f7f04a1dddf6b3.json b/.sqlx/query-95c232a0c52d8111e763f02f17b4b2dbe2c96a79c9c99d2011f7f04a1dddf6b3.json new file mode 100644 index 0000000..daf7d1f --- /dev/null +++ b/.sqlx/query-95c232a0c52d8111e763f02f17b4b2dbe2c96a79c9c99d2011f7f04a1dddf6b3.json @@ -0,0 +1,74 @@ +{ + "db_name": "PostgreSQL", + "query": "\n SELECT\n b.id,\n b.title,\n b.lang,\n b.file_type,\n b.year,\n CASE WHEN b.file_type = 'fb2' THEN ARRAY['fb2', 'epub', 'mobi', 'fb2zip'] ELSE ARRAY[b.file_type] END AS \"available_types!: Vec\",\n b.uploaded,\n (\n SELECT\n JSON_AGG(\n JSON_BUILD_OBJECT(\n 'id', authors.id,\n 'first_name', authors.first_name,\n 'last_name', authors.last_name,\n 'middle_name', authors.middle_name,\n 'annotation_exists', EXISTS(\n SELECT * FROM author_annotations WHERE author = authors.id\n )\n )\n )\n FROM book_authors\n JOIN authors ON authors.id = book_authors.author\n WHERE book_authors.book = b.id\n ) AS \"authors!: Vec\",\n (\n SELECT\n JSON_AGG(\n JSON_BUILD_OBJECT(\n 'id', sequences.id,\n 'name', sequences.name\n )\n )\n FROM book_sequences\n JOIN sequences ON sequences.id = book_sequences.sequence\n WHERE book_sequences.book = b.id\n ) AS \"sequences!: Vec\",\n EXISTS(\n SELECT * FROM book_annotations WHERE book = b.id\n ) AS \"annotation_exists!: bool\"\n FROM books b\n ", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "id", + "type_info": "Int4" + }, + { + "ordinal": 1, + "name": "title", + "type_info": "Varchar" + }, + { + "ordinal": 2, + "name": "lang", + "type_info": "Varchar" + }, + { + "ordinal": 3, + "name": "file_type", + "type_info": "Varchar" + }, + { + "ordinal": 4, + "name": "year", + "type_info": "Int2" + }, + { + "ordinal": 5, + "name": "available_types!: Vec", + "type_info": "VarcharArray" + }, + { + "ordinal": 6, + "name": "uploaded", + "type_info": "Date" + }, + { + "ordinal": 7, + "name": "authors!: Vec", + "type_info": "Json" + }, + { + "ordinal": 8, + "name": "sequences!: Vec", + "type_info": "Json" + }, + { + "ordinal": 9, + "name": "annotation_exists!: bool", + "type_info": "Bool" + } + ], + "parameters": { + "Left": [] + }, + "nullable": [ + false, + false, + false, + false, + false, + null, + false, + null, + null, + null + ] + }, + "hash": "95c232a0c52d8111e763f02f17b4b2dbe2c96a79c9c99d2011f7f04a1dddf6b3" +} diff --git a/.sqlx/query-9740501d7b3d235efc914e185c9978d04e4d8ef89a2847f36e5f490183180fbb.json b/.sqlx/query-9740501d7b3d235efc914e185c9978d04e4d8ef89a2847f36e5f490183180fbb.json new file mode 100644 index 0000000..25574da --- /dev/null +++ b/.sqlx/query-9740501d7b3d235efc914e185c9978d04e4d8ef89a2847f36e5f490183180fbb.json @@ -0,0 +1,29 @@ +{ + "db_name": "PostgreSQL", + "query": "\n SELECT\n b.id,\n CASE WHEN b.file_type = 'fb2' THEN ARRAY['fb2', 'epub', 'mobi', 'fb2zip'] ELSE ARRAY[b.file_type] END AS \"available_types!: Vec\"\n FROM books b\n JOIN book_sequences bs ON b.id = bs.book\n WHERE\n b.is_deleted = FALSE AND\n bs.sequence = $1 AND\n b.lang = ANY($2)\n ", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "id", + "type_info": "Int4" + }, + { + "ordinal": 1, + "name": "available_types!: Vec", + "type_info": "VarcharArray" + } + ], + "parameters": { + "Left": [ + "Int4", + "TextArray" + ] + }, + "nullable": [ + false, + null + ] + }, + "hash": "9740501d7b3d235efc914e185c9978d04e4d8ef89a2847f36e5f490183180fbb" +} diff --git a/.sqlx/query-9be35f43d7faa0c65c88ced8ee10347ae67e6a906461fb4858fc003824f4b260.json b/.sqlx/query-9be35f43d7faa0c65c88ced8ee10347ae67e6a906461fb4858fc003824f4b260.json new file mode 100644 index 0000000..ba0a0c2 --- /dev/null +++ b/.sqlx/query-9be35f43d7faa0c65c88ced8ee10347ae67e6a906461fb4858fc003824f4b260.json @@ -0,0 +1,23 @@ +{ + "db_name": "PostgreSQL", + "query": "\n SELECT COUNT(*)\n FROM books b\n JOIN book_authors ba ON b.id = ba.book\n WHERE\n b.is_deleted = false\n AND ba.author = $1\n AND b.lang = ANY($2)\n ", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "count", + "type_info": "Int8" + } + ], + "parameters": { + "Left": [ + "Int4", + "TextArray" + ] + }, + "nullable": [ + null + ] + }, + "hash": "9be35f43d7faa0c65c88ced8ee10347ae67e6a906461fb4858fc003824f4b260" +} diff --git a/.sqlx/query-a76f04768121b35fdebdf19ea7959227068ccec4bfe2502d064a96ae5bcbc13e.json b/.sqlx/query-a76f04768121b35fdebdf19ea7959227068ccec4bfe2502d064a96ae5bcbc13e.json new file mode 100644 index 0000000..9945087 --- /dev/null +++ b/.sqlx/query-a76f04768121b35fdebdf19ea7959227068ccec4bfe2502d064a96ae5bcbc13e.json @@ -0,0 +1,79 @@ +{ + "db_name": "PostgreSQL", + "query": "\n SELECT\n b.id,\n b.title,\n b.lang,\n b.file_type,\n b.year,\n CASE WHEN b.file_type = 'fb2' THEN ARRAY['fb2', 'epub', 'mobi', 'fb2zip'] ELSE ARRAY[b.file_type] END AS \"available_types!: Vec\",\n b.uploaded,\n (\n SELECT\n JSON_AGG(\n JSON_BUILD_OBJECT(\n 'id', authors.id,\n 'first_name', authors.first_name,\n 'last_name', authors.last_name,\n 'middle_name', authors.middle_name,\n 'annotation_exists', EXISTS(\n SELECT * FROM author_annotations WHERE author = authors.id\n )\n )\n )\n FROM translations\n JOIN authors ON authors.id = translations.author\n WHERE translations.book = b.id\n ) AS \"translators!: Vec\",\n (\n SELECT\n JSON_AGG(\n JSON_BUILD_OBJECT(\n 'id', sequences.id,\n 'name', sequences.name\n )\n )\n FROM book_sequences\n JOIN sequences ON sequences.id = book_sequences.sequence\n WHERE book_sequences.book = b.id\n ) AS \"sequences!: Vec\",\n EXISTS(\n SELECT * FROM book_annotations WHERE book = b.id\n ) AS \"annotation_exists!: bool\"\n FROM books b\n JOIN book_authors ba ON b.id = ba.book\n WHERE b.is_deleted = false AND ba.author = $1 AND b.lang = ANY($2)\n ORDER BY b.title ASC\n OFFSET $3\n LIMIT $4\n ", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "id", + "type_info": "Int4" + }, + { + "ordinal": 1, + "name": "title", + "type_info": "Varchar" + }, + { + "ordinal": 2, + "name": "lang", + "type_info": "Varchar" + }, + { + "ordinal": 3, + "name": "file_type", + "type_info": "Varchar" + }, + { + "ordinal": 4, + "name": "year", + "type_info": "Int2" + }, + { + "ordinal": 5, + "name": "available_types!: Vec", + "type_info": "VarcharArray" + }, + { + "ordinal": 6, + "name": "uploaded", + "type_info": "Date" + }, + { + "ordinal": 7, + "name": "translators!: Vec", + "type_info": "Json" + }, + { + "ordinal": 8, + "name": "sequences!: Vec", + "type_info": "Json" + }, + { + "ordinal": 9, + "name": "annotation_exists!: bool", + "type_info": "Bool" + } + ], + "parameters": { + "Left": [ + "Int4", + "TextArray", + "Int8", + "Int8" + ] + }, + "nullable": [ + false, + false, + false, + false, + false, + null, + false, + null, + null, + null + ] + }, + "hash": "a76f04768121b35fdebdf19ea7959227068ccec4bfe2502d064a96ae5bcbc13e" +} diff --git a/.sqlx/query-b0ed6a54e198e8388620cc9cf12deed4ce2f7c539c912caa0c6f3b46c8f8835f.json b/.sqlx/query-b0ed6a54e198e8388620cc9cf12deed4ce2f7c539c912caa0c6f3b46c8f8835f.json new file mode 100644 index 0000000..7f42a30 --- /dev/null +++ b/.sqlx/query-b0ed6a54e198e8388620cc9cf12deed4ce2f7c539c912caa0c6f3b46c8f8835f.json @@ -0,0 +1,50 @@ +{ + "db_name": "PostgreSQL", + "query": "\n SELECT\n genres.id,\n genres.remote_id,\n genres.code,\n genres.description,\n genres.meta,\n (\n SELECT\n JSON_BUILD_OBJECT(\n 'id', sources.id,\n 'name', sources.name\n )\n FROM sources\n WHERE sources.id = genres.source\n ) AS \"source!: Source\"\n FROM genres\n ORDER BY genres.id ASC\n ", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "id", + "type_info": "Int4" + }, + { + "ordinal": 1, + "name": "remote_id", + "type_info": "Int4" + }, + { + "ordinal": 2, + "name": "code", + "type_info": "Varchar" + }, + { + "ordinal": 3, + "name": "description", + "type_info": "Varchar" + }, + { + "ordinal": 4, + "name": "meta", + "type_info": "Varchar" + }, + { + "ordinal": 5, + "name": "source!: Source", + "type_info": "Json" + } + ], + "parameters": { + "Left": [] + }, + "nullable": [ + false, + false, + false, + false, + false, + null + ] + }, + "hash": "b0ed6a54e198e8388620cc9cf12deed4ce2f7c539c912caa0c6f3b46c8f8835f" +} diff --git a/.sqlx/query-b4733c7414c62520fb74e3302f9c01bc351153930117c58832981990db038e74.json b/.sqlx/query-b4733c7414c62520fb74e3302f9c01bc351153930117c58832981990db038e74.json new file mode 100644 index 0000000..5743d88 --- /dev/null +++ b/.sqlx/query-b4733c7414c62520fb74e3302f9c01bc351153930117c58832981990db038e74.json @@ -0,0 +1,20 @@ +{ + "db_name": "PostgreSQL", + "query": "SELECT COUNT(*) FROM authors", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "count", + "type_info": "Int8" + } + ], + "parameters": { + "Left": [] + }, + "nullable": [ + null + ] + }, + "hash": "b4733c7414c62520fb74e3302f9c01bc351153930117c58832981990db038e74" +} diff --git a/.sqlx/query-b83f6df4dea9bad87d0423ad307da8c72e2c343181afa0f5bce3e1a43dee7c8c.json b/.sqlx/query-b83f6df4dea9bad87d0423ad307da8c72e2c343181afa0f5bce3e1a43dee7c8c.json new file mode 100644 index 0000000..2db3eb6 --- /dev/null +++ b/.sqlx/query-b83f6df4dea9bad87d0423ad307da8c72e2c343181afa0f5bce3e1a43dee7c8c.json @@ -0,0 +1,40 @@ +{ + "db_name": "PostgreSQL", + "query": "\n SELECT\n id,\n title,\n text,\n file\n FROM book_annotations\n WHERE book = $1\n ", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "id", + "type_info": "Int4" + }, + { + "ordinal": 1, + "name": "title", + "type_info": "Varchar" + }, + { + "ordinal": 2, + "name": "text", + "type_info": "Text" + }, + { + "ordinal": 3, + "name": "file", + "type_info": "Varchar" + } + ], + "parameters": { + "Left": [ + "Int4" + ] + }, + "nullable": [ + false, + false, + false, + true + ] + }, + "hash": "b83f6df4dea9bad87d0423ad307da8c72e2c343181afa0f5bce3e1a43dee7c8c" +} diff --git a/.sqlx/query-bda85dc33c862019c6bd1bb2a3e22b83e8c1ad2a536901b122dcf6a247d210a0.json b/.sqlx/query-bda85dc33c862019c6bd1bb2a3e22b83e8c1ad2a536901b122dcf6a247d210a0.json new file mode 100644 index 0000000..a6265ba --- /dev/null +++ b/.sqlx/query-bda85dc33c862019c6bd1bb2a3e22b83e8c1ad2a536901b122dcf6a247d210a0.json @@ -0,0 +1,29 @@ +{ + "db_name": "PostgreSQL", + "query": "\n SELECT\n b.id,\n CASE WHEN b.file_type = 'fb2' THEN ARRAY['fb2', 'epub', 'mobi', 'fb2zip'] ELSE ARRAY[b.file_type] END AS \"available_types!: Vec\"\n FROM books b\n JOIN book_authors ba ON b.id = ba.book\n WHERE b.is_deleted = false AND ba.author = $1 AND b.lang = ANY($2)\n ", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "id", + "type_info": "Int4" + }, + { + "ordinal": 1, + "name": "available_types!: Vec", + "type_info": "VarcharArray" + } + ], + "parameters": { + "Left": [ + "Int4", + "TextArray" + ] + }, + "nullable": [ + false, + null + ] + }, + "hash": "bda85dc33c862019c6bd1bb2a3e22b83e8c1ad2a536901b122dcf6a247d210a0" +} diff --git a/.sqlx/query-c0be89ba0ef10d97bb82401fed4196ffd2be48ce4e5586ba6da63c78793bb1db.json b/.sqlx/query-c0be89ba0ef10d97bb82401fed4196ffd2be48ce4e5586ba6da63c78793bb1db.json new file mode 100644 index 0000000..f90fe7c --- /dev/null +++ b/.sqlx/query-c0be89ba0ef10d97bb82401fed4196ffd2be48ce4e5586ba6da63c78793bb1db.json @@ -0,0 +1,27 @@ +{ + "db_name": "PostgreSQL", + "query": "\n SELECT COUNT(*) FROM books\n WHERE lang = ANY($1) AND\n ($2::boolean IS NULL OR is_deleted = $2) AND\n ($3::date IS NULL OR uploaded >= $3) AND\n ($4::date IS NULL OR uploaded <= $4) AND\n ($5::integer IS NULL OR id >= $5) AND\n ($6::integer IS NULL OR id <= $6)\n ", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "count", + "type_info": "Int8" + } + ], + "parameters": { + "Left": [ + "TextArray", + "Bool", + "Date", + "Date", + "Int4", + "Int4" + ] + }, + "nullable": [ + null + ] + }, + "hash": "c0be89ba0ef10d97bb82401fed4196ffd2be48ce4e5586ba6da63c78793bb1db" +} diff --git a/.sqlx/query-d14c08d4d25201d30178c2313650db1aaef355968970f7f0a75b88bba209dc20.json b/.sqlx/query-d14c08d4d25201d30178c2313650db1aaef355968970f7f0a75b88bba209dc20.json new file mode 100644 index 0000000..0993853 --- /dev/null +++ b/.sqlx/query-d14c08d4d25201d30178c2313650db1aaef355968970f7f0a75b88bba209dc20.json @@ -0,0 +1,28 @@ +{ + "db_name": "PostgreSQL", + "query": "\n SELECT id, name FROM sequences WHERE id = ANY($1)\n ", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "id", + "type_info": "Int4" + }, + { + "ordinal": 1, + "name": "name", + "type_info": "Varchar" + } + ], + "parameters": { + "Left": [ + "Int4Array" + ] + }, + "nullable": [ + false, + false + ] + }, + "hash": "d14c08d4d25201d30178c2313650db1aaef355968970f7f0a75b88bba209dc20" +} diff --git a/.sqlx/query-d6584aea52bc3abcbb4d9f491ef357845b562cf83d2e135b7542ebca2024a3f3.json b/.sqlx/query-d6584aea52bc3abcbb4d9f491ef357845b562cf83d2e135b7542ebca2024a3f3.json new file mode 100644 index 0000000..9244d55 --- /dev/null +++ b/.sqlx/query-d6584aea52bc3abcbb4d9f491ef357845b562cf83d2e135b7542ebca2024a3f3.json @@ -0,0 +1,46 @@ +{ + "db_name": "PostgreSQL", + "query": "\n SELECT\n a.id,\n a.first_name,\n a.last_name,\n COALESCE(a.middle_name, '') AS \"middle_name!: String\",\n CASE\n WHEN aa.id IS NOT NULL THEN true\n ELSE false\n END AS \"annotation_exists!: bool\"\n FROM authors a\n LEFT JOIN author_annotations aa ON a.id = aa.author\n WHERE a.id = $1\n ", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "id", + "type_info": "Int4" + }, + { + "ordinal": 1, + "name": "first_name", + "type_info": "Varchar" + }, + { + "ordinal": 2, + "name": "last_name", + "type_info": "Varchar" + }, + { + "ordinal": 3, + "name": "middle_name!: String", + "type_info": "Varchar" + }, + { + "ordinal": 4, + "name": "annotation_exists!: bool", + "type_info": "Bool" + } + ], + "parameters": { + "Left": [ + "Int4" + ] + }, + "nullable": [ + false, + false, + false, + null, + null + ] + }, + "hash": "d6584aea52bc3abcbb4d9f491ef357845b562cf83d2e135b7542ebca2024a3f3" +} diff --git a/.sqlx/query-daada7d7552a41a8d44a4f7b3d62bc804f3f4944166d8e168e1a3a91f2ff4bc9.json b/.sqlx/query-daada7d7552a41a8d44a4f7b3d62bc804f3f4944166d8e168e1a3a91f2ff4bc9.json new file mode 100644 index 0000000..6c0338d --- /dev/null +++ b/.sqlx/query-daada7d7552a41a8d44a4f7b3d62bc804f3f4944166d8e168e1a3a91f2ff4bc9.json @@ -0,0 +1,54 @@ +{ + "db_name": "PostgreSQL", + "query": "\n SELECT\n genres.id,\n genres.remote_id,\n genres.code,\n genres.description,\n genres.meta,\n (\n SELECT\n JSON_BUILD_OBJECT(\n 'id', sources.id,\n 'name', sources.name\n )\n FROM sources\n WHERE sources.id = genres.source\n ) AS \"source!: Source\"\n FROM genres\n WHERE (meta = $1 OR $1 IS NULL)\n ORDER BY genres.id ASC\n LIMIT $2 OFFSET $3\n ", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "id", + "type_info": "Int4" + }, + { + "ordinal": 1, + "name": "remote_id", + "type_info": "Int4" + }, + { + "ordinal": 2, + "name": "code", + "type_info": "Varchar" + }, + { + "ordinal": 3, + "name": "description", + "type_info": "Varchar" + }, + { + "ordinal": 4, + "name": "meta", + "type_info": "Varchar" + }, + { + "ordinal": 5, + "name": "source!: Source", + "type_info": "Json" + } + ], + "parameters": { + "Left": [ + "Text", + "Int8", + "Int8" + ] + }, + "nullable": [ + false, + false, + false, + false, + false, + null + ] + }, + "hash": "daada7d7552a41a8d44a4f7b3d62bc804f3f4944166d8e168e1a3a91f2ff4bc9" +} diff --git a/.sqlx/query-eaeeab7481036b78b9323b5d9e99e9a14a39e4f6c1489fe564045e937c38769c.json b/.sqlx/query-eaeeab7481036b78b9323b5d9e99e9a14a39e4f6c1489fe564045e937c38769c.json new file mode 100644 index 0000000..5f62f97 --- /dev/null +++ b/.sqlx/query-eaeeab7481036b78b9323b5d9e99e9a14a39e4f6c1489fe564045e937c38769c.json @@ -0,0 +1,46 @@ +{ + "db_name": "PostgreSQL", + "query": "\n SELECT\n a.id,\n a.first_name,\n a.last_name,\n COALESCE(a.middle_name, '') AS \"middle_name!: String\",\n CASE\n WHEN aa.id IS NOT NULL THEN true\n ELSE false\n END AS \"annotation_exists!: bool\"\n FROM authors a\n LEFT JOIN author_annotations aa ON a.id = aa.author\n WHERE a.id = ANY($1)\n ", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "id", + "type_info": "Int4" + }, + { + "ordinal": 1, + "name": "first_name", + "type_info": "Varchar" + }, + { + "ordinal": 2, + "name": "last_name", + "type_info": "Varchar" + }, + { + "ordinal": 3, + "name": "middle_name!: String", + "type_info": "Varchar" + }, + { + "ordinal": 4, + "name": "annotation_exists!: bool", + "type_info": "Bool" + } + ], + "parameters": { + "Left": [ + "Int4Array" + ] + }, + "nullable": [ + false, + false, + false, + null, + null + ] + }, + "hash": "eaeeab7481036b78b9323b5d9e99e9a14a39e4f6c1489fe564045e937c38769c" +} diff --git a/src/views/sequences.rs b/src/views/sequences.rs index cf06ac6..592f75b 100644 --- a/src/views/sequences.rs +++ b/src/views/sequences.rs @@ -187,14 +187,6 @@ async fn get_sequence_books( None => return StatusCode::NOT_FOUND.into_response(), }; - // let books_filter = vec![ - // book_sequence::book::is(vec![ - // book::is_deleted::equals(false), - // book::lang::in_vec(allowed_langs.clone()), - // ]), - // book_sequence::sequence_id::equals(sequence.id), - // ]; - let books_count = sqlx::query_scalar!( "SELECT COUNT(*) FROM book_sequences bs JOIN books b ON b.id = bs.book @@ -277,27 +269,6 @@ async fn get_sequence_books( .await .unwrap(); - // let books = db - // .book() - // .find_many(vec![book::id::in_vec(book_ids)]) - // .with(book::source::fetch()) - // .with(book::book_annotation::fetch()) - // .with( - // book::book_authors::fetch(vec![]) - // .with(book_author::author::fetch().with(author::author_annotation::fetch())), - // ) - // .with( - // book::translations::fetch(vec![]) - // .with(translator::author::fetch().with(author::author_annotation::fetch())), - // ) - // .with(book::book_sequences::fetch(vec![ - // book_sequence::sequence_id::equals(sequence.id), - // ])) - // .order_by(book::id::order(prisma_client_rust::Direction::Asc)) - // .exec() - // .await - // .unwrap(); - books.sort_by(|a, b| a.position.cmp(&b.position)); let page: PageWithParent =