From f0c5d7252385201748e558cdd0cb95629cf3abec Mon Sep 17 00:00:00 2001 From: root Date: Tue, 26 May 2026 23:57:14 -0400 Subject: [PATCH] fix tests and docker-compose --- apps/api/src/lib/prisma.ts | 2 +- docker-compose.production.yml | 4 +- packages/database/package.json | 8 +++- packages/database/src/client.d.ts | 2 + packages/database/src/client.js | 9 ++++ packages/database/src/index.d.ts | 74 +++++++++++++++++++++++++++++++ packages/database/src/index.js | 4 -- packages/database/src/index.ts | 5 --- 8 files changed, 94 insertions(+), 14 deletions(-) create mode 100644 packages/database/src/client.d.ts create mode 100644 packages/database/src/client.js create mode 100644 packages/database/src/index.d.ts diff --git a/apps/api/src/lib/prisma.ts b/apps/api/src/lib/prisma.ts index 33b1be2..9afc896 100644 --- a/apps/api/src/lib/prisma.ts +++ b/apps/api/src/lib/prisma.ts @@ -1,4 +1,4 @@ -import { PrismaClient } from '@rentaldrivego/database' +import { PrismaClient } from '@rentaldrivego/database/client' const globalForPrisma = global as unknown as { prisma: PrismaClient } diff --git a/docker-compose.production.yml b/docker-compose.production.yml index 3e13dea..e6f0a00 100644 --- a/docker-compose.production.yml +++ b/docker-compose.production.yml @@ -117,7 +117,7 @@ services: NEXT_PUBLIC_DASHBOARD_URL: ${NEXT_PUBLIC_DASHBOARD_URL} NEXT_PUBLIC_ADMIN_URL: ${NEXT_PUBLIC_ADMIN_URL} healthcheck: - test: ["CMD-SHELL", "node -e \"require('http').get('http://localhost:3001/', (r) => process.exit(r.statusCode < 400 ? 0 : 1)).on('error', () => process.exit(1))\""] + test: ["CMD-SHELL", "node -e \"require('http').get('http://localhost:3001/dashboard', (r) => process.exit(r.statusCode < 400 ? 0 : 1)).on('error', () => process.exit(1))\""] interval: 15s timeout: 10s retries: 5 @@ -152,7 +152,7 @@ services: NEXT_PUBLIC_DASHBOARD_URL: ${NEXT_PUBLIC_DASHBOARD_URL} NEXT_PUBLIC_ADMIN_URL: ${NEXT_PUBLIC_ADMIN_URL} healthcheck: - test: ["CMD-SHELL", "node -e \"require('http').get('http://localhost:3002/', (r) => process.exit(r.statusCode < 400 ? 0 : 1)).on('error', () => process.exit(1))\""] + test: ["CMD-SHELL", "node -e \"require('http').get('http://localhost:3002/admin', (r) => process.exit(r.statusCode < 400 ? 0 : 1)).on('error', () => process.exit(1))\""] interval: 15s timeout: 10s retries: 5 diff --git a/packages/database/package.json b/packages/database/package.json index 09fd865..ba0e836 100644 --- a/packages/database/package.json +++ b/packages/database/package.json @@ -22,11 +22,15 @@ "@types/bcryptjs": "^2.4.6" }, "main": "./src/index.js", - "types": "./src/index.ts", + "types": "./src/index.d.ts", "exports": { ".": { - "types": "./src/index.ts", + "types": "./src/index.d.ts", "default": "./src/index.js" + }, + "./client": { + "types": "./src/client.d.ts", + "default": "./src/client.js" } } } diff --git a/packages/database/src/client.d.ts b/packages/database/src/client.d.ts new file mode 100644 index 0000000..f934583 --- /dev/null +++ b/packages/database/src/client.d.ts @@ -0,0 +1,2 @@ +export { PrismaClient } from '../generated' +export declare function ensureDatabaseUrl(env?: NodeJS.ProcessEnv): string | undefined diff --git a/packages/database/src/client.js b/packages/database/src/client.js new file mode 100644 index 0000000..98a1eee --- /dev/null +++ b/packages/database/src/client.js @@ -0,0 +1,9 @@ +const { ensureDatabaseUrl } = require('./runtime-config') +const { PrismaClient } = require('../generated') + +ensureDatabaseUrl() + +module.exports = { + PrismaClient, + ensureDatabaseUrl, +} diff --git a/packages/database/src/index.d.ts b/packages/database/src/index.d.ts new file mode 100644 index 0000000..71a16c3 --- /dev/null +++ b/packages/database/src/index.d.ts @@ -0,0 +1,74 @@ +export declare function ensureDatabaseUrl(env?: NodeJS.ProcessEnv): string | undefined + +export type AdminRole = 'SUPER_ADMIN' | 'ADMIN' | 'SUPPORT' | 'FINANCE' | 'VIEWER' +export type EmployeeRole = 'OWNER' | 'MANAGER' | 'AGENT' +export type LicenseStatus = 'PENDING' | 'VALID' | 'EXPIRING' | 'APPROVED' | 'DENIED' | 'EXPIRED' +export type NotificationType = + | 'ACCOUNT_CREATED' + | 'NEW_BOOKING' + | 'BOOKING_CANCELLED' + | 'PAYMENT_RECEIVED' + | 'PAYMENT_FAILED' + | 'SUBSCRIPTION_TRIAL_ENDING' + | 'SUBSCRIPTION_SUSPENDED' + | 'VEHICLE_MAINTENANCE_DUE' + | 'OFFER_EXPIRING' + | 'NEW_REVIEW_RECEIVED' + | 'BOOKING_CONFIRMED' + | 'PICKUP_REMINDER_24H' + | 'PICKUP_REMINDER_2H' + | 'VEHICLE_READY' + | 'RETURN_REMINDER' + | 'BOOKING_CANCELLED_BY_COMPANY' + | 'REFUND_PROCESSED' + | 'NEW_OFFER_FROM_SAVED_COMPANY' + | 'REVIEW_REQUEST' + +export type NotificationChannel = 'EMAIL' | 'SMS' | 'WHATSAPP' | 'IN_APP' | 'PUSH' + +export interface Company { + id: string + name: string + slug: string + email: string + phone: string | null + status: string + apiKey: string +} + +export interface Employee { + id: string + companyId: string + clerkUserId: string + firstName: string + lastName: string + email: string + phone: string | null + role: EmployeeRole + isActive: boolean + company?: Company +} + +export interface AdminUser { + id: string + email: string + firstName: string + lastName: string + role: AdminRole + isActive: boolean + totpEnabled?: boolean + totpSecret?: string | null +} + +export interface InsurancePolicy { + id: string + companyId: string + name: string + description?: string | null + type: string + chargeType: 'PER_DAY' | 'PER_RENTAL' | 'PERCENTAGE_OF_RENTAL' + chargeValue: number + isRequired: boolean + isActive: boolean + sortOrder: number +} diff --git a/packages/database/src/index.js b/packages/database/src/index.js index 98a1eee..d2cc628 100644 --- a/packages/database/src/index.js +++ b/packages/database/src/index.js @@ -1,9 +1,5 @@ const { ensureDatabaseUrl } = require('./runtime-config') -const { PrismaClient } = require('../generated') - -ensureDatabaseUrl() module.exports = { - PrismaClient, ensureDatabaseUrl, } diff --git a/packages/database/src/index.ts b/packages/database/src/index.ts index 81d60a4..8f8b14d 100644 --- a/packages/database/src/index.ts +++ b/packages/database/src/index.ts @@ -1,8 +1,3 @@ -import { ensureDatabaseUrl } from './runtime-config' - -ensureDatabaseUrl() - -export { PrismaClient } from '../generated' export { ensureDatabaseUrl } from './runtime-config' export type AdminRole = 'SUPER_ADMIN' | 'ADMIN' | 'SUPPORT' | 'FINANCE' | 'VIEWER'