@optimatech88/titomeet-shared-lib 1.1.1 → 1.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
- export * from './auth/auth.guard';
2
- export { PrismaClient, User, Account, AccountType, UserRole, Event, EventAccess, EventVisibility, EventStatus, EventPrice, Address, Provider, ProviderStatus, EventCategory, Review, ProviderCategory, Order, OrderStatus, OrderItem, PaymentStatus, Chat, ChatUser, Message, Notification, NotificationType, ProviderOnEvent, UserInterests, UserStatus, ProviderOnEventStatus, Pricing, PricingType, PricingDuration, Transaction, TransactionStatus, PaymentMethod, Prisma, TicketHandler, } from '@generated/prisma/client';
1
+ export { PrismaClient, Prisma, } from '@generated/prisma/client';
2
+ export type { User, Account, Address, EventCategory, Event, EventPrice, Chat, ChatUser, Message, Notification, ProviderCategory, Provider, ProviderOnEvent, Review, Favorite, Order, OrderItem, UserInterests, Newsletter, Pricing, Transaction, Feedback, Report, Country, } from '@generated/prisma/client';
3
+ export { AccountType, UserRole, UserStatus, EventType, EventAccess, EventVisibility, EventStatus, TicketHandler, MediaType, NotificationType, ProviderStatus, ProviderOnEventStatus, OrderStatus, PaymentStatus, PricingType, PricingDuration, PaymentMethod, TransactionStatus, } from '@generated/prisma/enums';
3
4
  export * from './auth/auth.guard';
4
5
  export * from './auth/auth.module';
5
6
  export * from './auth/admin.middleware';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,OAAO,EACH,YAAY,EACZ,IAAI,EACJ,OAAO,EACP,WAAW,EACX,QAAQ,EACR,KAAK,EACL,WAAW,EACX,eAAe,EACf,WAAW,EACX,UAAU,EAAE,OAAO,EACnB,QAAQ,EACR,cAAc,EACd,aAAa,EACb,MAAM,EACN,gBAAgB,EAChB,KAAK,EACL,WAAW,EACX,SAAS,EACT,aAAa,EACb,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,UAAU,EACV,qBAAqB,EACrB,OAAO,EACP,WAAW,EACX,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,MAAM,EACN,aAAa,GAChB,MAAM,0BAA0B,CAAC;AAGlC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AAGxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAE/B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EACZ,MAAM,GACP,MAAM,0BAA0B,CAAC;AAIlC,YAAY,EACV,IAAI,EACJ,OAAO,EACP,OAAO,EACP,aAAa,EACb,KAAK,EACL,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,gBAAgB,EAChB,QAAQ,EACR,eAAe,EACf,MAAM,EACN,QAAQ,EACR,KAAK,EACL,SAAS,EACT,aAAa,EACb,UAAU,EACV,OAAO,EACP,WAAW,EACX,QAAQ,EACR,MAAM,EACN,OAAO,GACR,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,WAAW,EACX,QAAQ,EACR,UAAU,EACV,SAAS,EACT,WAAW,EACX,eAAe,EACf,WAAW,EACX,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACrB,WAAW,EACX,aAAa,EACb,WAAW,EACX,eAAe,EACf,aAAa,EACb,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAKjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AAGxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAG9B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAE/B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- export * from './auth/auth.guard';
2
- export { PrismaClient, AccountType, UserRole, EventAccess, EventVisibility, EventStatus, ProviderStatus, OrderStatus, PaymentStatus, NotificationType, UserStatus, ProviderOnEventStatus, PricingType, PricingDuration, TransactionStatus, PaymentMethod, Prisma, TicketHandler, } from "./generated/prisma/client";
1
+ export { PrismaClient, Prisma, } from "./generated/prisma/client";
2
+ export { AccountType, UserRole, UserStatus, EventType, EventAccess, EventVisibility, EventStatus, TicketHandler, MediaType, NotificationType, ProviderStatus, ProviderOnEventStatus, OrderStatus, PaymentStatus, PricingType, PricingDuration, PaymentMethod, TransactionStatus, } from "./generated/prisma/enums";
3
3
  export * from './auth/auth.guard';
