feat(payments): add transparent balance guidance

This commit is contained in:
2026-03-11 14:52:09 +04:00
parent 8401688032
commit 79f96ba45b
25 changed files with 3855 additions and 93 deletions

View File

@@ -50,6 +50,7 @@ async function readApprovalPayload(request: Request): Promise<{
async function readSettingsUpdatePayload(request: Request): Promise<{
initData: string
settlementCurrency?: string
paymentBalanceAdjustmentPolicy?: string
rentAmountMajor?: string
rentCurrency?: string
rentDueDay: number
@@ -67,6 +68,7 @@ async function readSettingsUpdatePayload(request: Request): Promise<{
const text = await clonedRequest.text()
let parsed: {
settlementCurrency?: string
paymentBalanceAdjustmentPolicy?: string
rentAmountMajor?: string
rentCurrency?: string
rentDueDay?: number
@@ -103,6 +105,11 @@ async function readSettingsUpdatePayload(request: Request): Promise<{
settlementCurrency: parsed.settlementCurrency
}
: {}),
...(typeof parsed.paymentBalanceAdjustmentPolicy === 'string'
? {
paymentBalanceAdjustmentPolicy: parsed.paymentBalanceAdjustmentPolicy
}
: {}),
...(typeof parsed.rentCurrency === 'string'
? {
rentCurrency: parsed.rentCurrency
@@ -299,6 +306,7 @@ function serializeBillingSettings(settings: HouseholdBillingSettingsRecord) {
return {
householdId: settings.householdId,
settlementCurrency: settings.settlementCurrency,
paymentBalanceAdjustmentPolicy: settings.paymentBalanceAdjustmentPolicy ?? 'utilities',
rentAmountMinor: settings.rentAmountMinor?.toString() ?? null,
rentCurrency: settings.rentCurrency,
rentDueDay: settings.rentDueDay,
@@ -555,6 +563,11 @@ export function createMiniAppUpdateSettingsHandler(options: {
settlementCurrency: payload.settlementCurrency
}
: {}),
...(payload.paymentBalanceAdjustmentPolicy
? {
paymentBalanceAdjustmentPolicy: payload.paymentBalanceAdjustmentPolicy
}
: {}),
...(payload.rentAmountMajor !== undefined
? {
rentAmountMajor: payload.rentAmountMajor