# -*- 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']
__GUA = ['1126-29162-1', '1124-29161-1','1710-3190-1']
__ES = ['1126-29162-1', '1124-29161-1','28181-29181-1', '28181-29182-2']
#__ESAHON = ['28181-29181-1', '28181-29182-2']
__HON = ['1710-3190-1', '28181-29181-1', '28181-29182-2','3301-4411-1','3310-4407-1']
__HONNIC = ['3301-4411-1', '3310-4407-1']
__NICCRC = ['4412-50050-1', '4408-50000-1']
__CRCPAN = ['6500-56050-1', '6400-58350-1', '6000-56050-1']

__INTER = {#'GUAHON': __GUAHON,
           'GUA': __GUA,
           #'ESAHON': __ESAHON,
           'ES': __ES,
           'HON': __HON,
           'HONNIC': __HONNIC,
           'NICCRC': __NICCRC,
           'CRCPAN': __CRCPAN}


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]:
            l = int(argwhere(brnames == i))
            lmct[item].append(l)
    
    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=[0,1,2])
    
    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 == 'CRCPAN':
            d[key] = -1
        elif key == 'HON':
           d[key] = -1
        else:
            d[key] = 1
            
    return d
