import { Ref } from '@typegoose/typegoose'; import { Types } from 'mongoose'; import { Business, Restaurant } from '~backend/business/business.model'; import { User } from '~backend/user/user.model'; import { Voucher } from '../marketing.model'; import { Member, Membership } from '../membership/membership.model'; import { CreditRewardJobOption } from './credit/credit-reward-job.model'; import { ExperienceRewardJobOption } from './experience/experience-reward-job.model'; import { Status, IRewardJob, IBaseSource, SourceType, IMembershipScheduledBenefitSource, IMembershipJoinBenefitSource, IMembershipJoinRewardSource, IBillRetentionVoucherSource, IBillSource, IPortalSendMemberSource, IRewardJobFailure, IRecipient, IBillCashbackSource } from './reward-job.interface'; import { VoucherRewardJobOption } from './voucher/voucher-reward-job.model'; export declare class Recipient implements IRecipient { user: Ref; member?: Ref; } export declare class RewardJobFailure implements IRewardJobFailure { message: string; stack: string; recipients: Recipient[]; } declare class BaseSource implements IBaseSource { type: SourceType; business: Ref; } export declare class MembershipScheduledBenefitSource extends BaseSource implements IMembershipScheduledBenefitSource { type: SourceType.membershipScheduledBenefit; membership: Ref; benefitId: Types.ObjectId; } export declare class MembershipJoinBenefitSource extends BaseSource implements IMembershipJoinBenefitSource { type: SourceType.membershipJoinBenefit; membership: Ref; benefitId: Types.ObjectId; } export declare class MembershipJoinRewardSource extends BaseSource implements IMembershipJoinRewardSource { type: SourceType.membershipJoinReward; membership: Ref; } export declare class BillSource extends BaseSource implements IBillSource { type: SourceType.bill; restaurant: Ref; billId: string; } export declare class BillRetentionVoucherSource extends BaseSource implements IBillRetentionVoucherSource { type: SourceType.billRetentionVoucher; restaurant: Ref; voucher: Ref; billId: string; } export declare class PortalSendMemberSource extends BaseSource implements IPortalSendMemberSource { type: SourceType.portalSendMember; voucher: Ref; sender: Ref; } export declare class BillCashbackSource extends BaseSource implements IBillCashbackSource { type: SourceType.billCashback; restaurant: Ref; billId: string; } export declare class RewardJob implements IRewardJob { _id: Types.ObjectId; get id(): any; recipients: Recipient[]; source: MembershipScheduledBenefitSource | MembershipJoinBenefitSource | MembershipJoinRewardSource | BillSource | BillRetentionVoucherSource | PortalSendMemberSource | BillCashbackSource; failures: RewardJobFailure[]; status: Status; option: VoucherRewardJobOption | CreditRewardJobOption | ExperienceRewardJobOption; distributedAt: Date; } export {};