From 1839bd9a2296074234952f84f369d702cd2a10bb Mon Sep 17 00:00:00 2001
From: Dennis Postma <dennis@directonline.io>
Date: Sun, 24 Nov 2024 15:13:28 +0100
Subject: [PATCH] Renamed hair > characterHair

---
 .../migrations/20241123222118_lol3/migration.sql  | 15 +++++++++++++++
 prisma/schema/user.prisma                         |  8 ++++----
 src/repositories/characterRepository.ts           |  8 ++++----
 src/services/characterService.ts                  |  4 ++--
 src/socketEvents/character/connect.ts             |  6 +++---
 5 files changed, 28 insertions(+), 13 deletions(-)
 create mode 100644 prisma/migrations/20241123222118_lol3/migration.sql

diff --git a/prisma/migrations/20241123222118_lol3/migration.sql b/prisma/migrations/20241123222118_lol3/migration.sql
new file mode 100644
index 0000000..39efbe8
--- /dev/null
+++ b/prisma/migrations/20241123222118_lol3/migration.sql
@@ -0,0 +1,15 @@
+/*
+  Warnings:
+
+  - You are about to drop the column `hairId` on the `Character` table. All the data in the column will be lost.
+
+*/
+-- DropForeignKey
+ALTER TABLE `Character` DROP FOREIGN KEY `Character_hairId_fkey`;
+
+-- AlterTable
+ALTER TABLE `Character` DROP COLUMN `hairId`,
+    ADD COLUMN `characterHairId` INTEGER NULL;
+
+-- AddForeignKey
+ALTER TABLE `Character` ADD CONSTRAINT `Character_characterHairId_fkey` FOREIGN KEY (`characterHairId`) REFERENCES `CharacterHair`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
diff --git a/prisma/schema/user.prisma b/prisma/schema/user.prisma
index f55eea6..263c353 100644
--- a/prisma/schema/user.prisma
+++ b/prisma/schema/user.prisma
@@ -68,12 +68,12 @@ model Character {
   positionX       Int             @default(0)
   positionY       Int             @default(0)
   rotation        Int             @default(0)
-  zoneId          Int             @default(1)
-  zone            Zone            @relation(fields: [zoneId], references: [id], onDelete: Cascade)
   characterTypeId Int?
   characterType   CharacterType?  @relation(fields: [characterTypeId], references: [id], onDelete: Cascade)
-  hairId          Int?
-  hair            CharacterHair?  @relation(fields: [hairId], references: [id], onDelete: Cascade)
+  characterHairId Int?
+  characterHair   CharacterHair?  @relation(fields: [characterHairId], references: [id], onDelete: Cascade)
+  zoneId          Int             @default(1)
+  zone            Zone            @relation(fields: [zoneId], references: [id], onDelete: Cascade)
   chats           Chat[]
   items           CharacterItem[]
 }
diff --git a/src/repositories/characterRepository.ts b/src/repositories/characterRepository.ts
index 712cbdd..a34fdef 100644
--- a/src/repositories/characterRepository.ts
+++ b/src/repositories/characterRepository.ts
@@ -15,7 +15,7 @@ class CharacterRepository {
               sprite: true
             }
           },
-          hair: {
+          characterHair: {
             include: {
               sprite: true
             }
@@ -43,7 +43,7 @@ class CharacterRepository {
               sprite: true
             }
           },
-          hair: {
+          characterHair: {
             include: {
               sprite: true
             }
@@ -70,7 +70,7 @@ class CharacterRepository {
               sprite: true
             }
           },
-          hair: {
+          characterHair: {
             include: {
               sprite: true
             }
@@ -97,7 +97,7 @@ class CharacterRepository {
               sprite: true
             }
           },
-          hair: {
+          characterHair: {
             include: {
               sprite: true
             }
diff --git a/src/services/characterService.ts b/src/services/characterService.ts
index eef016e..dab47a9 100644
--- a/src/services/characterService.ts
+++ b/src/services/characterService.ts
@@ -23,11 +23,11 @@ export class CharacterService {
     })
   }
 
-  async updateHair(characterId: number, hairId: number | null) {
+  async updateHair(characterId: number, characterHairId: number | null) {
     await prisma.character.update({
       where: { id: characterId },
       data: {
-        hairId
+        characterHairId
       }
     })
   }
diff --git a/src/socketEvents/character/connect.ts b/src/socketEvents/character/connect.ts
index 54874bf..48aea7a 100644
--- a/src/socketEvents/character/connect.ts
+++ b/src/socketEvents/character/connect.ts
@@ -7,7 +7,7 @@ import { CharacterService } from '../../services/characterService'
 
 interface CharacterConnectPayload {
   characterId: number
-  hairId?: number
+  characterHairId?: number
 }
 
 export default class CharacterConnectEvent {
@@ -20,7 +20,7 @@ export default class CharacterConnectEvent {
     this.socket.on('character:connect', this.handleCharacterConnect.bind(this))
   }
 
-  private async handleCharacterConnect({ characterId, hairId }: CharacterConnectPayload): Promise<void> {
+  private async handleCharacterConnect({ characterId, characterHairId }: CharacterConnectPayload): Promise<void> {
     if (!this.socket.userId) {
       this.emitError('User not authenticated')
       return
@@ -34,7 +34,7 @@ export default class CharacterConnectEvent {
 
       // Update hair
       const characterService = new CharacterService()
-      await characterService.updateHair(characterId, hairId ?? null)
+      await characterService.updateHair(characterId, characterHairId ?? null)
 
       const character = await this.connectCharacter(characterId)
       if (!character) {