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 @@
+
+
+