import os
from PIL import Image, ImageFont, ImageDraw
import pandas as pd
import datetime
import directory


Font_medium32 = ImageFont.truetype(os.path.join(directory.FONT_DIR, 'Pretendard-Medium.ttf'), 32)
Font_medium45 = ImageFont.truetype(os.path.join(directory.FONT_DIR, 'Pretendard-Medium.ttf'), 45)
Font_bold50 = ImageFont.truetype(os.path.join(directory.FONT_DIR, 'Pretendard-Bold.ttf'), 50)
Font_bold55 = ImageFont.truetype(os.path.join(directory.FONT_DIR, 'Pretendard-Bold.ttf'), 55)
Font_bold35 = ImageFont.truetype(os.path.join(directory.FONT_DIR,'Pretendard-Bold.ttf'), 35)

BASE_DIR_EBSI = directory.BASE_DIR_EBSI
BASE_DIR_EBSI_DETAIL = directory.BASE_DIR_EBSI_DETAIL
BASE_DIR_com = directory.BASE_DIR_com
BASE_DIR_HOS = directory.BASE_DIR_HOS
BASE_DIR = directory.BASE_DIR
BASE_DIR_EN = directory.BASE_DIR_EN

hos_msn = directory.hos_msn

def make_ebsi(file, RESULT_DIR,  number='0000', name='Bwave', sex='M/F', age='00', date=datetime.datetime.today().isoformat().split('T')[0],
              eeg_only=False, ppg_only=False, reportLanguage="kr", msn=1):
    name = name.replace("_", " ")
    people = [date, number, name, sex, age+"세"]
    global BASE_DIR_EBSI
    if reportLanguage == "en":
        BASE_DIR_EBSI = directory.BASE_DIR_EBSI_EN
        people = [date, number, name, sex, age]
    if msn == "147": ##CECLAB 계정일 경우 로고없는 버전
        BASE_DIR_EBSI = os.path.join(directory.BASE_DIR_CEC, 'EBSI')

        
    if (eeg_only == False) & (ppg_only == False): #TODO: 코드정리
        result_eeg = pd.read_csv(os.path.join(RESULT_DIR, file.split('/')[-1][:-4] + '_eeg.csv'))
        result_ppg = pd.read_csv(os.path.join(RESULT_DIR, file.split('/')[-1][:-4] + '_ppg.csv'))
        eeg_ebsi = str(result_eeg['eeg_ebsi'].values[0])
        ppg_ebsi = str(result_ppg['ppg_ebsi'].values[0])
        ppg_emoji = result_ppg['ppg_emoji'].values[0].split(', ')
        eeg_ebsi_detail = []
        ppg_ebsi_detail = []
        if reportLanguage == "en":
            eeg_ebsi = [k for k, v in directory.brain_ebsi_index.items() if (v == int(eeg_ebsi)) and (k.upper() == k.lower())][0]
            ppg_ebsi = [k for k, v in directory.mind_ebsi_index.items() if (v == int(ppg_ebsi)) and (k.upper() == k.lower())][0]
        elif reportLanguage == "kr":
            eeg_ebsi_detail = result_eeg['eeg_ebsi_detail'].values[0].split(', ')
            ppg_ebsi_detail = result_ppg['ppg_ebsi_detail'].values[0].split(', ')

    elif eeg_only == True:
        result_eeg = pd.read_csv(os.path.join(RESULT_DIR, file.split('/')[-1][:-4] + '_eeg.csv'))
        eeg_ebsi = str(result_eeg['eeg_ebsi'].values[0])
        eeg_ebsi_detail = []
        if reportLanguage == "en":
            eeg_ebsi = [k for k, v in directory.brain_ebsi_index.items() if (v == int(eeg_ebsi)) and (k.upper() == k.lower())][0]
        elif reportLanguage == "kr":
            eeg_ebsi_detail = result_eeg['eeg_ebsi_detail'].values[0].split(', ')
    elif ppg_only == True:
        result_ppg = pd.read_csv(os.path.join(RESULT_DIR, file.split('/')[-1][:-4] + '_ppg.csv'))
        ppg_ebsi = str(result_ppg['ppg_ebsi'].values[0])
        ppg_emoji = result_ppg['ppg_emoji'].values[0].split(', ')
        ppg_ebsi_detail = []
        if reportLanguage == "en":
            ppg_ebsi = [k for k, v in directory.mind_ebsi_index.items() if (v == int(ppg_ebsi)) and (k.upper() == k.lower())][0]
        elif reportLanguage == "kr":
            ppg_ebsi_detail = result_ppg['ppg_ebsi_detail'].values[0].split(', ')

    report_page1(msn, people, RESULT_DIR, reportLanguage=reportLanguage)
    # report_page2(msn, people, RESULT_DIR, reportLanguage=reportLanguage)

    if (eeg_only == False) & (ppg_only == False): #TODO: 코드정리
        if msn in hos_msn:
            report_page3(people, RESULT_DIR, eeg_ebsi, eeg_ebsi_detail, reportLanguage=reportLanguage, page_no='08')
            report_page4(people, RESULT_DIR, ppg_ebsi, ppg_emoji, ppg_ebsi_detail, reportLanguage=reportLanguage, page_no='09')
            report_page2(msn, people, RESULT_DIR, reportLanguage=reportLanguage, page_no='10')
            report_page_list(people, RESULT_DIR, reportLanguage = reportLanguage, msn = msn, eeg_ebsi=eeg_ebsi, ppg_ebsi=ppg_ebsi)  #24.12.06추가 


        else:
            report_page2(msn, people, RESULT_DIR, reportLanguage=reportLanguage)
            report_page3(people, RESULT_DIR, eeg_ebsi, eeg_ebsi_detail, reportLanguage=reportLanguage)
            report_page4(people, RESULT_DIR, ppg_ebsi, ppg_emoji, ppg_ebsi_detail, reportLanguage=reportLanguage)
            report_page5(people, RESULT_DIR, reportLanguage = reportLanguage, msn = msn)  # 기관홍보 페이지 
            report_page_list(people, RESULT_DIR, reportLanguage = reportLanguage, msn = msn, eeg_ebsi=eeg_ebsi, ppg_ebsi=ppg_ebsi)  #24.12.06추가 


    elif eeg_only == True:
        if msn in hos_msn:
            report_page3(people, RESULT_DIR, eeg_ebsi, eeg_ebsi_detail, reportLanguage=reportLanguage, page_no='05')
            report_page2(msn, people, RESULT_DIR, reportLanguage=reportLanguage, page_no='06')
            report_page_list(people, RESULT_DIR, reportLanguage = reportLanguage, msn = msn, eeg_ebsi=eeg_ebsi, ppg_ebsi=0)  #24.12.06추가 

        else:
            report_page2(msn, people, RESULT_DIR, reportLanguage=reportLanguage, page_no='04')
            report_page3(people, RESULT_DIR, eeg_ebsi, eeg_ebsi_detail, reportLanguage=reportLanguage, page_no='05')
            report_page5(people, RESULT_DIR, reportLanguage = reportLanguage, msn = msn)  # 기관홍보 페이지
            report_page_list(people, RESULT_DIR, reportLanguage = reportLanguage, msn = msn, eeg_ebsi=eeg_ebsi, ppg_ebsi=0)

    elif ppg_only == True:
        if msn in hos_msn: 
            report_page4(people, RESULT_DIR, ppg_ebsi, ppg_emoji, ppg_ebsi_detail, reportLanguage=reportLanguage, page_no='05')
            report_page2(msn, people, RESULT_DIR, reportLanguage=reportLanguage, page_no = '06')
            report_page_list(people, RESULT_DIR, reportLanguage = reportLanguage, msn = msn, eeg_ebsi=0, ppg_ebsi=ppg_ebsi)  #24.12.06추가 

        else:
            report_page2(msn, people, RESULT_DIR, reportLanguage=reportLanguage, page_no='04')
            report_page4(people, RESULT_DIR, ppg_ebsi, ppg_emoji, ppg_ebsi_detail, reportLanguage=reportLanguage, page_no='05')
            report_page5(people, RESULT_DIR, reportLanguage = reportLanguage, msn = msn)  # 기관 홍보 페이지 
            report_page_list(people, RESULT_DIR, reportLanguage = reportLanguage, msn = msn, eeg_ebsi=0, ppg_ebsi=ppg_ebsi)
            

        
