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 3d389c4b..677ee3fe 100644 --- a/src/database/prisma/schema.prisma +++ b/src/database/prisma/schema.prisma @@ -1084,6 +1084,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 b221860d..3cc3524e 100644 --- a/src/database/schema.zmodel +++ b/src/database/schema.zmodel @@ -1162,6 +1162,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 82cb774f..f7533096 100644 --- a/src/database/seed/.snaplet/dataModel.json +++ b/src/database/seed/.snaplet/dataModel.json @@ -7941,6 +7941,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 942cb8e6..ee625d2e 100644 --- a/src/database/seed/data.ts +++ b/src/database/seed/data.ts @@ -308,6 +308,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 @@ + + +