@mostajs/ticketing 1.0.2 → 2.0.0

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.
Files changed (50) hide show
  1. package/dist/index.d.ts +3 -6
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +9 -11
  4. package/dist/index.js.map +1 -1
  5. package/dist/lib/menu.d.ts +1 -0
  6. package/dist/lib/menu.d.ts.map +1 -1
  7. package/dist/lib/menu.js +1 -2
  8. package/dist/lib/menu.js.map +1 -1
  9. package/dist/register.d.ts +5 -0
  10. package/dist/register.d.ts.map +1 -0
  11. package/dist/register.js +41 -0
  12. package/dist/register.js.map +1 -0
  13. package/dist/repositories/index.d.ts +0 -6
  14. package/dist/repositories/index.d.ts.map +1 -1
  15. package/dist/repositories/index.js +1 -4
  16. package/dist/repositories/index.js.map +1 -1
  17. package/dist/schemas/index.d.ts +0 -3
  18. package/dist/schemas/index.d.ts.map +1 -1
  19. package/dist/schemas/index.js +1 -4
  20. package/dist/schemas/index.js.map +1 -1
  21. package/dist/server.d.ts +5 -0
  22. package/dist/server.d.ts.map +1 -0
  23. package/dist/server.js +7 -0
  24. package/dist/server.js.map +1 -0
  25. package/package.json +18 -22
  26. package/ticketing.wire.json +24 -2
  27. package/dist/repositories/activity.repository.d.ts +0 -38
  28. package/dist/repositories/activity.repository.d.ts.map +0 -1
  29. package/dist/repositories/activity.repository.js +0 -23
  30. package/dist/repositories/activity.repository.js.map +0 -1
  31. package/dist/repositories/client-access.repository.d.ts +0 -31
  32. package/dist/repositories/client-access.repository.d.ts.map +0 -1
  33. package/dist/repositories/client-access.repository.js +0 -31
  34. package/dist/repositories/client-access.repository.js.map +0 -1
  35. package/dist/repositories/subscription-plan.repository.d.ts +0 -27
  36. package/dist/repositories/subscription-plan.repository.d.ts.map +0 -1
  37. package/dist/repositories/subscription-plan.repository.js +0 -19
  38. package/dist/repositories/subscription-plan.repository.js.map +0 -1
  39. package/dist/schemas/activity.schema.d.ts +0 -3
  40. package/dist/schemas/activity.schema.d.ts.map +0 -1
  41. package/dist/schemas/activity.schema.js +0 -39
  42. package/dist/schemas/activity.schema.js.map +0 -1
  43. package/dist/schemas/client-access.schema.d.ts +0 -3
  44. package/dist/schemas/client-access.schema.d.ts.map +0 -1
  45. package/dist/schemas/client-access.schema.js +0 -25
  46. package/dist/schemas/client-access.schema.js.map +0 -1
  47. package/dist/schemas/subscription-plan.schema.d.ts +0 -3
  48. package/dist/schemas/subscription-plan.schema.d.ts.map +0 -1
  49. package/dist/schemas/subscription-plan.schema.js +0 -29
  50. package/dist/schemas/subscription-plan.schema.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -1,14 +1,11 @@
1
- export { TicketSchema, ClientAccessSchema, ScanLogSchema, SubscriptionPlanSchema, ActivitySchema, CounterSchema, } from './schemas/index';
2
- export { TicketRepository, ClientAccessRepository, ScanLogRepository, SubscriptionPlanRepository, ActivityRepository, } from './repositories/index';
3
- export type { TicketDTO, ClientAccessDTO, ScanLogDTO, SubscriptionPlanDTO, PlanActivityDTO, ActivityDTO, ActivityScheduleDTO, } from './repositories/index';
1
+ export { TicketSchema, ScanLogSchema, CounterSchema } from './schemas/index';
4
2
  export { processScan } from './lib/scan-processor';
5
3
  export type { ScanDeps } from './lib/scan-processor';
6
4
  export { computeValidUntil, isExpired, isToday } from './lib/validity-checker';
7
5
  export { decrementQuota, isQuotaDepleted, wouldExceedQuota } from './lib/quota-manager';
8
6
  export { DAY_MULTIPLIER, DAY_MODULO, YEAR_MODULO, MAX_SEQUENCE, MAX_TICKET_VALUE, getDayOfYear, computeCombinedDay, extractCombinedDayFromTicket, extractDayFromTicket, extractYearFromTicket, extractSequenceFromTicket, isTicketFromToday, isValidTicketFormat, } from './lib/ticket-number';
9
- export { createScanHandler } from './api/scan.route';
10
- export { createTicketsHandler } from './api/tickets.route';
11
7
  export { TICKETING_PERMISSIONS, TICKETING_PERMISSION_DEFINITIONS, TICKETING_CATEGORY_DEFINITIONS } from './lib/permissions';
12
8
  export type { TicketingPermission } from './lib/permissions';
