import { Entity } from ".";

/**
 * 职业项接口
 */
export interface CareerItem {
  id: number;
  name: string;
  type: string;
  level: number;
  code: string;
  childCount: number;
  children: CareerItem[];
  learnYearArab: string;
  grandchildCount: number;
}

/**
 * 职业树查询参数
 */
export interface CareerTreeQueryDTO {
  name?: string;
  level?: number;
}

/**
 * 职业详情接口
 */
export interface CareerOverview extends Entity {
  code: string;
  description: string;
  hits: string;
  jobs: {
    code: string;
    name: string;
    hits: string;
  }[];
  level: number;
  levelName: string;
  levels: {
    code: string;
    name: string;
  }[];
  postJobs: {
    name: string;
    hotCity: string;
    salaryMax: number;
    salaryMin: number;
    hotIndustry: string;
  }[];
  postMajors: {
    code: string;
    femaleRatio: number;
    learnYear: string;
    maleRatio: number;
    mfRatioView: string;
    name: string;
  }[];
  status: number;
  summary: string;
  tags: string[];
}
export interface CareerJob extends Entity {
  code: string;
  salaryMax: string;
  salaryMin: string;
  salaryUnit: string;
}

export interface CareerJobSalary {
  city: string;
  salary: number;
  sample: number;
}

export interface CareerJobExperience {
  year: string;
  salary: number;
  sampleCount: number;
}

export interface CareerJobEdu {
  edu: string;
  ratio: number;
}

export interface CareerJobExp {
  exp: string;
  ratio: number;
}
export interface CareerJobDetail extends Entity {
  citySalary: CareerJobSalary[];
  demand: {
    city: string;
    count: number;
  }[];
  edu: CareerJobEdu[];
  exp: CareerJobExp[];
  experience: CareerJobExperience[];
  industrySalary: {
    name: string;
    salary: number;
    sampleCount: number;
  }[];
  salary: {
    max: number;
    min: number;
    ratio: number;
  }[];
  salaryAvg: string;
  salarySource: string;
  sampleDesc: string | null;
  vocationalSource: string;
}

export interface UniversityQueryDTO {
  code: string;
  pageNum: number;
  pageSize: number;
}
export interface University {
  address: string;
  area: number;
  bxLevel: string;
  cityName: string;
  code: string;
  collect: boolean;
  comScore: string;
  enrollLocation: string;
  features: string;
  hits: number;
  id: number;
  location: string;
  logo: string;
  name: string;
  natureTypeCN: string;
  star: string;
  type: string;
  webSite: string;
}