Files
goyomi/internal/db/queries/chapter.sql
T
achmad 95cab106d8 feat: Phase 2 — database layer
- PostgreSQL schema: sources, manga, chapters, pages, source_meta with indexes
- golang-migrate runner with embedded SQL via go:embed (pgx5:// scheme)
- sqlc-generated type-safe queries for all tables (pgx/v5 native)
- Config package with all env vars including TTL durations
- Wire DB init and config into cmd/server/main.go
2026-05-10 21:32:40 +07:00

24 lines
775 B
SQL

-- name: UpsertChapter :one
INSERT INTO chapters (
manga_id, url, name, date_upload, chapter_number, scanlator, source_order, fetched_at
) VALUES (
$1, $2, $3, $4, $5, $6, $7, $8
)
ON CONFLICT (manga_id, url) DO UPDATE
SET name = EXCLUDED.name,
date_upload = EXCLUDED.date_upload,
chapter_number = EXCLUDED.chapter_number,
scanlator = EXCLUDED.scanlator,
source_order = EXCLUDED.source_order,
fetched_at = EXCLUDED.fetched_at
RETURNING *;
-- name: GetChapterByID :one
SELECT * FROM chapters WHERE id = $1;
-- name: ListChaptersByManga :many
SELECT * FROM chapters WHERE manga_id = $1 ORDER BY source_order;
-- name: UpdateChapterFetchedAt :exec
UPDATE chapters SET fetched_at = $2 WHERE id = $1;