mirror of
https://github.com/whekin/household-bot.git
synced 2026-03-31 12:04:02 +00:00
feat(miniapp): add admin billing settings foundation
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import type { SupportedLocale } from '@household/domain'
|
||||
import type { CurrencyCode, SupportedLocale } from '@household/domain'
|
||||
import type { ReminderTarget } from './reminders'
|
||||
|
||||
export const HOUSEHOLD_TOPIC_ROLES = ['purchase', 'feedback', 'reminders'] as const
|
||||
@@ -48,6 +48,26 @@ export interface HouseholdMemberRecord {
|
||||
isAdmin: boolean
|
||||
}
|
||||
|
||||
export interface HouseholdBillingSettingsRecord {
|
||||
householdId: string
|
||||
rentAmountMinor: bigint | null
|
||||
rentCurrency: CurrencyCode
|
||||
rentDueDay: number
|
||||
rentWarningDay: number
|
||||
utilitiesDueDay: number
|
||||
utilitiesReminderDay: number
|
||||
timezone: string
|
||||
}
|
||||
|
||||
export interface HouseholdUtilityCategoryRecord {
|
||||
id: string
|
||||
householdId: string
|
||||
slug: string
|
||||
name: string
|
||||
sortOrder: number
|
||||
isActive: boolean
|
||||
}
|
||||
|
||||
export interface RegisterTelegramHouseholdChatInput {
|
||||
householdName: string
|
||||
telegramChatId: string
|
||||
@@ -115,6 +135,27 @@ export interface HouseholdConfigurationRepository {
|
||||
telegramUserId: string
|
||||
): Promise<HouseholdMemberRecord | null>
|
||||
listHouseholdMembers(householdId: string): Promise<readonly HouseholdMemberRecord[]>
|
||||
getHouseholdBillingSettings(householdId: string): Promise<HouseholdBillingSettingsRecord>
|
||||
updateHouseholdBillingSettings(input: {
|
||||
householdId: string
|
||||
rentAmountMinor?: bigint | null
|
||||
rentCurrency?: CurrencyCode
|
||||
rentDueDay?: number
|
||||
rentWarningDay?: number
|
||||
utilitiesDueDay?: number
|
||||
utilitiesReminderDay?: number
|
||||
timezone?: string
|
||||
}): Promise<HouseholdBillingSettingsRecord>
|
||||
listHouseholdUtilityCategories(
|
||||
householdId: string
|
||||
): Promise<readonly HouseholdUtilityCategoryRecord[]>
|
||||
upsertHouseholdUtilityCategory(input: {
|
||||
householdId: string
|
||||
slug?: string
|
||||
name: string
|
||||
sortOrder: number
|
||||
isActive: boolean
|
||||
}): Promise<HouseholdUtilityCategoryRecord>
|
||||
listHouseholdMembersByTelegramUserId(
|
||||
telegramUserId: string
|
||||
): Promise<readonly HouseholdMemberRecord[]>
|
||||
@@ -133,4 +174,8 @@ export interface HouseholdConfigurationRepository {
|
||||
telegramUserId: string,
|
||||
locale: SupportedLocale
|
||||
): Promise<HouseholdMemberRecord | null>
|
||||
promoteHouseholdAdmin(
|
||||
householdId: string,
|
||||
memberId: string
|
||||
): Promise<HouseholdMemberRecord | null>
|
||||
}
|
||||
|
||||
@@ -9,12 +9,14 @@ export {
|
||||
export {
|
||||
HOUSEHOLD_TOPIC_ROLES,
|
||||
type HouseholdConfigurationRepository,
|
||||
type HouseholdBillingSettingsRecord,
|
||||
type HouseholdJoinTokenRecord,
|
||||
type HouseholdMemberRecord,
|
||||
type HouseholdPendingMemberRecord,
|
||||
type HouseholdTelegramChatRecord,
|
||||
type HouseholdTopicBindingRecord,
|
||||
type HouseholdTopicRole,
|
||||
type HouseholdUtilityCategoryRecord,
|
||||
type RegisterTelegramHouseholdChatInput,
|
||||
type RegisterTelegramHouseholdChatResult
|
||||
} from './household-config'
|
||||
|
||||
Reference in New Issue
Block a user