def make_ebsi_two_files(file_eeg, file_ppg, RESULT_DIR,  number='0000', name='Bwave', sex='M/F', age='00', date=datetime.datetime.today().isoformat().split('T')[0],
              eeg_only=False, ppg_only=False, reportLanguage="kr", msn=1):
    name = name.replace("_", " ")
    people = [date, number, name, sex, age+"세"]
    global BASE_DIR_EBSI
    if reportLanguage == "en":
        BASE_DIR_EBSI = directory.BASE_DIR_EBSI_EN
        people = [date, number, name, sex, age]
        
    if msn == "147": ##CECLAB 계정일 경우 로고없는 버전
        BASE_DIR_EBSI = os.path.join(directory.BASE_DIR_CEC, 'EBSI')

    if (eeg_only == False) & (ppg_only == False): #TODO: 코드정리
        result_eeg = pd.read_csv(os.path.join(RESULT_DIR, file_eeg.split('/')[-1][:-4] + '_eeg.csv'))
        result_ppg = pd.read_csv(os.path.join(RESULT_DIR, file_ppg.split('/')[-1][:-4] + '_ppg.csv'))
        eeg_ebsi = str(result_eeg['eeg_ebsi'].values[0])
        ppg_ebsi = str(result_ppg['ppg_ebsi'].values[0])
        ppg_emoji = result_ppg['ppg_emoji'].values[0].split(', ')
        eeg_ebsi_detail = []
        ppg_ebsi_detail = []
        if reportLanguage == "en":
            eeg_ebsi = [k for k, v in directory.brain_ebsi_index.items() if (v == int(eeg_ebsi)) and (k.upper() == k.lower())][0]
            ppg_ebsi = [k for k, v in directory.mind_ebsi_index.items() if (v == int(ppg_ebsi)) and (k.upper() == k.lower())][0]
        elif reportLanguage == "kr":
            eeg_ebsi_detail = result_eeg['eeg_ebsi_detail'].values[0].split(', ')
            ppg_ebsi_detail = result_ppg['ppg_ebsi_detail'].values[0].split(', ')
    elif eeg_only == True:
        result_eeg = pd.read_csv(os.path.join(RESULT_DIR, file_eeg.split('/')[-1][:-4] + '_eeg.csv'))
        eeg_ebsi = str(result_eeg['eeg_ebsi'].values[0])
        eeg_ebsi_detail = []
        if reportLanguage == "en":
            eeg_ebsi = [k for k, v in directory.brain_ebsi_index.items() if (v == int(eeg_ebsi)) and (k.upper() == k.lower())][0]
        elif reportLanguage == "kr":
            eeg_ebsi_detail = result_eeg['eeg_ebsi_detail'].values[0].split(', ')
    elif ppg_only == True:
        result_ppg = pd.read_csv(os.path.join(RESULT_DIR, file_ppg.split('/')[-1][:-4] + '_ppg.csv'))
        ppg_ebsi = str(result_ppg['ppg_ebsi'].values[0])
        ppg_emoji = result_ppg['ppg_emoji'].values[0].split(', ')
        ppg_ebsi_detail = []
        if reportLanguage == "en":
            ppg_ebsi = [k for k, v in directory.mind_ebsi_index.items() if (v == int(ppg_ebsi)) and (k.upper() == k.lower())][0]
        elif reportLanguage == "kr":
            ppg_ebsi_detail = result_ppg['ppg_ebsi_detail'].values[0].split(', ')

    report_page1(msn, people, RESULT_DIR, reportLanguage=reportLanguage)
    # report_page2(msn, people, RESULT_DIR, reportLanguage=reportLanguage)

    if (eeg_only == False) & (ppg_only == False): #TODO: 코드정리
        if msn in hos_msn:
            report_page3(people, RESULT_DIR, eeg_ebsi, eeg_ebsi_detail, reportLanguage=reportLanguage, page_no='08')
            report_page4(people, RESULT_DIR, ppg_ebsi, ppg_emoji, ppg_ebsi_detail, reportLanguage=reportLanguage, page_no='09')
            report_page2(msn, people, RESULT_DIR, reportLanguage=reportLanguage, page_no='10')

        else:
            report_page2(msn, people, RESULT_DIR, reportLanguage=reportLanguage)
            report_page3(people, RESULT_DIR, eeg_ebsi, eeg_ebsi_detail, reportLanguage=reportLanguage)
            report_page4(people, RESULT_DIR, ppg_ebsi, ppg_emoji, ppg_ebsi_detail, reportLanguage=reportLanguage)
            report_page5(people, RESULT_DIR, reportLanguage = reportLanguage, msn = msn)

    elif eeg_only == True:
        if msn in hos_msn:
            report_page3(people, RESULT_DIR, eeg_ebsi, eeg_ebsi_detail, reportLanguage=reportLanguage, page_no='08')
            report_page2(msn, people, RESULT_DIR, reportLanguage=reportLanguage, page_no='09')

        else:
            report_page2(msn, people, RESULT_DIR, reportLanguage=reportLanguage, page_no='07')
            report_page3(people, RESULT_DIR, eeg_ebsi, eeg_ebsi_detail, reportLanguage=reportLanguage, page_no='08')
            report_page5(people, RESULT_DIR, reportLanguage = reportLanguage, msn = msn)

    elif ppg_only == True:
        if msn in hos_msn: 
            report_page4(people, RESULT_DIR, ppg_ebsi, ppg_emoji, ppg_ebsi_detail, reportLanguage=reportLanguage, page_no='08')
            report_page2(msn, people, RESULT_DIR, reportLanguage=reportLanguage, page_no = '09')
        else:
            report_page2(msn, people, RESULT_DIR, reportLanguage=reportLanguage)
            report_page4(people, RESULT_DIR, ppg_ebsi, ppg_emoji, ppg_ebsi_detail, reportLanguage=reportLanguage, page_no='08')
            report_page5(people, RESULT_DIR, reportLanguage = reportLanguage, msn = msn)
        

