-
Notifications
You must be signed in to change notification settings - Fork 0
Closed
Description
Phase: 1 - Foundation
Estimated Effort: 3.5 hours
Tasks: Task 1, Task 2, Task 3 from specs/core-pipeline/tasks.md
Checklist
Task 1: Setup Dependencies & Configuration (30 min)
- Add FastAPI, Pydantic, Firestore dependencies
- Create Settings class with BaseSettings
- Create .env.example
- Create custom exceptions
Task 2: Create Event Schema Models (2 hours)
- Create RawEvent (ConfigDict(extra='allow'))
- Create TypedEvent base
- Create IdentifyEvent, TrackEvent, PageEvent
- Create Ref model with extract_refs()
- Write unit tests
Task 3: Define Protocols (1 hour)
- Create AdapterResult class (ok/err)
- Define EventAdapter Protocol
- Define EventStore Protocol
- Define ErrorStore Protocol
Acceptance Criteria
- All dependencies installed
- Configuration loads from environment
- RawEvent accepts any JSON
- TypedEvent models validate correctly
- All protocols defined
- Unit tests pass (>80% coverage)
- Type checking passes (mypy)
Files to Create
src/eventkit/config.py
src/eventkit/errors/exceptions.py
src/eventkit/schema/raw.py
src/eventkit/schema/events.py
src/eventkit/schema/refs.py
src/eventkit/adapters/base.py
src/eventkit/stores/event_store.py
src/eventkit/stores/error_store.py
tests/unit/schema/
tests/unit/adapters/test_base.py
User Stories: Story 1 (Flexible Ingestion), Story 3 (Type-Safe Processing), Story 4 (Refs)
Metadata
Metadata
Assignees
Labels
No labels