4
4
  export * from './auth/auth.module';
5
5
  export * from './auth/admin.middleware';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,OAAO,EACH,YAAY,EAGZ,WAAW,EACX,QAAQ,EAER,WAAW,EACX,eAAe,EACf,WAAW,EAGX,cAAc,EAKd,WAAW,EAEX,aAAa,EAKb,gBAAgB,EAGhB,UAAU,EACV,qBAAqB,EAErB,WAAW,EACX,eAAe,EAEf,iBAAiB,EACjB,aAAa,EACb,MAAM,EACN,aAAa,GAChB,kCAAiC;AAGlC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AAGxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAE/B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EACZ,MAAM,GACP,kCAAiC;AAgClC,OAAO,EACL,WAAW,EACX,QAAQ,EACR,UAAU,EACV,SAAS,EACT,WAAW,EACX,eAAe,EACf,WAAW,EACX,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACrB,WAAW,EACX,aAAa,EACb,WAAW,EACX,eAAe,EACf,aAAa,EACb,iBAAiB,GAClB,iCAAgC;AAKjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AAGxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAG9B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAE/B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC"}
@@ -1,3 +1,11 @@
1
+ import { DynamicModule } from '@nestjs/common';
2
+ export interface PrismaModuleAsyncOptions {
3
+ useFactory: (...args: any[]) => Promise<string> | string;
4
+ inject?: any[];
5
+ imports?: any[];
6
+ }
1
7
  export declare class PrismaModule {
8
+ static forRoot(databaseUrl?: string): DynamicModule;
9
+ static forRootAsync(options: PrismaModuleAsyncOptions): DynamicModule;
2
10
  }
3
11
  //# sourceMappingURL=prisma.module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prisma.module.d.ts","sourceRoot":"","sources":["../../src/prisma/prisma.module.ts"],"names":[],"mappings":"AAGA,qBAKa,YAAY;CAAG"}