13
- export type { CodeFormat, ValidityMode, TicketStatus, ScanResult, ScanMethod, AccessType, AccessStatus, ActivityStatus, PlanType, DenyReason, ScanInput, ScanOutput, ScanGrantedResult, ScanDeniedResult, TicketInfo, ClientInfo, AccessInfo, CreateTicketInput, ScanHandlerConfig, TicketsHandlerConfig, } from './types/index';
9
+ export { ticketingMenuContribution } from './lib/menu';
10
+ export type { CodeFormat, ValidityMode, TicketStatus, ScanResult, ScanMethod, DenyReason, ScanInput, ScanOutput, ScanGrantedResult, ScanDeniedResult, TicketInfo, ClientInfo, AccessInfo, CreateTicketInput, ScanHandlerConfig, TicketsHandlerConfig, } from './types/index';
14
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,sBAAsB,EACtB,cAAc,EACd,aAAa,GACd,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EACV,SAAS,EACT,eAAe,EACf,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,YAAY,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGxF,OAAO,EACL,cAAc,EACd,UAAU,EACV,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,EAClB,4BAA4B,EAC5B,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,EACzB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAG3D,OAAO,EAAE,qBAAqB,EAAE,gCAAgC,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAC;AAC5H,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAG7D,YAAY,EACV,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,UAAU,EACV,UAAU,EACV,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,UAAU,EACV,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAG5E,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,YAAY,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAC9E,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAGvF,OAAO,EACL,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,gBAAgB,EACvE,YAAY,EAAE,kBAAkB,EAChC,4BAA4B,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,yBAAyB,EACpG,iBAAiB,EAAE,mBAAmB,GACvC,MAAM,qBAAqB,CAAA;AAG5B,OAAO,EAAE,qBAAqB,EAAE,gCAAgC,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAA;AAC3H,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAG5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;AAGtD,YAAY,EACV,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAC9D,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,EACtE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,iBAAiB,EACrD,iBAAiB,EAAE,oBAAoB,GACxC,MAAM,eAAe,CAAA"}
package/dist/index.js CHANGED
@@ -1,18 +1,16 @@
1
- // @mostajs/ticketing — Main barrel exports
1
+ // @mostajs/ticketing — Client-safe barrel (NO ORM imports)
2
2
  // Author: Dr Hamid MADANI drmdh@msn.com
3
- // ── Schemas ────────────────────────────────────────────────────────
4
- export { TicketSchema, ClientAccessSchema, ScanLogSchema, SubscriptionPlanSchema, ActivitySchema, CounterSchema, } from './schemas/index';
5
- // ── Repositories ───────────────────────────────────────────────────
6
- export { TicketRepository, ClientAccessRepository, ScanLogRepository, SubscriptionPlanRepository, ActivityRepository, } from './repositories/index';
7
- // ── Core logic (pure functions) ────────────────────────────────────
3
+ // For server-side code (repos), use '@mostajs/ticketing/server'
4
+ // Schemas (pure data no ORM)
5
+ export { TicketSchema, ScanLogSchema, CounterSchema } from './schemas/index';
6
+ // Core logic (pure functions no ORM)
8
7
  export { processScan } from './lib/scan-processor';
9
8
  export { computeValidUntil, isExpired, isToday } from './lib/validity-checker';
10
9
  export { decrementQuota, isQuotaDepleted, wouldExceedQuota } from './lib/quota-manager';
11
- // ── Ticket number (Wiegand 24-bit) ───────────────────────────────
10
+ // Ticket number (Wiegand 24-bit)
12
11
  export { DAY_MULTIPLIER, DAY_MODULO, YEAR_MODULO, MAX_SEQUENCE, MAX_TICKET_VALUE, getDayOfYear, computeCombinedDay, extractCombinedDayFromTicket, extractDayFromTicket, extractYearFromTicket, extractSequenceFromTicket, isTicketFromToday, isValidTicketFormat, } from './lib/ticket-number';
13
- // ── API route factories ────────────────────────────────────────────
14
- export { createScanHandler } from './api/scan.route';
15
- export { createTicketsHandler } from './api/tickets.route';
16
- // ── Permissions ──────────────────────────────────────────────────────
12
+ // Permissions
17
13
  export { TICKETING_PERMISSIONS, TICKETING_PERMISSION_DEFINITIONS, TICKETING_CATEGORY_DEFINITIONS } from './lib/permissions';
