import pandas as pd
# from datetime import datetime
from app import db
import os

dir = os.getcwd()
data_file = '/var/www/html/ecg_monitoring/app/data_puls'
#data_file = f'{dir}\\app\\data_puls'


# data_file = f'app/data_puls'
def delete_user(user):
    db.session.delete(user)
    db.session.commit()


def delete_person(person):
    db.session.delete(person)
    db.session.commit()
    return 'delete'


def add_person(person):
    db.session.add(person)
    db.session.commit()


def create_file(person_name):
    file_path = f'{person_name}.csv'
    list_dir = os.listdir(f'{data_file}')
    if file_path not in list_dir:
        df = pd.DataFrame({
            'Time (s)': [],
            'QRS Complex (s)': [],
            'RR Interval (s)': [],
            'ST Segment (s)': [],
            'P Wave (s)': [],
            'T Wave (s)': [],
            'PR Interval (s)': [],
            'QT Interval (s)': [],
            'Heartbeats': []

        })
        df.to_csv(f'{data_file}/{file_path}', index=False)
        return True


def write_csv(person_name, time, qrs_complex, rr_interval, st_segment, p_wave, t_wave, pr_interval, qt_interval,hearbeats):
    file_path = f'{person_name}.csv'
    list_dir = os.listdir(f'{data_file}')
    if file_path not in list_dir:
        df = pd.DataFrame({
            'Time (s)': [time],
            'QRS Complex (s)': [qrs_complex],
            'RR Interval (s)': [rr_interval],
            'ST Segment (s)': [st_segment],
            'P Wave (s)': [p_wave],
            'T Wave (s)': [t_wave],
            'PR Interval (s)': [pr_interval],
            'QT Interval (s)': [qt_interval],
            'Heartbeats': [1 / float(rr_interval)]
        })
        df.to_csv(f'{data_file}/{file_path}', index=False)
        return True
    else:
        result = add_data(person_name, time, qrs_complex, rr_interval, st_segment, p_wave, t_wave, pr_interval,
                          qt_interval,hearbeats)
        return result


def add_data(person_name, time, qrs_complex, rr_interval, st_segment, p_wave, t_wave, pr_interval, qt_interval,hearbeats):
    file_path = f'{person_name}.csv'
    df = pd.read_csv(f'{data_file}/{file_path}')
    new_data = pd.DataFrame({
        'Time (s)': [time],
        'QRS Complex (s)': [qrs_complex],
        'RR Interval (s)': [rr_interval],
        'ST Segment (s)': [st_segment],
        'P Wave (s)': [p_wave],
        'T Wave (s)': [t_wave],
        'PR Interval (s)': [pr_interval],
        'QT Interval (s)': [qt_interval],
        'Heartbeats': [hearbeats]

    })
    df = pd.concat([df, new_data], ignore_index=True)
    df.to_csv(f'{data_file}/{file_path}', index=False)
    return True


def drow_graphic(person_name):
    file_path = f'{person_name}.csv'
    list_dir = os.listdir(f'{data_file}')
    if file_path in list_dir:
        df = pd.read_csv(f'{data_file}/{file_path}')
        y = df['Heartbeats'].to_list()
        x = df['Time (s)'].to_list()
        return x, y
    else:
        return False


def delete_data(passport_number):
    file_path = f'{passport_number}.csv'
    list_dir = os.listdir('{data_file}')
    if file_path in list_dir:
        os.remove(f'{data_file}/{file_path}')
        return True
    else:
        return False


# write_csv('ad',1,1,1)

def send_file(passport):
    file_path = f'{passport}.csv'
    list_dir = os.listdir(data_file)
    if file_path in list_dir:
        print(file_path)
        return f'data_puls/{file_path}'
    else:
        return False
