From ade90087529f9b8637b596ac516d3b025bb3e74b Mon Sep 17 00:00:00 2001 From: Rafi Arrafif Date: Fri, 9 Jan 2026 14:56:39 +0700 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix:=20change=20create=20user=20?= =?UTF-8?q?repository=20flow?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Include preference creation when creating new user accounts --- prisma/dbml/schema.dbml | 6 +++--- prisma/schema.prisma | 6 +++--- .../create/createUserViaRegister.repository.ts | 7 ++++++- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/prisma/dbml/schema.dbml b/prisma/dbml/schema.dbml index 68b9163..74a0efc 100644 --- a/prisma/dbml/schema.dbml +++ b/prisma/dbml/schema.dbml @@ -176,7 +176,6 @@ Table users { providerToken String providerPayload Json preference user_preferences - preferenceId String [unique] verifiedAt DateTime disabledAt DateTime deletedAt DateTime @@ -213,7 +212,8 @@ Table users { Table user_preferences { id String [pk] - userId users + user users [not null] + userId String [unique, not null] lang languages langPreference String adultFiltering AdultFiltering [not null, default: 'hide'] @@ -655,7 +655,7 @@ Ref: videos.uploadedBy > users.id Ref: video_services.createdBy > users.id -Ref: users.preferenceId - user_preferences.id +Ref: user_preferences.userId - users.id Ref: user_preferences.langPreference > languages.code diff --git a/prisma/schema.prisma b/prisma/schema.prisma index dbc4dad..7ea16e0 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -211,8 +211,7 @@ model User { providerId String? @unique @db.VarChar(255) providerToken String? @db.Text providerPayload Json? @db.Json - preference UserPreference? @relation(fields: [preferenceId], references: [id]) - preferenceId String? @unique + preference UserPreference? verifiedAt DateTime? disabledAt DateTime? deletedAt DateTime? @@ -251,7 +250,8 @@ model User { model UserPreference { id String @id @default(uuid()) - userId User? @relation() + user User @relation(fields: [userId], references: [id]) + userId String @unique lang Language? @relation("UserPreferenceLang", fields: [langPreference], references: [code]) langPreference String? adultFiltering AdultFiltering @default(hide) diff --git a/src/modules/user/repositories/create/createUserViaRegister.repository.ts b/src/modules/user/repositories/create/createUserViaRegister.repository.ts index 159eab7..1b85664 100644 --- a/src/modules/user/repositories/create/createUserViaRegister.repository.ts +++ b/src/modules/user/repositories/create/createUserViaRegister.repository.ts @@ -7,7 +7,12 @@ export const createUserViaRegisterRepository = async ( ) => { try { return await userModel.create({ - data: payload, + data: { + ...payload, + preference: { + create: {}, + }, + }, }); } catch (error) { ErrorForwarder(error);