fix: harden launch server runtime and public config
This commit is contained in:
@@ -11,6 +11,12 @@ const ENTERPRISE_VIDEO_ALLOWED_MODELS = new Set([
|
||||
"kling-3.0-dashscope",
|
||||
"kling-v3-omni-dashscope",
|
||||
"kling/kling-v3-omni-video-generation",
|
||||
"vidu-q3-turbo",
|
||||
"vidu-q3-turbo-t2v",
|
||||
"vidu-q3-turbo-i2v",
|
||||
"pixverse-c1",
|
||||
"pixverse-c1-t2v",
|
||||
"pixverse-c1-i2v",
|
||||
]);
|
||||
|
||||
function normalizeModel(value) {
|
||||
@@ -43,6 +49,8 @@ function isEnterpriseVideoModelAllowed(providerConfig, model) {
|
||||
if (protocol === "wan-animate-mix") return true;
|
||||
if (protocol === "wan-s2v") return true;
|
||||
if (protocol === "kling-dashscope") return true;
|
||||
if (protocol === "vidu") return true;
|
||||
if (protocol === "pixverse") return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -78,6 +86,14 @@ function getEnterpriseVideoCreditRate(input) {
|
||||
return resolution === "720P" ? 0.9 : 1.2;
|
||||
}
|
||||
|
||||
if (model.includes("vidu")) {
|
||||
return resolution === "720P" ? 0.6 : 1.0;
|
||||
}
|
||||
|
||||
if (model.includes("pixverse")) {
|
||||
return resolution === "720P" ? 0.6 : 1.0;
|
||||
}
|
||||
|
||||
const error = new Error(`Unsupported enterprise video model: ${input.model || input.requestedModel}`);
|
||||
error.status = 403;
|
||||
error.code = "ENTERPRISE_VIDEO_MODEL_NOT_ALLOWED";
|
||||
@@ -194,6 +210,21 @@ async function markEnterpriseVideoCreditsAccepted(clientOrPool, creditLedgerId)
|
||||
return rowCount > 0;
|
||||
}
|
||||
|
||||
async function refundEnterpriseVideoCredits(clientOrPool, billing, reason) {
|
||||
if (!billing || !billing.creditLedgerId) return false;
|
||||
const { rowCount } = await clientOrPool.query(
|
||||
"UPDATE credit_ledger SET status = 'refunded', refund_reason = $1, updated_at = NOW() WHERE id = $2 AND status = 'reserved'",
|
||||
[reason || null, billing.creditLedgerId],
|
||||
);
|
||||
if (rowCount > 0 && billing.amountCents > 0 && billing.enterpriseId) {
|
||||
await clientOrPool.query(
|
||||
"UPDATE enterprises SET balance_cents = balance_cents + $1, updated_at = NOW() WHERE id = $2",
|
||||
[billing.amountCents, billing.enterpriseId],
|
||||
);
|
||||
}
|
||||
return rowCount > 0;
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
ENTERPRISE_VIDEO_ALLOWED_MODELS,
|
||||
assertEnterpriseVideoModelAllowed,
|
||||
@@ -206,5 +237,6 @@ module.exports = {
|
||||
normalizeEnterpriseVideoDuration,
|
||||
normalizeEnterpriseVideoResolution,
|
||||
prepareEnterpriseVideoBilling,
|
||||
refundEnterpriseVideoCredits,
|
||||
reserveEnterpriseVideoCredits,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user