import { addDays, subMonths } from 'date-fns' import { factory } from 'factory-bot' import { datatype, date } from 'faker' import { Addon } from '../../src/services/smartfit/models' factory.define( 'addon', Addon, { id: () => datatype.uuid(), addonId: () => datatype.uuid(), purchaseId: () => datatype.uuid(), createdAt: () => subMonths(new Date(), 1), updatedAt: () => subMonths(new Date(), 1), expiresAt: () => date.future(), cancelledAt: () => null, freeDaysExpiredAt: () => subMonths(new Date(), 1), originalPrice: () => datatype.number(), origin: () => 'equipment', subscribeLocationId: () => datatype.uuid(), freeDays: () => datatype.number(), }, Addon, ) factory.extend('addon', 'addon:active', { expiresAt: null, freeDaysExpiredAt: null, }) factory.extend('addon:active', 'addon:cancelled', { expiresAt: date.past(1), }) factory.extend('addon:active', 'addon:in_cancellation', { expiresAt: addDays(new Date(), 10), }) factory.extend('addon:active', 'addon:trial', { freeDaysExpiredAt: date.future(1), }) factory.extend('addon:in_cancellation', 'addon:trial_expired', { freeDaysExpiredAt: date.past(1), }) export { factory }