
> backend@0.0.1 start:dev
> nest start --watch

[2J[3J[H[[90m7:00:22 PM[0m] Starting compilation in watch mode...

[[90m7:00:27 PM[0m] Found 0 errors. Watching for file changes.

[32m[Nest] 13244  - [39m02/23/2026, 7:00:31 PM [32m    LOG[39m [38;5;3m[NestFactory] [39m[32mStarting Nest application...[39m
[32m[Nest] 13244  - [39m02/23/2026, 7:00:31 PM [32m    LOG[39m [38;5;3m[InstanceLoader] [39m[32mPrismaModule dependencies initialized[39m[38;5;3m +29ms[39m
[32m[Nest] 13244  - [39m02/23/2026, 7:00:31 PM [32m    LOG[39m [38;5;3m[InstanceLoader] [39m[32mPassportModule dependencies initialized[39m[38;5;3m +0ms[39m
[32m[Nest] 13244  - [39m02/23/2026, 7:00:31 PM [32m    LOG[39m [38;5;3m[InstanceLoader] [39m[32mAdminModule dependencies initialized[39m[38;5;3m +1ms[39m
[32m[Nest] 13244  - [39m02/23/2026, 7:00:31 PM [32m    LOG[39m [38;5;3m[InstanceLoader] [39m[32mConfigHostModule dependencies initialized[39m[38;5;3m +3ms[39m
[32m[Nest] 13244  - [39m02/23/2026, 7:00:31 PM [32m    LOG[39m [38;5;3m[InstanceLoader] [39m[32mAppModule dependencies initialized[39m[38;5;3m +3ms[39m
[32m[Nest] 13244  - [39m02/23/2026, 7:00:31 PM [32m    LOG[39m [38;5;3m[InstanceLoader] [39m[32mConfigModule dependencies initialized[39m[38;5;3m +0ms[39m
[32m[Nest] 13244  - [39m02/23/2026, 7:00:31 PM [32m    LOG[39m [38;5;3m[InstanceLoader] [39m[32mConfigModule dependencies initialized[39m[38;5;3m +0ms[39m
[32m[Nest] 13244  - [39m02/23/2026, 7:00:31 PM [32m    LOG[39m [38;5;3m[InstanceLoader] [39m[32mJwtModule dependencies initialized[39m[38;5;3m +1ms[39m
[32m[Nest] 13244  - [39m02/23/2026, 7:00:31 PM [32m    LOG[39m [38;5;3m[InstanceLoader] [39m[32mAdminModule dependencies initialized[39m[38;5;3m +0ms[39m
[32m[Nest] 13244  - [39m02/23/2026, 7:00:31 PM [32m    LOG[39m [38;5;3m[InstanceLoader] [39m[32mAuthModule dependencies initialized[39m[38;5;3m +1ms[39m
[32m[Nest] 13244  - [39m02/23/2026, 7:00:31 PM [32m    LOG[39m [38;5;3m[RoutesResolver] [39m[32mAppController {/api}:[39m[38;5;3m +44ms[39m
[32m[Nest] 13244  - [39m02/23/2026, 7:00:31 PM [32m    LOG[39m [38;5;3m[RouterExplorer] [39m[32mMapped {/api, GET} route[39m[38;5;3m +3ms[39m
[32m[Nest] 13244  - [39m02/23/2026, 7:00:31 PM [32m    LOG[39m [38;5;3m[RouterExplorer] [39m[32mMapped {/api/hello, GET} route[39m[38;5;3m +1ms[39m
[32m[Nest] 13244  - [39m02/23/2026, 7:00:31 PM [32m    LOG[39m [38;5;3m[RoutesResolver] [39m[32mAuthController {/api/auth}:[39m[38;5;3m +0ms[39m
[32m[Nest] 13244  - [39m02/23/2026, 7:00:31 PM [32m    LOG[39m [38;5;3m[RouterExplorer] [39m[32mMapped {/api/auth/login, POST} route[39m[38;5;3m +1ms[39m
[32m[Nest] 13244  - [39m02/23/2026, 7:00:31 PM [32m    LOG[39m [38;5;3m[RouterExplorer] [39m[32mMapped {/api/auth/register, POST} route[39m[38;5;3m +0ms[39m
[32m[Nest] 13244  - [39m02/23/2026, 7:00:31 PM [32m    LOG[39m [38;5;3m[RouterExplorer] [39m[32mMapped {/api/auth/profile, GET} route[39m[38;5;3m +0ms[39m
[32m[Nest] 13244  - [39m02/23/2026, 7:00:31 PM [32m    LOG[39m [38;5;3m[RouterExplorer] [39m[32mMapped {/api/auth/test, GET} route[39m[38;5;3m +1ms[39m
node.exe : file:///E:/my%20Projects/dyolink/backend/node_modules/adminjs/lib/backend/utils/resources-factory/resources-factory.js:73
At line:1 char:1
+ & "C:\Program Files\nodejs/node.exe" "C:\Program Files\nodejs/node_mo ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (file:///E:/my%2...s-factory.js:73:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError
 
        throw new NoResourceAdapterError(resourceObject);
              ^

NoResourceAdapterError: There are no adapters supporting one of the resource you provided
    at file:///E:/my%20Projects/dyolink/backend/node_modules/adminjs/lib/backend/utils/resources-factory/resources-factory.js:73:15
    at Array.map (<anonymous>)
    at ResourcesFactory._convertResources (file:///E:/my%20Projects/dyolink/backend/node_modules/adminjs/lib/backend/utils/resources-factory/resources-factory.js:68:22)
    at ResourcesFactory.buildResources (file:///E:/my%20Projects/dyolink/backend/node_modules/adminjs/lib/backend/utils/resources-factory/resources-factory.js:28:35)
    at new AdminJS (file:///E:/my%20Projects/dyolink/backend/node_modules/adminjs/lib/adminjs.js:79:39)
    at AdminModule.onModuleInit (file:///E:/my%20Projects/dyolink/backend/node_modules/@adminjs/nestjs/build/admin.module.js:70:23)
    at async callModuleInitHook (E:\my Projects\dyolink\backend\node_modules\@nestjs\core\hooks\on-module-init.hook.js:51:9)
    at async NestApplication.callInitHook (E:\my Projects\dyolink\backend\node_modules\@nestjs\core\nest-application-context.js:252:13)
    at async NestApplication.init (E:\my Projects\dyolink\backend\node_modules\@nestjs\core\nest-application.js:103:9)
    at async NestApplication.listen (E:\my Projects\dyolink\backend\node_modules\@nestjs\core\nest-application.js:175:13) {
  resource: {
    model: {
      findUnique: [Function (anonymous)],
      findUniqueOrThrow: [Function (anonymous)],
      findFirst: [Function (anonymous)],
      findFirstOrThrow: [Function (anonymous)],
      findMany: [Function (anonymous)],
      create: [Function (anonymous)],
      createMany: [Function (anonymous)],
      createManyAndReturn: [Function (anonymous)],
      update: [Function (anonymous)],
      updateMany: [Function (anonymous)],
      updateManyAndReturn: [Function (anonymous)],
      upsert: [Function (anonymous)],
      delete: [Function (anonymous)],
      deleteMany: [Function (anonymous)],
      groupBy: [Function (anonymous)],
      count: [Function (anonymous)],
      aggregate: [Function (anonymous)],
      findRaw: [Function (anonymous)],
      aggregateRaw: [Function (anonymous)],
      fields: {
        id: mt {
          modelName: 'User',
          name: 'id',
          typeName: 'String',
          isList: false,
          isEnum: false
        },
        email: mt {
          modelName: 'User',
          name: 'email',
          typeName: 'String',
          isList: false,
          isEnum: false
        },
        passwordHash: mt {
          modelName: 'User',
          name: 'passwordHash',
          typeName: 'String',
          isList: false,
          isEnum: false
        },
        googleId: mt {
          modelName: 'User',
          name: 'googleId',
          typeName: 'String',
          isList: false,
          isEnum: false
        },
        facebookId: mt {
          modelName: 'User',
          name: 'facebookId',
          typeName: 'String',
          isList: false,
          isEnum: false
        },
        name: mt {
          modelName: 'User',
          name: 'name',
          typeName: 'String',
          isList: false,
          isEnum: false
        },
        createdAt: mt {
          modelName: 'User',
          name: 'createdAt',
          typeName: 'DateTime',
          isList: false,
          isEnum: false
        },
        updatedAt: mt {
          modelName: 'User',
          name: 'updatedAt',
          typeName: 'DateTime',
          isList: false,
          isEnum: false
        }
      },
      name: 'User',
      '$name': 'User',
      '$parent': <ref *1> PrismaService [PrismaClient] {
        _originalClient: [Circular *1],
        _runtimeDataModel: {
          models: {
            User: [Object],
            OrganizationType: [Object],
            Organization: [Object],
            Plan: [Object],
            Membership: [Object],
            Permission: [Object],
            MembershipPermission: [Object],
            Feature: [Object],
            OrganizationLink: [Object],
            Session: [Object]
          },
          enums: { LinkStatus: [Object] },
          types: {}
        },
        _requestHandler: ei [RequestHandler] {
          client: [Circular *1],
          dataloader: Zn [DataLoader] {
            batches: {},
            tickActive: false,
            options: [Object]
          },
          logEmitter: EventEmitter {
            _events: [Object: null prototype],
            _eventsCount: 1,
            _maxListeners: undefined,
            Symbol(shapeMode): false,
            Symbol(kCapture): false
          }
        },
        _connectionPromise: undefined,
        _disconnectionPromise: undefined,
        _engineConfig: {
          cwd: 'E:\\my Projects\\dyolink\\backend\\prisma',
          dirname: 'E:\\my Projects\\dyolink\\backend\\node_modules\\.prisma\\client',
          enableDebugLogs: false,
          allowTriggerPanic: undefined,
          prismaPath: 'E:\\my Projects\\dyolink\\backend\\node_modules\\.prisma\\client\\query_engine-windows.dll.node',
          engineEndpoint: undefined,
          generator: {
            name: 'client',
            provider: [Object],
            output: [Object],
            config: [Object],
            binaryTargets: [Array],
            previewFeatures: [],
            sourceFilePath: 'E:\\my Projects\\dyolink\\backend\\prisma\\schema.prisma'
          },
          showColors: false,
          logLevel: undefined,
          logQueries: undefined,
          env: {
            DATABASE_URL: 'postgresql://postgres:1234@localhost:5432/dyolink_db',
            JWT_SECRET: 'your-super-secret-jwt-key-change-this',
            JWT_REFRESH_SECRET: 'your-super-secret-refresh-key-change-this',
            FRONTEND_URL: 'http://localhost:3001'
          },
          flags: [],
          engineWasm: undefined,
          compilerWasm: undefined,
          clientVersion: '6.19.2',
          engineVersion: 'c2990dca591cba766e3b7ef5d9e8a84796e47ab7',
          previewFeatures: [],
          activeProvider: 'postgresql',
          inlineSchema: '// backend/prisma/schema.prisma\n' +
            'generator client {\n' +
            '  provider = "prisma-client-js"\n' +
            '}\n' +
            '\n' +
            'datasource db {\n' +
            '  provider = "postgresql"\n' +
            '  url      = env("DATABASE_URL")\n' +
            '}\n' +
            '\n' +
            'model User {\n' +
            '  id           String  @id @default(uuid())\n' +
            '  email        String  @unique\n' +
            '  passwordHash String?\n' +
            '  googleId     String? @unique\n' +
            '  facebookId   String? @unique\n' +
            '  name         String\n' +
            '\n' +
            '  memberships        Membership[]\n' +
            '  ownedOrganizations Organization[] @relation("OrganizationOwner")\n' +
            '  sessions           Session[] // ≡ƒæê ADD THIS - opposite relation for Session\n' +
            '\n' +
            '  createdAt DateTime @default(now())\n' +
            '  updatedAt DateTime @updatedAt\n' +
            '\n' +
            '  @@map("users")\n' +
            '}\n' +
            '\n' +
            'model OrganizationType {\n' +
            '  id   String @id @default(uuid())\n' +
            '  name String @unique // "CLINIC" or "LAB"\n' +
            '\n' +
            '  organizations Organization[]\n' +
            '  features      Feature[] // ≡ƒæê ADD THIS - opposite relation for Feature\n' +
            '\n' +
            '  @@map("organization_types")\n' +
            '}\n' +
            '\n' +
            'model Organization {\n' +
            '  id      String  @id @default(uuid())\n' +
            '  name    String\n' +
            '  email   String  @unique\n' +
            '  phone   String?\n' +
            '  address String?\n' +
            '\n' +
            '  typeId String\n' +
            '  type   OrganizationType @relation(fields: [typeId], references: [id])\n' +
            '\n' +
            '  ownerId String\n' +
            '  owner   User   @relation("OrganizationOwner", fields: [ownerId], references: [id])\n' +
            '\n' +
            '  memberships Membership[]\n' +
            '  planId      String\n' +
            '  plan        Plan         @relation(fields: [planId], references: [id])\n' +
            '\n' +
            '  sharedWithMe     OrganizationLink[] @relation("OrganizationB")\n' +
            '  sharedWithOthers OrganizationLink[] @relation("OrganizationA")\n' +
            '\n' +
            '  createdAt DateTime @default(now())\n' +
            '  updatedAt DateTime @updatedAt\n' +
            '\n' +
            '  @@map("organizations")\n' +
            '}\n' +
            '\n' +
            'model Plan {\n' +
            '  id       String @id @default(uuid())\n' +
            '  name     String @unique // "Solo", "Small", "Medium", "Large", "Enterprise"\n' +
            '  maxUsers Int // 1, 5, 10, 15, 999999 for unlimited\n' +
            '  price    Float\n' +
            '  features Json // Store feature flags as JSON\n' +
            '\n' +
            '  organizations Organization[]\n' +
            '\n' +
            '  @@map("plans")\n' +
            '}\n' +
            '\n' +
            'model Membership {\n' +
            '  id String @id @default(uuid())\n' +
            '\n' +
            '  userId         String\n' +
            '  organizationId String\n' +
            '\n' +
            '  isOwner Boolean @default(false)\n' +
            '\n' +
            '  user         User         @relation(fields: [userId], references: [id])\n' +
            '  organization Organization @relation(fields: [organizationId], references: [id])\n' +
            '\n' +
            '  permissions MembershipPermission[]\n' +
            '\n' +
            '  createdAt DateTime @default(now())\n' +
            '  updatedAt DateTime @updatedAt\n' +
            '\n' +
            '  @@unique([userId, organizationId])\n' +
            '  @@map("memberships")\n' +
            '}\n' +
            '\n' +
            'model Permission {\n' +
            '  id          String  @id @default(uuid())\n' +
            '  name        String  @unique\n' +
            '  description String?\n' +
            '\n' +
            '  memberships MembershipPermission[]\n' +
            '  featureId   String?\n' +
            '  feature     Feature?               @relation(fields: [featureId], references: [id])\n' +
            '\n' +
            '  @@map("permissions")\n' +
            '}\n' +
            '\n' +
            'model MembershipPermission {\n' +
            '  membershipId String\n' +
            '  permissionId String\n' +
            '\n' +
            '  membership Membership @relation(fields: [membershipId], references: [id])\n' +
            '  permission Permission @relation(fields: [permissionId], references: [id])\n' +
            '\n' +
            '  @@id([membershipId, permissionId])\n' +
            '  @@map("membership_permissions")\n' +
            '}\n' +
            '\n' +
            'model Feature {\n' +
            '  id          String  @id @default(uuid())\n' +
            '  name        String  @unique\n' +
            '  description String?\n' +
            '\n' +
            '  permissions        Permission[]\n' +
            '  organizationTypeId String?\n' +
            '  organizationType   OrganizationType? @relation(fields: [organizationTypeId], references: [id])\n' +
            '\n' +
            '  @@map("features")\n' +
            '}\n' +
            '\n' +
            'model OrganizationLink {\n' +
            '  id String @id @default(uuid())\n' +
            '\n' +
            '  organizationAId String\n' +
            '  organizationBId String\n' +
            '  status          LinkStatus @default(PENDING)\n' +
            '  sharedDataTypes Json\n' +
            '\n' +
            '  organizationA Organization @relation("OrganizationA", fields: [organizationAId], references: [id])\n' +
            '  organizationB Organization @relation("OrganizationB", fields: [organizationBId], references: [id])\n' +
            '\n' +
            '  createdAt DateTime @default(now())\n' +
            '  updatedAt DateTime @updatedAt\n' +
            '\n' +
            '  @@unique([organizationAId, organizationBId])\n' +
            '  @@map("organization_links")\n' +
            '}\n' +
            '\n' +
            'model Session {\n' +
            '  id           String   @id @default(uuid())\n' +
            '  userId       String\n' +
            '  token        String   @unique\n' +
            '  refreshToken String?  @unique\n' +
            '  expiresAt    DateTime\n' +
            '  userAgent    String?\n' +
            '  ipAddress    String?\n' +
            '\n' +
            '  user User @relation(fields: [userId], references: [id])\n' +
            '\n' +
            '  createdAt DateTime @default(now())\n' +
            '  updatedAt DateTime @updatedAt\n' +
            '\n' +
            '  @@map("sessions")\n' +
            '}\n' +
            '\n' +
            'enum LinkStatus {\n' +
            '  PENDING\n' +
            '  ACTIVE\n' +
            '  REJECTED\n' +
            '  BLOCKED\n' +
            '}\n',
          overrideDatasources: {},
          inlineDatasources: { db: [Object] },
          inlineSchemaHash: '4aae01036d0b31bf4276d4cd600a2bdaac52abdf50fe0f617feb1c2620130473',
          tracingHelper: Ao {},
          transactionOptions: { maxWait: 2000, timeout: 5000, isolationLevel: undefined },
          logEmitter: EventEmitter {
            _events: [Object: null prototype],
            _eventsCount: 1,
            _maxListeners: undefined,
            Symbol(shapeMode): false,
            Symbol(kCapture): false
          },
          isBundled: undefined,
          adapter: undefined
        },
        _accelerateEngineConfig: {
          cwd: 'E:\\my Projects\\dyolink\\backend\\prisma',
          dirname: 'E:\\my Projects\\dyolink\\backend\\node_modules\\.prisma\\client',
          enableDebugLogs: false,
          allowTriggerPanic: undefined,
          prismaPath: undefined,
          engineEndpoint: undefined,
          generator: {
            name: 'client',
            provider: [Object],
            output: [Object],
            config: [Object],
            binaryTargets: [Array],
            previewFeatures: [],
            sourceFilePath: 'E:\\my Projects\\dyolink\\backend\\prisma\\schema.prisma'
          },
          showColors: false,
          logLevel: undefined,
          logQueries: undefined,
          env: {
            DATABASE_URL: 'postgresql://postgres:1234@localhost:5432/dyolink_db',
            JWT_SECRET: 'your-super-secret-jwt-key-change-this',
            JWT_REFRESH_SECRET: 'your-super-secret-refresh-key-change-this',
            FRONTEND_URL: 'http://localhost:3001'
          },
          flags: [],
          engineWasm: undefined,
          compilerWasm: undefined,
          clientVersion: '6.19.2',
          engineVersion: 'c2990dca591cba766e3b7ef5d9e8a84796e47ab7',
          previewFeatures: [],
          activeProvider: 'postgresql',
          inlineSchema: '// backend/prisma/schema.prisma\n' +
            'generator client {\n' +
            '  provider = "prisma-client-js"\n' +
            '}\n' +
            '\n' +
            'datasource db {\n' +
            '  provider = "postgresql"\n' +
            '  url      = env("DATABASE_URL")\n' +
            '}\n' +
            '\n' +
            'model User {\n' +
            '  id           String  @id @default(uuid())\n' +
            '  email        String  @unique\n' +
            '  passwordHash String?\n' +
            '  googleId     String? @unique\n' +
            '  facebookId   String? @unique\n' +
            '  name         String\n' +
            '\n' +
            '  memberships        Membership[]\n' +
            '  ownedOrganizations Organization[] @relation("OrganizationOwner")\n' +
            '  sessions           Session[] // ≡ƒæê ADD THIS - opposite relation for Session\n' +
            '\n' +
            '  createdAt DateTime @default(now())\n' +
            '  updatedAt DateTime @updatedAt\n' +
            '\n' +
            '  @@map("users")\n' +
            '}\n' +
            '\n' +
            'model OrganizationType {\n' +
            '  id   String @id @default(uuid())\n' +
            '  name String @unique // "CLINIC" or "LAB"\n' +
            '\n' +
            '  organizations Organization[]\n' +
            '  features      Feature[] // ≡ƒæê ADD THIS - opposite relation for Feature\n' +
            '\n' +
            '  @@map("organization_types")\n' +
            '}\n' +
            '\n' +
            'model Organization {\n' +
            '  id      String  @id @default(uuid())\n' +
            '  name    String\n' +
            '  email   String  @unique\n' +
            '  phone   String?\n' +
            '  address String?\n' +
            '\n' +
            '  typeId String\n' +
            '  type   OrganizationType @relation(fields: [typeId], references: [id])\n' +
            '\n' +
            '  ownerId String\n' +
            '  owner   User   @relation("OrganizationOwner", fields: [ownerId], references: [id])\n' +
            '\n' +
            '  memberships Membership[]\n' +
            '  planId      String\n' +
            '  plan        Plan         @relation(fields: [planId], references: [id])\n' +
            '\n' +
            '  sharedWithMe     OrganizationLink[] @relation("OrganizationB")\n' +
            '  sharedWithOthers OrganizationLink[] @relation("OrganizationA")\n' +
            '\n' +
            '  createdAt DateTime @default(now())\n' +
            '  updatedAt DateTime @updatedAt\n' +
            '\n' +
            '  @@map("organizations")\n' +
            '}\n' +
            '\n' +
            'model Plan {\n' +
            '  id       String @id @default(uuid())\n' +
            '  name     String @unique // "Solo", "Small", "Medium", "Large", "Enterprise"\n' +
            '  maxUsers Int // 1, 5, 10, 15, 999999 for unlimited\n' +
            '  price    Float\n' +
            '  features Json // Store feature flags as JSON\n' +
            '\n' +
            '  organizations Organization[]\n' +
            '\n' +
            '  @@map("plans")\n' +
            '}\n' +
            '\n' +
            'model Membership {\n' +
            '  id String @id @default(uuid())\n' +
            '\n' +
            '  userId         String\n' +
            '  organizationId String\n' +
            '\n' +
            '  isOwner Boolean @default(false)\n' +
            '\n' +
            '  user         User         @relation(fields: [userId], references: [id])\n' +
            '  organization Organization @relation(fields: [organizationId], references: [id])\n' +
            '\n' +
            '  permissions MembershipPermission[]\n' +
            '\n' +
            '  createdAt DateTime @default(now())\n' +
            '  updatedAt DateTime @updatedAt\n' +
            '\n' +
            '  @@unique([userId, organizationId])\n' +
            '  @@map("memberships")\n' +
            '}\n' +
            '\n' +
            'model Permission {\n' +
            '  id          String  @id @default(uuid())\n' +
            '  name        String  @unique\n' +
            '  description String?\n' +
            '\n' +
            '  memberships MembershipPermission[]\n' +
            '  featureId   String?\n' +
            '  feature     Feature?               @relation(fields: [featureId], references: [id])\n' +
            '\n' +
            '  @@map("permissions")\n' +
            '}\n' +
            '\n' +
            'model MembershipPermission {\n' +
            '  membershipId String\n' +
            '  permissionId String\n' +
            '\n' +
            '  membership Membership @relation(fields: [membershipId], references: [id])\n' +
            '  permission Permission @relation(fields: [permissionId], references: [id])\n' +
            '\n' +
            '  @@id([membershipId, permissionId])\n' +
            '  @@map("membership_permissions")\n' +
            '}\n' +
            '\n' +
            'model Feature {\n' +
            '  id          String  @id @default(uuid())\n' +
            '  name        String  @unique\n' +
            '  description String?\n' +
            '\n' +
            '  permissions        Permission[]\n' +
            '  organizationTypeId String?\n' +
            '  organizationType   OrganizationType? @relation(fields: [organizationTypeId], references: [id])\n' +
            '\n' +
            '  @@map("features")\n' +
            '}\n' +
            '\n' +
            'model OrganizationLink {\n' +
            '  id String @id @default(uuid())\n' +
            '\n' +
            '  organizationAId String\n' +
            '  organizationBId String\n' +
            '  status          LinkStatus @default(PENDING)\n' +
            '  sharedDataTypes Json\n' +
            '\n' +
            '  organizationA Organization @relation("OrganizationA", fields: [organizationAId], references: [id])\n' +
            '  organizationB Organization @relation("OrganizationB", fields: [organizationBId], references: [id])\n' +
            '\n' +
            '  createdAt DateTime @default(now())\n' +
            '  updatedAt DateTime @updatedAt\n' +
            '\n' +
            '  @@unique([organizationAId, organizationBId])\n' +
            '  @@map("organization_links")\n' +
            '}\n' +
            '\n' +
            'model Session {\n' +
            '  id           String   @id @default(uuid())\n' +
            '  userId       String\n' +
            '  token        String   @unique\n' +
            '  refreshToken String?  @unique\n' +
            '  expiresAt    DateTime\n' +
            '  userAgent    String?\n' +
            '  ipAddress    String?\n' +
            '\n' +
            '  user User @relation(fields: [userId], references: [id])\n' +
            '\n' +
            '  createdAt DateTime @default(now())\n' +
            '  updatedAt DateTime @updatedAt\n' +
            '\n' +
            '  @@map("sessions")\n' +
            '}\n' +
            '\n' +
            'enum LinkStatus {\n' +
            '  PENDING\n' +
            '  ACTIVE\n' +
            '  REJECTED\n' +
            '  BLOCKED\n' +
            '}\n',
          overrideDatasources: {},
          inlineDatasources: { db: [Object] },
          inlineSchemaHash: '4aae01036d0b31bf4276d4cd600a2bdaac52abdf50fe0f617feb1c2620130473',
          tracingHelper: Ao {},
          transactionOptions: { maxWait: 2000, timeout: 5000, isolationLevel: undefined },
          logEmitter: EventEmitter {
            _events: [Object: null prototype],
            _eventsCount: 1,
            _maxListeners: undefined,
            Symbol(shapeMode): false,
            Symbol(kCapture): false
          },
          isBundled: undefined,
          adapter: undefined,
          accelerateUtils: {
            resolveDatasourceUrl: [Function: jr],
            getBatchRequestPayload: [Function: Mr],
            prismaGraphQLToJSError: [Function: $r],
            PrismaClientUnknownRequestError: [class PrismaClientUnknownRequestError extends Error],
            PrismaClientInitializationError: [class PrismaClientInitializationError extends Error],
            PrismaClientKnownRequestError: [class PrismaClientKnownRequestError extends Error],
            debug: [Function: t],
            engineVersion: '7.1.1-3.c2990dca591cba766e3b7ef5d9e8a84796e47ab7',
            clientVersion: '6.19.2'
          }
        },
        _clientVersion: '6.19.2',
        _errorFormat: 'colorless',
        _tracingHelper: Ao {},
        _previewFeatures: [],
        _activeProvider: 'postgresql',
        _globalOmit: undefined,
        _extensions: e { head: undefined },
        _engine: Qr {
          name: 'LibraryEngine',
          engine: {
            applyPendingMigrations: undefined,
            commitTransaction: [AsyncFunction (anonymous)],
            connect: [AsyncFunction (anonymous)],
            disconnect: [AsyncFunction (anonymous)],
            metrics: [Function: bound metrics],
            query: [AsyncFunction (anonymous)],
            rollbackTransaction: [AsyncFunction (anonymous)],
            sdlSchema: [Function: bound sdlSchema],
            startTransaction: [AsyncFunction (anonymous)],
            trace: [Function: bound trace],
            free: undefined
          },
          libraryInstantiationPromise: Promise { undefined },
          libraryStartingPromise: undefined,
          libraryStoppingPromise: undefined,
          libraryStarted: true,
          executingQueryPromise: undefined,
          config: {
            cwd: 'E:\\my Projects\\dyolink\\backend\\prisma',
            dirname: 'E:\\my Projects\\dyolink\\backend\\node_modules\\.prisma\\client',
            enableDebugLogs: false,
            allowTriggerPanic: undefined,
            prismaPath: 'E:\\my Projects\\dyolink\\backend\\node_modules\\.prisma\\client\\query_engine-windows.dll.node',
            engineEndpoint: undefined,
            generator: [Object],
            showColors: false,
            logLevel: undefined,
            logQueries: undefined,
            env: [Object],
            flags: [],
            engineWasm: undefined,
            compilerWasm: undefined,
            clientVersion: '6.19.2',
            engineVersion: 'c2990dca591cba766e3b7ef5d9e8a84796e47ab7',
            previewFeatures: [],
            activeProvider: 'postgresql',
            inlineSchema: '// backend/prisma/schema.prisma\n' +
              'generator client {\n' +
              '  provider = "prisma-client-js"\n' +
              '}\n' +
              '\n' +
              'datasource db {\n' +
              '  provider = "postgresql"\n' +
              '  url      = env("DATABASE_URL")\n' +
              '}\n' +
              '\n' +
              'model User {\n' +
              '  id           String  @id @default(uuid())\n' +
              '  email        String  @unique\n' +
              '  passwordHash String?\n' +
              '  googleId     String? @unique\n' +
              '  facebookId   String? @unique\n' +
              '  name         String\n' +
              '\n' +
              '  memberships        Membership[]\n' +
              '  ownedOrganizations Organization[] @relation("OrganizationOwner")\n' +
              '  sessions           Session[] // ≡ƒæê ADD THIS - opposite relation for Session\n' +
              '\n' +
              '  createdAt DateTime @default(now())\n' +
              '  updatedAt DateTime @updatedAt\n' +
              '\n' +
              '  @@map("users")\n' +
              '}\n' +
              '\n' +
              'model OrganizationType {\n' +
              '  id   String @id @default(uuid())\n' +
              '  name String @unique // "CLINIC" or "LAB"\n' +
              '\n' +
              '  organizations Organization[]\n' +
              '  features      Feature[] // ≡ƒæê ADD THIS - opposite relation for Feature\n' +
              '\n' +
              '  @@map("organization_types")\n' +
              '}\n' +
              '\n' +
              'model Organization {\n' +
              '  id      String  @id @default(uuid())\n' +
              '  name    String\n' +
              '  email   String  @unique\n' +
              '  phone   String?\n' +
              '  address String?\n' +
              '\n' +
              '  typeId String\n' +
              '  type   OrganizationType @relation(fields: [typeId], references: [id])\n' +
              '\n' +
              '  ownerId String\n' +
              '  owner   User   @relation("OrganizationOwner", fields: [ownerId], references: [id])\n' +
              '\n' +
              '  memberships Membership[]\n' +
              '  planId      String\n' +
              '  plan        Plan         @relation(fields: [planId], references: [id])\n' +
              '\n' +
              '  sharedWithMe     OrganizationLink[] @relation("OrganizationB")\n' +
              '  sharedWithOthers OrganizationLink[] @relation("OrganizationA")\n' +
              '\n' +
              '  createdAt DateTime @default(now())\n' +
              '  updatedAt DateTime @updatedAt\n' +
              '\n' +
              '  @@map("organizations")\n' +
              '}\n' +
              '\n' +
              'model Plan {\n' +
              '  id       String @id @default(uuid())\n' +
              '  name     String @unique // "Solo", "Small", "Medium", "Large", "Enterprise"\n' +
              '  maxUsers Int // 1, 5, 10, 15, 999999 for unlimited\n' +
              '  price    Float\n' +
              '  features Json // Store feature flags as JSON\n' +
              '\n' +
              '  organizations Organization[]\n' +
              '\n' +
              '  @@map("plans")\n' +
              '}\n' +
              '\n' +
              'model Membership {\n' +
              '  id String @id @default(uuid())\n' +
              '\n' +
              '  userId         String\n' +
              '  organizationId String\n' +
              '\n' +
              '  isOwner Boolean @default(false)\n' +
              '\n' +
              '  user         User         @relation(fields: [userId], references: [id])\n' +
              '  organization Organization @relation(fields: [organizationId], references: [id])\n' +
              '\n' +
              '  permissions MembershipPermission[]\n' +
              '\n' +
              '  createdAt DateTime @default(now())\n' +
              '  updatedAt DateTime @updatedAt\n' +
              '\n' +
              '  @@unique([userId, organizationId])\n' +
              '  @@map("memberships")\n' +
              '}\n' +
              '\n' +
              'model Permission {\n' +
              '  id          String  @id @default(uuid())\n' +
              '  name        String  @unique\n' +
              '  description String?\n' +
              '\n' +
              '  memberships MembershipPermission[]\n' +
              '  featureId   String?\n' +
              '  feature     Feature?               @relation(fields: [featureId], references: [id])\n' +
              '\n' +
              '  @@map("permissions")\n' +
              '}\n' +
              '\n' +
              'model MembershipPermission {\n' +
              '  membershipId String\n' +
              '  permissionId String\n' +
              '\n' +
              '  membership Membership @relation(fields: [membershipId], references: [id])\n' +
              '  permission Permission @relation(fields: [permissionId], references: [id])\n' +
              '\n' +
              '  @@id([membershipId, permissionId])\n' +
              '  @@map("membership_permissions")\n' +
              '}\n' +
              '\n' +
              'model Feature {\n' +
              '  id          String  @id @default(uuid())\n' +
              '  name        String  @unique\n' +
              '  description String?\n' +
              '\n' +
              '  permissions        Permission[]\n' +
              '  organizationTypeId String?\n' +
              '  organizationType   OrganizationType? @relation(fields: [organizationTypeId], references: [id])\n' +
              '\n' +
              '  @@map("features")\n' +
              '}\n' +
              '\n' +
              'model OrganizationLink {\n' +
              '  id String @id @default(uuid())\n' +
              '\n' +
              '  organizationAId String\n' +
              '  organizationBId String\n' +
              '  status          LinkStatus @default(PENDING)\n' +
              '  sharedDataTypes Json\n' +
              '\n' +
              '  organizationA Organization @relation("OrganizationA", fields: [organizationAId], references: [id])\n' +
              '  organizationB Organization @relation("OrganizationB", fields: [organizationBId], references: [id])\n' +
              '\n' +
              '  createdAt DateTime @default(now())\n' +
              '  updatedAt DateTime @updatedAt\n' +
              '\n' +
              '  @@unique([organizationAId, organizationBId])\n' +
              '  @@map("organization_links")\n' +
              '}\n' +
              '\n' +
              'model Session {\n' +
              '  id           String   @id @default(uuid())\n' +
              '  userId       String\n' +
              '  token        String   @unique\n' +
              '  refreshToken String?  @unique\n' +
              '  expiresAt    DateTime\n' +
              '  userAgent    String?\n' +
              '  ipAddress    String?\n' +
              '\n' +
              '  user User @relation(fields: [userId], references: [id])\n' +
              '\n' +
              '  createdAt DateTime @default(now())\n' +
              '  updatedAt DateTime @updatedAt\n' +
              '\n' +
              '  @@map("sessions")\n' +
              '}\n' +
              '\n' +
              'enum LinkStatus {\n' +
              '  PENDING\n' +
              '  ACTIVE\n' +
              '  REJECTED\n' +
              '  BLOCKED\n' +
              '}\n',
            overrideDatasources: {},
            inlineDatasources: [Object],
            inlineSchemaHash: '4aae01036d0b31bf4276d4cd600a2bdaac52abdf50fe0f617feb1c2620130473',
            tracingHelper: Ao {},
            transactionOptions: [Object],
            logEmitter: [EventEmitter],
            isBundled: undefined,
            adapter: undefined
          },
          QueryEngineConstructor: [Function: QueryEngine],
          libraryLoader: { loadLibrary: [AsyncFunction: loadLibrary] },
          library: {
            version: [Function: version],
            debugPanic: [Function: debugPanic],
            ColumnType: [Object],
            QueryEngine: [Function: QueryEngine]
          },
          logEmitter: EventEmitter {
            _events: [Object: null prototype],
            _eventsCount: 1,
            _maxListeners: undefined,
            Symbol(shapeMode): false,
            Symbol(kCapture): false
          },
          libQueryEnginePath: undefined,
          binaryTarget: 'windows',
          datasourceOverrides: undefined,
          datamodel: '// backend/prisma/schema.prisma\n' +
            'generator client {\n' +
            '  provider = "prisma-client-js"\n' +
            '}\n' +
            '\n' +
            'datasource db {\n' +
            '  provider = "postgresql"\n' +
            '  url      = env("DATABASE_URL")\n' +
            '}\n' +
            '\n' +
            'model User {\n' +
            '  id           String  @id @default(uuid())\n' +
            '  email        String  @unique\n' +
            '  passwordHash String?\n' +
            '  googleId     String? @unique\n' +
            '  facebookId   String? @unique\n' +
            '  name         String\n' +
            '\n' +
            '  memberships        Membership[]\n' +
            '  ownedOrganizations Organization[] @relation("OrganizationOwner")\n' +
            '  sessions           Session[] // ≡ƒæê ADD THIS - opposite relation for Session\n' +
            '\n' +
            '  createdAt DateTime @default(now())\n' +
            '  updatedAt DateTime @updatedAt\n' +
            '\n' +
            '  @@map("users")\n' +
            '}\n' +
            '\n' +
            'model OrganizationType {\n' +
            '  id   String @id @default(uuid())\n' +
            '  name String @unique // "CLINIC" or "LAB"\n' +
            '\n' +
            '  organizations Organization[]\n' +
            '  features      Feature[] // ≡ƒæê ADD THIS - opposite relation for Feature\n' +
            '\n' +
            '  @@map("organization_types")\n' +
            '}\n' +
            '\n' +
            'model Organization {\n' +
            '  id      String  @id @default(uuid())\n' +
            '  name    String\n' +
            '  email   String  @unique\n' +
            '  phone   String?\n' +
            '  address String?\n' +
            '\n' +
            '  typeId String\n' +
            '  type   OrganizationType @relation(fields: [typeId], references: [id])\n' +
            '\n' +
            '  ownerId String\n' +
            '  owner   User   @relation("OrganizationOwner", fields: [ownerId], references: [id])\n' +
            '\n' +
            '  memberships Membership[]\n' +
            '  planId      String\n' +
            '  plan        Plan         @relation(fields: [planId], references: [id])\n' +
            '\n' +
            '  sharedWithMe     OrganizationLink[] @relation("OrganizationB")\n' +
            '  sharedWithOthers OrganizationLink[] @relation("OrganizationA")\n' +
            '\n' +
            '  createdAt DateTime @default(now())\n' +
            '  updatedAt DateTime @updatedAt\n' +
            '\n' +
            '  @@map("organizations")\n' +
            '}\n' +
            '\n' +
            'model Plan {\n' +
            '  id       String @id @default(uuid())\n' +
            '  name     String @unique // "Solo", "Small", "Medium", "Large", "Enterprise"\n' +
            '  maxUsers Int // 1, 5, 10, 15, 999999 for unlimited\n' +
            '  price    Float\n' +
            '  features Json // Store feature flags as JSON\n' +
            '\n' +
            '  organizations Organization[]\n' +
            '\n' +
            '  @@map("plans")\n' +
            '}\n' +
            '\n' +
            'model Membership {\n' +
            '  id String @id @default(uuid())\n' +
            '\n' +
            '  userId         String\n' +
            '  organizationId String\n' +
            '\n' +
            '  isOwner Boolean @default(false)\n' +
            '\n' +
            '  user         User         @relation(fields: [userId], references: [id])\n' +
            '  organization Organization @relation(fields: [organizationId], references: [id])\n' +
            '\n' +
            '  permissions MembershipPermission[]\n' +
            '\n' +
            '  createdAt DateTime @default(now())\n' +
            '  updatedAt DateTime @updatedAt\n' +
            '\n' +
            '  @@unique([userId, organizationId])\n' +
            '  @@map("memberships")\n' +
            '}\n' +
            '\n' +
            'model Permission {\n' +
            '  id          String  @id @default(uuid())\n' +
            '  name        String  @unique\n' +
            '  description String?\n' +
            '\n' +
            '  memberships MembershipPermission[]\n' +
            '  featureId   String?\n' +
            '  feature     Feature?               @relation(fields: [featureId], references: [id])\n' +
            '\n' +
            '  @@map("permissions")\n' +
            '}\n' +
            '\n' +
            'model MembershipPermission {\n' +
            '  membershipId String\n' +
            '  permissionId String\n' +
            '\n' +
            '  membership Membership @relation(fields: [membershipId], references: [id])\n' +
            '  permission Permission @relation(fields: [permissionId], references: [id])\n' +
            '\n' +
            '  @@id([membershipId, permissionId])\n' +
            '  @@map("membership_permissions")\n' +
            '}\n' +
            '\n' +
            'model Feature {\n' +
            '  id          String  @id @default(uuid())\n' +
            '  name        String  @unique\n' +
            '  description String?\n' +
            '\n' +
            '  permissions        Permission[]\n' +
            '  organizationTypeId String?\n' +
            '  organizationType   OrganizationType? @relation(fields: [organizationTypeId], references: [id])\n' +
            '\n' +
            '  @@map("features")\n' +
            '}\n' +
            '\n' +
            'model OrganizationLink {\n' +
            '  id String @id @default(uuid())\n' +
            '\n' +
            '  organizationAId String\n' +
            '  organizationBId String\n' +
            '  status          LinkStatus @default(PENDING)\n' +
            '  sharedDataTypes Json\n' +
            '\n' +
            '  organizationA Organization @relation("OrganizationA", fields: [organizationAId], references: [id])\n' +
            '  organizationB Organization @relation("OrganizationB", fields: [organizationBId], references: [id])\n' +
            '\n' +
            '  createdAt DateTime @default(now())\n' +
            '  updatedAt DateTime @updatedAt\n' +
            '\n' +
            '  @@unique([organizationAId, organizationBId])\n' +
            '  @@map("organization_links")\n' +
            '}\n' +
            '\n' +
            'model Session {\n' +
            '  id           String   @id @default(uuid())\n' +
            '  userId       String\n' +
            '  token        String   @unique\n' +
            '  refreshToken String?  @unique\n' +
            '  expiresAt    DateTime\n' +
            '  userAgent    String?\n' +
            '  ipAddress    String?\n' +
            '\n' +
            '  user User @relation(fields: [userId], references: [id])\n' +
            '\n' +
            '  createdAt DateTime @default(now())\n' +
            '  updatedAt DateTime @updatedAt\n' +
            '\n' +
            '  @@map("sessions")\n' +
            '}\n' +
            '\n' +
            'enum LinkStatus {\n' +
            '  PENDING\n' +
            '  ACTIVE\n' +
            '  REJECTED\n' +
            '  BLOCKED\n' +
            '}\n',
          logQueries: false,
          logLevel: 'error',
          lastQuery: undefined,
          loggerRustPanic: undefined,
          tracingHelper: Ao {},
          adapterPromise: undefined,
          versionInfo: {
            commit: 'c2990dca591cba766e3b7ef5d9e8a84796e47ab7',
            version: '0.1.0'
          }
        },
        _appliedParent: [Circular *1],
        _createPrismaPromise: [Function (anonymous)],
        '$metrics': Lr { _client: [Circular *1] },
        '$extends': [Function: Wa],
        Symbol(nodejs.util.inspect.custom): [Function (anonymous)]
      }
    },
    client: <ref *1> PrismaService [PrismaClient] {
      _originalClient: [Circular *1],
      _runtimeDataModel: {
        models: {
          User: {
            dbName: 'users',
            schema: null,
            fields: [Array],
            primaryKey: null,
            uniqueFields: [],
            uniqueIndexes: [],
            isGenerated: false
          },
          OrganizationType: {
            dbName: 'organization_types',
            schema: null,
            fields: [Array],
            primaryKey: null,
            uniqueFields: [],
            uniqueIndexes: [],
            isGenerated: false
          },
          Organization: {
            dbName: 'organizations',
            schema: null,
            fields: [Array],
            primaryKey: null,
            uniqueFields: [],
            uniqueIndexes: [],
            isGenerated: false
          },
          Plan: {
            dbName: 'plans',
            schema: null,
            fields: [Array],
            primaryKey: null,
            uniqueFields: [],
            uniqueIndexes: [],
            isGenerated: false
          },
          Membership: {
            dbName: 'memberships',
            schema: null,
            fields: [Array],
            primaryKey: null,
            uniqueFields: [Array],
            uniqueIndexes: [Array],
            isGenerated: false
          },
          Permission: {
            dbName: 'permissions',
            schema: null,
            fields: [Array],
            primaryKey: null,
            uniqueFields: [],
            uniqueIndexes: [],
            isGenerated: false
          },
          MembershipPermission: {
            dbName: 'membership_permissions',
            schema: null,
            fields: [Array],
            primaryKey: [Object],
            uniqueFields: [],
            uniqueIndexes: [],
            isGenerated: false
          },
          Feature: {
            dbName: 'features',
            schema: null,
            fields: [Array],
            primaryKey: null,
            uniqueFields: [],
            uniqueIndexes: [],
            isGenerated: false
          },
          OrganizationLink: {
            dbName: 'organization_links',
            schema: null,
            fields: [Array],
            primaryKey: null,
            uniqueFields: [Array],
            uniqueIndexes: [Array],
            isGenerated: false
          },
          Session: {
            dbName: 'sessions',
            schema: null,
            fields: [Array],
            primaryKey: null,
            uniqueFields: [],
            uniqueIndexes: [],
            isGenerated: false
          }
        },
        enums: { LinkStatus: { values: [Array], dbName: null } },
        types: {}
      },
      _requestHandler: ei [RequestHandler] {
        client: [Circular *1],
        dataloader: Zn [DataLoader] {
          batches: {},
          tickActive: false,
          options: {
            batchLoader: [Function (anonymous)],
            singleLoader: [AsyncFunction: singleLoader],
            batchBy: [Function: batchBy],
            batchOrder: [Function: batchOrder]
          }
        },
        logEmitter: EventEmitter {
          _events: [Object: null prototype] { error: [Function (anonymous)] },
          _eventsCount: 1,
          _maxListeners: undefined,
          Symbol(shapeMode): false,
          Symbol(kCapture): false
        }
      },
      _connectionPromise: undefined,
      _disconnectionPromise: undefined,
      _engineConfig: {
        cwd: 'E:\\my Projects\\dyolink\\backend\\prisma',
        dirname: 'E:\\my Projects\\dyolink\\backend\\node_modules\\.prisma\\client',
        enableDebugLogs: false,
        allowTriggerPanic: undefined,
        prismaPath: 'E:\\my Projects\\dyolink\\backend\\node_modules\\.prisma\\client\\query_engine-windows.dll.node',
        engineEndpoint: undefined,
        generator: {
          name: 'client',
          provider: { fromEnvVar: null, value: 'prisma-client-js' },
          output: {
            value: 'E:\\my Projects\\dyolink\\backend\\node_modules\\@prisma\\client',
            fromEnvVar: null
          },
          config: { engineType: 'library' },
          binaryTargets: [ [Object] ],
          previewFeatures: [],
          sourceFilePath: 'E:\\my Projects\\dyolink\\backend\\prisma\\schema.prisma'
        },
        showColors: false,
        logLevel: undefined,
        logQueries: undefined,
        env: {
          DATABASE_URL: 'postgresql://postgres:1234@localhost:5432/dyolink_db',
          JWT_SECRET: 'your-super-secret-jwt-key-change-this',
          JWT_REFRESH_SECRET: 'your-super-secret-refresh-key-change-this',
          FRONTEND_URL: 'http://localhost:3001'
        },
        flags: [],
        engineWasm: undefined,
        compilerWasm: undefined,
        clientVersion: '6.19.2',
        engineVersion: 'c2990dca591cba766e3b7ef5d9e8a84796e47ab7',
        previewFeatures: [],
        activeProvider: 'postgresql',
        inlineSchema: '// backend/prisma/schema.prisma\n' +
          'generator client {\n' +
          '  provider = "prisma-client-js"\n' +
          '}\n' +
          '\n' +
          'datasource db {\n' +
          '  provider = "postgresql"\n' +
          '  url      = env("DATABASE_URL")\n' +
          '}\n' +
          '\n' +
          'model User {\n' +
          '  id           String  @id @default(uuid())\n' +
          '  email        String  @unique\n' +
          '  passwordHash String?\n' +
          '  googleId     String? @unique\n' +
          '  facebookId   String? @unique\n' +
          '  name         String\n' +
          '\n' +
          '  memberships        Membership[]\n' +
          '  ownedOrganizations Organization[] @relation("OrganizationOwner")\n' +
          '  sessions           Session[] // ≡ƒæê ADD THIS - opposite relation for Session\n' +
          '\n' +
          '  createdAt DateTime @default(now())\n' +
          '  updatedAt DateTime @updatedAt\n' +
          '\n' +
          '  @@map("users")\n' +
          '}\n' +
          '\n' +
          'model OrganizationType {\n' +
          '  id   String @id @default(uuid())\n' +
          '  name String @unique // "CLINIC" or "LAB"\n' +
          '\n' +
          '  organizations Organization[]\n' +
          '  features      Feature[] // ≡ƒæê ADD THIS - opposite relation for Feature\n' +
          '\n' +
          '  @@map("organization_types")\n' +
          '}\n' +
          '\n' +
          'model Organization {\n' +
          '  id      String  @id @default(uuid())\n' +
          '  name    String\n' +
          '  email   String  @unique\n' +
          '  phone   String?\n' +
          '  address String?\n' +
          '\n' +
          '  typeId String\n' +
          '  type   OrganizationType @relation(fields: [typeId], references: [id])\n' +
          '\n' +
          '  ownerId String\n' +
          '  owner   User   @relation("OrganizationOwner", fields: [ownerId], references: [id])\n' +
          '\n' +
          '  memberships Membership[]\n' +
          '  planId      String\n' +
          '  plan        Plan         @relation(fields: [planId], references: [id])\n' +
          '\n' +
          '  sharedWithMe     OrganizationLink[] @relation("OrganizationB")\n' +
          '  sharedWithOthers OrganizationLink[] @relation("OrganizationA")\n' +
          '\n' +
          '  createdAt DateTime @default(now())\n' +
          '  updatedAt DateTime @updatedAt\n' +
          '\n' +
          '  @@map("organizations")\n' +
          '}\n' +
          '\n' +
          'model Plan {\n' +
          '  id       String @id @default(uuid())\n' +
          '  name     String @unique // "Solo", "Small", "Medium", "Large", "Enterprise"\n' +
          '  maxUsers Int // 1, 5, 10, 15, 999999 for unlimited\n' +
          '  price    Float\n' +
          '  features Json // Store feature flags as JSON\n' +
          '\n' +
          '  organizations Organization[]\n' +
          '\n' +
          '  @@map("plans")\n' +
          '}\n' +
          '\n' +
          'model Membership {\n' +
          '  id String @id @default(uuid())\n' +
          '\n' +
          '  userId         String\n' +
          '  organizationId String\n' +
          '\n' +
          '  isOwner Boolean @default(false)\n' +
          '\n' +
          '  user         User         @relation(fields: [userId], references: [id])\n' +
          '  organization Organization @relation(fields: [organizationId], references: [id])\n' +
          '\n' +
          '  permissions MembershipPermission[]\n' +
          '\n' +
          '  createdAt DateTime @default(now())\n' +
          '  updatedAt DateTime @updatedAt\n' +
          '\n' +
          '  @@unique([userId, organizationId])\n' +
          '  @@map("memberships")\n' +
          '}\n' +
          '\n' +
          'model Permission {\n' +
          '  id          String  @id @default(uuid())\n' +
          '  name        String  @unique\n' +
          '  description String?\n' +
          '\n' +
          '  memberships MembershipPermission[]\n' +
          '  featureId   String?\n' +
          '  feature     Feature?               @relation(fields: [featureId], references: [id])\n' +
          '\n' +
          '  @@map("permissions")\n' +
          '}\n' +
          '\n' +
          'model MembershipPermission {\n' +
          '  membershipId String\n' +
          '  permissionId String\n' +
          '\n' +
          '  membership Membership @relation(fields: [membershipId], references: [id])\n' +
          '  permission Permission @relation(fields: [permissionId], references: [id])\n' +
          '\n' +
          '  @@id([membershipId, permissionId])\n' +
          '  @@map("membership_permissions")\n' +
          '}\n' +
          '\n' +
          'model Feature {\n' +
          '  id          String  @id @default(uuid())\n' +
          '  name        String  @unique\n' +
          '  description String?\n' +
          '\n' +
          '  permissions        Permission[]\n' +
          '  organizationTypeId String?\n' +
          '  organizationType   OrganizationType? @relation(fields: [organizationTypeId], references: [id])\n' +
          '\n' +
          '  @@map("features")\n' +
          '}\n' +
          '\n' +
          'model OrganizationLink {\n' +
          '  id String @id @default(uuid())\n' +
          '\n' +
          '  organizationAId String\n' +
          '  organizationBId String\n' +
          '  status          LinkStatus @default(PENDING)\n' +
          '  sharedDataTypes Json\n' +
          '\n' +
          '  organizationA Organization @relation("OrganizationA", fields: [organizationAId], references: [id])\n' +
          '  organizationB Organization @relation("OrganizationB", fields: [organizationBId], references: [id])\n' +
          '\n' +
          '  createdAt DateTime @default(now())\n' +
          '  updatedAt DateTime @updatedAt\n' +
          '\n' +
          '  @@unique([organizationAId, organizationBId])\n' +
          '  @@map("organization_links")\n' +
          '}\n' +
          '\n' +
          'model Session {\n' +
          '  id           String   @id @default(uuid())\n' +
          '  userId       String\n' +
          '  token        String   @unique\n' +
          '  refreshToken String?  @unique\n' +
          '  expiresAt    DateTime\n' +
          '  userAgent    String?\n' +
          '  ipAddress    String?\n' +
          '\n' +
          '  user User @relation(fields: [userId], references: [id])\n' +
          '\n' +
          '  createdAt DateTime @default(now())\n' +
          '  updatedAt DateTime @updatedAt\n' +
          '\n' +
          '  @@map("sessions")\n' +
          '}\n' +
          '\n' +
          'enum LinkStatus {\n' +
          '  PENDING\n' +
          '  ACTIVE\n' +
          '  REJECTED\n' +
          '  BLOCKED\n' +
          '}\n',
        overrideDatasources: {},
        inlineDatasources: { db: { url: [Object] } },
        inlineSchemaHash: '4aae01036d0b31bf4276d4cd600a2bdaac52abdf50fe0f617feb1c2620130473',
        tracingHelper: Ao {},
        transactionOptions: { maxWait: 2000, timeout: 5000, isolationLevel: undefined },
        logEmitter: EventEmitter {
          _events: [Object: null prototype] { error: [Function (anonymous)] },
          _eventsCount: 1,
          _maxListeners: undefined,
          Symbol(shapeMode): false,
          Symbol(kCapture): false
        },
        isBundled: undefined,
        adapter: undefined
      },
      _accelerateEngineConfig: {
        cwd: 'E:\\my Projects\\dyolink\\backend\\prisma',
        dirname: 'E:\\my Projects\\dyolink\\backend\\node_modules\\.prisma\\client',
        enableDebugLogs: false,
        allowTriggerPanic: undefined,
        prismaPath: undefined,
        engineEndpoint: undefined,
        generator: {
          name: 'client',
          provider: { fromEnvVar: null, value: 'prisma-client-js' },
          output: {
            value: 'E:\\my Projects\\dyolink\\backend\\node_modules\\@prisma\\client',
            fromEnvVar: null
          },
          config: { engineType: 'library' },
          binaryTargets: [ [Object] ],
          previewFeatures: [],
          sourceFilePath: 'E:\\my Projects\\dyolink\\backend\\prisma\\schema.prisma'
        },
        showColors: false,
        logLevel: undefined,
        logQueries: undefined,
        env: {
          DATABASE_URL: 'postgresql://postgres:1234@localhost:5432/dyolink_db',
          JWT_SECRET: 'your-super-secret-jwt-key-change-this',
          JWT_REFRESH_SECRET: 'your-super-secret-refresh-key-change-this',
          FRONTEND_URL: 'http://localhost:3001'
        },
        flags: [],
        engineWasm: undefined,
        compilerWasm: undefined,
        clientVersion: '6.19.2',
        engineVersion: 'c2990dca591cba766e3b7ef5d9e8a84796e47ab7',
        previewFeatures: [],
        activeProvider: 'postgresql',
        inlineSchema: '// backend/prisma/schema.prisma\n' +
          'generator client {\n' +
          '  provider = "prisma-client-js"\n' +
          '}\n' +
          '\n' +
          'datasource db {\n' +
          '  provider = "postgresql"\n' +
          '  url      = env("DATABASE_URL")\n' +
          '}\n' +
          '\n' +
          'model User {\n' +
          '  id           String  @id @default(uuid())\n' +
          '  email        String  @unique\n' +
          '  passwordHash String?\n' +
          '  googleId     String? @unique\n' +
          '  facebookId   String? @unique\n' +
          '  name         String\n' +
          '\n' +
          '  memberships        Membership[]\n' +
          '  ownedOrganizations Organization[] @relation("OrganizationOwner")\n' +
          '  sessions           Session[] // ≡ƒæê ADD THIS - opposite relation for Session\n' +
          '\n' +
          '  createdAt DateTime @default(now())\n' +
          '  updatedAt DateTime @updatedAt\n' +
          '\n' +
          '  @@map("users")\n' +
          '}\n' +
          '\n' +
          'model OrganizationType {\n' +
          '  id   String @id @default(uuid())\n' +
          '  name String @unique // "CLINIC" or "LAB"\n' +
          '\n' +
          '  organizations Organization[]\n' +
          '  features      Feature[] // ≡ƒæê ADD THIS - opposite relation for Feature\n' +
          '\n' +
          '  @@map("organization_types")\n' +
          '}\n' +
          '\n' +
          'model Organization {\n' +
          '  id      String  @id @default(uuid())\n' +
          '  name    String\n' +
          '  email   String  @unique\n' +
          '  phone   String?\n' +
          '  address String?\n' +
          '\n' +
          '  typeId String\n' +
          '  type   OrganizationType @relation(fields: [typeId], references: [id])\n' +
          '\n' +
          '  ownerId String\n' +
          '  owner   User   @relation("OrganizationOwner", fields: [ownerId], references: [id])\n' +
          '\n' +
          '  memberships Membership[]\n' +
          '  planId      String\n' +
          '  plan        Plan         @relation(fields: [planId], references: [id])\n' +
          '\n' +
          '  sharedWithMe     OrganizationLink[] @relation("OrganizationB")\n' +
          '  sharedWithOthers OrganizationLink[] @relation("OrganizationA")\n' +
          '\n' +
          '  createdAt DateTime @default(now())\n' +
          '  updatedAt DateTime @updatedAt\n' +
          '\n' +
          '  @@map("organizations")\n' +
          '}\n' +
          '\n' +
          'model Plan {\n' +
          '  id       String @id @default(uuid())\n' +
          '  name     String @unique // "Solo", "Small", "Medium", "Large", "Enterprise"\n' +
          '  maxUsers Int // 1, 5, 10, 15, 999999 for unlimited\n' +
          '  price    Float\n' +
          '  features Json // Store feature flags as JSON\n' +
          '\n' +
          '  organizations Organization[]\n' +
          '\n' +
          '  @@map("plans")\n' +
          '}\n' +
          '\n' +
          'model Membership {\n' +
          '  id String @id @default(uuid())\n' +
          '\n' +
          '  userId         String\n' +
          '  organizationId String\n' +
          '\n' +
          '  isOwner Boolean @default(false)\n' +
          '\n' +
          '  user         User         @relation(fields: [userId], references: [id])\n' +
          '  organization Organization @relation(fields: [organizationId], references: [id])\n' +
          '\n' +
          '  permissions MembershipPermission[]\n' +
          '\n' +
          '  createdAt DateTime @default(now())\n' +
          '  updatedAt DateTime @updatedAt\n' +
          '\n' +
          '  @@unique([userId, organizationId])\n' +
          '  @@map("memberships")\n' +
          '}\n' +
          '\n' +
          'model Permission {\n' +
          '  id          String  @id @default(uuid())\n' +
          '  name        String  @unique\n' +
          '  description String?\n' +
          '\n' +
          '  memberships MembershipPermission[]\n' +
          '  featureId   String?\n' +
          '  feature     Feature?               @relation(fields: [featureId], references: [id])\n' +
          '\n' +
          '  @@map("permissions")\n' +
          '}\n' +
          '\n' +
          'model MembershipPermission {\n' +
          '  membershipId String\n' +
          '  permissionId String\n' +
          '\n' +
          '  membership Membership @relation(fields: [membershipId], references: [id])\n' +
          '  permission Permission @relation(fields: [permissionId], references: [id])\n' +
          '\n' +
          '  @@id([membershipId, permissionId])\n' +
          '  @@map("membership_permissions")\n' +
          '}\n' +
          '\n' +
          'model Feature {\n' +
          '  id          String  @id @default(uuid())\n' +
          '  name        String  @unique\n' +
          '  description String?\n' +
          '\n' +
          '  permissions        Permission[]\n' +
          '  organizationTypeId String?\n' +
          '  organizationType   OrganizationType? @relation(fields: [organizationTypeId], references: [id])\n' +
          '\n' +
          '  @@map("features")\n' +
          '}\n' +
          '\n' +
          'model OrganizationLink {\n' +
          '  id String @id @default(uuid())\n' +
          '\n' +
          '  organizationAId String\n' +
          '  organizationBId String\n' +
          '  status          LinkStatus @default(PENDING)\n' +
          '  sharedDataTypes Json\n' +
          '\n' +
          '  organizationA Organization @relation("OrganizationA", fields: [organizationAId], references: [id])\n' +
          '  organizationB Organization @relation("OrganizationB", fields: [organizationBId], references: [id])\n' +
          '\n' +
          '  createdAt DateTime @default(now())\n' +
          '  updatedAt DateTime @updatedAt\n' +
          '\n' +
          '  @@unique([organizationAId, organizationBId])\n' +
          '  @@map("organization_links")\n' +
          '}\n' +
          '\n' +
          'model Session {\n' +
          '  id           String   @id @default(uuid())\n' +
          '  userId       String\n' +
          '  token        String   @unique\n' +
          '  refreshToken String?  @unique\n' +
          '  expiresAt    DateTime\n' +
          '  userAgent    String?\n' +
          '  ipAddress    String?\n' +
          '\n' +
          '  user User @relation(fields: [userId], references: [id])\n' +
          '\n' +
          '  createdAt DateTime @default(now())\n' +
          '  updatedAt DateTime @updatedAt\n' +
          '\n' +
          '  @@map("sessions")\n' +
          '}\n' +
          '\n' +
          'enum LinkStatus {\n' +
          '  PENDING\n' +
          '  ACTIVE\n' +
          '  REJECTED\n' +
          '  BLOCKED\n' +
          '}\n',
        overrideDatasources: {},
        inlineDatasources: { db: { url: [Object] } },
        inlineSchemaHash: '4aae01036d0b31bf4276d4cd600a2bdaac52abdf50fe0f617feb1c2620130473',
        tracingHelper: Ao {},
        transactionOptions: { maxWait: 2000, timeout: 5000, isolationLevel: undefined },
        logEmitter: EventEmitter {
          _events: [Object: null prototype] { error: [Function (anonymous)] },
          _eventsCount: 1,
          _maxListeners: undefined,
          Symbol(shapeMode): false,
          Symbol(kCapture): false
        },
        isBundled: undefined,
        adapter: undefined,
        accelerateUtils: {
          resolveDatasourceUrl: [Function: jr],
          getBatchRequestPayload: [Function: Mr],
          prismaGraphQLToJSError: [Function: $r],
          PrismaClientUnknownRequestError: [class PrismaClientUnknownRequestError extends Error],
          PrismaClientInitializationError: [class PrismaClientInitializationError extends Error],
          PrismaClientKnownRequestError: [class PrismaClientKnownRequestError extends Error],
          debug: [Function: t],
          engineVersion: '7.1.1-3.c2990dca591cba766e3b7ef5d9e8a84796e47ab7',
          clientVersion: '6.19.2'
        }
      },
      _clientVersion: '6.19.2',
      _errorFormat: 'colorless',
      _tracingHelper: Ao {},
      _previewFeatures: [],
      _activeProvider: 'postgresql',
      _globalOmit: undefined,
      _extensions: e { head: undefined },
      _engine: Qr {
        name: 'LibraryEngine',
        engine: {
          applyPendingMigrations: undefined,
          commitTransaction: [AsyncFunction (anonymous)],
          connect: [AsyncFunction (anonymous)],
          disconnect: [AsyncFunction (anonymous)],
          metrics: [Function: bound metrics],
          query: [AsyncFunction (anonymous)],
          rollbackTransaction: [AsyncFunction (anonymous)],
          sdlSchema: [Function: bound sdlSchema],
          startTransaction: [AsyncFunction (anonymous)],
          trace: [Function: bound trace],
          free: undefined
        },
        libraryInstantiationPromise: Promise { undefined },
        libraryStartingPromise: undefined,
        libraryStoppingPromise: undefined,
        libraryStarted: true,
        executingQueryPromise: undefined,
        config: {
          cwd: 'E:\\my Projects\\dyolink\\backend\\prisma',
          dirname: 'E:\\my Projects\\dyolink\\backend\\node_modules\\.prisma\\client',
          enableDebugLogs: false,
          allowTriggerPanic: undefined,
          prismaPath: 'E:\\my Projects\\dyolink\\backend\\node_modules\\.prisma\\client\\query_engine-windows.dll.node',
          engineEndpoint: undefined,
          generator: {
            name: 'client',
            provider: [Object],
            output: [Object],
            config: [Object],
            binaryTargets: [Array],
            previewFeatures: [],
            sourceFilePath: 'E:\\my Projects\\dyolink\\backend\\prisma\\schema.prisma'
          },
          showColors: false,
          logLevel: undefined,
          logQueries: undefined,
          env: {
            DATABASE_URL: 'postgresql://postgres:1234@localhost:5432/dyolink_db',
            JWT_SECRET: 'your-super-secret-jwt-key-change-this',
            JWT_REFRESH_SECRET: 'your-super-secret-refresh-key-change-this',
            FRONTEND_URL: 'http://localhost:3001'
          },
          flags: [],
          engineWasm: undefined,
          compilerWasm: undefined,
          clientVersion: '6.19.2',
          engineVersion: 'c2990dca591cba766e3b7ef5d9e8a84796e47ab7',
          previewFeatures: [],
          activeProvider: 'postgresql',
          inlineSchema: '// backend/prisma/schema.prisma\n' +
            'generator client {\n' +
            '  provider = "prisma-client-js"\n' +
            '}\n' +
            '\n' +
            'datasource db {\n' +
            '  provider = "postgresql"\n' +
            '  url      = env("DATABASE_URL")\n' +
            '}\n' +
            '\n' +
            'model User {\n' +
            '  id           String  @id @default(uuid())\n' +
            '  email        String  @unique\n' +
            '  passwordHash String?\n' +
            '  googleId     String? @unique\n' +
            '  facebookId   String? @unique\n' +
            '  name         String\n' +
            '\n' +
            '  memberships        Membership[]\n' +
            '  ownedOrganizations Organization[] @relation("OrganizationOwner")\n' +
            '  sessions           Session[] // ≡ƒæê ADD THIS - opposite relation for Session\n' +
            '\n' +
            '  createdAt DateTime @default(now())\n' +
            '  updatedAt DateTime @updatedAt\n' +
            '\n' +
            '  @@map("users")\n' +
            '}\n' +
            '\n' +
            'model OrganizationType {\n' +
            '  id   String @id @default(uuid())\n' +
            '  name String @unique // "CLINIC" or "LAB"\n' +
            '\n' +
            '  organizations Organization[]\n' +
            '  features      Feature[] // ≡ƒæê ADD THIS - opposite relation for Feature\n' +
            '\n' +
            '  @@map("organization_types")\n' +
            '}\n' +
            '\n' +
            'model Organization {\n' +
            '  id      String  @id @default(uuid())\n' +
            '  name    String\n' +
            '  email   String  @unique\n' +
            '  phone   String?\n' +
            '  address String?\n' +
            '\n' +
            '  typeId String\n' +
            '  type   OrganizationType @relation(fields: [typeId], references: [id])\n' +
            '\n' +
            '  ownerId String\n' +
            '  owner   User   @relation("OrganizationOwner", fields: [ownerId], references: [id])\n' +
            '\n' +
            '  memberships Membership[]\n' +
            '  planId      String\n' +
            '  plan        Plan         @relation(fields: [planId], references: [id])\n' +
            '\n' +
            '  sharedWithMe     OrganizationLink[] @relation("OrganizationB")\n' +
            '  sharedWithOthers OrganizationLink[] @relation("OrganizationA")\n' +
            '\n' +
            '  createdAt DateTime @default(now())\n' +
            '  updatedAt DateTime @updatedAt\n' +
            '\n' +
            '  @@map("organizations")\n' +
            '}\n' +
            '\n' +
            'model Plan {\n' +
            '  id       String @id @default(uuid())\n' +
            '  name     String @unique // "Solo", "Small", "Medium", "Large", "Enterprise"\n' +
            '  maxUsers Int // 1, 5, 10, 15, 999999 for unlimited\n' +
            '  price    Float\n' +
            '  features Json // Store feature flags as JSON\n' +
            '\n' +
            '  organizations Organization[]\n' +
            '\n' +
            '  @@map("plans")\n' +
            '}\n' +
            '\n' +
            'model Membership {\n' +
            '  id String @id @default(uuid())\n' +
            '\n' +
            '  userId         String\n' +
            '  organizationId String\n' +
            '\n' +
            '  isOwner Boolean @default(false)\n' +
            '\n' +
            '  user         User         @relation(fields: [userId], references: [id])\n' +
            '  organization Organization @relation(fields: [organizationId], references: [id])\n' +
            '\n' +
            '  permissions MembershipPermission[]\n' +
            '\n' +
            '  createdAt DateTime @default(now())\n' +
            '  updatedAt DateTime @updatedAt\n' +
            '\n' +
            '  @@unique([userId, organizationId])\n' +
            '  @@map("memberships")\n' +
            '}\n' +
            '\n' +
            'model Permission {\n' +
            '  id          String  @id @default(uuid())\n' +
            '  name        String  @unique\n' +
            '  description String?\n' +
            '\n' +
            '  memberships MembershipPermission[]\n' +
            '  featureId   String?\n' +
            '  feature     Feature?               @relation(fields: [featureId], references: [id])\n' +
            '\n' +
            '  @@map("permissions")\n' +
            '}\n' +
            '\n' +
            'model MembershipPermission {\n' +
            '  membershipId String\n' +
            '  permissionId String\n' +
            '\n' +
            '  membership Membership @relation(fields: [membershipId], references: [id])\n' +
            '  permission Permission @relation(fields: [permissionId], references: [id])\n' +
            '\n' +
            '  @@id([membershipId, permissionId])\n' +
            '  @@map("membership_permissions")\n' +
            '}\n' +
            '\n' +
            'model Feature {\n' +
            '  id          String  @id @default(uuid())\n' +
            '  name        String  @unique\n' +
            '  description String?\n' +
            '\n' +
            '  permissions        Permission[]\n' +
            '  organizationTypeId String?\n' +
            '  organizationType   OrganizationType? @relation(fields: [organizationTypeId], references: [id])\n' +
            '\n' +
            '  @@map("features")\n' +
            '}\n' +
            '\n' +
            'model OrganizationLink {\n' +
            '  id String @id @default(uuid())\n' +
            '\n' +
            '  organizationAId String\n' +
            '  organizationBId String\n' +
            '  status          LinkStatus @default(PENDING)\n' +
            '  sharedDataTypes Json\n' +
            '\n' +
            '  organizationA Organization @relation("OrganizationA", fields: [organizationAId], references: [id])\n' +
            '  organizationB Organization @relation("OrganizationB", fields: [organizationBId], references: [id])\n' +
            '\n' +
            '  createdAt DateTime @default(now())\n' +
            '  updatedAt DateTime @updatedAt\n' +
            '\n' +
            '  @@unique([organizationAId, organizationBId])\n' +
            '  @@map("organization_links")\n' +
            '}\n' +
            '\n' +
            'model Session {\n' +
            '  id           String   @id @default(uuid())\n' +
            '  userId       String\n' +
            '  token        String   @unique\n' +
            '  refreshToken String?  @unique\n' +
            '  expiresAt    DateTime\n' +
            '  userAgent    String?\n' +
            '  ipAddress    String?\n' +
            '\n' +
            '  user User @relation(fields: [userId], references: [id])\n' +
            '\n' +
            '  createdAt DateTime @default(now())\n' +
            '  updatedAt DateTime @updatedAt\n' +
            '\n' +
            '  @@map("sessions")\n' +
            '}\n' +
            '\n' +
            'enum LinkStatus {\n' +
            '  PENDING\n' +
            '  ACTIVE\n' +
            '  REJECTED\n' +
            '  BLOCKED\n' +
            '}\n',
          overrideDatasources: {},
          inlineDatasources: { db: [Object] },
          inlineSchemaHash: '4aae01036d0b31bf4276d4cd600a2bdaac52abdf50fe0f617feb1c2620130473',
          tracingHelper: Ao {},
          transactionOptions: { maxWait: 2000, timeout: 5000, isolationLevel: undefined },
          logEmitter: EventEmitter {
            _events: [Object: null prototype],
            _eventsCount: 1,
            _maxListeners: undefined,
            Symbol(shapeMode): false,
            Symbol(kCapture): false
          },
          isBundled: undefined,
          adapter: undefined
        },
        QueryEngineConstructor: [Function: QueryEngine],
        libraryLoader: { loadLibrary: [AsyncFunction: loadLibrary] },
        library: {
          version: [Function: version],
          debugPanic: [Function: debugPanic],
          ColumnType: {
            Int32: 0,
            Int64: 1,
            Float: 2,
            Double: 3,
            Numeric: 4,
            Boolean: 5,
            Character: 6,
            Text: 7,
            Date: 8,
            Time: 9,
            DateTime: 10,
            Json: 11,
            Enum: 12,
            Bytes: 13,
            Set: 14,
            Uuid: 15,
            Int32Array: 64,
            Int64Array: 65,
            FloatArray: 66,
            DoubleArray: 67,
            NumericArray: 68,
            BooleanArray: 69,
            CharacterArray: 70,
            TextArray: 71,
            DateArray: 72,
            TimeArray: 73,
            DateTimeArray: 74,
            JsonArray: 75,
            EnumArray: 76,
            BytesArray: 77,
            UuidArray: 78,
            UnknownNumber: 128
          },
          QueryEngine: [Function: QueryEngine]
        },
        logEmitter: EventEmitter {
          _events: [Object: null prototype] { error: [Function (anonymous)] },
          _eventsCount: 1,
          _maxListeners: undefined,
          Symbol(shapeMode): false,
          Symbol(kCapture): false
        },
        libQueryEnginePath: undefined,
        binaryTarget: 'windows',
        datasourceOverrides: undefined,
        datamodel: '// backend/prisma/schema.prisma\n' +
          'generator client {\n' +
          '  provider = "prisma-client-js"\n' +
          '}\n' +
          '\n' +
          'datasource db {\n' +
          '  provider = "postgresql"\n' +
          '  url      = env("DATABASE_URL")\n' +
          '}\n' +
          '\n' +
          'model User {\n' +
          '  id           String  @id @default(uuid())\n' +
          '  email        String  @unique\n' +
          '  passwordHash String?\n' +
          '  googleId     String? @unique\n' +
          '  facebookId   String? @unique\n' +
          '  name         String\n' +
          '\n' +
          '  memberships        Membership[]\n' +
          '  ownedOrganizations Organization[] @relation("OrganizationOwner")\n' +
          '  sessions           Session[] // ≡ƒæê ADD THIS - opposite relation for Session\n' +
          '\n' +
          '  createdAt DateTime @default(now())\n' +
          '  updatedAt DateTime @updatedAt\n' +
          '\n' +
          '  @@map("users")\n' +
          '}\n' +
          '\n' +
          'model OrganizationType {\n' +
          '  id   String @id @default(uuid())\n' +
          '  name String @unique // "CLINIC" or "LAB"\n' +
          '\n' +
          '  organizations Organization[]\n' +
          '  features      Feature[] // ≡ƒæê ADD THIS - opposite relation for Feature\n' +
          '\n' +
          '  @@map("organization_types")\n' +
          '}\n' +
          '\n' +
          'model Organization {\n' +
          '  id      String  @id @default(uuid())\n' +
          '  name    String\n' +
          '  email   String  @unique\n' +
          '  phone   String?\n' +
          '  address String?\n' +
          '\n' +
          '  typeId String\n' +
          '  type   OrganizationType @relation(fields: [typeId], references: [id])\n' +
          '\n' +
          '  ownerId String\n' +
          '  owner   User   @relation("OrganizationOwner", fields: [ownerId], references: [id])\n' +
          '\n' +
          '  memberships Membership[]\n' +
          '  planId      String\n' +
          '  plan        Plan         @relation(fields: [planId], references: [id])\n' +
          '\n' +
          '  sharedWithMe     OrganizationLink[] @relation("OrganizationB")\n' +
          '  sharedWithOthers OrganizationLink[] @relation("OrganizationA")\n' +
          '\n' +
          '  createdAt DateTime @default(now())\n' +
          '  updatedAt DateTime @updatedAt\n' +
          '\n' +
          '  @@map("organizations")\n' +
          '}\n' +
          '\n' +
          'model Plan {\n' +
          '  id       String @id @default(uuid())\n' +
          '  name     String @unique // "Solo", "Small", "Medium", "Large", "Enterprise"\n' +
          '  maxUsers Int // 1, 5, 10, 15, 999999 for unlimited\n' +
          '  price    Float\n' +
          '  features Json // Store feature flags as JSON\n' +
          '\n' +
          '  organizations Organization[]\n' +
          '\n' +
          '  @@map("plans")\n' +
          '}\n' +
          '\n' +
          'model Membership {\n' +
          '  id String @id @default(uuid())\n' +
          '\n' +
          '  userId         String\n' +
          '  organizationId String\n' +
          '\n' +
          '  isOwner Boolean @default(false)\n' +
          '\n' +
          '  user         User         @relation(fields: [userId], references: [id])\n' +
          '  organization Organization @relation(fields: [organizationId], references: [id])\n' +
          '\n' +
          '  permissions MembershipPermission[]\n' +
          '\n' +
          '  createdAt DateTime @default(now())\n' +
          '  updatedAt DateTime @updatedAt\n' +
          '\n' +
          '  @@unique([userId, organizationId])\n' +
          '  @@map("memberships")\n' +
          '}\n' +
          '\n' +
          'model Permission {\n' +
          '  id          String  @id @default(uuid())\n' +
          '  name        String  @unique\n' +
          '  description String?\n' +
          '\n' +
          '  memberships MembershipPermission[]\n' +
          '  featureId   String?\n' +
          '  feature     Feature?               @relation(fields: [featureId], references: [id])\n' +
          '\n' +
          '  @@map("permissions")\n' +
          '}\n' +
          '\n' +
          'model MembershipPermission {\n' +
          '  membershipId String\n' +
          '  permissionId String\n' +
          '\n' +
          '  membership Membership @relation(fields: [membershipId], references: [id])\n' +
          '  permission Permission @relation(fields: [permissionId], references: [id])\n' +
          '\n' +
          '  @@id([membershipId, permissionId])\n' +
          '  @@map("membership_permissions")\n' +
          '}\n' +
          '\n' +
          'model Feature {\n' +
          '  id          String  @id @default(uuid())\n' +
          '  name        String  @unique\n' +
          '  description String?\n' +
          '\n' +
          '  permissions        Permission[]\n' +
          '  organizationTypeId String?\n' +
          '  organizationType   OrganizationType? @relation(fields: [organizationTypeId], references: [id])\n' +
          '\n' +
          '  @@map("features")\n' +
          '}\n' +
          '\n' +
          'model OrganizationLink {\n' +
          '  id String @id @default(uuid())\n' +
          '\n' +
          '  organizationAId String\n' +
          '  organizationBId String\n' +
          '  status          LinkStatus @default(PENDING)\n' +
          '  sharedDataTypes Json\n' +
          '\n' +
          '  organizationA Organization @relation("OrganizationA", fields: [organizationAId], references: [id])\n' +
          '  organizationB Organization @relation("OrganizationB", fields: [organizationBId], references: [id])\n' +
          '\n' +
          '  createdAt DateTime @default(now())\n' +
          '  updatedAt DateTime @updatedAt\n' +
          '\n' +
          '  @@unique([organizationAId, organizationBId])\n' +
          '  @@map("organization_links")\n' +
          '}\n' +
          '\n' +
          'model Session {\n' +
          '  id           String   @id @default(uuid())\n' +
          '  userId       String\n' +
          '  token        String   @unique\n' +
          '  refreshToken String?  @unique\n' +
          '  expiresAt    DateTime\n' +
          '  userAgent    String?\n' +
          '  ipAddress    String?\n' +
          '\n' +
          '  user User @relation(fields: [userId], references: [id])\n' +
          '\n' +
          '  createdAt DateTime @default(now())\n' +
          '  updatedAt DateTime @updatedAt\n' +
          '\n' +
          '  @@map("sessions")\n' +
          '}\n' +
          '\n' +
          'enum LinkStatus {\n' +
          '  PENDING\n' +
          '  ACTIVE\n' +
          '  REJECTED\n' +
          '  BLOCKED\n' +
          '}\n',
        logQueries: false,
        logLevel: 'error',
        lastQuery: undefined,
        loggerRustPanic: undefined,
        tracingHelper: Ao {},
        adapterPromise: undefined,
        versionInfo: {
          commit: 'c2990dca591cba766e3b7ef5d9e8a84796e47ab7',
          version: '0.1.0'
        }
      },
      _appliedParent: [Circular *1],
      _createPrismaPromise: [Function (anonymous)],
      '$metrics': Lr { _client: [Circular *1] },
      '$extends': [Function: Wa],
      Symbol(nodejs.util.inspect.custom): [Function (anonymous)]
    }
  }
}

Node.js v24.13.0
[2J[3J[H[[90m7:04:27 PM[0m] File change detected. Starting incremental compilation...

[[90m7:04:28 PM[0m] Found 0 errors. Watching for file changes.

[32m[Nest] 19196  - [39m02/23/2026, 7:04:32 PM [32m    LOG[39m [38;5;3m[NestFactory] [39m[32mStarting Nest application...[39m
[32m[Nest] 19196  - [39m02/23/2026, 7:04:32 PM [32m    LOG[39m [38;5;3m[InstanceLoader] [39m[32mPrismaModule dependencies initialized[39m[38;5;3m +29ms[39m
[32m[Nest] 19196  - [39m02/23/2026, 7:04:32 PM [32m    LOG[39m [38;5;3m[InstanceLoader] [39m[32mPassportModule dependencies initialized[39m[38;5;3m +1ms[39m
[32m[Nest] 19196  - [39m02/23/2026, 7:04:32 PM [32m    LOG[39m [38;5;3m[InstanceLoader] [39m[32mAdminModule dependencies initialized[39m[38;5;3m +0ms[39m
[32m[Nest] 19196  - [39m02/23/2026, 7:04:32 PM [32m    LOG[39m [38;5;3m[InstanceLoader] [39m[32mConfigHostModule dependencies initialized[39m[38;5;3m +4ms[39m
[32m[Nest] 19196  - [39m02/23/2026, 7:04:32 PM [32m    LOG[39m [38;5;3m[InstanceLoader] [39m[32mAppModule dependencies initialized[39m[38;5;3m +2ms[39m
[32m[Nest] 19196  - [39m02/23/2026, 7:04:32 PM [32m    LOG[39m [38;5;3m[InstanceLoader] [39m[32mConfigModule dependencies initialized[39m[38;5;3m +1ms[39m
[32m[Nest] 19196  - [39m02/23/2026, 7:04:32 PM [32m    LOG[39m [38;5;3m[InstanceLoader] [39m[32mConfigModule dependencies initialized[39m[38;5;3m +0ms[39m
[32m[Nest] 19196  - [39m02/23/2026, 7:04:32 PM [32m    LOG[39m [38;5;3m[InstanceLoader] [39m[32mJwtModule dependencies initialized[39m[38;5;3m +0ms[39m
[32m[Nest] 19196  - [39m02/23/2026, 7:04:32 PM [32m    LOG[39m [38;5;3m[InstanceLoader] [39m[32mAdminModule dependencies initialized[39m[38;5;3m +1ms[39m
[32m[Nest] 19196  - [39m02/23/2026, 7:04:32 PM [32m    LOG[39m [38;5;3m[InstanceLoader] [39m[32mAuthModule dependencies initialized[39m[38;5;3m +2ms[39m
[32m[Nest] 19196  - [39m02/23/2026, 7:04:32 PM [32m    LOG[39m [38;5;3m[RoutesResolver] [39m[32mAppController {/api}:[39m[38;5;3m +51ms[39m
[32m[Nest] 19196  - [39m02/23/2026, 7:04:32 PM [32m    LOG[39m [38;5;3m[RouterExplorer] [39m[32mMapped {/api, GET} route[39m[38;5;3m +3ms[39m
[32m[Nest] 19196  - [39m02/23/2026, 7:04:32 PM [32m    LOG[39m [38;5;3m[RouterExplorer] [39m[32mMapped {/api/hello, GET} route[39m[38;5;3m +1ms[39m
[32m[Nest] 19196  - [39m02/23/2026, 7:04:32 PM [32m    LOG[39m [38;5;3m[RoutesResolver] [39m[32mAuthController {/api/auth}:[39m[38;5;3m +0ms[39m
[32m[Nest] 19196  - [39m02/23/2026, 7:04:32 PM [32m    LOG[39m [38;5;3m[RouterExplorer] [39m[32mMapped {/api/auth/login, POST} route[39m[38;5;3m +1ms[39m
[32m[Nest] 19196  - [39m02/23/2026, 7:04:32 PM [32m    LOG[39m [38;5;3m[RouterExplorer] [39m[32mMapped {/api/auth/register, POST} route[39m[38;5;3m +0ms[39m
[32m[Nest] 19196  - [39m02/23/2026, 7:04:32 PM [32m    LOG[39m [38;5;3m[RouterExplorer] [39m[32mMapped {/api/auth/profile, GET} route[39m[38;5;3m +1ms[39m
[32m[Nest] 19196  - [39m02/23/2026, 7:04:32 PM [32m    LOG[39m [38;5;3m[RouterExplorer] [39m[32mMapped {/api/auth/test, GET} route[39m[38;5;3m +0ms[39m
[32m[Nest] 19196  - [39m02/23/2026, 7:04:32 PM [32m    LOG[39m [38;5;3m[NestApplication] [39m[32mNest application successfully started[39m[38;5;3m +209ms[39m
≡ƒÜÇ Application is running on: http://localhost:3000/api
≡ƒôÜ Swagger documentation: http://localhost:3000/api/docs
- Bundling files...
Γ£ö Finish bundling: 2 files
