diff --git a/sqlite_export_for_ynab/_main.py b/sqlite_export_for_ynab/_main.py index ba57140..9bda60a 100644 --- a/sqlite_export_for_ynab/_main.py +++ b/sqlite_export_for_ynab/_main.py @@ -211,8 +211,35 @@ def insert_budgets( cur: sqlite3.Cursor, budgets: list[dict[str, Any]], lkos: dict[str, int] ) -> None: cur.executemany( - "INSERT OR REPLACE INTO budgets (id, name, last_knowledge_of_server) VALUES (?, ?, ?)", - ((bid := b["id"], b["name"], lkos[bid]) for b in budgets), + """ + INSERT OR REPLACE INTO budgets ( + id + , name + , currency_format_currency_symbol + , currency_format_decimal_digits + , currency_format_decimal_separator + , currency_format_display_symbol + , currency_format_group_separator + , currency_format_iso_code + , currency_format_symbol_first + , last_knowledge_of_server + ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + """, + ( + ( + bid := b["id"], + b["name"], + b["currency_format"]["currency_symbol"], + b["currency_format"]["decimal_digits"], + b["currency_format"]["decimal_separator"], + b["currency_format"]["display_symbol"], + b["currency_format"]["group_separator"], + b["currency_format"]["iso_code"], + b["currency_format"]["symbol_first"], + lkos[bid], + ) + for b in budgets + ), ) diff --git a/sqlite_export_for_ynab/ddl/create-relations.sql b/sqlite_export_for_ynab/ddl/create-relations.sql index 9bb05a0..5ad0c4d 100644 --- a/sqlite_export_for_ynab/ddl/create-relations.sql +++ b/sqlite_export_for_ynab/ddl/create-relations.sql @@ -1,6 +1,13 @@ CREATE TABLE IF NOT EXISTS budgets ( id TEXT PRIMARY KEY , name TEXT + , currency_format_currency_symbol TEXT + , currency_format_decimal_digits INT + , currency_format_decimal_separator TEXT + , currency_format_display_symbol BOOLEAN + , currency_format_group_separator TEXT + , currency_format_iso_code TEXT + , currency_format_symbol_first BOOLEAN , last_knowledge_of_server INT ) ; diff --git a/testing/fixtures.py b/testing/fixtures.py index c808f66..6784146 100644 --- a/testing/fixtures.py +++ b/testing/fixtures.py @@ -18,10 +18,30 @@ { "id": BUDGET_ID_1, "name": "Budget 1", + "currency_format": { + "currency_symbol": "$", + "decimal_digits": 2, + "decimal_separator": ".", + "display_symbol": True, + "example_format": "123,456.78", + "group_separator": ",", + "iso_code": "USD", + "symbol_first": True, + }, }, { "id": BUDGET_ID_2, "name": "Budget 2", + "currency_format": { + "currency_symbol": "$", + "decimal_digits": 2, + "decimal_separator": ".", + "display_symbol": True, + "example_format": "123,456.78", + "group_separator": ",", + "iso_code": "USD", + "symbol_first": True, + }, }, ] diff --git a/tests/_main_test.py b/tests/_main_test.py index 6322547..7323865 100644 --- a/tests/_main_test.py +++ b/tests/_main_test.py @@ -107,11 +107,25 @@ def test_insert_budgets(cur): { "id": BUDGET_ID_1, "name": BUDGETS[0]["name"], + "currency_format_currency_symbol": "$", + "currency_format_decimal_digits": 2, + "currency_format_decimal_separator": ".", + "currency_format_display_symbol": 1, + "currency_format_group_separator": ",", + "currency_format_iso_code": "USD", + "currency_format_symbol_first": 1, "last_knowledge_of_server": LKOS[BUDGET_ID_1], }, { "id": BUDGET_ID_2, "name": BUDGETS[1]["name"], + "currency_format_currency_symbol": "$", + "currency_format_decimal_digits": 2, + "currency_format_decimal_separator": ".", + "currency_format_display_symbol": 1, + "currency_format_group_separator": ",", + "currency_format_iso_code": "USD", + "currency_format_symbol_first": 1, "last_knowledge_of_server": LKOS[BUDGET_ID_2], }, ]