1
+ {"version":3,"file":"prisma.module.d.ts","sourceRoot":"","sources":["../../src/prisma/prisma.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,aAAa,EAAQ,MAAM,gBAAgB,CAAC;AAGrE,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IACzD,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;CACjB;AAED,qBAEa,YAAY;IACvB,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,aAAa;IAanD,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,wBAAwB,GAAG,aAAa;CAiBtE"}
@@ -4,16 +4,43 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
+ var PrismaModule_1;
7
8
  import { Module, Global } from '@nestjs/common';
8
9
  import { PrismaService } from './prisma.service';
9
- let PrismaModule = class PrismaModule {
10
+ let PrismaModule = PrismaModule_1 = class PrismaModule {
11
+ static forRoot(databaseUrl) {
12
+ return {
13
+ module: PrismaModule_1,
14
+ providers: [
15
+ {
16
+ provide: PrismaService,
17
+ useFactory: () => new PrismaService(databaseUrl),
18
+ },
19
+ ],
20
+ exports: [PrismaService],
21
+ };
22
+ }
23
+ static forRootAsync(options) {
24
+ return {
25
+ module: PrismaModule_1,
26
+ imports: options.imports || [],
27
+ providers: [
28
+ {
29
+ provide: PrismaService,
30
+ useFactory: async (...args) => {
31
+ const url = await options.useFactory(...args);
32
+ return new PrismaService(url);
33
+ },
34
+ inject: options.inject || [],
35
+ },
36
+ ],
37
+ exports: [PrismaService],
38
+ };
39
+ }
10
40
  };
11
- PrismaModule = __decorate([
41
+ PrismaModule = PrismaModule_1 = __decorate([
12
42
  Global(),
13
- Module({
14
- providers: [PrismaService],
15
- exports: [PrismaService],
16
- })
43
+ Module({})
17
44
  ], PrismaModule);
18
45
  export { PrismaModule };
19
46
  //# sourceMappingURL=prisma.module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prisma.module.js","sourceRoot":"","sources":["../../src/prisma/prisma.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAO1C,IAAM,YAAY,GAAlB,MAAM,YAAY;CAAG,CAAA;AAAf,YAAY;IALxB,MAAM,EAAE;IACR,MAAM,CAAC;QACN,SAAS,EAAE,CAAC,aAAa,CAAC;QAC1B,OAAO,EAAE,CAAC,aAAa,CAAC;KACzB,CAAC;GACW,YAAY,CAAG"}
1
+ {"version":3,"file":"prisma.module.js","sourceRoot":"","sources":["../../src/prisma/prisma.module.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAuB,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAU1C,IAAM,YAAY,oBAAlB,MAAM,YAAY;IACvB,MAAM,CAAC,OAAO,CAAC,WAAoB;QACjC,OAAO;YACL,MAAM,EAAE,cAAY;YACpB,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,aAAa;oBACtB,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,aAAa,CAAC,WAAW,CAAC;iBACjD;aACF;YACD,OAAO,EAAE,CAAC,aAAa,CAAC;SACzB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,OAAiC;QACnD,OAAO;YACL,MAAM,EAAE,cAAY;YACpB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;YAC9B,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,aAAa;oBACtB,UAAU,EAAE,KAAK,EAAE,GAAG,IAAW,EAAE,EAAE;wBACnC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;wBAC9C,OAAO,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC;oBAChC,CAAC;oBACD,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;iBAC7B;aACF;YACD,OAAO,EAAE,CAAC,aAAa,CAAC;SACzB,CAAC;IACJ,CAAC;CACF,CAAA;AA/BY,YAAY;IAFxB,MAAM,EAAE;IACR,MAAM,CAAC,EAAE,CAAC;GACE,YAAY,CA+BxB"}
@@ -1,7 +1,9 @@
1
1
  import { OnModuleDestroy, OnModuleInit } from '@nestjs/common';
2
2
  import { PrismaClient } from '@generated/prisma/client';
3
3
  export declare class PrismaService extends PrismaClient implements OnModuleInit, OnModuleDestroy {
4
- constructor();
4
+ private static instance;
5
+ private databaseUrl;
6
+ constructor(databaseUrl?: string);
5
7
  onModuleInit(): Promise<void>;
6
8
  onModuleDestroy(): Promise<void>;
7
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"prisma.service.d.ts","sourceRoot":"","sources":["../../src/prisma/prisma.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,eAAe,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAOxD,qBACa,aAAc,SAAQ,YAAa,YAAW,YAAY,EAAE,eAAe;;IAKhF,YAAY;IAIZ,eAAe;CAGtB"}
1
+ {"version":3,"file":"prisma.service.d.ts","sourceRoot":"","sources":["../../src/prisma/prisma.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,eAAe,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGxD,qBACa,aAAc,SAAQ,YAAa,YAAW,YAAY,EAAE,eAAe;IACtF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgB;IACvC,OAAO,CAAC,WAAW,CAAS;gBAEhB,WAAW,CAAC,EAAE,MAAM;IAe1B,YAAY;IAIZ,eAAe;CAMtB"}
@@ -10,12 +10,19 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  import { Injectable } from '@nestjs/common';
11
11
  import { PrismaClient } from "../generated/prisma/client";
12
12
  import { PrismaPg } from '@prisma/adapter-pg';
13
- const adapter = new PrismaPg({
14
- connectionString: process.env.DATABASE_URL,
15
- });
16
13
  let PrismaService = class PrismaService extends PrismaClient {
17
- constructor() {
14
+ static instance;
15
+ databaseUrl;
16
+ constructor(databaseUrl) {
17
+ const url = databaseUrl || process.env.DATABASE_URL;
18
+ if (!url) {
19
+ throw new Error('DATABASE_URL is not defined');
20
+ }
21
+ const adapter = new PrismaPg({
22
+ connectionString: url,
23
+ });
18
24
  super({ adapter });
25
+ this.databaseUrl = url;
19
26
  }
20
27
  async onModuleInit() {
21
28
  await this.$connect();
@@ -26,7 +33,7 @@ let PrismaService = class PrismaService extends PrismaClient {
26
33
  };
27
34
  PrismaService = __decorate([
28
35
  Injectable(),
29
- __metadata("design:paramtypes", [])
36
+ __metadata("design:paramtypes", [String])
30
37
  ], PrismaService);
31
38
  export { PrismaService };
32
39
  //# sourceMappingURL=prisma.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prisma.service.js","sourceRoot":"","sources":["../../src/prisma/prisma.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAiC,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,mCAAiC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,MAAM,OAAO,GAAG,IAAI,QAAQ,CAAC;IAC3B,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;CAC3C,CAAC,CAAC;AAGI,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,YAAY;IAC7C;QACE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;IAC3B,CAAC;CACF,CAAA;AAZY,aAAa;IADzB,UAAU,EAAE;;GACA,aAAa,CAYzB"}
1
+ {"version":3,"file":"prisma.service.js","sourceRoot":"","sources":["../../src/prisma/prisma.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAiC,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,mCAAiC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAGvC,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,YAAY;IACrC,MAAM,CAAC,QAAQ,CAAgB;IAC/B,WAAW,CAAS;IAE5B,YAAY,WAAoB;QAC9B,MAAM,GAAG,GAAG,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;QAEpD,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,QAAQ,CAAC;YAC3B,gBAAgB,EAAE,GAAG;SACtB,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;IAC3B,CAAC;CAIF,CAAA;AA7BY,aAAa;IADzB,UAAU,EAAE;;GACA,aAAa,CA6BzB"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "@optimatech88/titomeet-shared-lib",
4
- "version": "1.1.1",
4
+ "version": "1.1.3",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "scripts": {
package/src/index.ts CHANGED
@@ -1,43 +1,63 @@
1
- export * from './auth/auth.guard';
2
- export {
3
- PrismaClient,
4
- User,
5
- Account,
6
- AccountType,
7
- UserRole,
8
- Event,
9
- EventAccess,
10
- EventVisibility,
11
- EventStatus,
12
- EventPrice, Address,
13
- Provider,
14
- ProviderStatus,
15
- EventCategory,
16
- Review,
17
- ProviderCategory,
18
- Order,
19
- OrderStatus,
20
- OrderItem,
21
- PaymentStatus,
22
- Chat,
23
- ChatUser,
24
- Message,
25
- Notification,
26
- NotificationType,
27
- ProviderOnEvent,
28
- UserInterests,
29
- UserStatus,
30
- ProviderOnEventStatus,
31
- Pricing,
32
- PricingType,
33
- PricingDuration,
34
- Transaction,
35
- TransactionStatus,
36
- PaymentMethod,
37
- Prisma,
38
- TicketHandler,
1
+
2
+
3
+ export {
4
+ PrismaClient,
5
+ Prisma,
39
6
  } from '@generated/prisma/client';
40
7
 
8
+
9
+
10
+ export type {
11
+ User,
12
+ Account,
13
+ Address,
14
+ EventCategory,
15
+ Event,
16
+ EventPrice,
17
+ Chat,
18
+ ChatUser,
19
+ Message,
20
+ Notification,
21
+ ProviderCategory,
22
+ Provider,
23
+ ProviderOnEvent,
24
+ Review,
25
+ Favorite,
26
+ Order,
27
+ OrderItem,
28
+ UserInterests,
29
+ Newsletter,
30
+ Pricing,
31
+ Transaction,
32
+ Feedback,
33
+ Report,
34
+ Country,
35
+ } from '@generated/prisma/client';
36
+
37
+
38
+ export {
39
+ AccountType,
40
+ UserRole,
41
+ UserStatus,
42
+ EventType,
43
+ EventAccess,
44
+ EventVisibility,
45
+ EventStatus,
46
+ TicketHandler,
47
+ MediaType,
48
+ NotificationType,
49
+ ProviderStatus,
50
+ ProviderOnEventStatus,
51
+ OrderStatus,
52
+ PaymentStatus,
53
+ PricingType,
54
+ PricingDuration,
55
+ PaymentMethod,
56
+ TransactionStatus,
57
+ } from '@generated/prisma/enums';
58
+
59
+ // export * from '@generated/prisma/client';
60
+
41
61
  //auth
42
62
  export * from './auth/auth.guard';
43
63
  export * from './auth/auth.module';
@@ -51,6 +71,8 @@ export * from './cache/cache.service';
51
71
  export * from './prisma/prisma.module';
52
72
  export * from './prisma/prisma.service';
53
73
  export * from './prisma/seed';
74
+
75
+ // Utils
54
76
  export * from './types';
55
77
  export * from './utils';
56
78
  export * from './utils/api/endpoints';
@@ -1,9 +1,43 @@
1
- import { Module, Global } from '@nestjs/common';
1
+ import { Module, Global, DynamicModule, Type } from '@nestjs/common';
2
2
  import { PrismaService } from './prisma.service';
3
3
 
4
+ export interface PrismaModuleAsyncOptions {
5
+ useFactory: (...args: any[]) => Promise<string> | string;
6
+ inject?: any[];
7
+ imports?: any[];
8
+ }
9
+
4
10
  @Global()
5
- @Module({
6
- providers: [PrismaService],
7
- exports: [PrismaService],
8
- })
9
- export class PrismaModule {}
11
+ @Module({})
12
+ export class PrismaModule {
13
+ static forRoot(databaseUrl?: string): DynamicModule {
14
+ return {
15
+ module: PrismaModule,
16
+ providers: [
17
+ {
18
+ provide: PrismaService,
19
+ useFactory: () => new PrismaService(databaseUrl),
20
+ },
21
+ ],
22
+ exports: [PrismaService],
23
+ };
24
+ }
25
+
26
+ static forRootAsync(options: PrismaModuleAsyncOptions): DynamicModule {
27
+ return {
28
+ module: PrismaModule,
29
+ imports: options.imports || [],
30
+ providers: [
31
+ {
32
+ provide: PrismaService,
33
+ useFactory: async (...args: any[]) => {
34
+ const url = await options.useFactory(...args);
35
+ return new PrismaService(url);
36
+ },
37
+ inject: options.inject || [],
38
+ },
39
+ ],
40
+ exports: [PrismaService],
41
+ };
42
+ }
43
+ }
@@ -2,14 +2,24 @@ import { Injectable, OnModuleDestroy, OnModuleInit } from '@nestjs/common';
2
2
  import { PrismaClient } from '@generated/prisma/client';
3
3
  import { PrismaPg } from '@prisma/adapter-pg';
4
4
 
5
- const adapter = new PrismaPg({
6
- connectionString: process.env.DATABASE_URL,
7
- });
8
-
9
5
  @Injectable()
10
6
  export class PrismaService extends PrismaClient implements OnModuleInit, OnModuleDestroy {
11
- constructor() {
7
+ private static instance: PrismaService;
8
+ private databaseUrl: string;
9
+
10
+ constructor(databaseUrl?: string) {
11
+ const url = databaseUrl || process.env.DATABASE_URL;
12
+
13
+ if (!url) {
14
+ throw new Error('DATABASE_URL is not defined');
15
+ }
16
+
17
+ const adapter = new PrismaPg({
18
+ connectionString: url,
19
+ });
20
+
12
21
  super({ adapter });
22
+ this.databaseUrl = url;
13
23
  }
14
24
 
15
25
  async onModuleInit() {
@@ -19,4 +29,7 @@ export class PrismaService extends PrismaClient implements OnModuleInit, OnModul
19
29
  async onModuleDestroy() {
20
30
  await this.$disconnect();
21
31
  }
22
- }
32
+
33
+ // Exposez les modèles explicitement (optionnel, car ils sont déjà accessibles via this)
34
+ // En réalité, this.chatUser, this.report, etc. sont déjà disponibles car PrismaClient les expose
35
+ }