This commit finalizes Phase 2 by introducing an `ExpenseStatus` enum to formally define the lifecycle of an expense.
- Adds an `ExpenseStatus` enum in `src/data_models.py` with states like `RECEIVED`, `AWAITING_CONFIRMATION`, and `CONFIRMED`.
- Updates the `ProvisionalExpense` and `FinalExpense` models to use the new enum for their `status` fields, improving type safety and clarity.
- Marks all of Phase 2 as complete in `tasks.md`.
This commit introduces the initial implementation of the input handler and Pydantic data models.
- Adds `src/modules/input_handler.py` with text normalization and stubs for other input types.
- Adds `src/data_models.py` with `RawInput`, `ExtractedExpense`, `ProvisionalExpense`, and `FinalExpense` models.
- Integrates the new modules into the `/process-expense` endpoint in `src/main.py`.
- Updates `tasks.md` to reflect the completion of these tasks.
Updates the tasks.md file to a checklist format to track progress.
- Marks Phase 1 setup tasks as complete.
- Adds a note clarifying that n8n will be used for webhook handling instead of a direct Telegram integration in the app.
This commit introduces the initial project structure for the expense tracker application. It includes the basic directory layout, configuration files, a FastAPI server with a `/process-expense` endpoint for n8n integration, and a `.gitignore` file to ensure a clean repository. This completes Phase 1 of the development plan.
El README se ha actualizado para reflejar el propósito y las características del sistema de gestión de gastos personalizable construido con Python y Telegram. Se han añadido secciones sobre objetivos, características principales, arquitectura de datos, tecnologías utilizadas y principios de diseño.