# -*- coding: utf-8 -*-
# =============================================================================
#  Copyright (C) 2018 Mercados Electricos de Centroamérica. All rights reserved
# =============================================================================

"""Crea limites de trasnferencia entre área de Control 
"""
from numpy import argwhere
from pandas import read_excel

# Se definen las líneas que componenn las interconexiones entre las areas de
# control
__GUAHON = ['1710-3190-1']
__GUAELS =['1126-29162-1', '1124-29161-1']
__ELSHON = ['28181-29181-1', '28181-29182-2']
__HONNIC = ['3301-4411-1', '3310-4407-1']
__NICCRI = ['4406-4412-1', '4750-4408-1']
__CRIPAN = ['6500-56050-1', '6400-58350-1', '6000-56050-1']

#__ELSHON_IND_28181_29182=['28181-29181-1', '28181-29182-2']
#__IMP_TOT_ELSIND28181_29182=['28181-29181-1', '28181-29182-2']
#__IMP_TOT_HONIND28181_29182=['28181-29181-1', '28181-29182-2']

__EXP_TOT_GUA_NS = []
__IMP_TOT_SAL = []
__IMP_TOT_HON = []
__IMP_TOT_NIC =[]
__IMP_TOT_CRI =[]
__IMP_TOT_PAN = []


#__CRIPAN_IND_56050_6000=['6500-56050-1', '6400-58350-1', '6000-56050-1']
#__IMP_TOT_CRIIND_56050_6000=['6500-56050-1', '6400-58350-1', '6000-56050-1']
#__IMP_TOT_PANIND_56050_6000=['6500-56050-1', '6400-58350-1', '6000-56050-1']


__INTER = {'GUAHON': __GUAHON,
           'GUAELS':__GUAELS,
           'ELSHON': __ELSHON,
           #'ELSHON_IND_28181_29182': __ELSHON_IND_28181_29182,
           #'IMP_TOT_ELSIND28181_29182': __IMP_TOT_ELSIND28181_29182,
           #'IMP_TOT_HONIND28181_29182':__IMP_TOT_HONIND28181_29182,
           #'CRIPAN_IND_56050_6000':__CRIPAN_IND_56050_6000,
           #'IMP_TOT_CRIIND_56050_6000':__IMP_TOT_CRIIND_56050_6000,
           #'IMP_TOT_PANIND_56050_6000':__IMP_TOT_PANIND_56050_6000,
           'HONNIC': __HONNIC,
           'NICCRI': __NICCRI,
           'CRIPAN': __CRIPAN,
           'EXP_TOT_GUA_NS': __EXP_TOT_GUA_NS,
           'IMP_TOT_SAL': __IMP_TOT_SAL,
           'IMP_TOT_HON': __IMP_TOT_HON,
           'IMP_TOT_NIC': __IMP_TOT_NIC,
           'IMP_TOT_CRI': __IMP_TOT_CRI,
           'IMP_TOT_PAN': __IMP_TOT_PAN}


def linmct(brnames):
    """Construye un diccionario con el indice que corresponde al nombre del
    circuito o linea que copone la interconexión entre las áreas de control
    """
    lmct = {}
    
    for item in __INTER:
        lmct[item] = []
        for i in __INTER[item]:
            try:

                l = int(argwhere(brnames == i))
                lmct[item].append(l)
            except Exception:
                0
    return lmct


def readmct(file):
    """Lee la información de Máximas Capacidades de Trasnferencia del archivo
    Excel del caso a resolver.
    """
    mct = read_excel(file, 'mct', index_col=[1,2,3])
    
    return mct


def set_dir_flujo():
    """Consruye un diccionario en el cual se define la dirección del circuito
    que compone la interconexión.
    
    En el caso de  la interconexión entre Costa Rica y Panamá, las líneas se
    encuentran definidas en el sentido Sur-Norte, por lo que su dirección de
    flujo corresponde a -1
    """
    d = {}
    
    for key in __INTER.keys():
        if key == 'CRIPAN':
            d[key] = -1
        elif key == 'IMP_TOT_HON':
           d[key] = -1
        elif key == 'IMP_TOT_PAN':
           d[key] = -1
        elif key == 'EXP_TOT_GUA_NS':
           d[key] = -1
        elif key == 'IMP_TOT_HONIND28181_29182':
           d[key] = -1
        elif key == 'CRIPAN_IND_56050_6000':
           d[key] = -1
        elif key == 'IMP_TOT_CRIIND_56050_6000':
           d[key] = -1
        elif key == 'IMP_TOT_PANIND_56050_6000':
           d[key] = -1
        else:
            d[key] = 1
            
    return d
