feat: add movie management API and database schema

- Implemented movie CRUD operations with endpoints for creating, retrieving, updating, and deleting movies.
- Added pagination and filtering capabilities for movie retrieval.
- Integrated Redis caching for improved performance on movie data retrieval.
- Created database schema for movies with necessary fields and types.
- Added migration files for initial movie table creation and subsequent updates.
- Configured database connection using Drizzle ORM with MySQL.
- Established Redis connection utility for caching.
This commit is contained in:
ngthanhvu
2026-07-22 00:31:10 -04:00
parent f09e3275eb
commit ad8d577493
30 changed files with 3244 additions and 349 deletions
+15
View File
@@ -0,0 +1,15 @@
import { drizzle } from 'drizzle-orm/mysql2'
import mysql from 'mysql2/promise'
import * as schema from '../database/schema'
let _db: ReturnType<typeof drizzle<typeof schema>> | undefined
export function useDb() {
if (_db) return _db
const url = process.env.DATABASE_URL || 'mysql://cinek:cinekpassword@localhost:3306/cinek'
const pool = mysql.createPool(url)
_db = drizzle(pool, { mode: 'default', schema })
return _db
}