import { factory } from 'factory-bot' import { datatype, date, random } from 'faker' import { sample } from 'lodash' import { SubscriptionTransaction } from '../../src/models' factory.define( 'subscription_transaction', SubscriptionTransaction, { id: datatype.uuid, patient_id: datatype.uuid, installments: () => datatype.number({ min: 1, max: 12 }), amount: () => datatype.number({ min: 1, max: 1000 }), discount: () => datatype.number({ min: 1, max: 1000 }), fee: () => datatype.number({ min: 1, max: 10 }), card_number: random.alphaNumeric, status: () => sample(['success', 'failed']), subscription_id: datatype.uuid, due_at: date.future, paid_at: date.past, created_at: date.past, updated_at: date.past, data: { origin: 'SMARTFIT', }, }, SubscriptionTransaction, ) factory.extend('subscription_transaction', 'subscription_transaction:success', { status: () => 'success', }) factory.extend('subscription_transaction', 'subscription_transaction:failed', { status: () => 'failed', paid_at: () => null, }) factory.extend('subscription_transaction:success', 'subscription_transaction:refund', { amount: () => -datatype.number({ min: 1, max: 1000 }), })