import { magnetar } from './magnetar' export type PaymentState = 'default' | 'request' export type InvoiceState = | 'beforeBilled' | 'billed' | 'billingDemanded' | 'completion' | 'partialDeposit' export type Payment = { id: string companyId: string name: string paymentDate?: string state?: PaymentState } export type Invoice = { id: string companyId: string name: string invoiceDate?: string state?: InvoiceState } export const dbPayments = magnetar.collection('payments') export const dbInvoices = magnetar.collection('invoices') export function defaultsPayment(payload?: Partial): Payment { return { id: '', companyId: '', name: '', ...payload } } export function defaultsInvoice(payload?: Partial): Invoice { return { id: '', companyId: '', name: '', ...payload } } // バラバラな例のデータ const paymentExamples: Payment[] = [ { id: '211220000100000-wNmcU4C1UOUjzyI7gSjE', companyId: 'wNmcU4C1UOUjzyI7gSjE', name: 'p3', paymentDate: '2021/12/19', state: 'default', }, { id: '211220000002000-wNmcU4C1UOUjzyI7gSjE', companyId: 'wNmcU4C1UOUjzyI7gSjE', name: 'p4', paymentDate: '2021/12/20', state: 'default', }, { id: '211220003000000-wNmcU4C1UOUjzyI7gSjE-1', companyId: 'wNmcU4C1UOUjzyI7gSjE', name: 'p5', paymentDate: '2021/12/20', state: 'request', }, { id: '211220000000000-wNmcU4C1UOUjzyI7gSjE-2', companyId: 'wNmcU4C1UOUjzyI7gSjE', name: 'p6', paymentDate: '2021/12/20', state: 'default', }, { id: '2112010000000040-wNmcU4C1UOUjzyI7gSjE', companyId: 'wNmcU4C1UOUjzyI7gSjE', name: 'p1', paymentDate: '2021/12/01', state: 'request', }, { id: '2112010000000600-wNmcU4C1UOUjzyI7gSjE-1', companyId: 'wNmcU4C1UOUjzyI7gSjE', name: 'p2', paymentDate: '2021/12/01', state: 'default', }, { id: '2112200000700000-wNmcU4C1UOUjzyI7gSjE-1', companyId: 'wNmcU4C1UOUjzyI7gSjE', name: 'p8', paymentDate: '2021/12/25', state: 'request', }, { id: '2112200000080000-wNmcU4C1UOUjzyI7gSjE', companyId: 'wNmcU4C1UOUjzyI7gSjE', name: 'p9', paymentDate: '2021/12/31', state: 'request', }, { id: '2112200000009000-wNmcU4C1UOUjzyI7gSjE-1', companyId: 'wNmcU4C1UOUjzyI7gSjE', name: 'p10', paymentDate: '2021/12/31', state: 'request', }, { id: '2112200000000100-wNmcU4C1UOUjzyI7gSjE', companyId: 'wNmcU4C1UOUjzyI7gSjE', name: 'p7', paymentDate: '2021/12/25', state: 'request', }, ] const invoiceExamples: Invoice[] = [ { id: '2112200000000001-wNmcU4C1UOUjzyI7gSjE', companyId: 'wNmcU4C1UOUjzyI7gSjE', name: 'i6', invoiceDate: '2021/12/20', state: 'beforeBilled', }, { id: '2112200000000002-wNmcU4C1UOUjzyI7gSjE-1', companyId: 'wNmcU4C1UOUjzyI7gSjE', name: 'i7', invoiceDate: '2021/12/20', state: 'billed', }, { id: '2112200000000003-wNmcU4C1UOUjzyI7gSjE-2', companyId: 'wNmcU4C1UOUjzyI7gSjE', name: 'i8', invoiceDate: '2021/12/20', state: 'billingDemanded', }, { id: '2112200000000004-wNmcU4C1UOUjzyI7gSjE-3', companyId: 'wNmcU4C1UOUjzyI7gSjE', name: 'i9', invoiceDate: '2021/12/20', state: 'completion', }, { id: '2112200000000005-wNmcU4C1UOUjzyI7gSjE-4', companyId: 'wNmcU4C1UOUjzyI7gSjE', name: 'i10', invoiceDate: '2021/12/20', state: 'partialDeposit', }, ///// { id: '2112010000000006-wNmcU4C1UOUjzyI7gSjE', companyId: 'wNmcU4C1UOUjzyI7gSjE', name: 'i1', invoiceDate: '2021/12/01', state: 'beforeBilled', }, { id: '2112010000000007-wNmcU4C1UOUjzyI7gSjE-1', companyId: 'wNmcU4C1UOUjzyI7gSjE', name: 'i2', invoiceDate: '2021/12/01', state: 'billed', }, { id: '2112010000000008-wNmcU4C1UOUjzyI7gSjE-2', companyId: 'wNmcU4C1UOUjzyI7gSjE', name: 'i3', invoiceDate: '2021/12/01', state: 'billingDemanded', }, { id: '2112010000000009-wNmcU4C1UOUjzyI7gSjE-3', companyId: 'wNmcU4C1UOUjzyI7gSjE', name: 'i4', invoiceDate: '2021/12/01', state: 'completion', }, { id: '21120100000000010-wNmcU4C1UOUjzyI7gSjE-4', companyId: 'wNmcU4C1UOUjzyI7gSjE', name: 'i5', invoiceDate: '2021/12/01', state: 'partialDeposit', }, ///// { id: '21122500000000011-wNmcU4C1UOUjzyI7gSjE', companyId: 'wNmcU4C1UOUjzyI7gSjE', name: 'i11', invoiceDate: '2021/12/25', state: 'beforeBilled', }, { id: '21122500000000012-wNmcU4C1UOUjzyI7gSjE-1', companyId: 'wNmcU4C1UOUjzyI7gSjE', name: 'i12', invoiceDate: '2021/12/25', state: 'billed', }, { id: '21122500000000013-wNmcU4C1UOUjzyI7gSjE-2', companyId: 'wNmcU4C1UOUjzyI7gSjE', name: 'i13', invoiceDate: '2021/12/25', state: 'billingDemanded', }, { id: '21122500000000014-wNmcU4C1UOUjzyI7gSjE-3', companyId: 'wNmcU4C1UOUjzyI7gSjE', name: 'i14', invoiceDate: '2021/12/25', state: 'completion', }, { id: '21122500000000015-wNmcU4C1UOUjzyI7gSjE-4', companyId: 'wNmcU4C1UOUjzyI7gSjE', name: 'i15', invoiceDate: '2021/12/25', state: 'partialDeposit', }, ] // @ts-ignore window.dbPayments = dbPayments // @ts-ignore window.dbInvoices = dbInvoices console.log(`paymentExamples.length → `, paymentExamples.length) console.log(`invoiceExamples.length → `, invoiceExamples.length) ;(async () => { await new Promise((resolve) => setTimeout(resolve, 500)) // insert initial records paymentExamples.forEach((payment) => { dbPayments.insert(payment) }) invoiceExamples.forEach((invoice) => { dbInvoices.insert(invoice) }) console.log(`dbPayments.data.size → `, dbPayments.data.size) console.log(`dbInvoices.data.size → `, dbInvoices.data.size) })()