export type FrameworkType = "nest.js" | "next.js" | "django"; export type ColumnType = "string" | "enum" | "number" | "array" | "object" | "date" | "time" | "boolean" | "file"; export type ColumnValidationsType = { isRequired?: boolean; isEmail?: boolean; isUrl?: boolean; isUnique?: boolean; isLatLong?: boolean; isPhoneNumber?: boolean; isDecimal?: boolean; isInteger?: boolean; isPercentage?: boolean; isUUID?: boolean; isStrongPassword?: boolean; isDate?: boolean; minLength?: number; maxLength?: number; min?: number; max?: number; enum?: string; }; export type SpecialTable = "user" | "role" | "permission" | "metadata" | "file" | "form" | "support" | "messaging" | "notification" | "logging" | "audit"; export type PredefinedSchemaType = "blog" | "e-commerce"; export type ColumnSchemaType = { [columnName: string]: { type: ColumnType; description?: string; defaultValue?: string; validations?: ColumnValidationsType; }; }; export type TableSchemaType = { [tableName: string]: ColumnSchemaType; }; export type EnumsSchemaType = { [enumName: string]: string[]; }; export type RavenConfigType = { project: { framework: FrameworkType; name: string; version: string; outDir: string; debugger: boolean; database: "postgres" | "mongo"; }; schema: { tables?: TableSchemaType; enums?: EnumsSchemaType; relations?: string[]; }; services: { mailServiceIntegration?: boolean; userNotificationsService?: boolean; dockerzieApp?: boolean; userActivityTrackerModule?: boolean; dbLoggerService?: boolean; appHealthCheckService?: boolean; dummyDataSeeder?: boolean; usersMessagingModule?: boolean; formOfFormsModule?: boolean; clientSupportModule?: boolean; }; env: { swagger: { allowedUrls: string; url: string; port: string; }; database: { host: string; port: string; user: string; password: string; name: string; }; jwt: { secret: string; }; mailer?: { email: string; password: string; provider: string; }; aws?: { accessKey: string; secretKey: string; region: string; bucketName: string; }; }; };