export const studentStatusOptions = [
  { label: '潜在', value: '0', elTagType: 'info' },
  { label: '试听', value: '1', elTagType: 'warning' },
  { label: '已报名', value: '2', elTagType: 'success' },
  { label: '结业', value: '3', elTagType: 'primary' },
  { label: '流失', value: '4', elTagType: 'danger' }
];

export const genderOptions = [
  { label: '男', value: '0', elTagType: 'primary' },
  { label: '女', value: '1', elTagType: 'danger' },
  { label: '未知', value: '2', elTagType: 'info' }
];

export const parentRelationOptions = [
  { label: '父亲', value: 'FATHER' },
  { label: '母亲', value: 'MOTHER' },
  { label: '爷爷/外公', value: 'GRANDPA' },
  { label: '奶奶/外婆', value: 'GRANDMA' },
  { label: '其他', value: 'OTHER' }
];

export interface ParentVO {
  id: number | string;
  studentId: number | string;
  relation: string;
  name: string;
  phone: string;
  wechat: string;
  email: string;
  idCard: string;
  occupation: string;
  isPrimary: string;
  receiveNotice: string;
  remark: string;
}

export interface ParentForm {
  id?: number | string;
  relation: string;
  name: string;
  phone: string;
  wechat: string;
  email: string;
  idCard: string;
  occupation: string;
  isPrimary: string;
  receiveNotice: string;
  remark: string;
}

export interface EmergencyVO {
  id: number | string;
  studentId: number | string;
  name: string;
  relation: string;
  phone: string;
  remark: string;
}

export interface EmergencyForm {
  id?: number | string;
  name: string;
  relation: string;
  phone: string;
  remark: string;
}

export const curriculumSystemOptions = [
  { label: '高考', value: 'GAOKAO' },
  { label: 'AP', value: 'AP' },
  { label: 'A-Level', value: 'A_LEVEL' },
  { label: 'DSE', value: 'DSE' },
  { label: 'IB', value: 'IB' },
  { label: '其他', value: 'OTHER' }
];

export const nationalityOptions = [
  { label: '内地', value: 'MAINLAND' },
  { label: '香港', value: 'HK' },
  { label: '澳门', value: 'MO' },
  { label: '台湾', value: 'TW' },
  { label: '其他', value: 'OTHER' }
];

export const ynOptions = [
  { label: '是', value: 'Y', elTagType: 'danger' },
  { label: '否', value: 'N', elTagType: 'info' }
];

export interface StudentVO extends BaseEntity {
  id: number | string;
  studentNo: string;
  name: string;
  englishName: string;
  gender: string;
  birthday: string;
  idCard: string;
  phone: string;
  wechat: string;
  email: string;
  school: string;
  grade: string;
  targetSchool: string;
  subjects: string;
  examLanguage: string;
  examIdentity: string;
  nationality: string;
  examLocation: string;
  curriculumSystem: string;
  selectedSubjects: string;
  hasHealthCondition: string;
  healthConditionNote: string;
  needPoliticalReview: string;
  applicationPlan: string;
  academicTestScore: string;
  personalExperience: string;
  englishScore: string;
  listeningScore: string;
  address: string;
  avatar: string;
  source: string;
  level: string;
  intentLevel: string;
  targetRegion: string;
  admissionPathway: string;
  targetMajor: string;
  targetMajorReason: string;
  firstVisitAt: string;
  enrollAt: string;
  tags: string;
  status: string;
  remark: string;
  specialRemark: string;
  parents: ParentVO[];
  emergencies: EmergencyVO[];
}

export interface StudentForm {
  id: number | string | undefined;
  studentNo: string;
  name: string;
  englishName: string;
  gender: string;
  birthday: string;
  idCard: string;
  phone: string;
  wechat: string;
  email: string;
  school: string;
  grade: string;
  targetSchool: string;
  subjects: string;
  examLanguage: string;
  examIdentity: string;
  nationality: string;
  examLocation: string;
  curriculumSystem: string;
  selectedSubjects: string;
  hasHealthCondition: string;
  healthConditionNote: string;
  needPoliticalReview: string;
  applicationPlan: string;
  academicTestScore: string;
  personalExperience: string;
  englishScore: string;
  listeningScore: string;
  address: string;
  avatar: string;
  source: string;
  level: string;
  intentLevel: string;
  targetRegion: string;
  admissionPathway: string;
  targetMajor: string;
  targetMajorReason: string;
  tags: string;
  status: string;
  remark: string;
  specialRemark: string;
  parents: ParentForm[];
  emergencies: EmergencyForm[];
}

export interface StudentQuery extends PageQuery {
  studentNo: string;
  name: string;
  phone: string;
  gender: string;
  grade: string;
  school: string;
  status: string;
  level: string;
  intentLevel: string;
  source: string;
}
