feat(finance): support weighted rent split

This commit is contained in:
2026-03-10 02:47:58 +04:00
parent 9c4fe5cb52
commit 6a04b9d7f5
25 changed files with 2639 additions and 11 deletions

View File

@@ -28,6 +28,7 @@ function onboardingRepository(): HouseholdConfigurationRepository {
displayName: string
preferredLocale: 'en' | 'ru' | null
householdDefaultLocale: 'en' | 'ru'
rentShareWeight: number
isAdmin: boolean
}
>()
@@ -97,6 +98,7 @@ function onboardingRepository(): HouseholdConfigurationRepository {
displayName: input.displayName,
preferredLocale: input.preferredLocale ?? null,
householdDefaultLocale: household.defaultLocale,
rentShareWeight: 1,
isAdmin: input.isAdmin === true
}
members.set(input.telegramUserId, member)
@@ -122,6 +124,7 @@ function onboardingRepository(): HouseholdConfigurationRepository {
displayName: pending.displayName,
preferredLocale: null,
householdDefaultLocale: household.defaultLocale,
rentShareWeight: 1,
isAdmin: input.isAdmin === true
}
members.set(pending.telegramUserId, member)
@@ -141,6 +144,15 @@ function onboardingRepository(): HouseholdConfigurationRepository {
}
: null
},
updateHouseholdMemberRentShareWeight: async (_householdId, memberId, rentShareWeight) => {
const member = [...members.values()].find((entry) => entry.id === memberId)
return member
? {
...member,
rentShareWeight
}
: null
},
getHouseholdBillingSettings: async (householdId) => ({
householdId,
rentAmountMinor: null,