package com.fs.watch.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;

import java.util.Objects;
import java.util.stream.Stream;

@Getter
@NoArgsConstructor
@AllArgsConstructor
public enum WatchSleepStatusEnum implements HealthStatusEnum{

    NORMAL(1,"正常",
            null,null,
            null,
            null),
    OSA(2,"OSA高风险",
            "您本周出现了%d次睡眠呼吸异常，提示阻塞性睡眠呼吸暂停、高血压、心律失常等疾病风险较高。",
            "阻塞性睡眠呼吸暂停(OSA)是睡眠中反复出现呼吸暂停的疾病，与多种慢性病相关。",
            "侧卧睡眠，减重，避免睡前饮酒。建议多导睡眠监测确诊。",
            "使用侧睡枕；晚餐不超过19点；白天避免仰头午睡。"
            ),
    DEPRIVATION(3,"睡眠剥夺",
            "您本周出现了%d次睡眠不足异常，提示焦虑症、抑郁症、免疫功能下降等风险较高。",
            "睡眠剥夺是指睡眠时间长期不足，会严重影响认知功能和免疫力。",
            "固定作息时间，睡前1小时避免灯光刺激。长期失眠需就医排除焦虑/抑郁症。",
            "固定起床时间；早晨接触阳光30分钟。");

    private Integer value;
    private String desc;
    private String prediction;
    //解析
    private String analysis;
    //治疗建议
    private String suggestion;
    //注意事项
    private String precautions;

    public static WatchSleepStatusEnum toType(Integer value) {
        return Stream.of(WatchSleepStatusEnum.values())
                .filter(p -> Objects.equals(p.value, value))
                .findAny()
                .orElse(null);
    }
}
