- "src/db/schema/media-servers.ts" - "src/db/repositories/media-server-repository.ts" - "src/types/index.ts" - "drizzle/0016_right_galactus.sql" GSD-Task: S04/T01
19 lines
800 B
TypeScript
19 lines
800 B
TypeScript
import { sqliteTable, text, integer } from 'drizzle-orm/sqlite-core';
|
|
import { sql } from 'drizzle-orm';
|
|
|
|
/** Media server connections for triggering library scans (Plex, Jellyfin). */
|
|
export const mediaServers = sqliteTable('media_servers', {
|
|
id: integer('id').primaryKey({ autoIncrement: true }),
|
|
name: text('name').notNull(),
|
|
type: text('type').notNull(), // 'plex' | 'jellyfin'
|
|
url: text('url').notNull(),
|
|
token: text('token').notNull(),
|
|
librarySection: text('library_section'), // nullable — Plex section ID or Jellyfin library ID
|
|
enabled: integer('enabled', { mode: 'boolean' }).notNull().default(true),
|
|
createdAt: text('created_at')
|
|
.notNull()
|
|
.default(sql`(datetime('now'))`),
|
|
updatedAt: text('updated_at')
|
|
.notNull()
|
|
.default(sql`(datetime('now'))`),
|
|
});
|