Replace the superseded Drizzle monorepo scaffold with a single-app Prisma 7 data layer, mirroring the proven habbo-next approach to the shared Arcturus emulator DB (introspect/conform only, idempotent SQL migrations via a custom runner; never migrate-diff). - prisma/schema.prisma: User, UsersCurrency (composite PK), Ban, WebsiteSetting mapped to AtomCMS's default.sql columns; client generated to src/generated/prisma - src/lib/prisma.ts: PrismaMariaDb adapter singleton; src/env.ts zod env - src/lib/services: siteSettings (cached setting() equivalent) + CurrencyType enum - prisma/migrations + scripts/apply-migrations.ts: idempotent CMS-table runner Verified: prisma generate OK, tsc --noEmit exit 0, vitest 6/6 pass.
19 lines
454 B
TypeScript
19 lines
454 B
TypeScript
// Numeric values are dictated by the Arcturus emulator and MUST NOT change.
|
|
export enum CurrencyType {
|
|
Credits = -1,
|
|
Duckets = 0,
|
|
Diamonds = 5,
|
|
Points = 101,
|
|
}
|
|
|
|
const LABELS: Record<CurrencyType, string> = {
|
|
[CurrencyType.Credits]: "Credits",
|
|
[CurrencyType.Duckets]: "Duckets",
|
|
[CurrencyType.Diamonds]: "Diamonds",
|
|
[CurrencyType.Points]: "Points",
|
|
};
|
|
|
|
export function currencyLabel(type: CurrencyType): string {
|
|
return LABELS[type];
|
|
}
|