def report_page1(msn: str, people:list, RESULT_DIR:str, reportLanguage: str="kr"):
    
    first_1 = Image.open(os.path.join(BASE_DIR_EBSI, 'EBSI_title.png'))

    if msn in hos_msn:
        first_1 = Image.open(os.path.join(BASE_DIR_HOS, 'EBSI_title.png'))
    

    draw = ImageDraw.Draw(first_1)
    if reportLanguage=="kr":
        draw.text((410, 3297), people[0], fill="black", font=Font_medium45, align='center')
        draw.text((940, 3297), people[1], fill="black", font=Font_medium45, align='center')
        draw.text((1430, 3297), people[2], fill="black", font=Font_medium45, align='center')
        draw.text((1840, 3297), people[3], fill="black", font=Font_medium45, align='center')
        draw.text((2160, 3297), '만 ' + people[4], fill="black", font=Font_medium45, align='center')
    elif reportLanguage=="en":
        draw.text((410, 3293), people[0], fill="black", font=Font_medium45, align='center')
        draw.text((850, 3292), people[1], fill="black", font=Font_medium45, align='center')
        draw.text((1400, 3293), people[2], fill="black", font=Font_medium45, align='center')
        draw.text((1890, 3293), people[3], fill="black", font=Font_medium45, align='center')
        draw.text((2170, 3293), people[4], fill="black", font=Font_medium45, align='center')
        

    first_1 = first_1.convert('RGB')
    first_1.save(os.path.join(RESULT_DIR, 'first_1_ebsi.jpg'))

