import { MigrateUpArgs, MigrateDownArgs, sql } from '@payloadcms/db-sqlite' export async function up({ db, payload, req }: MigrateUpArgs): Promise { await db.run(sql`CREATE TABLE \`products_obrazky\` ( \`_order\` integer NOT NULL, \`_parent_id\` integer NOT NULL, \`id\` text PRIMARY KEY NOT NULL, \`obrazek_id\` integer NOT NULL, FOREIGN KEY (\`obrazek_id\`) REFERENCES \`media\`(\`id\`) ON UPDATE no action ON DELETE set null, FOREIGN KEY (\`_parent_id\`) REFERENCES \`products\`(\`id\`) ON UPDATE no action ON DELETE cascade ); `) await db.run(sql`CREATE INDEX \`products_obrazky_order_idx\` ON \`products_obrazky\` (\`_order\`);`) await db.run(sql`CREATE INDEX \`products_obrazky_parent_id_idx\` ON \`products_obrazky\` (\`_parent_id\`);`) await db.run(sql`CREATE INDEX \`products_obrazky_obrazek_idx\` ON \`products_obrazky\` (\`obrazek_id\`);`) await db.run(sql`CREATE TABLE \`products_parametry\` ( \`_order\` integer NOT NULL, \`_parent_id\` integer NOT NULL, \`id\` text PRIMARY KEY NOT NULL, \`nazev\` text NOT NULL, \`hodnota\` text NOT NULL, FOREIGN KEY (\`_parent_id\`) REFERENCES \`products\`(\`id\`) ON UPDATE no action ON DELETE cascade ); `) await db.run(sql`CREATE INDEX \`products_parametry_order_idx\` ON \`products_parametry\` (\`_order\`);`) await db.run(sql`CREATE INDEX \`products_parametry_parent_id_idx\` ON \`products_parametry\` (\`_parent_id\`);`) await db.run(sql`CREATE TABLE \`products\` ( \`id\` integer PRIMARY KEY NOT NULL, \`nazev\` text NOT NULL, \`slug\` text, \`kategorie\` text DEFAULT 'zbrane' NOT NULL, \`cena\` numeric NOT NULL, \`stav\` text DEFAULT 'skladem' NOT NULL, \`skryto\` integer DEFAULT false, \`popis\` text, \`updated_at\` text DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')) NOT NULL, \`created_at\` text DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')) NOT NULL ); `) await db.run(sql`CREATE UNIQUE INDEX \`products_slug_idx\` ON \`products\` (\`slug\`);`) await db.run(sql`CREATE INDEX \`products_updated_at_idx\` ON \`products\` (\`updated_at\`);`) await db.run(sql`CREATE INDEX \`products_created_at_idx\` ON \`products\` (\`created_at\`);`) await db.run(sql`CREATE TABLE \`media\` ( \`id\` integer PRIMARY KEY NOT NULL, \`alt\` text NOT NULL, \`updated_at\` text DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')) NOT NULL, \`created_at\` text DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')) NOT NULL, \`url\` text, \`thumbnail_u_r_l\` text, \`filename\` text, \`mime_type\` text, \`filesize\` numeric, \`width\` numeric, \`height\` numeric, \`focal_x\` numeric, \`focal_y\` numeric, \`sizes_nahled_url\` text, \`sizes_nahled_width\` numeric, \`sizes_nahled_height\` numeric, \`sizes_nahled_mime_type\` text, \`sizes_nahled_filesize\` numeric, \`sizes_nahled_filename\` text, \`sizes_detail_url\` text, \`sizes_detail_width\` numeric, \`sizes_detail_height\` numeric, \`sizes_detail_mime_type\` text, \`sizes_detail_filesize\` numeric, \`sizes_detail_filename\` text ); `) await db.run(sql`CREATE INDEX \`media_updated_at_idx\` ON \`media\` (\`updated_at\`);`) await db.run(sql`CREATE INDEX \`media_created_at_idx\` ON \`media\` (\`created_at\`);`) await db.run(sql`CREATE UNIQUE INDEX \`media_filename_idx\` ON \`media\` (\`filename\`);`) await db.run(sql`CREATE INDEX \`media_sizes_nahled_sizes_nahled_filename_idx\` ON \`media\` (\`sizes_nahled_filename\`);`) await db.run(sql`CREATE INDEX \`media_sizes_detail_sizes_detail_filename_idx\` ON \`media\` (\`sizes_detail_filename\`);`) await db.run(sql`CREATE TABLE \`pages\` ( \`id\` integer PRIMARY KEY NOT NULL, \`nazev\` text NOT NULL, \`slug\` text NOT NULL, \`obsah\` text, \`updated_at\` text DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')) NOT NULL, \`created_at\` text DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')) NOT NULL ); `) await db.run(sql`CREATE UNIQUE INDEX \`pages_slug_idx\` ON \`pages\` (\`slug\`);`) await db.run(sql`CREATE INDEX \`pages_updated_at_idx\` ON \`pages\` (\`updated_at\`);`) await db.run(sql`CREATE INDEX \`pages_created_at_idx\` ON \`pages\` (\`created_at\`);`) await db.run(sql`CREATE TABLE \`users_sessions\` ( \`_order\` integer NOT NULL, \`_parent_id\` integer NOT NULL, \`id\` text PRIMARY KEY NOT NULL, \`created_at\` text, \`expires_at\` text NOT NULL, FOREIGN KEY (\`_parent_id\`) REFERENCES \`users\`(\`id\`) ON UPDATE no action ON DELETE cascade ); `) await db.run(sql`CREATE INDEX \`users_sessions_order_idx\` ON \`users_sessions\` (\`_order\`);`) await db.run(sql`CREATE INDEX \`users_sessions_parent_id_idx\` ON \`users_sessions\` (\`_parent_id\`);`) await db.run(sql`CREATE TABLE \`users\` ( \`id\` integer PRIMARY KEY NOT NULL, \`jmeno\` text, \`updated_at\` text DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')) NOT NULL, \`created_at\` text DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')) NOT NULL, \`email\` text NOT NULL, \`reset_password_token\` text, \`reset_password_expiration\` text, \`salt\` text, \`hash\` text, \`login_attempts\` numeric DEFAULT 0, \`lock_until\` text ); `) await db.run(sql`CREATE INDEX \`users_updated_at_idx\` ON \`users\` (\`updated_at\`);`) await db.run(sql`CREATE INDEX \`users_created_at_idx\` ON \`users\` (\`created_at\`);`) await db.run(sql`CREATE UNIQUE INDEX \`users_email_idx\` ON \`users\` (\`email\`);`) await db.run(sql`CREATE TABLE \`payload_kv\` ( \`id\` integer PRIMARY KEY NOT NULL, \`key\` text NOT NULL, \`data\` text NOT NULL ); `) await db.run(sql`CREATE UNIQUE INDEX \`payload_kv_key_idx\` ON \`payload_kv\` (\`key\`);`) await db.run(sql`CREATE TABLE \`payload_locked_documents\` ( \`id\` integer PRIMARY KEY NOT NULL, \`global_slug\` text, \`updated_at\` text DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')) NOT NULL, \`created_at\` text DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')) NOT NULL ); `) await db.run(sql`CREATE INDEX \`payload_locked_documents_global_slug_idx\` ON \`payload_locked_documents\` (\`global_slug\`);`) await db.run(sql`CREATE INDEX \`payload_locked_documents_updated_at_idx\` ON \`payload_locked_documents\` (\`updated_at\`);`) await db.run(sql`CREATE INDEX \`payload_locked_documents_created_at_idx\` ON \`payload_locked_documents\` (\`created_at\`);`) await db.run(sql`CREATE TABLE \`payload_locked_documents_rels\` ( \`id\` integer PRIMARY KEY NOT NULL, \`order\` integer, \`parent_id\` integer NOT NULL, \`path\` text NOT NULL, \`products_id\` integer, \`media_id\` integer, \`pages_id\` integer, \`users_id\` integer, FOREIGN KEY (\`parent_id\`) REFERENCES \`payload_locked_documents\`(\`id\`) ON UPDATE no action ON DELETE cascade, FOREIGN KEY (\`products_id\`) REFERENCES \`products\`(\`id\`) ON UPDATE no action ON DELETE cascade, FOREIGN KEY (\`media_id\`) REFERENCES \`media\`(\`id\`) ON UPDATE no action ON DELETE cascade, FOREIGN KEY (\`pages_id\`) REFERENCES \`pages\`(\`id\`) ON UPDATE no action ON DELETE cascade, FOREIGN KEY (\`users_id\`) REFERENCES \`users\`(\`id\`) ON UPDATE no action ON DELETE cascade ); `) await db.run(sql`CREATE INDEX \`payload_locked_documents_rels_order_idx\` ON \`payload_locked_documents_rels\` (\`order\`);`) await db.run(sql`CREATE INDEX \`payload_locked_documents_rels_parent_idx\` ON \`payload_locked_documents_rels\` (\`parent_id\`);`) await db.run(sql`CREATE INDEX \`payload_locked_documents_rels_path_idx\` ON \`payload_locked_documents_rels\` (\`path\`);`) await db.run(sql`CREATE INDEX \`payload_locked_documents_rels_products_id_idx\` ON \`payload_locked_documents_rels\` (\`products_id\`);`) await db.run(sql`CREATE INDEX \`payload_locked_documents_rels_media_id_idx\` ON \`payload_locked_documents_rels\` (\`media_id\`);`) await db.run(sql`CREATE INDEX \`payload_locked_documents_rels_pages_id_idx\` ON \`payload_locked_documents_rels\` (\`pages_id\`);`) await db.run(sql`CREATE INDEX \`payload_locked_documents_rels_users_id_idx\` ON \`payload_locked_documents_rels\` (\`users_id\`);`) await db.run(sql`CREATE TABLE \`payload_preferences\` ( \`id\` integer PRIMARY KEY NOT NULL, \`key\` text, \`value\` text, \`updated_at\` text DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')) NOT NULL, \`created_at\` text DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')) NOT NULL ); `) await db.run(sql`CREATE INDEX \`payload_preferences_key_idx\` ON \`payload_preferences\` (\`key\`);`) await db.run(sql`CREATE INDEX \`payload_preferences_updated_at_idx\` ON \`payload_preferences\` (\`updated_at\`);`) await db.run(sql`CREATE INDEX \`payload_preferences_created_at_idx\` ON \`payload_preferences\` (\`created_at\`);`) await db.run(sql`CREATE TABLE \`payload_preferences_rels\` ( \`id\` integer PRIMARY KEY NOT NULL, \`order\` integer, \`parent_id\` integer NOT NULL, \`path\` text NOT NULL, \`users_id\` integer, FOREIGN KEY (\`parent_id\`) REFERENCES \`payload_preferences\`(\`id\`) ON UPDATE no action ON DELETE cascade, FOREIGN KEY (\`users_id\`) REFERENCES \`users\`(\`id\`) ON UPDATE no action ON DELETE cascade ); `) await db.run(sql`CREATE INDEX \`payload_preferences_rels_order_idx\` ON \`payload_preferences_rels\` (\`order\`);`) await db.run(sql`CREATE INDEX \`payload_preferences_rels_parent_idx\` ON \`payload_preferences_rels\` (\`parent_id\`);`) await db.run(sql`CREATE INDEX \`payload_preferences_rels_path_idx\` ON \`payload_preferences_rels\` (\`path\`);`) await db.run(sql`CREATE INDEX \`payload_preferences_rels_users_id_idx\` ON \`payload_preferences_rels\` (\`users_id\`);`) await db.run(sql`CREATE TABLE \`payload_migrations\` ( \`id\` integer PRIMARY KEY NOT NULL, \`name\` text, \`batch\` numeric, \`updated_at\` text DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')) NOT NULL, \`created_at\` text DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')) NOT NULL ); `) await db.run(sql`CREATE INDEX \`payload_migrations_updated_at_idx\` ON \`payload_migrations\` (\`updated_at\`);`) await db.run(sql`CREATE INDEX \`payload_migrations_created_at_idx\` ON \`payload_migrations\` (\`created_at\`);`) } export async function down({ db, payload, req }: MigrateDownArgs): Promise { await db.run(sql`DROP TABLE \`products_obrazky\`;`) await db.run(sql`DROP TABLE \`products_parametry\`;`) await db.run(sql`DROP TABLE \`products\`;`) await db.run(sql`DROP TABLE \`media\`;`) await db.run(sql`DROP TABLE \`pages\`;`) await db.run(sql`DROP TABLE \`users_sessions\`;`) await db.run(sql`DROP TABLE \`users\`;`) await db.run(sql`DROP TABLE \`payload_kv\`;`) await db.run(sql`DROP TABLE \`payload_locked_documents\`;`) await db.run(sql`DROP TABLE \`payload_locked_documents_rels\`;`) await db.run(sql`DROP TABLE \`payload_preferences\`;`) await db.run(sql`DROP TABLE \`payload_preferences_rels\`;`) await db.run(sql`DROP TABLE \`payload_migrations\`;`) }