commerce-operations.js
760 Bytes
import { BillingAction } from './action-policies.js'
/** @param {{ balance:Function, actionPolicies:{ get:Function }, dailyClaim:{ status:Function } }} billing */
export function createCommerceOperations(billing) {
async function summary({ user_id, now = new Date() }) {
const [balance, turn, daily_claim] = await Promise.all([
billing.balance({ user_id }),
billing.actionPolicies.get(BillingAction.TURN_PLAY),
billing.dailyClaim.status({ user_id, now }),
])
if (!turn.enabled) throw new Error('turn_play is disabled')
return {
points: balance.points,
playable_turns: Math.floor(balance.points / turn.points),
action_prices: { turn_play: turn.points },
daily_claim,
}
}
return { summary }
}