def report_page2(msn: str, people:list, RESULT_DIR:str, reportLanguage: str="kr", page_no:str='07'):
    first_2 = Image.open(os.path.join(BASE_DIR_EBSI, 'n_EBSI_intro.png'))


    draw = ImageDraw.Draw(first_2)
    if reportLanguage=="kr":
        if msn == '147':
            draw.text((263, 263), people[0], fill="black", font=Font_medium32, align='center')
            draw.text((590, 261), people[1], fill="black", font=Font_medium32, align='center')
            draw.text((915, 263), people[2], fill="black", font=Font_medium32, align='center')
            draw.text((1185, 263), people[3], fill="black", font=Font_medium32, align='center')
            draw.text((1400, 263), '만 ' + people[4], fill="black", font=Font_medium32, align='center')
        else:
            draw.text((260, 312), people[0], fill="black", font=Font_medium32, align='center')
            draw.text((600, 312), people[1], fill="black", font=Font_medium32, align='center')
            draw.text((915, 312), people[2], fill="black", font=Font_medium32, align='center')
            draw.text((1185, 312), people[3], fill="black", font=Font_medium32, align='center')
            draw.text((1400, 312), '만 ' + people[4], fill="black", font=Font_medium32, align='center')

    elif reportLanguage=="en":
        draw.text((217, 328), people[0], fill="black", font=Font_medium32, align='center')
        draw.text((535, 326), people[1], fill="black", font=Font_medium32, align='center')
        draw.text((940, 328), people[2], fill="black", font=Font_medium32, align='center')
        draw.text((1305, 328), people[3], fill="black", font=Font_medium32, align='center')
        draw.text((1505, 328), people[4], fill="black", font=Font_medium32, align='center')
    
    draw.text((127, 3300), page_no, fill="gray", font=Font_bold35, align='center')   # 페이지 넘버 


    first_2 = first_2.convert('RGB')
    first_2.save(os.path.join(RESULT_DIR, 'first_2_ebsi.jpg'))

