tubearr/src/db/schema/media-servers.ts
jlightner 6aa7e21b90 feat: Added media_servers table, MediaServer type, and CRUD repository…
- "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
2026-04-04 05:50:33 +00:00

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'))`),
});