feat: добавить модуль базы данных с PGlite и Drizzle-ORM, а также CRUD для категорий списка желаний
This commit is contained in:
@@ -22,7 +22,7 @@ const databaseProvider = {
|
||||
const client = new PGlite(dbPath);
|
||||
const db = drizzle(client, { schema });
|
||||
|
||||
// Создаем таблицу напрямую вместо использования миграций
|
||||
// Создаем таблицы напрямую вместо использования миграций
|
||||
try {
|
||||
await client.exec(`
|
||||
CREATE TABLE IF NOT EXISTS events (
|
||||
@@ -42,6 +42,32 @@ const databaseProvider = {
|
||||
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(),
|
||||
updated_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS wishlist_categories (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
name TEXT NOT NULL UNIQUE,
|
||||
slug TEXT NOT NULL UNIQUE,
|
||||
min_price INTEGER NOT NULL DEFAULT 0,
|
||||
max_price INTEGER,
|
||||
color TEXT,
|
||||
icon TEXT,
|
||||
"order" INTEGER NOT NULL DEFAULT 0,
|
||||
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(),
|
||||
updated_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS wishlist_items (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
title TEXT NOT NULL,
|
||||
description TEXT,
|
||||
price INTEGER NOT NULL,
|
||||
currency TEXT NOT NULL DEFAULT 'RUB',
|
||||
link TEXT,
|
||||
images TEXT[] NOT NULL DEFAULT ARRAY[]::TEXT[],
|
||||
category_id UUID NOT NULL REFERENCES wishlist_categories(id) ON DELETE RESTRICT,
|
||||
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(),
|
||||
updated_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
|
||||
);
|
||||
`);
|
||||
console.log('✅ Database initialized successfully');
|
||||
} catch (error) {
|
||||
@@ -58,4 +84,4 @@ const databaseProvider = {
|
||||
providers: [databaseProvider],
|
||||
exports: [DATABASE_CONNECTION],
|
||||
})
|
||||
export class DatabaseModule {}
|
||||
export class DatabaseModule { }
|
||||
|
||||
Reference in New Issue
Block a user