[BUG] Optional forgein key cause ReferenceError in ESM mode
### Describe the bug

my project is run in ESM, I using Prisma create a  optional forgein key relation between two Model，after `npx prisma migrate`, then throw following error on start up project.

```sh
file:///Users/duwan/Workspaces/babelcloud/babel-agent/node_modules/.pnpm/@tsed+prisma@7.83.3_@prisma+client@5.20.0_prisma@5.20.0__@tsed+core@7.83.3_@tsed+di@7.83.3_@t_vf7jy3uhtsnnr6bz5e5qbyw76e/node_modules/@tsed/prisma/lib/.schema/models/ConversationModel.js:119
    __metadata("design:type", AssignmentModel)
                              ^

ReferenceError: Cannot access 'AssignmentModel' before initialization
    at file:///Users/duwan/Workspaces/babelcloud/babel-agent/node_modules/.pnpm/@tsed+prisma@7.83.3_@prisma+client@5.20.0_prisma@5.20.0__@tsed+core@7.83.3_@tsed+di@7.83.3_@t_vf7jy3uhtsnnr6bz5e5qbyw76e/node_modules/@tsed/prisma/lib/.schema/models/ConversationModel.js:119:31
    at ModuleJob.run (node:internal/modules/esm/module_job:218:25)
    at async ModuleLoader.import (node:internal/modules/esm/loader:329:24)
    at async loadESM (node:internal/process/esm_loader:28:7)
    at async handleMainPromise (node:internal/modules/run_main:113:12)
```

### To Reproduce

```prisma
model Conversation {
  id           String      @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid
  assignmentId String?     @map("assignment_id") @db.Uuid
  assignment   Assignment? @relation(fields: [assignmentId], references: [id], onDelete: NoAction, onUpdate: NoAction)

  @@map("conversation")
}

model Assignment {
  id                String         @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid
  conversations     Conversation[]

  @@map("assignment")
}
```

cause following error

```sh
file:///Users/duwan/Workspaces/babelcloud/babel-agent/node_modules/.pnpm/@tsed+prisma@7.83.3_@prisma+client@5.20.0_prisma@5.20.0__@tsed+core@7.83.3_@tsed+di@7.83.3_@t_vf7jy3uhtsnnr6bz5e5qbyw76e/node_modules/@tsed/prisma/lib/.schema/models/ConversationModel.js:119
    __metadata("design:type", AssignmentModel)
                              ^

ReferenceError: Cannot access 'AssignmentModel' before initialization
    at file:///Users/duwan/Workspaces/babelcloud/babel-agent/node_modules/.pnpm/@tsed+prisma@7.83.3_@prisma+client@5.20.0_prisma@5.20.0__@tsed+core@7.83.3_@tsed+di@7.83.3_@t_vf7jy3uhtsnnr6bz5e5qbyw76e/node_modules/@tsed/prisma/lib/.schema/models/ConversationModel.js:119:31
    at ModuleJob.run (node:internal/modules/esm/module_job:218:25)
    at async ModuleLoader.import (node:internal/modules/esm/loader:329:24)
    at async loadESM (node:internal/process/esm_loader:28:7)
    at async handleMainPromise (node:internal/modules/run_main:113:12)
```

I found that if remove the '?' after String and Assignment as following, it will not cause the error.

```prisma
model Conversation {

  assignmentId String     @map("assignment_id") @db.Uuid
  assignment   Assignment @relation(fields: [assignmentId], references: [id], onDelete: NoAction, onUpdate: NoAction)

}
```

### Expected behavior

file:///Users/duwan/Workspaces/babelcloud/babel-agent/node_modules/.pnpm/@tsed+prisma@7.83.3_@prisma+client@5.20.0_prisma@5.20.0__@tsed+core@7.83.3_@tsed+di@7.83.3_@t_vf7jy3uhtsnnr6bz5e5qbyw76e/node_modules/@tsed/prisma/lib/.schema/models/ConversationModel.js

```js
...
__decorate([
    Property(() => AssignmentModel),
    Allow(null),
    __metadata("design:type", AssignmentModel)
], ConversationModel.prototype, "assignment", void 0);
```

if i change the secord AssignmentModel to Object manually, everything is well。


 
```js
...
__decorate([
    Property(() => AssignmentModel),
    Allow(null),
    __metadata("design:type", Object)
], ConversationModel.prototype, "assignment", void 0);
```

### Code snippets

_No response_

### Repository URL example

_No response_

### OS

macOS

### Node version

v20.11.1

### Library version

v7.83.3

### Additional context

ESM mode