import { generateName } from "@/utils/name-generator"; import { generatePassword } from "@/utils/password-generator"; export interface IDatabaseProvider { id: string; display: string; image: { alt: string; src: string; }; versions?: IDatabaseProviderVersion[]; } export interface IDatabaseProviderVersion { id: string; display: string; } export interface IDatabaseSpecs { id: string; cpu: number; memory?: number; storage?: number; maxConnections?: number; } export interface IDatabaseConfiguration { workspaceId: string; name: string; provider: IDatabaseProvider; user: { username: string; password: string; }; specs: IDatabaseSpecs; } export function defaultDatabaseConfiguration(workspaceId: string): IDatabaseConfiguration { return { workspaceId, name: generateName().toLowerCase(), provider: databaseProviders[0], user: { username: "deployadmin", password: generatePassword({ length: 20, numberOfDigits: 4, numberOfSpecialCharacters: 4 }), }, specs: { cpu: 0, memory: 0, storage: 0, }, }; } export const databaseProviders: IDatabaseProvider[] = [ { id: 'vitess', display: 'Vitess', image: { alt: 'Vitess', src: '/vitess.png', }, }, { id: 'redis', display: 'Redis', image: { alt: 'Redis', src: '/redis.svg', }, }, { id: 'postgres', display: 'Postgres', image: { alt: 'Postgres', src: '/postgres.png', }, }, ];