From ad8d577493a1a31d41884f9e1ed86e6d627f5dd9 Mon Sep 17 00:00:00 2001 From: ngthanhvu Date: Wed, 22 Jul 2026 00:31:10 -0400 Subject: [PATCH] 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. --- app/components/AdminToggle.vue | 12 + app/pages/admin/cai-dat.vue | 6 +- app/pages/admin/index.vue | 259 ++-- app/pages/admin/phim.vue | 126 -- app/pages/admin/phim/[id].vue | 282 ++++ app/pages/admin/phim/index.vue | 314 ++++ app/pages/admin/thanh-vien.vue | 97 +- docker-compose.yml | 32 + drizzle.config.ts | 10 + package-lock.json | 1295 ++++++++++++++++- package.json | 10 +- server/api/admin/movies.delete.ts | 16 + server/api/admin/movies.get.ts | 47 + server/api/admin/movies/[id].get.ts | 18 + server/api/admin/movies/[id].patch.ts | 39 + server/api/admin/movies/[id].put.ts | 48 + server/api/admin/stats.get.ts | 18 + server/api/admin/sync.post.ts | 104 ++ server/api/movies.get.ts | 83 +- server/api/movies/[slug].get.ts | 23 + .../migrations/0000_regular_quentin_quire.sql | 25 + .../migrations/0001_lively_nightmare.sql | 3 + .../migrations/0002_small_black_panther.sql | 1 + .../migrations/meta/0000_snapshot.json | 194 +++ .../migrations/meta/0001_snapshot.json | 215 +++ .../migrations/meta/0002_snapshot.json | 222 +++ server/database/migrations/meta/_journal.json | 27 + server/database/schema.ts | 33 + server/utils/db.ts | 15 + server/utils/redis.ts | 19 + 30 files changed, 3244 insertions(+), 349 deletions(-) create mode 100644 app/components/AdminToggle.vue delete mode 100644 app/pages/admin/phim.vue create mode 100644 app/pages/admin/phim/[id].vue create mode 100644 app/pages/admin/phim/index.vue create mode 100644 drizzle.config.ts create mode 100644 server/api/admin/movies.delete.ts create mode 100644 server/api/admin/movies.get.ts create mode 100644 server/api/admin/movies/[id].get.ts create mode 100644 server/api/admin/movies/[id].patch.ts create mode 100644 server/api/admin/movies/[id].put.ts create mode 100644 server/api/admin/stats.get.ts create mode 100644 server/api/admin/sync.post.ts create mode 100644 server/database/migrations/0000_regular_quentin_quire.sql create mode 100644 server/database/migrations/0001_lively_nightmare.sql create mode 100644 server/database/migrations/0002_small_black_panther.sql create mode 100644 server/database/migrations/meta/0000_snapshot.json create mode 100644 server/database/migrations/meta/0001_snapshot.json create mode 100644 server/database/migrations/meta/0002_snapshot.json create mode 100644 server/database/migrations/meta/_journal.json create mode 100644 server/database/schema.ts create mode 100644 server/utils/db.ts create mode 100644 server/utils/redis.ts diff --git a/app/components/AdminToggle.vue b/app/components/AdminToggle.vue new file mode 100644 index 0000000..0ba8bfa --- /dev/null +++ b/app/components/AdminToggle.vue @@ -0,0 +1,12 @@ + + + diff --git a/app/pages/admin/cai-dat.vue b/app/pages/admin/cai-dat.vue index d617dcd..153df2a 100644 --- a/app/pages/admin/cai-dat.vue +++ b/app/pages/admin/cai-dat.vue @@ -58,8 +58,7 @@ const allowRegistration = ref(true)

Chế độ bảo trì

Tạm thời tắt website để bảo trì

- + diff --git a/app/pages/admin/index.vue b/app/pages/admin/index.vue index a9df19d..6c03628 100644 --- a/app/pages/admin/index.vue +++ b/app/pages/admin/index.vue @@ -1,5 +1,5 @@ + + diff --git a/app/pages/admin/phim.vue b/app/pages/admin/phim.vue deleted file mode 100644 index 3ffe027..0000000 --- a/app/pages/admin/phim.vue +++ /dev/null @@ -1,126 +0,0 @@ - - - diff --git a/app/pages/admin/phim/[id].vue b/app/pages/admin/phim/[id].vue new file mode 100644 index 0000000..cac5d2f --- /dev/null +++ b/app/pages/admin/phim/[id].vue @@ -0,0 +1,282 @@ + + +