def report_page3(people:list, RESULT_DIR:str, eeg_ebsi:str,  eeg_ebsi_detail:list, reportLanguage: str="kr", page_no:str='08'):
    first_3 = Image.open(os.path.join(BASE_DIR_EBSI, 'n_eeg_' + eeg_ebsi + '.png'))
    draw = ImageDraw.Draw(first_3)
    if reportLanguage=="kr":
        draw.text((265, 318), people[0], fill="black", font=Font_medium32, align='center')
        draw.text((600, 316), people[1], fill="black", font=Font_medium32, align='center')
        draw.text((915, 317), people[2], fill="black", font=Font_medium32, align='center')
        draw.text((1185, 318), people[3], fill="black", font=Font_medium32, align='center')
        draw.text((1400, 317), '만 ' + people[4], fill="black", font=Font_medium32, align='center')

        detail_1 = Image.open(
            os.path.join(BASE_DIR_EBSI_DETAIL, ''.join(["eeg_", eeg_ebsi, "_1_", str(eeg_ebsi_detail[0]), ".png"])))
        detail_2 = Image.open(
            os.path.join(BASE_DIR_EBSI_DETAIL, ''.join(["eeg_", eeg_ebsi, "_2_", str(eeg_ebsi_detail[1]), ".png"])))
        detail_3 = Image.open(
            os.path.join(BASE_DIR_EBSI_DETAIL, ''.join(["eeg_", eeg_ebsi, "_3_", str(eeg_ebsi_detail[2]), ".png"])))

        first_3.paste(detail_1, (104, 1909), detail_1)
        first_3.paste(detail_2, (104, 2375), detail_2)
        first_3.paste(detail_3, (104, 2840), detail_3)       


    elif reportLanguage=="en":
        draw.text((217, 318), people[0], fill="black", font=Font_medium32, align='center')
        draw.text((535, 316), people[1], fill="black", font=Font_medium32, align='center')
        draw.text((940, 318), people[2], fill="black", font=Font_medium32, align='center')
        draw.text((1305, 318), people[3], fill="black", font=Font_medium32, align='center')
        draw.text((1505, 318), people[4], fill="black", font=Font_medium32, align='center')
        
    add_image_1 = Image.open(os.path.join(RESULT_DIR, 'eeg_ebsi_radar.png'))
    add_image_1 = add_image_1.crop((350, 200, 1890, 1610))  # 1540, 1400
    add_image_1 = add_image_1.resize((int(1540 / 3.05), int(1410 / 3.05)))
    first_3.paste(add_image_1, (1218, 828), add_image_1)

    draw.text((120, 3325), page_no, fill="gray", font=Font_bold35, align='center')  # 페이지 넘버

    first_3 = first_3.convert('RGB')
    first_3.save(os.path.join(RESULT_DIR, 'first_3_ebsi.jpg'))

