import { markInvariantsSatisfied } from "../domain/businessPartner"; import type { BusinessPartner, PartnerAddress, PartnerBankAccount, Schema } from "../lib/types"; export const baseActivePartner = { id: "partner-2", name: "Global Supplies Inc", type: "ORGANIZATION", status: "ACTIVE", createdAt: new Date("2024-01-01T00:00:00.000Z"), updatedAt: new Date("2024-01-01T00:00:00.000Z"), } as const satisfies BusinessPartner; export const baseInactivePartner = { id: "partner-3", name: "Old Vendor Ltd", type: "ORGANIZATION", status: "INACTIVE", createdAt: new Date("2024-01-01T00:00:00.000Z"), updatedAt: new Date("2024-01-01T00:00:00.000Z"), } as const satisfies BusinessPartner; export const baseIndividualPartner = { id: "partner-4", name: "John Doe", type: "INDIVIDUAL", status: "ACTIVE", createdAt: new Date("2024-01-01T00:00:00.000Z"), updatedAt: new Date("2024-01-01T00:00:00.000Z"), } as const satisfies BusinessPartner; // PartnerAddress fixtures export const baseBillingAddress = { id: "address-1", partnerId: "partner-2", active: true, line1: "123 Main St", line2: null, city: "New York", state: "NY", postalCode: "10001", country: "US", createdAt: new Date("2024-01-01T00:00:00.000Z"), updatedAt: new Date("2024-01-01T00:00:00.000Z"), } as const satisfies PartnerAddress; export const baseShippingAddress = { id: "address-2", partnerId: "partner-2", active: true, line1: "456 Oak Ave", line2: "Suite 100", city: "Los Angeles", state: "CA", postalCode: "90001", country: "US", createdAt: new Date("2024-01-01T00:00:00.000Z"), updatedAt: new Date("2024-01-01T00:00:00.000Z"), } as const satisfies PartnerAddress; // PartnerBankAccount fixtures export const baseDefaultBankAccount = { id: "bank-1", partnerId: "partner-2", active: true, bankName: "First National Bank", accountHolderName: "Global Supplies Inc", accountNumber: "1234567890", routingNumber: "021000021", currencyId: "currency-usd", createdAt: new Date("2024-01-01T00:00:00.000Z"), updatedAt: new Date("2024-01-01T00:00:00.000Z"), } as const satisfies PartnerBankAccount; export const baseSecondBankAccount = { id: "bank-2", partnerId: "partner-2", active: true, bankName: "Deutsche Bank", accountHolderName: "Global Supplies GmbH", accountNumber: "0532013000", routingNumber: null, currencyId: "currency-eur", createdAt: new Date("2024-01-01T00:00:00.000Z"), updatedAt: new Date("2024-01-01T00:00:00.000Z"), } as const satisfies PartnerBankAccount; export const baseActivePartnerAggregate = markInvariantsSatisfied({ id: baseActivePartner.id, header: { name: baseActivePartner.name, type: baseActivePartner.type, status: baseActivePartner.status, customFields: {}, }, addresses: [ { id: baseBillingAddress.id, active: baseBillingAddress.active, line1: baseBillingAddress.line1, line2: baseBillingAddress.line2, city: baseBillingAddress.city, state: baseBillingAddress.state, postalCode: baseBillingAddress.postalCode, country: baseBillingAddress.country, createdAt: baseBillingAddress.createdAt, updatedAt: baseBillingAddress.updatedAt, customFields: {}, }, ], bankAccounts: [ { id: baseDefaultBankAccount.id, active: baseDefaultBankAccount.active, bankName: baseDefaultBankAccount.bankName, accountHolderName: baseDefaultBankAccount.accountHolderName, accountNumber: baseDefaultBankAccount.accountNumber, routingNumber: baseDefaultBankAccount.routingNumber, currencyId: baseDefaultBankAccount.currencyId, createdAt: baseDefaultBankAccount.createdAt, updatedAt: baseDefaultBankAccount.updatedAt, customFields: {}, }, ], }); export const baseInactivePartnerAggregate = markInvariantsSatisfied({ ...baseActivePartnerAggregate, id: baseInactivePartner.id, header: { ...baseActivePartnerAggregate.header, name: baseInactivePartner.name, status: "INACTIVE", }, addresses: [], bankAccounts: [], });