import { SchemaModel } from '@verb/src/libs/shared/base/base.model'; import { HostCredentialSchema } from '@verb/src/libs/stream/host-metadata'; export class CommissionModel implements SchemaModel { public shortCode!: string; public campaignUid!: string; public transactionUid!: string; public email!: string; public createdAt!: Date; public key!: string; public constructor(schema?: CommissionSchema) { if (schema) { this.fromSchema(schema); } } public fromSchema(schema: CommissionSchema) { this.shortCode = schema.short_code; this.campaignUid = schema.campaign_uid; this.email = schema.email; this.createdAt = new Date(schema.createdAt); this.transactionUid = schema.transaction_uid; this.key = 'ambassador'; } public toSchema() { return { campaign_uid: this.campaignUid, createdAt: this.createdAt.toUTCString(), email: this.email, key: this.key, short_code: this.shortCode, transaction_uid: this.transactionUid, }; } } export interface CommissionSchema extends HostCredentialSchema { email: string; short_code: string; campaign_uid: string; transaction_uid: string; createdAt: string; }