Merge branch 'dev-ars' into dev
Some checks failed
Build and Deploy Go App / build (push) Failing after 2m30s
Build and Deploy Go App / deploy (push) Has been skipped

This commit is contained in:
Iron_Felix 2025-11-24 06:27:23 +03:00
commit ea43e13df4
3 changed files with 47 additions and 52 deletions

View file

@ -65,6 +65,7 @@ func (s Server) mapTitle(ctx context.Context, title sqlc.GetTitleByIDRow) (oapi.
oapi_studio.Id = title.StudioID oapi_studio.Id = title.StudioID
oapi_studio.Description = title.StudioDesc oapi_studio.Description = title.StudioDesc
if title.StudioIllustID != nil { if title.StudioIllustID != nil {
oapi_studio.Poster = &oapi.Image{}
oapi_studio.Poster.Id = title.StudioIllustID oapi_studio.Poster.Id = title.StudioIllustID
oapi_studio.Poster.ImagePath = title.StudioImagePath oapi_studio.Poster.ImagePath = title.StudioImagePath
oapi_studio.Poster.StorageType = &title.StudioStorageType oapi_studio.Poster.StorageType = &title.StudioStorageType

View file

@ -193,11 +193,10 @@ WHERE
) )
AND ( AND (
-- Если массив пуст (NULL или []) — не фильтруем 'title_statuses'::title_status_t[] IS NULL
cardinality(sqlc.arg('title_statuses')::title_status_t[]) = 0 OR array_length('title_statuses'::title_status_t[], 1) IS NULL
OR OR array_length('title_statuses'::title_status_t[], 1) = 0
-- Иначе: статус есть в списке OR t.title_status = ANY('title_statuses'::title_status_t[])
t.title_status = ANY(sqlc.arg('title_statuses')::title_status_t[])
) )
AND (sqlc.narg('rating')::float IS NULL OR t.rating >= sqlc.narg('rating')::float) AND (sqlc.narg('rating')::float IS NULL OR t.rating >= sqlc.narg('rating')::float)
AND (sqlc.narg('release_year')::int IS NULL OR t.release_year = sqlc.narg('release_year')::int) AND (sqlc.narg('release_year')::int IS NULL OR t.release_year = sqlc.narg('release_year')::int)
@ -326,15 +325,16 @@ WHERE
) )
AND ( AND (
-- Если массив пуст (NULL или []) — не фильтруем 'title_statuses'::title_status_t[] IS NULL
cardinality(sqlc.arg('title_statuses')::title_status_t[]) = 0 OR array_length('title_statuses'::title_status_t[], 1) IS NULL
OR OR array_length('title_statuses'::title_status_t[], 1) = 0
t.title_status = ANY(sqlc.arg('title_statuses')::title_status_t[]) OR t.title_status = ANY('title_statuses'::title_status_t[])
) )
AND ( AND (
cardinality(sqlc.arg('usertitle_statuses')::usertitle_status_t[]) = 0 'usertitle_statuses'::title_status_t[] IS NULL
OR OR array_length('usertitle_statuses'::title_status_t[], 1) IS NULL
u.status = ANY(sqlc.arg('usertitle_statuses')::usertitle_status_t[]) OR array_length('usertitle_statuses'::title_status_t[], 1) = 0
OR t.title_status = ANY('usertitle_statuses'::title_status_t[])
) )
AND (sqlc.narg('rate')::int IS NULL OR u.rate >= sqlc.narg('rate')::int) AND (sqlc.narg('rate')::int IS NULL OR u.rate >= sqlc.narg('rate')::int)
AND (sqlc.narg('rating')::float IS NULL OR t.rating >= sqlc.narg('rating')::float) AND (sqlc.narg('rating')::float IS NULL OR t.rating >= sqlc.narg('rating')::float)

View file

