Add entries sql setup

This commit is contained in:
Zoe Roux 2024-10-24 21:34:20 +02:00
parent 7eaf1e1729
commit bbc52e58b4
No known key found for this signature in database

53
api/src/db/schema.ts Normal file
View File

@ -0,0 +1,53 @@
import { sql } from "drizzle-orm";
import {
check,
date,
integer,
jsonb,
pgEnum,
pgTable,
primaryKey,
text,
uuid,
varchar,
} from "drizzle-orm/pg-core";
export const entryType = pgEnum("entry_type", ["unknown", "episode", "movie", "special", "extra"]);
export const entries = pgTable(
"entries",
{
pk: integer().primaryKey().generatedAlwaysAsIdentity(),
id: uuid().notNull().unique().defaultRandom(),
slug: varchar({ length: 255 }).notNull().unique(),
// showId: integer().references(() => show.id),
order: integer().notNull(),
seasonNumber: integer(),
episodeNumber: integer(),
type: entryType().notNull(),
airDate: date(),
runtime: integer(),
thumbnails: jsonb(),
nextRefresh: date(),
externalId: jsonb().notNull().default({}),
},
(t) => ({
// episodeKey: unique().on(t.showId, t.seasonNumber, t.episodeNumber),
orderPositive: check("orderPositive", sql`${t.order} >= 0`),
}),
);
export const entriesTranslation = pgTable(
"entries_translation",
{
pk: integer()
.notNull()
.references(() => entries.id),
language: varchar({ length: 255 }).notNull(),
name: text(),
description: text(),
},
(t) => ({
pk: primaryKey({ columns: [t.pk, t.language] }),
}),
);