0.1.4•Updated 6 months ago
declare namespace Ledger {
interface Consumption {
id?: number
consumption_entry_id: number
source_entry_id: number
amount_deducted: number
timestamp: Date
}
namespace Consumption {
namespace Function {
interface UpdatedEntry {
id: number
remaining: number
deducted: number
}
interface ResponseSuccess {
updated_entries: UpdatedEntry[]
new_entry_id: number
new_user_balance: number
error_message: null
}
interface ResponseFailure {
updated_entries: null
new_entry_id: null
new_user_balance: null
error_message: string
}
type Response = ResponseSuccess | ResponseFailure
}
interface ConsumptionSuccessResponse {
key: string
success: true
balance: number
params: Entry
consumption_data: Omit<Function.Response, 'new_user_balance'>
}
interface ConsumptionFailureResponse {
key: string
success: false
reason: string
params: Entry
}
type ConsumptionResponse = ConsumptionSuccessResponse | ConsumptionFailureResponse
type Entry = Pick<Ledger.Entry, 'key' | 'amount' | 'source' | 'reference' | 'description' | 'request_id'>
}
}