-- name: GetImageByID :one SELECT image_id, storage_type, image_path FROM images WHERE image_id = $1; -- name: CreateImage :one INSERT INTO images (storage_type, image_path) VALUES ($1, $2) RETURNING image_id, storage_type, image_path; -- name: GetUserByID :one SELECT user_id, avatar_id, passhash, mail, nickname, disp_name, user_desc, creation_date FROM users WHERE user_id = $1; -- name: ListUsers :many SELECT user_id, avatar_id, passhash, mail, nickname, disp_name, user_desc, creation_date FROM users ORDER BY user_id LIMIT $1 OFFSET $2; -- name: CreateUser :one INSERT INTO users (avatar_id, passhash, mail, nickname, disp_name, user_desc, creation_date) VALUES ($1, $2, $3, $4, $5, $6, $7) RETURNING user_id, avatar_id, nickname, disp_name, user_desc, creation_date; -- name: UpdateUser :one UPDATE users SET avatar_id = COALESCE(sqlc.narg('avatar_id'), avatar_id), disp_name = COALESCE(sqlc.narg('disp_name'), disp_name), user_desc = COALESCE(sqlc.narg('user_desc'), user_desc), passhash = COALESCE(sqlc.narg('passhash'), passhash), WHERE user_id = sqlc.arg('user_id') RETURNING user_id, avatar_id, nickname, disp_name, user_desc, creation_date; -- name: DeleteUser :exec DELETE FROM users WHERE user_id = $1; -- name: GetTitleByID :one SELECT title_id, title_names, studio_id, poster_id, signal_ids, title_status, rating, rating_count, release_year, release_season, season, episodes_aired, episodes_all, episodes_len FROM titles WHERE title_id = $1; -- name: ListTitles :many SELECT title_id, title_names, studio_id, poster_id, signal_ids, title_status, rating, rating_count, release_year, release_season, season, episodes_aired, episodes_all, episodes_len FROM titles ORDER BY title_id LIMIT $1 OFFSET $2; -- name: UpdateTitle :one UPDATE titles SET title_names = COALESCE(sqlc.narg('title_names'), title_names), studio_id = COALESCE(sqlc.narg('studio_id'), studio_id), poster_id = COALESCE(sqlc.narg('poster_id'), poster_id), signal_ids = COALESCE(sqlc.narg('signal_ids'), signal_ids), title_status = COALESCE(sqlc.narg('title_status'), title_status), release_year = COALESCE(sqlc.narg('release_year'), release_year), release_season = COALESCE(sqlc.narg('release_season'), release_season), episodes_aired = COALESCE(sqlc.narg('episodes_aired'), episodes_aired), episodes_all = COALESCE(sqlc.narg('episodes_all'), episodes_all), episodes_len = COALESCE(sqlc.narg('episodes_len'), episodes_len) WHERE title_id = sqlc.arg('title_id') RETURNING *; -- name: GetReviewByID :one SELECT review_id, user_id, title_id, image_ids, review_text, creation_date FROM reviews WHERE review_id = $1; -- name: CreateReview :one INSERT INTO reviews (user_id, title_id, image_ids, review_text, creation_date) VALUES ($1, $2, $3, $4, $5) RETURNING review_id, user_id, title_id, image_ids, review_text, creation_date; -- name: UpdateReview :one UPDATE reviews SET image_ids = COALESCE(sqlc.narg('image_ids'), image_ids), review_text = COALESCE(sqlc.narg('review_text'), review_text) WHERE review_id = sqlc.arg('review_id') RETURNING *; -- name: DeleteReview :exec DELETE FROM reviews WHERE review_id = $1; -- name: ListReviewsByTitle :many SELECT review_id, user_id, title_id, image_ids, review_text, creation_date FROM reviews WHERE title_id = $1 ORDER BY creation_date DESC LIMIT $2 OFFSET $3; -- name: ListReviewsByUser :many SELECT review_id, user_id, title_id, image_ids, review_text, creation_date FROM reviews WHERE user_id = $1 ORDER BY creation_date DESC LIMIT $2 OFFSET $3; -- name: GetUserTitle :one SELECT usertitle_id, user_id, title_id, status, rate, review_id FROM usertitles WHERE user_id = $1 AND title_id = $2; -- name: ListUserTitles :many SELECT usertitle_id, user_id, title_id, status, rate, review_id FROM usertitles WHERE user_id = $1 ORDER BY usertitle_id LIMIT $2 OFFSET $3; -- name: CreateUserTitle :one INSERT INTO usertitles (user_id, title_id, status, rate, review_id) VALUES ($1, $2, $3, $4, $5) RETURNING usertitle_id, user_id, title_id, status, rate, review_id; -- name: UpdateUserTitle :one UPDATE usertitles SET status = COALESCE(sqlc.narg('status'), status), rate = COALESCE(sqlc.narg('rate'), rate), review_id = COALESCE(sqlc.narg('review_id'), review_id) WHERE user_id = $1 AND title_id = $2 RETURNING *; -- name: DeleteUserTitle :exec DELETE FROM usertitles WHERE user_id = $1 AND ($2::int IS NULL OR title_id = $2); -- name: ListTags :many SELECT tag_id, tag_names FROM tags ORDER BY tag_id LIMIT $1 OFFSET $2;