Implement storage layer for MVP-1 Personal Tracker CLI

Add storage layer with FileStorage, MarkdownReader, and MarkdownWriter classes.
Add data models (Project, Session, Note, Change).
This commit is contained in:
2026-03-23 08:54:00 -03:00
parent 525996f60c
commit 4547c492da
16 changed files with 1013 additions and 0 deletions

23
tracker/models/session.py Normal file
View File

@@ -0,0 +1,23 @@
"""Session model definition."""
from pydantic import BaseModel, Field
from datetime import datetime
from typing import Optional
class Session(BaseModel):
"""Represents a work session on a project."""
id: str
project_slug: str
started_at: datetime
ended_at: Optional[datetime] = None
duration_minutes: Optional[int] = None
objective: str = ""
summary: str = ""
work_done: list[str] = Field(default_factory=list)
changes: list[str] = Field(default_factory=list)
decisions: list[str] = Field(default_factory=list)
blockers: list[str] = Field(default_factory=list)
next_steps: list[str] = Field(default_factory=list)
references: list[str] = Field(default_factory=list)
raw_notes: list[dict] = Field(default_factory=list) # [{"type": "work", "text": "...", "timestamp": "..."}]