feat: implement initial structure for activities, analytics, auth, contacts, deals, organizations, tasks, and users APIs with placeholder endpoints

This commit is contained in:
Artem Kashaev
2025-11-27 13:37:37 +05:00
parent 6d9387d1b4
commit 666e0c49f8
35 changed files with 382 additions and 2 deletions
+4
View File
@@ -0,0 +1,4 @@
"""Activities API package."""
from .views import router
__all__ = ["router"]
+1
View File
@@ -0,0 +1 @@
"""CRUD helpers for activities (to be implemented)."""
+11
View File
@@ -0,0 +1,11 @@
"""Pydantic schemas for activity endpoints."""
from __future__ import annotations
from typing import Any, Literal
from pydantic import BaseModel
class ActivityCommentPayload(BaseModel):
type: Literal["comment"]
payload: dict[str, Any]
+26
View File
@@ -0,0 +1,26 @@
"""Activity timeline API stubs."""
from __future__ import annotations
from fastapi import APIRouter, status
from .models import ActivityCommentPayload
router = APIRouter(prefix="/deals/{deal_id}/activities", tags=["activities"])
def _stub(endpoint: str) -> dict[str, str]:
return {"detail": f"{endpoint} is not implemented yet"}
@router.get("/", status_code=status.HTTP_501_NOT_IMPLEMENTED)
async def list_activities(deal_id: int) -> dict[str, str]:
"""Placeholder for listing deal activities."""
_ = deal_id
return _stub("GET /deals/{deal_id}/activities")
@router.post("/", status_code=status.HTTP_501_NOT_IMPLEMENTED)
async def create_activity_comment(deal_id: int, payload: ActivityCommentPayload) -> dict[str, str]:
"""Placeholder for adding a comment activity to a deal."""
_ = (deal_id, payload)
return _stub("POST /deals/{deal_id}/activities")