class Conditions {
        // alarm metrics parameters
        private String metricName;
        private String metricShowName;
        private String calcType;
        private String calcValue;
        private String calcUnit;
        private String currentValue;
        private String historyValue;
        private String unit;
        private String period;
        private String periodNum;
        private String alarmNotifyType;
        private long alarmNotifyPeriod;

        // alarm event parameters
        private String productName;
        private String productShowName;
        private String eventName;
        private String eventShowName;
    }

    @Override
    public String getAlertName() {
        return "TenCloud|腾讯云";
    }

    @Override
    public Integer getAlertDuration() {
        return this.durationTime;
    }

    @Override
    public long getAlertTime() {
        return DateUtil.getTimeStampFromFormat(getFirstOccurTime(), "yyyy-MM-dd HH:mm:ss");
    }

    @Override
    public Integer getPriority() {
        return 1;
    }

    @Override
    public Integer getReportType() {
        return 1;
    }

    @Override
    public Map<String, String> getLabels() {
        return Map.of("app", "TenCloud");
    }

    @Override
    public Map<String, String> getAnnotations() {
        return Map.of("app", "TenCloud");
    }

    /**
     * Transaction alarm
     */
    private static final String EVENT = "event";

    /**
     * Indicator alarm
     */
    private static final String METRIC = "metric";

    /**
     * If the following alarm types increase, the entity class can be divided into a parent class and multiple subclasses, and then the method can be implemented in the subclass
     * Since there are only two, it will not be split for the time being
     */
    @Override
    public String getContent() {<FILL_FUNCTION_BODY>

        StringBuilder contentBuilder = new StringBuilder();
        // 判断类型
        if (EVENT.equals(getAlarmType())) {
            contentBuilder
                    .append("[")
                    .append("告警状态 | ")
                    .append("0".equals(alarmStatus) ? "恢复" : "告警")
                    .append("]\n")
                    .append("[")
                    .append("告警对象信息 | ")
                    .append(getAlarmObjInfo().getRegion() == null ? "" : "region:" + getAlarmObjInfo().getRegion())
                    .append(";").append("appId:").append(getAlarmObjInfo().getAppId())
                    .append(";").append("uni:").append(getAlarmObjInfo().getUin())
                    .append(";").append("unInstanceId:").append(getAlarmObjInfo().getDimensions().getUnInstanceId())
                    .append("]\n")
                    .append("[")
                    .append("告警策略组信息 | ")
                    .append("名称：").append(getAlarmPolicyInfo().getPolicyName())
                    .append(";")
                    .append("策略类型展示名称：").append(getAlarmPolicyInfo().getConditions().getProductName())
                    .append(",").append(getAlarmPolicyInfo().getConditions().getProductShowName())
                    .append(";")
                    .append("事件告警名称：").append(getAlarmPolicyInfo().getConditions().getEventName())
                    .append(",").append(getAlarmPolicyInfo().getConditions().getEventShowName())
                    .append("]");
        } else if (METRIC.equals(getAlarmType())) {
            contentBuilder
                    .append("[")
                    .append("告警对象：")
                    .append(getAlarmObjInfo().getRegion() == null ? "" : getAlarmObjInfo().getRegion())
                    .append(getAlarmObjInfo().getRegion() == null ? "" : "|")
                    .append(getAlarmObjInfo().getNamespace())
                    .append("]")
                    .append("[")
                    .append("告警内容：")
                    .append(getAlarmPolicyInfo().getPolicyTypeCname()).append("|")
                    .append(getAlarmPolicyInfo().getConditions().getMetricShowName()).append("|")
                    .append(getAlarmPolicyInfo().getConditions().getMetricName())
                    .append(getAlarmPolicyInfo().getConditions().getCalcType())
                    .append(getAlarmPolicyInfo().getConditions().getCalcValue())
                    .append(getAlarmPolicyInfo().getConditions().getCalcUnit())
                    .append("]")
                    .append("[")
                    .append("当前数据")
                    .append(getAlarmPolicyInfo().getConditions().getCurrentValue())
                    .append(getAlarmPolicyInfo().getConditions().getCalcUnit())
                    .append("]");
        }
        return contentBuilder.toString();
    
<methods>public non-sealed void <init>() ,public abstract java.lang.Integer getAlertDuration() ,public abstract java.lang.String getAlertName() ,public abstract long getAlertTime() ,public abstract Map<java.lang.String,java.lang.String> getAnnotations() ,public abstract java.lang.String getContent() ,public abstract Map<java.lang.String,java.lang.String> getLabels() ,public abstract java.lang.Integer getPriority() ,public abstract java.lang.Integer getReportType() <variables>