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

@@ -100,6 +100,7 @@ function createRepositoryStub() {
displayName: input.displayName,
preferredLocale: input.preferredLocale ?? null,
householdDefaultLocale: household.defaultLocale,
rentShareWeight: 1,
isAdmin: input.isAdmin === true
}
members.set(input.telegramUserId, member)
@@ -133,6 +134,7 @@ function createRepositoryStub() {
displayName: pending.displayName,
preferredLocale: null,
householdDefaultLocale: household.defaultLocale,
rentShareWeight: 1,
isAdmin: input.isAdmin === true
}
},
@@ -190,6 +192,9 @@ function createRepositoryStub() {
},
async promoteHouseholdAdmin() {
return null
},
async updateHouseholdMemberRentShareWeight() {
return null
}
}
@@ -319,6 +324,7 @@ describe('createHouseholdOnboardingService', () => {
displayName: 'Stan',
preferredLocale: null,
householdDefaultLocale: 'ru',
rentShareWeight: 1,
isAdmin: true
}
})
@@ -333,13 +339,14 @@ describe('createHouseholdOnboardingService', () => {
displayName: 'Stan',
preferredLocale: null,
householdDefaultLocale: 'ru',
rentShareWeight: 1,
isAdmin: true
}
const service = createHouseholdOnboardingService({ repository })
const duplicateRepository = repository as HouseholdConfigurationRepository & {
listHouseholdMembersByTelegramUserId: (
telegramUserId: string
) => Promise<readonly HouseholdMemberRecord[]>
) => Promise<readonly (HouseholdMemberRecord & { rentShareWeight: number })[]>
}
duplicateRepository.listHouseholdMembersByTelegramUserId = async () => [
member,
@@ -350,6 +357,7 @@ describe('createHouseholdOnboardingService', () => {
displayName: 'Stan elsewhere',
preferredLocale: null,
householdDefaultLocale: 'ru',
rentShareWeight: 1,
isAdmin: false
}
]