- FastAPI skeleton, SQLAlchemy models (§13), Alembic initial migration - SchedulingProvider interface with google_calendar (free/busy read-only), partner_api (Appendix B client) and mock implementations - Proposal engine: create → provider-routed delivery → owner actions (resolve/confirm+SMS/reject) → expiry + reminders (§9) - Signed single-use action links, .ics METHOD:REQUEST attachment - Partner outcome webhook with HMAC verification + polling fallback - SmsProvider (console) with Bosnian templates (§5.5), EmailProvider (console/SMTP) - Fake partner API server in tests/ — Appendix B reference implementation - 43 tests: slot math, proposal lifecycle, action links, partner contract Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
13 lines
252 B
Docker
13 lines
252 B
Docker
FROM python:3.12-slim
|
|
|
|
WORKDIR /app
|
|
COPY pyproject.toml README.md* ./
|
|
COPY gogo ./gogo
|
|
COPY alembic ./alembic
|
|
COPY alembic.ini ./
|
|
|
|
RUN pip install --no-cache-dir -e .
|
|
|
|
EXPOSE 8000
|
|
CMD ["uvicorn", "gogo.main:app", "--host", "0.0.0.0", "--port", "8000"]
|