-- name: GetPost :many SELECT id, content, signing, post_at, heart, igid FROM posts WHERE phase = 'ok' ORDER BY id DESC LIMIT $1; -- name: GetPostWithCursor :many SELECT id, content, signing, post_at, heart, igid FROM posts WHERE id <= $1 AND phase = 'ok' ORDER BY id DESC LIMIT $2; -- name: InsertPost :one INSERT INTO posts (content,signing,hash) VALUES ($1, $2 ,$3) RETURNING id,hash; -- name: UpdatePostIGID :exec UPDATE posts set igid = $1 WHERE id = $2; -- name: DeletePost :exec UPDATE posts SET phase = 'deleted' WHERE id = $1; -- name: InvalidateMedia :exec UPDATE media SET visible = false WHERE post_id = $1; -- name: GetComment :many SELECT id, content, signing, post_at FROM comment WHERE phase = 'ok' AND post_id = $1 ORDER BY id DESC LIMIT $2; -- name: GetCommentWithCursor :many SELECT id, content, signing, post_at FROM comment WHERE id <= $1 AND phase = 'ok' AND post_id = $2 ORDER BY id DESC LIMIT $3; -- name: GetPostMedia :many SELECT url FROM media WHERE post_id=$1 AND visible = true; -- name: GetCommentMedia :many SELECT url FROM media WHERE comment_id=$1 AND visible = true; -- name: InsertPostImage :exec INSERT INTO media (url, post_id) VALUES ($1, $2); -- name: InsertCommentImage :exec INSERT INTO media (url, comment_id) VALUES ($1, $2); -- name: AddPostHeart :one UPDATE posts SET heart = heart + 1 WHERE id=$1 RETURNING heart; -- name: AddCommentHeart :one UPDATE comment SET heart = heart + 1 WHERE id=$1 RETURNING heart; -- name: AdminGetPost :many SELECT id, content, signing, post_at FROM posts WHERE phase = 'pending' ORDER BY id DESC LIMIT 100; -- name: SuperAdminGetPost :many SELECT id, content, signing, post_at, phase FROM posts WHERE phase = 'pending' OR phase = 'rejected' ORDER BY id DESC LIMIT 100; -- name: AdminGetMedia :many SELECT url from media WHERE post_id = $1; -- name: AdminVerify :one UPDATE posts SET phase = $1 WHERE id=$2 AND phase = 'pending' RETURNING id; -- name: SuperAdminVerify :one UPDATE posts SET phase = $1 WHERE id=$2 AND (phase = 'pending' OR phase = 'rejected') RETURNING id; -- name: AdminUpdateImage :exec UPDATE media SET visible = false WHERE post_id=$1; -- name: AdminLoginGetTOTP :one SELECT totp, super FROM admin WHERE username = $1 AND password = $2; -- name: AdminCreateAccount :exec INSERT INTO admin (username, password, totp) VALUES ($1, $2,$3);