"""
investigate into a simple python function that maps an ldap user to a vat percentage. Basically you need to
lookup the customer address, check if she is a business/registered tax number and if not apply the local
vat
"""

import iso3166
import datetime

from csv import DictReader


def get_vat(street_address, city, postal_code, country, vat_number=None):
    vat = {
        'Austria': [
            {'period': '1984-01-01/', 'rate': 0.2},
            {'period': '1976-01-01/1984-01-01', 'rate': 0.18},
            {'period': '1973-01-01/1976-01-01', 'rate': 0.16},
            ]
    }
    return iso3166.countries.get(country)

    # return iso3166.countries_by_name[country]


def main():
    # vat = get_vat(
    #     street_address='82 Nasheman-e-Iqbal near Wapda Town',
    #     city='Lahore',
    #     postal_code=53700,
    #     country='Pakistan',
    # )
    # print(vat)
    vat_rates = {}
    with open('vat_rates.csv', newline='') as csvfile:
        reader = DictReader(csvfile)
        for row in reader:
            territory_codes = row['territory_codes'].split('\n')
            for code in territory_codes:
                if code not in vat_rates:
                    vat_rates[code] = {}

                start_date = row['start_date']
                stop_data = row['stop_date']
                time_period = f'{start_date}|{stop_data}'
                r = row.copy()
                del r['start_date']
                del r['stop_date']
                del r['territory_codes']
                vat_rates[code][time_period] = r
    print(vat_rates)


if __name__ == '__main__':
    main()