diff --git a/src/database/prisma/migrations/20250203192353_readme_magazine/migration.sql b/src/database/prisma/migrations/20250203201909_readme_magazine/migration.sql similarity index 74% rename from src/database/prisma/migrations/20250203192353_readme_magazine/migration.sql rename to src/database/prisma/migrations/20250203201909_readme_magazine/migration.sql index 9b5f6df1..05228b1f 100644 --- a/src/database/prisma/migrations/20250203192353_readme_magazine/migration.sql +++ b/src/database/prisma/migrations/20250203201909_readme_magazine/migration.sql @@ -4,7 +4,9 @@ CREATE TABLE "readme" ( "title" TEXT NOT NULL, "url" TEXT NOT NULL, "created_at" TIMESTAMPTZ(6) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updated_at" TIMESTAMPTZ(6) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updated_at" TIMESTAMPTZ(6) NOT NULL, + "year" INTEGER NOT NULL, + "number" INTEGER NOT NULL, "published_at" TIMESTAMPTZ(6), CONSTRAINT "readme_pkey" PRIMARY KEY ("id") diff --git a/src/database/prisma/schema.prisma b/src/database/prisma/schema.prisma index 38ba9c8f..bf296e86 100644 --- a/src/database/prisma/schema.prisma +++ b/src/database/prisma/schema.prisma @@ -1133,6 +1133,8 @@ model Readme { url String createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(6) updatedAt DateTime @map("updated_at") @db.Timestamptz(6) + year Int + number Int publishedAt DateTime? @map("published_at") @db.Timestamptz(6) @@map("readme") diff --git a/src/database/schema.zmodel b/src/database/schema.zmodel index bd5530dd..14e4a635 100644 --- a/src/database/schema.zmodel +++ b/src/database/schema.zmodel @@ -1237,6 +1237,8 @@ model Readme { url String createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(6) updatedAt DateTime @map("updated_at") @db.Timestamptz(6) + year Int + number Int publishedAt DateTime? @map("published_at") @db.Timestamptz(6) @@map("readme") diff --git a/src/database/seed/.snaplet/dataModel.json b/src/database/seed/.snaplet/dataModel.json index 74fd254a..c5d000dd 100644 --- a/src/database/seed/.snaplet/dataModel.json +++ b/src/database/seed/.snaplet/dataModel.json @@ -8403,6 +8403,34 @@ "isId": false, "maxLength": null }, + { + "id": "public.readme.year", + "name": "year", + "columnName": "year", + "type": "int4", + "isRequired": true, + "kind": "scalar", + "isList": false, + "isGenerated": false, + "sequence": false, + "hasDefaultValue": false, + "isId": false, + "maxLength": null + }, + { + "id": "public.readme.number", + "name": "number", + "columnName": "number", + "type": "int4", + "isRequired": true, + "kind": "scalar", + "isList": false, + "isGenerated": false, + "sequence": false, + "hasDefaultValue": false, + "isId": false, + "maxLength": null + }, { "id": "public.readme.published_at", "name": "published_at", diff --git a/src/database/seed/data.ts b/src/database/seed/data.ts index 774a0772..c5ecfa5a 100644 --- a/src/database/seed/data.ts +++ b/src/database/seed/data.ts @@ -310,6 +310,8 @@ export const models: SeedClientOptions["models"] = { title: `README #${faker.number.int({ min: 1, max: 5 })}`, url: "https://publuu.com/flip-book/782891/1741481/page/1?embed", publishedAt: () => faker.date.past(), + year: () => faker.date.recent().getFullYear(), + number: () => faker.number.int({ min: 1, max: 5 }), }, }, }; diff --git a/src/routes/(app)/readme/[year]/[number]/+page.server.ts b/src/routes/(app)/readme/[year]/[number]/+page.server.ts new file mode 100644 index 00000000..900ae52d --- /dev/null +++ b/src/routes/(app)/readme/[year]/[number]/+page.server.ts @@ -0,0 +1,17 @@ +import type { PageServerLoad } from "./$types"; +import { error } from "@sveltejs/kit"; + +export const load: PageServerLoad = async ({ locals, params }) => { + const prisma = locals.prisma; + const { year, number } = params; + const readme = await prisma.readme.findFirst({ + where: { + year: parseInt(year), + number: parseInt(number), + }, + }); + if (!readme) { + error(404, "README not found"); + } + return { readme }; +}; diff --git a/src/routes/(app)/readme/[year]/[number]/+page.svelte b/src/routes/(app)/readme/[year]/[number]/+page.svelte new file mode 100644 index 00000000..a9847e30 --- /dev/null +++ b/src/routes/(app)/readme/[year]/[number]/+page.svelte @@ -0,0 +1,7 @@ + + +