Commit Graph

22 Commits

Author SHA1 Message Date
dba7f7bdc9 test: add edge cases for backup cutoff filtering
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-21 23:24:32 +08:00
9997ee6f32 feat: replace --start/--end with --days param on backup command
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-21 23:20:30 +08:00
d3ff2dae98 fix: update integration test, remove unused import, fix stale comment
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-21 23:07:29 +08:00
e0eff89e8c refactor: change backup_orders to use cutoff param instead of start/end
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-21 23:02:18 +08:00
fac909ca8b docs: add implementation plan for backup --days parameter
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-21 22:31:05 +08:00
34db3dc439 docs: add design spec for backup --days parameter
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-21 22:16:24 +08:00
ef449729d7 fix: use entity_to_row for backup CSV output and handle non-numeric state values
Switch backup to write converted entities instead of raw table rows via
entity_to_row, and map string state values like "Payed"/"Recived" to their
integer equivalents during CSV parsing. Add sandbox.toml config.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-21 20:53:55 +08:00
c5897e5d0d feat: add source export script and clean up .DS_Store tracking
Add scripts/export_source.sh to export project source to dist-source/,
add .DS_Store and dist-source/ to .gitignore, remove tracked .DS_Store.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-21 18:27:24 +08:00
7f52375115 chore: add assets config template and update gitignore
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-21 18:17:54 +08:00
81feca7814 feat: add --count option to scan command for limiting records scanned
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-21 17:24:32 +08:00
3d40a44d91 docs: add README
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-21 16:59:46 +08:00
ca5f5fb06d feat: add integration tests and seed script for Azure Storage emulator
- scripts/seed_test_data.py: seeds 45 orders (30 Recived + 15 Payed) across
  5 users and 3 days into the emulator
- tests/test_integration.py: full pipeline test (seed → scan → backup → delete)
  with table cleanup before/after
- pytest marker "integration" to separate from unit tests

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-21 16:21:07 +08:00
a36bfcc0f0 refactor: fix review issues — reuse entity_to_row, public parse_row, validate dates
- scan.py: use entity_to_row from csv_utils instead of duplicated _fmt
- csv_utils: rename _parse_row to parse_row (public API)
- backup.py: use public parse_row
- cli.py: validate --start < --end in backup command

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-21 16:06:51 +08:00
57c985ee3e feat: delete command — batch delete from CSV with confirmation
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-21 16:02:06 +08:00
cb7d9212e0 feat: backup command — filter scan CSV by state and date range
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-21 15:57:36 +08:00
b135a49de5 fix: stream scan writes instead of accumulating in memory 2026-04-21 15:53:50 +08:00
8070f2f99b feat: scan command — full table scan to CSV with throttling
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-21 15:52:42 +08:00
dd5edfe03c feat: CSV utilities for order entity serialization
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-21 15:50:23 +08:00
3239fd1032 feat: config module with TOML loading
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-21 15:05:55 +08:00
f0ea821d49 chore: add .gitignore and remove cached bytecode
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-21 15:00:01 +08:00
910be27cc4 feat: project scaffold with uv, click, azure-data-tables
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-21 14:59:11 +08:00
1ae84e994a initial: project docs and design spec 2026-04-21 14:51:56 +08:00