import { ok, type ReadonlyDB } from "@tailor-platform/erp-kit/core"; import type { DB } from "../generated/kysely-tailordb"; export interface GetCustomerAccountInput { customerAccountId: string; } /** Includes unavailable accounts so historical documents remain readable. */ export async function run(db: ReadonlyDB, input: GetCustomerAccountInput) { const row = await db .selectFrom("CustomerAccount as account") .innerJoin("BusinessPartner as partner", "partner.id", "account.partnerId") .select([ "account.id", "account.partnerId", "account.companyId", "account.code", "account.name", "account.preferredCurrencyId", "account.status", "partner.name as partnerName", "partner.status as partnerStatus", ]) .where("account.id", "=", input.customerAccountId) .executeTakeFirst(); return ok({ account: row ? { id: row.id, partnerId: row.partnerId, companyId: row.companyId, code: row.code, accountName: row.name, partnerName: row.partnerName, preferredCurrencyId: row.preferredCurrencyId, accountStatus: row.status, partnerStatus: row.partnerStatus, } : null, }); }