def report_page4(people:list, RESULT_DIR:str, ppg_ebsi:str, ppg_emoji:list, ppg_ebsi_detail:list, reportLanguage: str="kr", page_no:str='09'):
    
    if reportLanguage=="kr":
        ppg_ebsi_temp = ppg_ebsi #TODO: EN버전 생기면 IF문 위로 올리기
        if (ppg_ebsi == "6") and ((int(ppg_emoji[2]) == 5) or (int(ppg_emoji[3]) == 5)):
                ppg_ebsi_temp = "6_stress"
        first_4 = Image.open(os.path.join(BASE_DIR_EBSI, 'n_ppg_' + ppg_ebsi_temp + '.png'))
        draw = ImageDraw.Draw(first_4)
        draw.text((285, 318), people[0], fill="black", font=Font_medium32, align='center')
        draw.text((615, 316), people[1], fill="black", font=Font_medium32, align='center')
        draw.text((935, 317), people[2], fill="black", font=Font_medium32, align='center')
        draw.text((1210, 318), people[3], fill="black", font=Font_medium32, align='center')
        draw.text((1420, 317), '만 ' + people[4], fill="black", font=Font_medium32, align='center')
    
        #TODO: EN버전 생기면 IF문 밑으로 내리기
        detail_1 = Image.open(
            os.path.join(BASE_DIR_EBSI_DETAIL, ''.join(["ppg_", ppg_ebsi, "_1_", str(ppg_ebsi_detail[0]), ".png"])))
        detail_2 = Image.open(
            os.path.join(BASE_DIR_EBSI_DETAIL, ''.join(["ppg_", ppg_ebsi, "_2_", str(ppg_ebsi_detail[1]), ".png"])))
        detail_3 = Image.open(
            os.path.join(BASE_DIR_EBSI_DETAIL, ''.join(["ppg_", ppg_ebsi, "_3_", str(ppg_ebsi_detail[2]), ".png"])))     

        first_4.paste(detail_1, (104, 1909), detail_1)
        first_4.paste(detail_2, (104, 2375), detail_2)
        first_4.paste(detail_3, (104, 2840), detail_3)

        draw.text((125, 3325), page_no, fill="gray", font=Font_bold35, align='center')  # 페이지 넘버

   
    elif reportLanguage=="en":
        first_4 = Image.open(os.path.join(BASE_DIR_EBSI, 'n_ppg_' + ppg_ebsi + '.png'))
        draw = ImageDraw.Draw(first_4)

        draw.text((237, 317), people[0], fill="black", font=Font_medium32, align='center')
        draw.text((545, 316), people[1], fill="black", font=Font_medium32, align='center')
        draw.text((950, 317), people[2], fill="black", font=Font_medium32, align='center')
        draw.text((1315, 317), people[3], fill="black", font=Font_medium32, align='center')
        draw.text((1515, 317), people[4], fill="black", font=Font_medium32, align='center')

    add_image_1 = Image.open(os.path.join(RESULT_DIR, 'ppg_ebsi_radar.png'))
    add_image_1 = add_image_1.crop((340, 200, 1900, 1640))  # 1560, 1440
    add_image_1 = add_image_1.resize((int(1560 / 3.05), int(1440 / 3.05)))
    first_4.paste(add_image_1, (1185, 828), add_image_1)

    draw.text((125, 3325), page_no, fill="gray", font=Font_bold35, align='center')  # 페이지 넘버


    first_4 = first_4.convert('RGB')
    first_4.save(os.path.join(RESULT_DIR, 'first_4_ebsi.jpg'))


