feat: add switchable SlipOK and Slip2Go verification
Build and Push Image / build-backend (push) Successful in 2m27s
Build and Push Image / build-frontend (push) Successful in 4m4s
Build and Push Image / push (push) Successful in 1m1s

This commit is contained in:
2026-10-15 02:17:35 +07:00 Unverified
parent c3022f4d37
commit beb0cfaf3d
12 changed files with 792 additions and 68 deletions
+5 -3
View File
@@ -1,10 +1,12 @@
import { drizzle } from "drizzle-orm/bun-sql";
import * as schema from "./schema";
import { withReplicas } from "drizzle-orm/pg-core";
import * as schema from "./schema";
export const primaryDb = drizzle(process.env.DATABASE_URL!, { schema });
export const db = process.env.REPLICA_DATABASE_URL
? withReplicas(drizzle(process.env.DATABASE_URL!, { schema }), [
? withReplicas(primaryDb, [
drizzle(process.env.REPLICA_DATABASE_URL!, { schema }),
drizzle(process.env.REPLICA_DATABASE_URL!, { schema }),
])
: drizzle(process.env.DATABASE_URL!, { schema });
: primaryDb;
+5 -1
View File
@@ -14,6 +14,7 @@ import {
} from "drizzle-orm/pg-core";
import { uuidv7 } from "uuidv7";
import type { SlipokResponse } from "@/app/(ui)/rubgram/api";
import type { SlipCheckResult } from "@/lib/slip-checker";
import { bytea } from "./custom";
export const element = pgEnum("character_element", [
@@ -77,6 +78,9 @@ export const settings = pgTable("settings", {
enka: boolean().notNull().default(true), // Turn this off when Enka is on maintenance
donatePromptpay: boolean().notNull().default(true),
donateTruemoney: boolean().notNull().default(true),
slipCheckProvider: text({ enum: ["slipok", "slip2go"] })
.notNull()
.default("slipok"),
donateGoal: numeric({ mode: "number" }),
donateGoalStarting: timestamp(),
});
@@ -194,7 +198,7 @@ export const endgameSlips = endgame.table("slips", {
slip: bytea().notNull(),
ref: text().unique().notNull(),
amount: numeric().notNull(),
data: jsonb().$type<SlipokResponse>().notNull(),
data: jsonb().$type<SlipokResponse | SlipCheckResult>().notNull(),
});
export const endgameSettings = endgame.table("settings", {