from pathlib import Path

#############################################
# Steg 1: Les csv-fil til egnet datasturktur
#############################################

content = Path('org_data.csv').read_text(encoding='utf-8')
content_lines = content.splitlines()

# Alternativ a: Liste av lister (2D -liste)
# table_2d_list == [
#   ['id', 'medisin', 'startdato', 'sluttdato'],
#   ['01', 'tran', '8/22', '11/28'],
#   ['02', 'vitaminer', '1/11', ''],
#   ['01', 'fluor', '6/01', '6/30'],
# ]
table_2d_list = []
for row_string in content_lines:
    row_list = row_string.split(',')
    table_2d_list.append(row_list)

# Alternativ b: Liste av oppslagsverk
# table_dict == [
#   {'id': '01', 'medisin': 'tran', 'startdato': '8/22', 'sluttdato': '11/28'},
#   {'id': '02', 'medisin': 'vitaminer', 'startdato': '1/11', 'sluttdato': ''},
#   {'id': '01', 'medisin': 'fluor', 'startdato': '6/1', 'sluttdato': '6/30'},
# ]
table_dict = []
headers = content_lines[0].split(',')
for line in content_lines[1:]:
    # Alternativ b1:
    row_dict = {}
    row_list = line.split(',')
    for i, val in enumerate(row_list):
        header = headers[i]
        row_dict[header] = val

    # Alternativ b2: vi bruker «inklusjon» (comprehension) -syntaks
    row_dict = {headers[i]: val for i, val in enumerate(line.split(','))}

    # For både b1 og b2:
    table_dict.append(row_dict)


#############################################
# Steg 2: Utfør databehandling
#############################################

# Alternativ a
for row_list in table_2d_list:
    if row_list[3] == '':
        row_list[3] = '2024-10-10'

# Alternativ b
for row_list in table_dict:
    if row_list['sluttdato'] == '':
        row_list['sluttdato'] = '2024-10-10'


#############################################
# Steg 3: Lagre som ny csv-fil
#############################################

# Alternativ a1
lines = []
for row_list in table_2d_list:
    row_string = ','.join(row_list)
    lines.append(row_string)
res_a1 = '\n'.join(lines)

# Alternativ a2 (med inklusjons-syntaks)
res_a2 = '\n'.join([','.join(row_list) for row_list in table_2d_list])


# Alternativ b1 (pass på at «headers» - en liste med kolonnenavn - er definert)
lines = [','.join(headers)]
for row_d in table_dict:
    row_list = []
    for header in headers:
        row_list.append(row_d[header])
    row_string = ','.join(row_list)
    lines.append(row_string)
res_b1 = '\n'.join(lines)

# Alterantiv b2 (pass på at «headers» - en liste med kolonnenavn - er definert)
lines = [','.join(headers)]
for row_d in table_dict:
    row_list = [row_d[header] for header in headers]
    row_string = ','.join(row_list)
    lines.append(row_string)
res_b2 = '\n'.join(lines)

# Alternativ b3 (pass på at «headers» - en liste med kolonnenavn - er definert)
res_b3 = '\n'.join([','.join(headers)] + [
    ','.join([row_d[header] for header in headers]) for row_d in table_dict
])


Path('new_data.csv').write_text(res_b3, encoding='utf-8')