class AlarmHandleHistoryEntity extends GenericEntity<String> implements RecordCreationEntity {

    @Column(length = 64, nullable = false, updatable = false)
    @Schema(description = "告警配置ID")
    private String alarmId;

    @Column(length = 64, nullable = false, updatable = false)
    @Schema(description = "告警记录Id")
    private String alarmRecordId;

    @Column(length = 64, nullable = false, updatable = false)
    @Schema(description = "告警处理类型")
    @EnumCodec
    @ColumnType(javaType = String.class)
    private AlarmHandleType handleType;

    @Column(length = 256, nullable = false, updatable = false)
    @Schema(description = "说明")
    private String description;

    @Column(updatable = false)
    @Schema(description = "处理时间")
    private Long handleTime;

    @Column(updatable = false)
    @Schema(description = "告警时间")
    private Long alarmTime;

    @Column(updatable = false)
    @Schema(
        description = "创建者ID(只读)"
        , accessMode = Schema.AccessMode.READ_ONLY
    )
    private String creatorId;

    @Column(updatable = false)
    @DefaultValue(generator = Generators.CURRENT_TIME)
    @Schema(
        description = "创建时间(只读)"
        , accessMode = Schema.AccessMode.READ_ONLY
    )
    private Long createTime;

    public static AlarmHandleHistoryEntity of(AlarmHandleInfo handleInfo) {<FILL_FUNCTION_BODY>}

}

        AlarmHandleHistoryEntity entity = new AlarmHandleHistoryEntity();
        entity.setAlarmId(handleInfo.getAlarmConfigId());
        entity.setAlarmRecordId(handleInfo.getAlarmRecordId());
        entity.setAlarmTime(handleInfo.getAlarmTime());
        entity.setHandleType(handleInfo.getType());
        entity.setDescription(handleInfo.getDescribe());
        entity.setHandleTime(handleInfo.getHandleTime() == null ? System.currentTimeMillis() : handleInfo.getHandleTime());
        return entity;
    
<no_super_class>