import { IAddress, ObjectBase } from '@tomei/general';
import { CustomerTypeEnum } from '../../enum/customer-type.enum';
import { ISyncPayload } from '../../types/sync-payload.type';

export abstract class CustomerBase extends ObjectBase {
  ObjectId: string;
  ObjectName: string;
  TableName: string;
  ObjectType = 'CustomerBase';

  abstract CustomerId: string;
  abstract Type: CustomerTypeEnum;
  abstract Email: string;
  abstract ContactNo: string;

  abstract getSyncPayload(): ISyncPayload;
  abstract getAddress(): IAddress;
  abstract getSourceSystemCode(): string;
  abstract isSynced(): boolean;
}
