50339aef6d
CLI per §10.8 with --help, --dry-run and a summary; English and Swedish headers with member columns matched by name; CSV quoting; payments as settlements with one allocation; trailing totals row used to reconcile the account balance (mismatch rolls back, exit 4); non-SEK rows abort unless --fx; committed category table data/splitwise_categories.csv; idempotent re-runs through import_key; rows validated with the server's push checks, audited with source import, no pushes; one BEGIN IMMEDIATE transaction. Tests over synthetic fixtures only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TQd3pEP9UeN2uifbHknQ7B
32 lines
898 B
TOML
32 lines
898 B
TOML
[package]
|
|
name = "kvitt-import"
|
|
description = "Splitwise CSV importer for Kvitt (SPEC §10.8)."
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
rust-version.workspace = true
|
|
publish.workspace = true
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[lib]
|
|
path = "src/lib.rs"
|
|
|
|
[[bin]]
|
|
name = "kvitt-import"
|
|
path = "src/main.rs"
|
|
|
|
[dependencies]
|
|
chrono = { version = "0.4.45", default-features = false, features = ["clock", "std"] }
|
|
clap = { version = "4.6.7", features = ["derive"] }
|
|
csv = "1.4.0"
|
|
kvitt-domain = { version = "0.1.0", path = "../kvitt-domain" }
|
|
kvitt-server = { version = "0.1.0", path = "../kvitt-server" }
|
|
serde_json = "1.0.154"
|
|
sqlx = { version = "0.9.0", default-features = false, features = ["runtime-tokio", "sqlite"] }
|
|
tokio = { version = "1.53.3", features = ["rt"] }
|
|
uuid = { version = "1.28.0", features = ["v7"] }
|
|
|
|
[dev-dependencies]
|
|
tokio = { version = "1.53.3", features = ["rt", "macros"] }
|