14
+ // Menu
15
+ export { ticketingMenuContribution } from './lib/menu';
18
16
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,wCAAwC;AAExC,sEAAsE;AACtE,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,sBAAsB,EACtB,cAAc,EACd,aAAa,GACd,MAAM,iBAAiB,CAAC;AAEzB,sEAAsE;AACtE,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAY9B,sEAAsE;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGnD,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAExF,oEAAoE;AACpE,OAAO,EACL,cAAc,EACd,UAAU,EACV,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,EAClB,4BAA4B,EAC5B,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,EACzB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAE7B,sEAAsE;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,wEAAwE;AACxE,OAAO,EAAE,qBAAqB,EAAE,gCAAgC,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,wCAAwC;AACxC,gEAAgE;AAEhE,+BAA+B;AAC/B,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE5E,uCAAuC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAElD,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAC9E,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAEvF,iCAAiC;AACjC,OAAO,EACL,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,gBAAgB,EACvE,YAAY,EAAE,kBAAkB,EAChC,4BAA4B,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,yBAAyB,EACpG,iBAAiB,EAAE,mBAAmB,GACvC,MAAM,qBAAqB,CAAA;AAE5B,cAAc;AACd,OAAO,EAAE,qBAAqB,EAAE,gCAAgC,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAA;AAG3H,OAAO;AACP,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA"}
@@ -1,4 +1,5 @@
1
1
  export declare const ticketingMenuContribution: {
2
+ moduleKey: string;
2
3
  id: string;
3
4
  label: string;
4
5
  icon: string;
@@ -1 +1 @@
1
- {"version":3,"file":"menu.d.ts","sourceRoot":"","sources":["../../lib/menu.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,yBAAyB;;;;;;;;;;;;CAWrC,CAAC"}
1
+ {"version":3,"file":"menu.d.ts","sourceRoot":"","sources":["../../lib/menu.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;CAUrC,CAAA"}
package/dist/lib/menu.js CHANGED
@@ -1,6 +1,7 @@
1
1
  // @mostajs/ticketing — Menu contribution
2
2
  // Author: Dr Hamid MADANI drmdh@msn.com
3
3
  export const ticketingMenuContribution = {
4
+ moduleKey: 'ticketing',
4
5
  id: 'ticketing',
5
6
  label: 'Billetterie',
6
7
  icon: 'Ticket',
@@ -8,8 +9,6 @@ export const ticketingMenuContribution = {
8
9
  items: [
9
10
  { id: 'tickets', label: 'Tickets', href: '/dashboard/tickets', icon: 'Ticket', permission: 'ticket:view' },
10
11
  { id: 'scan', label: 'Scan', href: '/dashboard/scan', icon: 'ScanLine', permission: 'scan:validate' },
11
- { id: 'activities', label: 'Activites', href: '/dashboard/activities', icon: 'Dumbbell', permission: 'activity:view' },
12
- { id: 'plans', label: 'Abonnements', href: '/dashboard/plans', icon: 'CreditCard', permission: 'access:view' },
13
12
  ],
14
13
  };
15
14
  //# sourceMappingURL=menu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"menu.js","sourceRoot":"","sources":["../../lib/menu.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,wCAAwC;AAExC,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,EAAE,EAAE,WAAW;IACf,KAAK,EAAE,aAAa;IACpB,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,EAAE;IACT,KAAK,EAAE;QACL,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE;QAC1G,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE;QACrG,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE;QACtH,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE;KAC/G;CACF,CAAC"}
1
+ {"version":3,"file":"menu.js","sourceRoot":"","sources":["../../lib/menu.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,wCAAwC;AAExC,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,SAAS,EAAE,WAAW;IACtB,EAAE,EAAE,WAAW;IACf,KAAK,EAAE,aAAa;IACpB,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,EAAE;IACT,KAAK,EAAE;QACL,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE;QAC1G,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE;KACtG;CACF,CAAA"}
@@ -0,0 +1,5 @@
1
+ import type { ModuleRegistration } from '@mostajs/socle';
2
+ export declare function register(registry: {
3
+ register(r: ModuleRegistration): void;
4
+ }): void;
5
+ //# sourceMappingURL=register.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../register.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AASxD,wBAAgB,QAAQ,CAAC,QAAQ,EAAE;IAAE,QAAQ,CAAC,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,CAkClF"}
@@ -0,0 +1,41 @@
1
+ // @mostajs/ticketing — Runtime module registration
2
+ // Author: Dr Hamid MADANI drmdh@msn.com
3
+ import { TicketSchema } from './schemas/ticket.schema';
4
+ import { ScanLogSchema } from './schemas/scan-log.schema';
5
+ import { CounterSchema } from './schemas/counter.schema';
6
+ import { TicketRepository } from './repositories/ticket.repository';
7
+ import { ScanLogRepository } from './repositories/scan-log.repository';
8
+ import { ticketingMenuContribution } from './lib/menu';
9
+ import { TICKETING_PERMISSIONS, TICKETING_PERMISSION_DEFINITIONS, TICKETING_CATEGORY_DEFINITIONS } from './lib/permissions';
10
+ export function register(registry) {
11
+ registry.register({
12
+ manifest: {
13
+ name: 'ticketing',
14
+ package: '@mostajs/ticketing',
15
+ version: '2.0.0',
16
+ type: 'business',
17
+ priority: 95,
18
+ dependencies: ['auth', 'subscriptions'],
19
+ displayName: 'Billetterie',
20
+ description: 'Tickets, scan, validation — billetterie pure',
21
+ icon: 'Ticket',
22
+ register: './dist/register.js',
23
+ },
24
+ schemas: [
25
+ { name: 'Ticket', schema: TicketSchema },
26
+ { name: 'ScanLog', schema: ScanLogSchema },
27
+ { name: 'Counter', schema: CounterSchema },
28
+ ],
29
+ repositories: {
30
+ ticketRepo: (dialect) => new TicketRepository(dialect),
31
+ scanLogRepo: (dialect) => new ScanLogRepository(dialect),
32
+ },
33
+ permissions: {
34
+ permissions: TICKETING_PERMISSIONS,
35
+ definitions: TICKETING_PERMISSION_DEFINITIONS,
36
+ categories: TICKETING_CATEGORY_DEFINITIONS,
37
+ },
38
+ menu: ticketingMenuContribution,
39
+ });
40
+ }
41
+ //# sourceMappingURL=register.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../register.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,wCAAwC;AAGxC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;AACtD,OAAO,EAAE,qBAAqB,EAAE,gCAAgC,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAA;AAE3H,MAAM,UAAU,QAAQ,CAAC,QAAmD;IAC1E,QAAQ,CAAC,QAAQ,CAAC;QAChB,QAAQ,EAAE;YACR,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,oBAAoB;YAC7B,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,EAAE;YACZ,YAAY,EAAE,CAAC,MAAM,EAAE,eAAe,CAAC;YACvC,WAAW,EAAE,aAAa;YAC1B,WAAW,EAAE,8CAA8C;YAC3D,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,oBAAoB;SAC/B;QAED,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE;YACxC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE;YAC1C,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE;SAC3C;QAED,YAAY,EAAE;YACZ,UAAU,EAAE,CAAC,OAAgB,EAAE,EAAE,CAAC,IAAI,gBAAgB,CAAC,OAAgB,CAAC;YACxE,WAAW,EAAE,CAAC,OAAgB,EAAE,EAAE,CAAC,IAAI,iBAAiB,CAAC,OAAgB,CAAC;SAC3E;QAED,WAAW,EAAE;YACX,WAAW,EAAE,qBAAqB;YAClC,WAAW,EAAE,gCAAgC;YAC7C,UAAU,EAAE,8BAA8B;SAC3C;QAED,IAAI,EAAE,yBAAyB;KAChC,CAAC,CAAA;AACJ,CAAC"}
@@ -1,11 +1,5 @@
1
1
  export { TicketRepository } from './ticket.repository';
2
2
  export type { TicketDTO } from './ticket.repository';
3
- export { ClientAccessRepository } from './client-access.repository';
4
- export type { ClientAccessDTO } from './client-access.repository';
5
3
  export { ScanLogRepository } from './scan-log.repository';
6
4
  export type { ScanLogDTO } from './scan-log.repository';
7
- export { SubscriptionPlanRepository } from './subscription-plan.repository';
8
- export type { SubscriptionPlanDTO, PlanActivityDTO } from './subscription-plan.repository';
9
- export { ActivityRepository } from './activity.repository';
10
- export type { ActivityDTO, ActivityScheduleDTO } from './activity.repository';
11
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../repositories/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAE3F,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../repositories/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA"}
@@ -1,8 +1,5 @@
1
- // @mostajs/ticketing — Repositories barrel
1
+ // @mostajs/ticketing — Repositories barrel (billetterie pure)
2
2
  // Author: Dr Hamid MADANI drmdh@msn.com
3
3
  export { TicketRepository } from './ticket.repository';
4
- export { ClientAccessRepository } from './client-access.repository';
5
4
  export { ScanLogRepository } from './scan-log.repository';
6
- export { SubscriptionPlanRepository } from './subscription-plan.repository';
7
- export { ActivityRepository } from './activity.repository';
8
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../repositories/index.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,wCAAwC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAGpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAG1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAG5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../repositories/index.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,wCAAwC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAGtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA"}
@@ -1,7 +1,4 @@
1
1
  export { TicketSchema } from './ticket.schema';
2
- export { ClientAccessSchema } from './client-access.schema';
3
2
  export { ScanLogSchema } from './scan-log.schema';
4
- export { SubscriptionPlanSchema } from './subscription-plan.schema';
5
- export { ActivitySchema } from './activity.schema';
6
3
  export { CounterSchema } from './counter.schema';
7
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../schemas/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../schemas/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA"}
@@ -1,9 +1,6 @@
1
- // @mostajs/ticketing — Schemas barrel
1
+ // @mostajs/ticketing — Schemas barrel (billetterie pure)
2
2
  // Author: Dr Hamid MADANI drmdh@msn.com
3
3
  export { TicketSchema } from './ticket.schema';
4
- export { ClientAccessSchema } from './client-access.schema';
5
4
  export { ScanLogSchema } from './scan-log.schema';
6
- export { SubscriptionPlanSchema } from './subscription-plan.schema';
7
- export { ActivitySchema } from './activity.schema';
8
5
  export { CounterSchema } from './counter.schema';
9
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../schemas/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,wCAAwC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../schemas/index.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,wCAAwC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA"}
@@ -0,0 +1,5 @@
1
+ export { TicketRepository, ScanLogRepository } from './repositories/index';
2
+ export type { TicketDTO, ScanLogDTO } from './repositories/index';
3
+ export { createScanHandler } from './api/scan.route';
4
+ export { createTicketsHandler } from './api/tickets.route';
5
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../server.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAC1E,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAGjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA"}
package/dist/server.js ADDED
@@ -0,0 +1,7 @@
1
+ // @mostajs/ticketing/server — Server-side exports (ORM-dependent)
2
+ // Author: Dr Hamid MADANI drmdh@msn.com
3
+ export { TicketRepository, ScanLogRepository } from './repositories/index';
4
+ // API route factories
5
+ export { createScanHandler } from './api/scan.route';
6
+ export { createTicketsHandler } from './api/tickets.route';
7
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../server.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,wCAAwC;AAExC,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAG1E,sBAAsB;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mostajs/ticketing",
3
- "version": "1.0.2",
4
- "description": "Reusable ticketing module — ticket lifecycle, scan validation, quota management, API route factories",
3
+ "version": "2.0.0",
4
+ "description": "Ticketing module — ticket lifecycle, scan validation, quota management",
5
5
  "author": "Dr Hamid MADANI <drmdh@msn.com>",
6
6
  "license": "MIT",
7
7
  "type": "module",
@@ -13,25 +13,10 @@
13
13
  "import": "./dist/index.js",
14
14
  "default": "./dist/index.js"
15
15
  },
16
- "./schemas/*": {
17
- "types": "./dist/schemas/*.d.ts",
18
- "import": "./dist/schemas/*.js",
19
- "default": "./dist/schemas/*.js"
20
- },
21
- "./repositories/*": {
22
- "types": "./dist/repositories/*.d.ts",
23
- "import": "./dist/repositories/*.js",
24
- "default": "./dist/repositories/*.js"
25
- },
26
- "./lib/*": {
27
- "types": "./dist/lib/*.d.ts",
28
- "import": "./dist/lib/*.js",
29
- "default": "./dist/lib/*.js"
30
- },
31
- "./api/*": {
32
- "types": "./dist/api/*.d.ts",
33
- "import": "./dist/api/*.js",
34
- "default": "./dist/api/*.js"
16
+ "./server": {
17
+ "types": "./dist/server.d.ts",
18
+ "import": "./dist/server.js",
19
+ "default": "./dist/server.js"
35
20
  },
36
21
  "./lib/permissions": {
37
22
  "types": "./dist/lib/permissions.d.ts",
@@ -47,6 +32,11 @@
47
32
  "types": "./dist/types/index.d.ts",
48
33
  "import": "./dist/types/index.js",
49
34
  "default": "./dist/types/index.js"
35
+ },
36
+ "./register": {
37
+ "types": "./dist/register.d.ts",
38
+ "import": "./dist/register.js",
39
+ "default": "./dist/register.js"
50
40
  }
51
41
  },
52
42
  "files": [
@@ -78,17 +68,23 @@
78
68
  "prepublishOnly": "npm run build"
79
69
  },
80
70
  "dependencies": {
81
- "@mostajs/orm": "^1.0.0"
71
+ "@mostajs/orm": "^1.4.12"
82
72
  },
83
73
  "peerDependencies": {
74
+ "@mostajs/socle": ">=2.0.0",
75
+ "@mostajs/subscriptions": ">=1.0.0",
84
76
  "next": ">=14"
85
77
  },
86
78
  "peerDependenciesMeta": {
87
79
  "next": {
88
80
  "optional": true
81
+ },
82
+ "@mostajs/subscriptions": {
83
+ "optional": true
89
84
  }
90
85
  },
91
86
  "devDependencies": {
87
+ "@mostajs/socle": "^2.0.0",
92
88
  "@types/node": "^25.3.3",
93
89
  "next": "^16.1.6",
94
90
  "typescript": "^5.9.3"
@@ -1,7 +1,7 @@
1
1
  {
2
- "_doc": "Manifeste de câblage pour @mostajs/ticketing",
2
+ "name": "ticketing",
3
3
  "package": "@mostajs/ticketing",
4
- "version": "1.0.1",
4
+ "version": "2.0.0",
5
5
  "type": "business",
6
6
 
7
7
  "schemas": {
@@ -46,5 +46,27 @@
46
46
  "i18n": [
47
47
  { "namespace": "activities", "source": "node_modules/@mostajs/ticketing/i18n/fr/activities.json" },
48
48
  { "namespace": "tickets", "source": "node_modules/@mostajs/ticketing/i18n/fr/tickets.json" }
49
+ ],
50
+
51
+ "apiRoutes": [
52
+ {
53
+ "path": "src/app/api/tickets/route.ts",
54
+ "code": "// Author: Dr Hamid MADANI drmdh@msn.com\nimport { createTicketsHandler } from '@mostajs/ticketing/api/tickets.route'\nimport { ticketRepo, clientRepo, clientAccessRepo, activityRepo } from '@/dal/service'\nimport { checkPermission } from '@/lib/authCheck'\n\nexport const { GET, POST } = createTicketsHandler({\n getRepositories: async () => ({\n ticketRepo: await ticketRepo(),\n clientRepo: await clientRepo(),\n clientAccessRepo: await clientAccessRepo(),\n activityRepo: await activityRepo(),\n }),\n checkAuth: async (req, perm) => {\n const result = await checkPermission(perm)\n return { error: result.error || null, userId: result.userId || '' }\n },\n})"
55
+ },
56
+ {
57
+ "path": "src/app/api/scan/route.ts",
58
+ "code": "// Author: Dr Hamid MADANI drmdh@msn.com\nimport { createScanHandler } from '@mostajs/ticketing/api/scan.route'\nimport { ticketRepo, clientAccessRepo, scanLogRepo, clientRepo } from '@/dal/service'\nimport { checkPermission } from '@/lib/authCheck'\n\nexport const { POST } = createScanHandler({\n getRepositories: async () => ({\n ticketRepo: await ticketRepo(),\n clientAccessRepo: await clientAccessRepo(),\n scanLogRepo: await scanLogRepo(),\n clientRepo: await clientRepo(),\n }),\n checkAuth: async (req) => {\n const result = await checkPermission('scan:validate')\n return { error: result.error || null, userId: result.userId || '' }\n },\n})"
59
+ }
60
+ ],
61
+
62
+ "pages": [
63
+ {
64
+ "path": "src/app/dashboard/tickets/page.tsx",
65
+ "code": "'use client'\n// Author: Dr Hamid MADANI drmdh@msn.com\nimport { useEffect, useState } from 'react'\n\nexport default function TicketsPage() {\n const [tickets, setTickets] = useState<any[]>([])\n const [loading, setLoading] = useState(true)\n\n useEffect(() => {\n fetch('/api/tickets').then(r => r.json()).then(d => { setTickets(d.data || []); setLoading(false) })\n }, [])\n\n if (loading) return <div className=\"p-6\">Chargement...</div>\n\n return (\n <div className=\"p-6 space-y-4\">\n <h1 className=\"text-2xl font-bold\">Tickets</h1>\n <div className=\"grid gap-2\">\n {tickets.map((t: any) => (\n <div key={t.id} className={`p-3 border rounded ${t.status === 'active' ? 'bg-green-50' : 'bg-gray-50'}`}>\n #{t.ticketNumber} — {t.clientName} — {t.activityName} — {t.status}\n </div>\n ))}\n </div>\n </div>\n )\n}"
66
+ },
67
+ {
68
+ "path": "src/app/dashboard/scan/page.tsx",
69
+ "code": "'use client'\n// Author: Dr Hamid MADANI drmdh@msn.com\nimport { ScannerView } from '@mostajs/scan'\n\nexport default function ScanPage() {\n return (\n <div className=\"p-6 space-y-4\">\n <h1 className=\"text-2xl font-bold\">Scanner</h1>\n <ScannerView apiEndpoint=\"/api/scan\" />\n </div>\n )\n}"
70
+ }
49
71
  ]
50
72
  }
@@ -1,38 +0,0 @@
1
- import { BaseRepository } from '@mostajs/orm';
2
- import type { IDialect } from '@mostajs/orm';
3
- export interface ActivityScheduleDTO {
4
- dayOfWeek: number;
5
- openTime: string;
6
- closeTime: string;
7
- isOpen: boolean;
8
- }
9
- export interface ActivityDTO {
10
- id: string;
11
- name: string;
12
- slug: string;
13
- description?: string;
14
- icon?: string;
15
- color?: string;
16
- capacity?: number;
17
- currentOccupancy: number;
18
- schedule: ActivityScheduleDTO[];
19
- ticketValidityMode: 'day_reentry' | 'single_use' | 'time_slot' | 'unlimited';
20
- ticketDuration: number | null;
21
- price: number;
22
- currency: string;
23
- status: 'active' | 'inactive' | 'maintenance';
24
- sortOrder: number;
25
- createdBy?: string;
26
- createdAt: string;
27
- updatedAt: string;
28
- }
29
- export declare class ActivityRepository extends BaseRepository<ActivityDTO> {
30
- constructor(dialect: IDialect);
31
- /** Find all sorted by sortOrder then name */
32
- findAllOrdered(): Promise<ActivityDTO[]>;
33
- /** Find by slug (unique) */
34
- findBySlug(slug: string): Promise<ActivityDTO | null>;
35
- /** Find active activities only */
36
- findActive(): Promise<ActivityDTO[]>;
37
- }
38
- //# sourceMappingURL=activity.repository.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"activity.repository.d.ts","sourceRoot":"","sources":["../../repositories/activity.repository.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,kBAAkB,EAAE,aAAa,GAAG,YAAY,GAAG,WAAW,GAAG,WAAW,CAAC;IAC7E,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,QAAQ,GAAG,UAAU,GAAG,aAAa,CAAC;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,kBAAmB,SAAQ,cAAc,CAAC,WAAW,CAAC;gBACrD,OAAO,EAAE,QAAQ;IAI7B,6CAA6C;IACvC,cAAc,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAI9C,4BAA4B;IACtB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAI3D,kCAAkC;IAC5B,UAAU,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;CAG3C"}
@@ -1,23 +0,0 @@
1
- // ActivityRepository
2
- // @mostajs/ticketing
3
- // Author: Dr Hamid MADANI drmdh@msn.com
4
- import { BaseRepository } from '@mostajs/orm';
5
- import { ActivitySchema } from '../schemas/activity.schema';
6
- export class ActivityRepository extends BaseRepository {
7
- constructor(dialect) {
8
- super(ActivitySchema, dialect);
9
- }
10
- /** Find all sorted by sortOrder then name */
11
- async findAllOrdered() {
12
- return this.findAll({}, { sort: { sortOrder: 1, name: 1 } });
13
- }
14
- /** Find by slug (unique) */
15
- async findBySlug(slug) {
16
- return this.findOne({ slug });
17
- }
18
- /** Find active activities only */
19
- async findActive() {
20
- return this.findAll({ status: 'active' }, { sort: { sortOrder: 1 } });
21
- }
22
- }
23
- //# sourceMappingURL=activity.repository.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"activity.repository.js","sourceRoot":"","sources":["../../repositories/activity.repository.ts"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,qBAAqB;AACrB,wCAAwC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AA+B5D,MAAM,OAAO,kBAAmB,SAAQ,cAA2B;IACjE,YAAY,OAAiB;QAC3B,KAAK,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,6CAA6C;IAC7C,KAAK,CAAC,cAAc;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,4BAA4B;IAC5B,KAAK,CAAC,UAAU,CAAC,IAAY;QAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,kCAAkC;IAClC,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IACxE,CAAC;CACF"}
@@ -1,31 +0,0 @@
1
- import { BaseRepository } from '@mostajs/orm';
2
- import type { IDialect } from '@mostajs/orm';
3
- export interface ClientAccessDTO {
4
- id: string;
5
- client: any;
6
- plan: any;
7
- activity: any;
8
- accessType: 'unlimited' | 'count' | 'temporal' | 'mixed';
9
- totalQuota: number | null;
10
- remainingQuota: number | null;
11
- startDate: string;
12
- endDate: string | null;
13
- status: 'active' | 'expired' | 'blocked' | 'depleted';
14
- createdBy: string;
15
- createdAt: string;
16
- updatedAt: string;
17
- }
18
- export declare class ClientAccessRepository extends BaseRepository<ClientAccessDTO> {
19
- constructor(dialect: IDialect);
20
- /** Find all accesses for a client with activity & plan populated */
21
- findByClient(clientId: string): Promise<ClientAccessDTO[]>;
22
- /** Find active access for a client + activity */
23
- findActiveAccess(clientId: string, activityId: string): Promise<ClientAccessDTO | null>;
24
- /** Find blocked access for a client + activity (for reactivation) */
25
- findBlockedAccess(clientId: string, activityId: string): Promise<ClientAccessDTO | null>;
26
- /** Decrement remaining quota by 1 */
27
- decrementQuota(id: string): Promise<ClientAccessDTO | null>;
28
- /** Soft-block an access */
29
- block(id: string): Promise<ClientAccessDTO | null>;
30
- }
31
- //# sourceMappingURL=client-access.repository.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client-access.repository.d.ts","sourceRoot":"","sources":["../../repositories/client-access.repository.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,GAAG,CAAC;IACZ,IAAI,EAAE,GAAG,CAAC;IACV,QAAQ,EAAE,GAAG,CAAC;IACd,UAAU,EAAE,WAAW,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;IACzD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;IACtD,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,sBAAuB,SAAQ,cAAc,CAAC,eAAe,CAAC;gBAC7D,OAAO,EAAE,QAAQ;IAI7B,oEAAoE;IAC9D,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAQhE,iDAAiD;IAC3C,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAI7F,qEAAqE;IAC/D,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAI9F,qCAAqC;IAC/B,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAIjE,2BAA2B;IACrB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;CAGzD"}
@@ -1,31 +0,0 @@
1
- // ClientAccessRepository
2
- // @mostajs/ticketing
3
- // Author: Dr Hamid MADANI drmdh@msn.com
4
- import { BaseRepository } from '@mostajs/orm';
5
- import { ClientAccessSchema } from '../schemas/client-access.schema';
6
- export class ClientAccessRepository extends BaseRepository {
7
- constructor(dialect) {
8
- super(ClientAccessSchema, dialect);
9
- }
10
- /** Find all accesses for a client with activity & plan populated */
11
- async findByClient(clientId) {
12
- return this.findWithRelations({ client: clientId }, ['activity', 'plan'], { sort: { createdAt: -1 } });
13
- }
14
- /** Find active access for a client + activity */
15
- async findActiveAccess(clientId, activityId) {
16
- return this.findOne({ client: clientId, activity: activityId, status: 'active' });
17
- }
18
- /** Find blocked access for a client + activity (for reactivation) */
19
- async findBlockedAccess(clientId, activityId) {
20
- return this.findOne({ client: clientId, activity: activityId, status: 'blocked' });
21
- }
22
- /** Decrement remaining quota by 1 */
23
- async decrementQuota(id) {
24
- return this.increment(id, 'remainingQuota', -1);
25
- }
26
- /** Soft-block an access */
27
- async block(id) {
28
- return this.update(id, { status: 'blocked' });
29
- }
30
- }
31
- //# sourceMappingURL=client-access.repository.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client-access.repository.js","sourceRoot":"","sources":["../../repositories/client-access.repository.ts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,qBAAqB;AACrB,wCAAwC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAmBrE,MAAM,OAAO,sBAAuB,SAAQ,cAA+B;IACzE,YAAY,OAAiB;QAC3B,KAAK,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,oEAAoE;IACpE,KAAK,CAAC,YAAY,CAAC,QAAgB;QACjC,OAAO,IAAI,CAAC,iBAAiB,CAC3B,EAAE,MAAM,EAAE,QAAQ,EAAE,EACpB,CAAC,UAAU,EAAE,MAAM,CAAC,EACpB,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAC5B,CAAC;IACJ,CAAC;IAED,iDAAiD;IACjD,KAAK,CAAC,gBAAgB,CAAC,QAAgB,EAAE,UAAkB;QACzD,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IACpF,CAAC;IAED,qEAAqE;IACrE,KAAK,CAAC,iBAAiB,CAAC,QAAgB,EAAE,UAAkB;QAC1D,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,qCAAqC;IACrC,KAAK,CAAC,cAAc,CAAC,EAAU;QAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,2BAA2B;IAC3B,KAAK,CAAC,KAAK,CAAC,EAAU;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAS,CAAC,CAAC;IACvD,CAAC;CACF"}
@@ -1,27 +0,0 @@
1
- import { BaseRepository } from '@mostajs/orm';
2
- import type { IDialect } from '@mostajs/orm';
3
- export interface PlanActivityDTO {
4
- activity: any;
5
- sessionsCount: number | null;
6
- }
7
- export interface SubscriptionPlanDTO {
8
- id: string;
9
- name: string;
10
- description?: string;
11
- type: 'temporal' | 'usage' | 'mixed';
12
- duration: number | null;
13
- activities: PlanActivityDTO[];
14
- price: number;
15
- currency: string;
16
- isActive: boolean;
17
- createdAt: string;
18
- updatedAt: string;
19
- }
20
- export declare class SubscriptionPlanRepository extends BaseRepository<SubscriptionPlanDTO> {
21
- constructor(dialect: IDialect);
22
- /** Find all plans, newest first */
23
- findAllWithActivities(): Promise<SubscriptionPlanDTO[]>;
24
- /** Find active plans only */
25
- findActive(): Promise<SubscriptionPlanDTO[]>;
26
- }
27
- //# sourceMappingURL=subscription-plan.repository.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"subscription-plan.repository.d.ts","sourceRoot":"","sources":["../../repositories/subscription-plan.repository.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,GAAG,CAAC;IACd,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC;IACrC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,0BAA2B,SAAQ,cAAc,CAAC,mBAAmB,CAAC;gBACrE,OAAO,EAAE,QAAQ;IAI7B,mCAAmC;IAC7B,qBAAqB,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAI7D,6BAA6B;IACvB,UAAU,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;CAGnD"}
@@ -1,19 +0,0 @@
1
- // SubscriptionPlanRepository
2
- // @mostajs/ticketing
3
- // Author: Dr Hamid MADANI drmdh@msn.com
4
- import { BaseRepository } from '@mostajs/orm';
5
- import { SubscriptionPlanSchema } from '../schemas/subscription-plan.schema';
6
- export class SubscriptionPlanRepository extends BaseRepository {
7
- constructor(dialect) {
8
- super(SubscriptionPlanSchema, dialect);
9
- }
10
- /** Find all plans, newest first */
11
- async findAllWithActivities() {
12
- return this.findAll({}, { sort: { createdAt: -1 } });
13
- }
14
- /** Find active plans only */
15
- async findActive() {
16
- return this.findAll({ isActive: true }, { sort: { createdAt: -1 } });
17
- }
18
- }
19
- //# sourceMappingURL=subscription-plan.repository.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"subscription-plan.repository.js","sourceRoot":"","sources":["../../repositories/subscription-plan.repository.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,qBAAqB;AACrB,wCAAwC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAsB7E,MAAM,OAAO,0BAA2B,SAAQ,cAAmC;IACjF,YAAY,OAAiB;QAC3B,KAAK,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,mCAAmC;IACnC,KAAK,CAAC,qBAAqB;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,6BAA6B;IAC7B,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACvE,CAAC;CACF"}
@@ -1,3 +0,0 @@
1
- import type { EntitySchema } from '@mostajs/orm';
2
- export declare const ActivitySchema: EntitySchema;
3
- //# sourceMappingURL=activity.schema.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"activity.schema.d.ts","sourceRoot":"","sources":["../../schemas/activity.schema.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,eAAO,MAAM,cAAc,EAAE,YAwC5B,CAAC"}
@@ -1,39 +0,0 @@
1
- export const ActivitySchema = {
2
- name: 'Activity',
3
- collection: 'activities',
4
- timestamps: true,
5
- fields: {
6
- name: { type: 'string', required: true },
7
- slug: { type: 'string', required: true, unique: true, lowercase: true },
8
- description: { type: 'string' },
9
- icon: { type: 'string' },
10
- color: { type: 'string' },
11
- capacity: { type: 'number' },
12
- currentOccupancy: { type: 'number', default: 0 },
13
- schedule: {
14
- type: 'array',
15
- arrayOf: {
16
- kind: 'embedded',
17
- fields: {
18
- dayOfWeek: { type: 'number', required: true },
19
- openTime: { type: 'string', required: true },
20
- closeTime: { type: 'string', required: true },
21
- isOpen: { type: 'boolean', default: true },
22
- },
23
- },
24
- },
25
- ticketValidityMode: { type: 'string', enum: ['day_reentry', 'single_use', 'time_slot', 'unlimited'], default: 'single_use' },
26
- ticketDuration: { type: 'number', default: null },
27
- price: { type: 'number', required: true, default: 0 },
28
- currency: { type: 'string', default: 'DA' },
29
- status: { type: 'string', enum: ['active', 'inactive', 'maintenance'], default: 'active' },
30
- sortOrder: { type: 'number', default: 0 },
31
- },
32
- relations: {
33
- createdBy: { target: 'User', type: 'many-to-one', nullable: true },
34
- },
35
- indexes: [
36
- { fields: { status: 'asc' } },
37
- ],
38
- };
39
- //# sourceMappingURL=activity.schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"activity.schema.js","sourceRoot":"","sources":["../../schemas/activity.schema.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,cAAc,GAAiB;IAC1C,IAAI,EAAE,UAAU;IAChB,UAAU,EAAE,YAAY;IACxB,UAAU,EAAE,IAAI;IAEhB,MAAM,EAAE;QACN,IAAI,EAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QACtD,IAAI,EAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;QACrF,WAAW,EAAS,EAAE,IAAI,EAAE,QAAQ,EAAE;QACtC,IAAI,EAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE;QACtC,KAAK,EAAe,EAAE,IAAI,EAAE,QAAQ,EAAE;QACtC,QAAQ,EAAY,EAAE,IAAI,EAAE,QAAQ,EAAE;QACtC,gBAAgB,EAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE;QAClD,QAAQ,EAAY;YAClB,IAAI,EAAE,OAAO;YACb,OAAO,EAAE;gBACP,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE;oBACN,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;oBAC7C,QAAQ,EAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;oBAC7C,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;oBAC7C,MAAM,EAAK,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;iBAC9C;aACF;SACF;QACD,kBAAkB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE;QAC5H,cAAc,EAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;QACrD,KAAK,EAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE;QAClE,QAAQ,EAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;QACrD,MAAM,EAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE;QACtG,SAAS,EAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE;KACnD;IAED,SAAS,EAAE;QACT,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE;KACnE;IAED,OAAO,EAAE;QACP,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;KAC9B;CACF,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { EntitySchema } from '@mostajs/orm';
2
- export declare const ClientAccessSchema: EntitySchema;
3
- //# sourceMappingURL=client-access.schema.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client-access.schema.d.ts","sourceRoot":"","sources":["../../schemas/client-access.schema.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,eAAO,MAAM,kBAAkB,EAAE,YA0BhC,CAAC"}
@@ -1,25 +0,0 @@
1
- export const ClientAccessSchema = {
2
- name: 'ClientAccess',
3
- collection: 'client_accesses',
4
- timestamps: true,
5
- fields: {
6
- accessType: { type: 'string', enum: ['unlimited', 'count', 'temporal', 'mixed'], required: true },
7
- totalQuota: { type: 'number', default: null },
8
- remainingQuota: { type: 'number', default: null },
9
- startDate: { type: 'date', required: true },
10
- endDate: { type: 'date', default: null },
11
- status: { type: 'string', enum: ['active', 'expired', 'blocked', 'depleted'], default: 'active' },
12
- },
13
- relations: {
14
- client: { target: 'Client', type: 'many-to-one', required: true },
15
- plan: { target: 'SubscriptionPlan', type: 'many-to-one', nullable: true },
16
- activity: { target: 'Activity', type: 'many-to-one', required: true },
17
- createdBy: { target: 'User', type: 'many-to-one', required: true },
18
- },
19
- indexes: [
20
- { fields: { client: 'asc', activity: 'asc' } },
21
- { fields: { client: 'asc', status: 'asc' } },
22
- { fields: { status: 'asc' } },
23
- ],
24
- };
25
- //# sourceMappingURL=client-access.schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client-access.schema.js","sourceRoot":"","sources":["../../schemas/client-access.schema.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,kBAAkB,GAAiB;IAC9C,IAAI,EAAE,cAAc;IACpB,UAAU,EAAE,iBAAiB;IAC7B,UAAU,EAAE,IAAI;IAEhB,MAAM,EAAE;QACN,UAAU,EAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;QACrG,UAAU,EAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;QACjD,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;QACjD,SAAS,EAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;QAChD,OAAO,EAAS,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;QAC/C,MAAM,EAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE;KAC1G;IAED,SAAS,EAAE;QACT,MAAM,EAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE;QACpE,IAAI,EAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC9E,QAAQ,EAAG,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE;QACtE,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE;KACnE;IAED,OAAO,EAAE;QACP,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;QAC9C,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;QAC5C,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;KAC9B;CACF,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { EntitySchema } from '@mostajs/orm';
2
- export declare const SubscriptionPlanSchema: EntitySchema;
3
- //# sourceMappingURL=subscription-plan.schema.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"subscription-plan.schema.d.ts","sourceRoot":"","sources":["../../schemas/subscription-plan.schema.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,eAAO,MAAM,sBAAsB,EAAE,YA8BpC,CAAC"}
@@ -1,29 +0,0 @@
1
- export const SubscriptionPlanSchema = {
2
- name: 'SubscriptionPlan',
3
- collection: 'subscription_plans',
4
- timestamps: true,
5
- fields: {
6
- name: { type: 'string', required: true },
7
- description: { type: 'string' },
8
- type: { type: 'string', enum: ['temporal', 'usage', 'mixed'], required: true },
9
- duration: { type: 'number', default: null },
10
- activities: {
11
- type: 'array',
12
- arrayOf: {
13
- kind: 'embedded',
14
- fields: {
15
- activity: { type: 'string', required: true },
16
- sessionsCount: { type: 'number', default: null },
17
- },
18
- },
19
- },
20
- price: { type: 'number', required: true },
21
- currency: { type: 'string', default: 'DA' },
22
- isActive: { type: 'boolean', default: true },
23
- },
24
- relations: {},
25
- indexes: [
26
- { fields: { isActive: 'asc' } },
27
- ],
28
- };
29
- //# sourceMappingURL=subscription-plan.schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"subscription-plan.schema.js","sourceRoot":"","sources":["../../schemas/subscription-plan.schema.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,sBAAsB,GAAiB;IAClD,IAAI,EAAE,kBAAkB;IACxB,UAAU,EAAE,oBAAoB;IAChC,UAAU,EAAE,IAAI;IAEhB,MAAM,EAAE;QACN,IAAI,EAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC/C,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC/B,IAAI,EAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;QACrF,QAAQ,EAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;QAC9C,UAAU,EAAG;YACX,IAAI,EAAE,OAAO;YACb,OAAO,EAAE;gBACP,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE;oBACN,QAAQ,EAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;oBACjD,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;iBACjD;aACF;SACF;QACD,KAAK,EAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC/C,QAAQ,EAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;QAC9C,QAAQ,EAAK,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;KAChD;IAED,SAAS,EAAE,EAAE;IAEb,OAAO,EAAE;QACP,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;KAChC;CACF,CAAC"}