Files
carmanagement/packages/database/src/index.ts
T
2026-05-17 00:35:35 -04:00

79 lines
1.8 KiB
TypeScript

import { ensureDatabaseUrl } from './runtime-config'
ensureDatabaseUrl()
export { PrismaClient } from '../generated'
export { ensureDatabaseUrl } from './runtime-config'
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 =
| '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
}