保誠-保戶業務員媒合平台
wayne
2022-02-17 34b08e1c461f5e08675fcff95525956d7c4bef11
PAMapp/shared/models/appointment.model.ts
@@ -1,58 +1,187 @@
import { ContactStatus } from "./enum/contact-status";
import { SatisfactionType } from "./enum/satisfaction-type";
export interface AppointmentLog {
    id              : number,
    createdDate     : Date,
    lastModifiedDate: Date,
    customerId      : number,
    agentNo         : string,
    status          : 'UNFILLED' | 'FILLED',
    score           : number,
    agentName       : string,
    customerName    : string,
  id              : number;
  createdDate     : string;
  lastModifiedDate: string;
  customerId      : number;
  agentNo         : string;
  status          : 'UNFILLED' | 'FILLED';
  score           : number;
  appointmentId   : number;
  customerName    : string;
  agentName       : string;
  type            : SatisfactionType;
}
export interface Appointment {
  id                 : number;
  phone?             : string;
  email?             : string;
  contactType        : string;
  gender             : string;
  age                : string;
  job                : string;
  requirement        : string;
  communicateStatus  : string;
  hopeContactTime    : string;
  otherRequirement?  : string;
  appointmentDate    : string;
  lastModifiedDate   : string;
  agentNo            : string;
  customerId         : number;
  name               : string;
  consultantViewTime?: string;
  consultantReadTime?: string;
  satisfactionScore? : number;
  age                  : string;
  agentNo              : string;
  appointmentClosedInfo: AppointmentClosedInfo;
  appointmentDate      : string;
  appointmentMemoList  : AppointmentMemoInfo[]
  appointmentNoticeLogs: NoticeLogs[];
  communicateStatus    : ContactStatus;
  consultantReadTime   : string;
  consultantViewTime   : string;
  contactTime          : string;
  contactType          : string;
  customerId           : number;
  email                : string;
  gender               : string;
  hopeContactTime      : string;
  id                   : number;
  interviewRecordDTOs  : InterviewRecord[];
  job                  : string;
  lastModifiedDate     : string;
  name                 : string;
  otherRequirement     : string;
  phone                : string;
  requirement          : string;
  satisfactionScore    : number;
};
export interface AppointmentClosedInfo {
  appointmentId         : number;
  closedOtherReason     : string;
  closedReason          : string;
  id                    : number;
  planCode              : string;
  policyEntryDate       : string;
  policyholderIdentityId: string;
  remark                : string;
}
export interface AppointmentMemoInfo {
  appointmentId: number;
  content      : string;
  id           : number;
}
export interface InterviewRecord {
  appointmentId   : number;
  content         : string;
  createdBy       : string;
  createdDate     : string;
  id              : number;
  interviewDate   : string;
  lastModifiedBy  : string;
  lastModifiedDate: string;
}
export interface NoticeLogs {
  appointmentId: number,
  content      : string,
  createdDate  : string
  email        : string,
  id           : number,
  phone        : string,
}
export interface AppointmentWithConsultantInfo extends Appointment {
  consultantName      : string;
  consultantAvatar    : string;
  consultantExpertList: string[]
  updateTime          : Date | string;
  consultantExpertList: string[];
  consultantName      : string;
  contactStatus       : string;
  updateTime          : string;
}
export interface AppointmentDetail {
  id               : number;
  phone            : string;
  email            : string;
  contactType      : string;
  gender           : string;
  age              : string;
  job              : string;
  requirement      : string;
  communicateStatus: string;
  hopeContactTime  : string;
  otherRequirement : string;
  appointmentDate  : string;
  agentNo          : string;
  customerId       : number;
  name             : string;
export interface AppointmentParams {
  age            : string;
  agentNo        : string;
  contactType    : string;
  email          : string;
  gender         : string;
  hopeContactTime: string;
  job            : string;
  phone          : string;
  requirement    : string;
}
export interface EditAppointmentParams {
  age             : string;
  contactType     : string;
  email           : string;
  gender          : string;
  hopeContactTime : string;
  id              : number;
  job             : string;
  otherRequirement: null;
  phone           : string;
  requirement     : string;
}
export interface AppointmentRequests {
  age            : string;
  agentNo        : string;
  contactType    : string;
  email          : string;
  name           : string;
  gender         : string;
  hopeContactTime: ContactTime[];
  job            : string;
  phone          : string;
  requirement    : string[];
}
export interface ContactTime {
  selectTimesOptions: string[];
  selectWeekOptions : string[];
}
export interface createdMemoInfo {
  appointmentId: number;
  content      : string;
}
export interface updatedMemoInfo {
  content: string;
  id     : number;
}
export interface ToDoneAppointment {
    appointmentId         : number;
    contactStatus         : ContactStatus;
    planCode              : string;
    policyEntryDate       : string;
    policyholderIdentityId: string;
    remark?               : string;
}
export interface ToCloseAppointment {
  appointmentId    : number;
  closedOtherReason: string;
  closedReason     : string;
  contactStatus    : ContactStatus;
  remark?          : string;
}
export interface NoticeLogs {
  appointmentId: number;
  content      : string;
  createdDate  : string;
  email        : string;
  id           : number;
  interviewDate: string;
  phone        : string;
}
export interface ToInformAppointment {
  appointmentId: number;
  email        : string;
  interviewDate: string;
  message      : string;
  phone        : string;
}
export interface InterviewRecordInfo {
  content: string;
  interviewDate: string;
  appointmentId: number;
}
export interface UpdateInterviewRecordInfo {
  /** interviewRecord id */
  id: number;
}