feat: establish backend foundation

This commit is contained in:
2026-08-12 23:04:21 +03:00
parent f8dcfb71c1
commit ab21426478
24 changed files with 2313 additions and 382 deletions
+9
View File
@@ -0,0 +1,9 @@
import { Global, Module } from '@nestjs/common';
import { PrismaService } from './prisma.service';
@Global()
@Module({
providers: [PrismaService],
exports: [PrismaService],
})
export class PrismaModule {}
+31
View File
@@ -0,0 +1,31 @@
import { Injectable, OnModuleDestroy, OnModuleInit } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
import { PrismaBetterSqlite3 } from '@prisma/adapter-better-sqlite3';
import { PrismaClient } from '../../generated/prisma/client';
import { Environment } from '../config/env.validation';
function getDatabaseUrl(config: ConfigService<Environment, true>): string {
return config.getOrThrow<string>('DATABASE_URL');
}
@Injectable()
export class PrismaService
extends PrismaClient
implements OnModuleInit, OnModuleDestroy
{
constructor(config: ConfigService<Environment, true>) {
super({
adapter: new PrismaBetterSqlite3({
url: getDatabaseUrl(config),
}),
});
}
onModuleInit(): Promise<void> {
return this.$connect();
}
onModuleDestroy(): Promise<void> {
return this.$disconnect();
}
}