feat: add accounts and movies tables in migrations

- Created migration for accounts table with fields: id, username, password, role_id, created_at, updated_at.
- Created migration for movies table with fields: id, title, overview, poster_path, backdrop_path, release_date, tmdb_id.

refactor: update package.json scripts and dependencies

- Changed dev script to use bun instead of tsx.
- Added build:migrate script for migration.
- Updated devDependencies for bun and oxlint.

fix: refactor database connection and migration execution

- Updated PgDatabase to use SQL from bun.
- Refactored migration execution logic to read SQL files and execute them.

feat: implement account creation and validation logic

- Updated AccountEntity to use username instead of email.
- Added validation for username format and password strength.
- Implemented account repository methods for finding by username and inserting accounts.

test: add tests for account entity, repository, and service

- Created tests for AccountEntity to validate username and password.
- Added tests for AccountRepository to ensure correct database interactions.
- Implemented tests for AccountService to validate registration and login logic.

chore: remove outdated tests and files

- Deleted old tests related to email-based account management.
- Cleaned up unused imports and files to streamline the codebase.
This commit is contained in:
2025-10-02 20:54:41 +00:00
parent 91c14f750e
commit aaa0ca5a54
28 changed files with 617 additions and 654 deletions

17
src/bin/migrate.ts Normal file
View File

@@ -0,0 +1,17 @@
import path from "node:path";
import Migration from "../database/Migration";
import PgDatabase from "../database/PgDatabase";
const connectionString = process.env.DATABASE_URL;
if (!connectionString)
throw new Error("DATABASE_URL environment variable is not set");
const migrationsFolder = process.env.MIGRATIONS_FOLDER;
if (!migrationsFolder)
throw new Error("MIGRATIONS_FOLDER environment variable is not set");
const db = PgDatabase.fromConnectionString(connectionString);
await db.ping();
const migration = new Migration(db);
await migration.execute(path.resolve("migrations"));