import { getPowerPlants } from '../../../entities/power-plant/query';
import { POWER_PLANT_STATUS } from '../../const/power-plant';
import moment from 'moment-timezone';
// com은 0/1만 존재함, run은 0이 아니면 무조건 장애
export const getPowerPlantStatus = (maxInverterCommunicationStatus = 0, maxInverterOperationStatus = 0, isNoSignal = 'F', isSunset = false) => {
    if (isNoSignal == 'T') {
        return POWER_PLANT_STATUS.COMMUNICATION_FAULT;
    }
    else if (maxInverterOperationStatus != 0) {
        return POWER_PLANT_STATUS.FAULT;
    }
    else if (maxInverterCommunicationStatus == 1 && isSunset === true) {
        return POWER_PLANT_STATUS.SUNSET_STOP;
    }
    else if (maxInverterCommunicationStatus == 1) {
        return POWER_PLANT_STATUS.STOP;
    }
    else if (maxInverterCommunicationStatus == 0 && maxInverterOperationStatus == 0) {
        return POWER_PLANT_STATUS.NORMAL;
    }
    return POWER_PLANT_STATUS.NORMAL;
};
// 상태를 주면 [통신상태, 발전상태] 순서의 아이콘 상태를 반환
export const getPowerPlantIconStatus = (maxInverterCommunicationStatus = 0, maxInverterOperationStatus = 0, isNoSignal = 'F') => {
    let runState = POWER_PLANT_STATUS.NORMAL;
    let signalState = POWER_PLANT_STATUS.NORMAL;
    if (maxInverterCommunicationStatus === 1) {
        runState = POWER_PLANT_STATUS.STOP;
    }
    else if (maxInverterOperationStatus !== 0) {
        runState = POWER_PLANT_STATUS.FAULT;
    }
    if (isNoSignal === 'T') {
        signalState = POWER_PLANT_STATUS.COMMUNICATION_FAULT;
    }
    return [runState, signalState];
};
// 오전 6~9시 사이 이거나, 오후 17~21시 사이이면 일몰 정리 상태 = true
export const getIsSunset = (collectorAt) => {
    const hour = moment(collectorAt, 'HH:mm:ss').tz('Asia/Seoul').hour();
    // 오전 6시 이상 9시 이하 또는 오후 17시 이상 21시 이하이면 일몰 정리 상태
    return (hour >= 6 && hour < 9) || (hour >= 17 && hour < 21);
};
export const getFirstPowerPlantId = async () => {
    const { data } = await getPowerPlants({ filters: [], pagination: { page: 1, limit: 1 } });
    return data.items[0].id || '';
};
//# sourceMappingURL=power-plant.js.map