feat(miniapp): add household general settings

This commit is contained in:
2026-03-12 11:30:11 +04:00
parent 8160f644cc
commit 4c19ee798d
14 changed files with 268 additions and 43 deletions

View File

@@ -5,6 +5,7 @@ export interface MiniAppSession {
member?: {
id: string
householdId: string
householdName: string
displayName: string
status: 'active' | 'away' | 'left'
isAdmin: boolean
@@ -138,6 +139,7 @@ export interface MiniAppDashboard {
}
export interface MiniAppAdminSettingsPayload {
householdName: string
settings: MiniAppBillingSettings
assistantConfig: MiniAppAssistantConfig
topics: readonly MiniAppTopicBinding[]
@@ -386,6 +388,7 @@ export async function fetchMiniAppAdminSettings(
const payload = (await response.json()) as {
ok: boolean
authorized?: boolean
householdName?: string
settings?: MiniAppBillingSettings
assistantConfig?: MiniAppAssistantConfig
topics?: MiniAppTopicBinding[]
@@ -398,6 +401,7 @@ export async function fetchMiniAppAdminSettings(
if (
!response.ok ||
!payload.authorized ||
!payload.householdName ||
!payload.settings ||
!payload.assistantConfig ||
!payload.topics ||
@@ -409,6 +413,7 @@ export async function fetchMiniAppAdminSettings(
}
return {
householdName: payload.householdName,
settings: payload.settings,
assistantConfig: payload.assistantConfig,
topics: payload.topics,
@@ -423,6 +428,7 @@ export async function updateMiniAppBillingSettings(
input: {
settlementCurrency?: 'USD' | 'GEL'
paymentBalanceAdjustmentPolicy?: 'utilities' | 'rent' | 'separate'
householdName?: string
rentAmountMajor?: string
rentCurrency: 'USD' | 'GEL'
rentDueDay: number
@@ -434,6 +440,7 @@ export async function updateMiniAppBillingSettings(
assistantTone?: string
}
): Promise<{
householdName: string
settings: MiniAppBillingSettings
assistantConfig: MiniAppAssistantConfig
}> {
@@ -451,16 +458,24 @@ export async function updateMiniAppBillingSettings(
const payload = (await response.json()) as {
ok: boolean
authorized?: boolean
householdName?: string
settings?: MiniAppBillingSettings
assistantConfig?: MiniAppAssistantConfig
error?: string
}
if (!response.ok || !payload.authorized || !payload.settings || !payload.assistantConfig) {
if (
!response.ok ||
!payload.authorized ||
!payload.householdName ||
!payload.settings ||
!payload.assistantConfig
) {
throw new Error(payload.error ?? 'Failed to update billing settings')
}
return {
householdName: payload.householdName,
settings: payload.settings,
assistantConfig: payload.assistantConfig
}