'''
계약 기관 리스트 이미지 추가 
'''
def report_page_list(people:list, RESULT_DIR:str, reportLanguage:str, msn:str, eeg_ebsi, ppg_ebsi):  # 25.06.30 ebsi 추가 
    try:
        eeg_2line_list = ['1','2','3','5']#25.09.19 ebsi유형 설명에 텍스트 2줄인 경우 이미지 크기 달라져서 구분 필요
        ppg_2line_list =['3','5']

        eeg_2line_list_en = [1,2,4,5]#25.09.19 ebsi유형 설명에 텍스트 2줄인 경우 이미지 크기 달라져서 구분 필요(영문)
        ppg_2line_list_en =[3,4]

        if reportLanguage == 'kr' and msn =='213':#25.04.18 바로 나 심리 상담센터 기관리스트 이미지 말고 자체 제작 이미지 적용 
            file = os.path.join(BASE_DIR, 'cji_image.jpg')
            first_list = Image.open(file)
            
            
        elif reportLanguage == 'kr' and msn !='147':# 25.06.30 ebsi 이미지 추가
            file = os.path.join(BASE_DIR, 'organization_list.jpg')
             # 기본 이미지 열기
            first_list = Image.open(file).convert("RGB")
            people_name = people[2]
            name_len = len(people_name)
            if name_len == 2:
                ImageDraw.Draw(first_list).text((158, 22), people_name, fill="black", font=Font_bold55)
            elif name_len == 3:
                ImageDraw.Draw(first_list).text((140, 22), people_name, fill="black", font=Font_bold55)
            elif name_len == 4:
                ImageDraw.Draw(first_list).text((122, 22), people_name, fill="black", font=Font_bold55)
            else:
                ImageDraw.Draw(first_list).text((40,22), people_name, fill="black", font=Font_bold55)
            


            if eeg_ebsi != 0 and ppg_ebsi != 0:
                eeg_emoji_path = os.path.join(BASE_DIR, 'eeg_ebsi_emoji_{}.jpg'.format(eeg_ebsi))
                ppg_emoji_path = os.path.join(BASE_DIR, 'ppg_ebsi_emoji_{}.jpg'.format(ppg_ebsi))

                 # 이모지 이미지 열기 및 크기 조정
                ppg_emoji_img = Image.open(ppg_emoji_path).convert("RGBA")
                eeg_emoji_img = Image.open(eeg_emoji_path).convert("RGBA")
                
                if eeg_ebsi in eeg_2line_list:
                    eeg_emoji_img = eeg_emoji_img.resize((865, 165))  # 이모지 크기 조절
                else:
                    eeg_emoji_img = eeg_emoji_img.resize((870, 150))  # 이모지 크기 조절

                if ppg_ebsi in ppg_2line_list:
                    ppg_emoji_img = ppg_emoji_img.resize((865, 165))  # 이모지 크기 조절
                else:
                    ppg_emoji_img = ppg_emoji_img.resize((870, 150))  # 이모지 크기 조절

                first_list.paste(eeg_emoji_img, (775, 430), eeg_emoji_img)  # emoji_img가 RGBA일 경우 투명도 유지됨
                first_list.paste(ppg_emoji_img, (775, 945), ppg_emoji_img)  

            elif ppg_ebsi == 0:
                eeg_emoji_path = os.path.join(BASE_DIR, 'eeg_ebsi_emoji_{}.jpg'.format(eeg_ebsi))
                eeg_emoji_img = Image.open(eeg_emoji_path).convert("RGBA")
                if eeg_ebsi in eeg_2line_list:
                    eeg_emoji_img = eeg_emoji_img.resize((865, 165))  # 이모지 크기 조절
                else:
                    eeg_emoji_img = eeg_emoji_img.resize((870, 150))  # 이모지 크기 조절
                first_list.paste(eeg_emoji_img, (775, 430), eeg_emoji_img)
            elif eeg_ebsi == 0:
                ppg_emoji_path = os.path.join(BASE_DIR, 'ppg_ebsi_emoji_{}.jpg'.format(ppg_ebsi))
                ppg_emoji_img = Image.open(ppg_emoji_path).convert("RGBA")
                if ppg_ebsi in ppg_2line_list:
                    ppg_emoji_img = ppg_emoji_img.resize((865, 165))  # 이모지 크기 조절
                else:
                    ppg_emoji_img = ppg_emoji_img.resize((870, 150))  # 이모지 크기 조절
                first_list.paste(ppg_emoji_img, (775, 945), ppg_emoji_img)  
                
            

        elif reportLanguage == "en" and msn !='147':# 25.06.30 ebsi 이미지 추가
            file = os.path.join(BASE_DIR_EN, 'organization_list.jpg')
            eeg_ebsi = directory.brain_ebsi_index[eeg_ebsi]
            ppg_ebsi = directory.mind_ebsi_index[ppg_ebsi]
             # 기본 이미지 열기
            img = Image.open(file)
            background = Image.new("RGB", img.size, (255, 255, 255))  # 흰색 배경
            background.paste(img, mask=img.split()[3])  # 알파 채널로 합성
            first_list = background
            people_name = people[2]
            name_len = len(people_name)
            
            ImageDraw.Draw(first_list).text((1090, 9), people_name, fill="black", font=Font_bold55)
            
            
            


            if eeg_ebsi != 0 and ppg_ebsi != 0:
                eeg_emoji_path = os.path.join(BASE_DIR_EN, 'eeg_ebsi_emoji_{}.jpg'.format(eeg_ebsi))
                ppg_emoji_path = os.path.join(BASE_DIR_EN, 'ppg_ebsi_emoji_{}.jpg'.format(ppg_ebsi))
                 # 이모지 이미지 열기 및 크기 조정
                ppg_emoji_img = Image.open(ppg_emoji_path).convert("RGBA")
                eeg_emoji_img = Image.open(eeg_emoji_path).convert("RGBA")

            
                if eeg_ebsi in eeg_2line_list_en:
                    eeg_emoji_img = eeg_emoji_img.resize((865, 165))  # 이모지 크기 조절
                else:
                    eeg_emoji_img = eeg_emoji_img.resize((660, 145))  # 이모지 크기 조절

                if ppg_ebsi in ppg_2line_list_en:
                    ppg_emoji_img = ppg_emoji_img.resize((865, 165))  # 이모지 크기 조절
                else:
                    ppg_emoji_img = ppg_emoji_img.resize((660, 145))  # 이모지 크기 조절

                first_list.paste(eeg_emoji_img, (775, 455), eeg_emoji_img)  # emoji_img가 RGBA일 경우 투명도 유지됨
                first_list.paste(ppg_emoji_img, (775, 970), ppg_emoji_img)  
                
            elif ppg_ebsi == 0:
                eeg_emoji_path = os.path.join(BASE_DIR_EN, 'eeg_ebsi_emoji_{}.jpg'.format(eeg_ebsi))
                eeg_emoji_img = Image.open(eeg_emoji_path).convert("RGBA")
                if eeg_ebsi in eeg_2line_list_en:
                    eeg_emoji_img = eeg_emoji_img.resize((865, 165))  # 이모지 크기 조절
                else:
                    eeg_emoji_img = eeg_emoji_img.resize((660, 150))  # 이모지 크기 조절
                first_list.paste(eeg_emoji_img, (775, 455), eeg_emoji_img)
            elif eeg_ebsi == 0:
                ppg_emoji_path = os.path.join(BASE_DIR_EN, 'ppg_ebsi_emoji_{}.jpg'.format(ppg_ebsi))
                ppg_emoji_img = Image.open(ppg_emoji_path).convert("RGBA")
                if ppg_ebsi in ppg_2line_list_en:
                    ppg_emoji_img = ppg_emoji_img.resize((865, 165))  # 이모지 크기 조절
                else:
                    ppg_emoji_img = ppg_emoji_img.resize((660, 150))  # 이모지 크기 조절
                first_list.paste(ppg_emoji_img, (775, 970), ppg_emoji_img)  
            
                
        # 저장
        
        first_list.save(os.path.join(RESULT_DIR, 'first_list.jpg'))
        

        
    except Exception as e:
        pass

'''
기관 홍보 이미지 추가 
'''

def report_page5(people:list, RESULT_DIR:str, reportLanguage:str, msn:str):
    try:
        file = os.path.join(BASE_DIR_com, 'promotion_{}.jpg'.format(msn))
        first_8 = Image.open(file)
        first_8.save(os.path.join(RESULT_DIR,'first_8.jpg'))

    except Exception as e:
        pass



