package com.sundot.airport.system.domain.portrait;

import com.sundot.airport.common.domain.portrait.BaseModuleIndicatorResult;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.List;

/**
 * 系统模块指标结果类
 * 用于封装用户画像的各种指标结果
 */
@Data
public class IndicatorResult extends BaseModuleIndicatorResult {
    // 资质等级
    /**
     * 个人资质等级
     */
    @ApiModelProperty("个人资质等级")
    private String qualificationLevel;

    /**
     * 组织资质等级统计列表
     */
    @ApiModelProperty("组织资质等级统计列表")
    private List<QualificationStats> qualificationLevelStats;

    // 可上岗岗位
    /**
     * 个人可上岗岗位列表
     */
    @ApiModelProperty("个人可上岗岗位列表")
    private List<PositionInfo> availablePositions;

    /**
     * 组织岗位胜任统计列表
     */
    @ApiModelProperty("组织岗位胜任统计列表")
    private List<PositionCompetencyStats> positionCompetencyStats;

    // 政治面貌
    /**
     * 个人政治面貌
     */
    @ApiModelProperty("个人政治面貌")
    private String politicalStatus;

    /**
     * 组织政治面貌统计列表
     */
    @ApiModelProperty("组织政治面貌统计列表")
    private List<PoliticalStatusStats> politicalStatusStats;

    // 年龄
    /**
     * 个人年龄
     */
    @ApiModelProperty("个人年龄")
    private Integer age;

    /**
     * 组织年龄统计
     */
    @ApiModelProperty("组织年龄统计")
    private AgeStats ageStats;

    // 身体健康状况
    /**
     * 个人是否身体健康
     */
    @ApiModelProperty("个人是否身体健康")
    private String isHealthy;

    /**
     * 组织身体健康状况统计
     */
    @ApiModelProperty("组织身体健康状况统计")
    private PhysicalHealthStats physicalHealthStats;

    // 政审通过情况
    /**
     * 个人是否通过政审
     */
    @ApiModelProperty("个人是否通过政审")
    private String isPoliticalReviewPassed;

    /**
     * 组织政审通过情况统计
     */
    @ApiModelProperty("组织政审通过情况统计")
    private PoliticalReviewStats politicalReviewStats;

    // 行政类处罚情况
    /**
     * 个人是否有行政类处罚
     */
    @ApiModelProperty("个人是否有行政类处罚")
    private String hasAdministrativePenalty;

    /**
     * 组织行政类处罚情况统计
     */
    @ApiModelProperty("组织行政类处罚情况统计")
    private AdministrativePenaltyStats administrativePenaltyStats;

    // 学历情况
    /**
     * 个人学历
     */
    @ApiModelProperty("个人学历")
    private String education;

    /**
     * 组织学历统计
     */
    @ApiModelProperty("组织学历统计")
    private EducationStats educationStats;

    // 工作奖励
    /**
     * 个人工作奖励统计
     */
    @ApiModelProperty("个人工作奖励统计")
    private Integer workRewards;

    /**
     * 组织工作奖励统计
     */
    @ApiModelProperty("组织工作奖励统计")
    private RewardPenaltyStats workRewardsStats;

    // 工作处罚
    /**
     * 个人工作处罚统计
     */
    @ApiModelProperty("个人工作处罚统计")
    private Integer workPenalties;

    /**
     * 组织工作处罚统计
     */
    @ApiModelProperty("组织工作处罚统计")
    private RewardPenaltyStats workPenaltiesStats;

    // 工作年限
    /**
     * 个人工作年限统计
     */
    @ApiModelProperty("个人工作年限统计")
    private Integer workYears;

    /**
     * 组织工作年限统计
     */
    @ApiModelProperty("组织工作年限统计")
    private WorkExperienceStats workYearsStats;

    // 安检工作年限
    /**
     * 个人安检工作年限统计
     */
    @ApiModelProperty("个人安检工作年限统计")
    private Integer securityWorkYears;

    /**
     * 组织安检工作年限统计
     */
    @ApiModelProperty("组织安检工作年限统计")
    private WorkExperienceStats securityWorkYearsStats;

    // 安检工作职务
    /**
     * 个人在安检工作中担任过的最高职务
     */
    @ApiModelProperty("个人在安检工作中担任过的最高职务")
    private String securityWorkPosition;

    /**
     * 组织担任过班组长的人数统计
     */
    @ApiModelProperty("组织担任过班组长的人数统计")
    private SecurityWorkPositionStats securityWorkPositionStats;

    public IndicatorResult() {
        setModuleName("system");
    }
}