# `zappier/db/billing-repo` **Package:** `zappier` **Source:** `packages/zappier/src/db/billing-repo.ts` **Lines:** 69 ## What this module is Implementation module in `zappier`. The tables below are extracted from the source (signatures + JSDoc). ## Exports `BillingReportRepo`, `JobLockRepo`, `SqliteBillingReportRepo` ## Types / interfaces / classes | Kind | Name | |------|------| | interface | `BillingReportRepo` | | interface | `JobLockRepo` | | class | `SqliteBillingReportRepo` | ## Functions _No top-level functions extracted._ ## Methods (class / object) | Name | Parameters | |------|------------| | `getReportedCents` | `customerId: string, period: string` | | `upsertReportedCents` | `customerId: string, period: string, cumulativeCents: number` | | `tryAcquireLock` | `name: string, ttlMs: number` | | `releaseLock` | `name: string` | | `constructor` | `private db: Database.Database, private now: (` | | `getReportedCents` | `customerId: string, period: string` | | `upsertReportedCents` | `customerId: string, period: string, cumulativeCents: number` | | `tryAcquireLock` | `name: string, ttlMs: number` | | `releaseLock` | `name: string` | ## What it imports / requires - `better-sqlite3` ## Call graph (identifiers invoked) `getReportedCents`, `upsertReportedCents`, `tryAcquireLock`, `releaseLock`, `constructor`, `exec`, `billing_reports`, `job_locks`, `prepare`, `get`, `run`, `now` Each identifier is a call site in this file. Follow the import list to see the defining module; open that module’s MD for parameter and return types. ## Return values (how to read this) - HTTP route handlers return Express `res.json(...)` bodies (see route docs). - Zapier `perform` functions return a **single object** (creates) or an **array** (triggers/searches). - Pricing functions return integer **cents** on `Quote.totalCents`.