@ -434,15 +434,14 @@ WHERE
) )
AND ( AND (
-- Если массив пуст (NULL или []) не фильтруем 'title_statuses'::title_status_t[] IS NULL
cardinality($7::title_status_t[]) = 0 OR array_length('title_statuses'::title_status_t[], 1) IS NULL
OR OR array_length('title_statuses'::title_status_t[], 1) = 0
-- Иначе: статус есть в списке OR t.title_status = ANY('title_statuses'::title_status_t[])
t.title_status = ANY($7::title_status_t[])
) )
AND ($8::float IS NULL OR t.rating >= $8::float) AND ($7::float IS NULL OR t.rating >= $7::float)
AND ($9::int IS NULL OR t.release_year = $9::int) AND ($8::int IS NULL OR t.release_year = $8::int)
AND ($10::release_season_t IS NULL OR t.release_season = $10::release_season_t) AND ($9::release_season_t IS NULL OR t.release_season = $9::release_season_t)
GROUP BY GROUP BY
t.id, i.id, s.id t.id, i.id, s.id
@ -465,7 +464,7 @@ ORDER BY
CASE WHEN $2::text <> 'id' THEN t.id END ASC CASE WHEN $2::text <> 'id' THEN t.id END ASC
LIMIT COALESCE($11::int, 100) LIMIT COALESCE($10::int, 100)
` `
type SearchTitlesParams struct { type SearchTitlesParams struct {
@ -475,7 +474,6 @@ type SearchTitlesParams struct {
CursorID *int64 `json:"cursor_id"` CursorID *int64 `json:"cursor_id"`
CursorRating *float64 `json:"cursor_rating"` CursorRating *float64 `json:"cursor_rating"`
Word *string `json:"word"` Word *string `json:"word"`
TitleStatuses []TitleStatusT `json:"title_statuses"`
Rating *float64 `json:"rating"` Rating *float64 `json:"rating"`
ReleaseYear *int32 `json:"release_year"` ReleaseYear *int32 `json:"release_year"`
ReleaseSeason *ReleaseSeasonT `json:"release_season"` ReleaseSeason *ReleaseSeasonT `json:"release_season"`
@ -508,7 +506,6 @@ func (q *Queries) SearchTitles(ctx context.Context, arg SearchTitlesParams) ([]S
arg.CursorID, arg.CursorID,
arg.CursorRating, arg.CursorRating,
arg.Word, arg.Word,
arg.TitleStatuses,
arg.Rating, arg.Rating,
arg.ReleaseYear, arg.ReleaseYear,
arg.ReleaseSeason, arg.ReleaseSeason,
@ -649,20 +646,21 @@ WHERE
) )
AND ( AND (
-- Если массив пуст (NULL или []) не фильтруем 'title_statuses'::title_status_t[] IS NULL
cardinality($7::title_status_t[]) = 0 OR array_length('title_statuses'::title_status_t[], 1) IS NULL
OR OR array_length('title_statuses'::title_status_t[], 1) = 0
t.title_status = ANY($7::title_status_t[]) OR t.title_status = ANY('title_statuses'::title_status_t[])
) )
AND ( AND (
cardinality($8::usertitle_status_t[]) = 0 'usertitle_statuses'::title_status_t[] IS NULL
OR OR array_length('usertitle_statuses'::title_status_t[], 1) IS NULL
u.status = ANY($8::usertitle_status_t[]) OR array_length('usertitle_statuses'::title_status_t[], 1) = 0
OR t.title_status = ANY('usertitle_statuses'::title_status_t[])
) )
AND ($9::int IS NULL OR u.rate >= $9::int) AND ($7::int IS NULL OR u.rate >= $7::int)
AND ($10::float IS NULL OR t.rating >= $10::float) AND ($8::float IS NULL OR t.rating >= $8::float)
AND ($11::int IS NULL OR t.release_year = $11::int) AND ($9::int IS NULL OR t.release_year = $9::int)
AND ($12::release_season_t IS NULL OR t.release_season = $12::release_season_t) AND ($10::release_season_t IS NULL OR t.release_season = $10::release_season_t)
GROUP BY GROUP BY
t.id, i.id, s.id t.id, i.id, s.id
@ -687,7 +685,7 @@ ORDER BY
CASE WHEN $2::text <> 'id' THEN t.id END ASC CASE WHEN $2::text <> 'id' THEN t.id END ASC
LIMIT COALESCE($13::int, 100) LIMIT COALESCE($11::int, 100)
` `
type SearchUserTitlesParams struct { type SearchUserTitlesParams struct {
@ -697,8 +695,6 @@ type SearchUserTitlesParams struct {
CursorID *int64 `json:"cursor_id"` CursorID *int64 `json:"cursor_id"`
CursorRating *float64 `json:"cursor_rating"` CursorRating *float64 `json:"cursor_rating"`
Word *string `json:"word"` Word *string `json:"word"`
TitleStatuses []TitleStatusT `json:"title_statuses"`
UsertitleStatuses []UsertitleStatusT `json:"usertitle_statuses"`
Rate *int32 `json:"rate"` Rate *int32 `json:"rate"`
Rating *float64 `json:"rating"` Rating *float64 `json:"rating"`
ReleaseYear *int32 `json:"release_year"` ReleaseYear *int32 `json:"release_year"`
@ -738,8 +734,6 @@ func (q *Queries) SearchUserTitles(ctx context.Context, arg SearchUserTitlesPara
arg.CursorID, arg.CursorID,
arg.CursorRating, arg.CursorRating,
arg.Word, arg.Word,
arg.TitleStatuses,
arg.UsertitleStatuses,
arg.Rate, arg.Rate,
arg.Rating, arg.Rating,
arg.ReleaseYear, arg.ReleaseYear,