75 lines
2.4 KiB
Python
75 lines
2.4 KiB
Python
from fastapi import APIRouter, Depends, Query
|
|
from sqlalchemy.orm import Session
|
|
|
|
from backend.app.api.deps import require_roles
|
|
from backend.app.db import get_db_session
|
|
from backend.app.schemas.common import success_payload
|
|
from backend.app.services.reminder_service import reminder_service
|
|
|
|
router = APIRouter(prefix="/api/reminders", tags=["reminders"])
|
|
|
|
|
|
@router.get("")
|
|
def list_reminders(
|
|
reminder_type: str | None = Query(default=None),
|
|
status: str | None = Query(default=None),
|
|
receiver_user_id: int | None = Query(default=None),
|
|
page_no: int = Query(default=1),
|
|
page_size: int = Query(default=20),
|
|
session: Session = Depends(get_db_session),
|
|
current_user: dict = Depends(require_roles("salesman", "manager", "admin")),
|
|
) -> dict:
|
|
return success_payload(
|
|
reminder_service.list_reminders(
|
|
session,
|
|
{
|
|
"reminder_type": reminder_type,
|
|
"status": status,
|
|
"receiver_user_id": receiver_user_id,
|
|
"page_no": page_no,
|
|
"page_size": page_size,
|
|
},
|
|
)
|
|
)
|
|
|
|
|
|
@router.post("/{reminder_id}/read")
|
|
def read_reminder(
|
|
reminder_id: int,
|
|
session: Session = Depends(get_db_session),
|
|
current_user: dict = Depends(require_roles("salesman", "manager", "admin")),
|
|
) -> dict:
|
|
return success_payload(reminder_service.read_reminder(reminder_id, session))
|
|
|
|
|
|
@router.post("/arrears/check")
|
|
def check_arrears_reminders(
|
|
session: Session = Depends(get_db_session),
|
|
current_user: dict = Depends(require_roles("manager", "admin")),
|
|
) -> dict:
|
|
return success_payload(reminder_service.check_arrears(session))
|
|
|
|
|
|
@router.post("/inactive-customers/check")
|
|
def check_inactive_customer_reminders(
|
|
session: Session = Depends(get_db_session),
|
|
current_user: dict = Depends(require_roles("manager", "admin")),
|
|
) -> dict:
|
|
return success_payload(reminder_service.check_inactive_customers(session))
|
|
|
|
|
|
@router.post("/logistics-timeout/check")
|
|
def check_logistics_timeout_reminders(
|
|
session: Session = Depends(get_db_session),
|
|
current_user: dict = Depends(require_roles("manager", "admin")),
|
|
) -> dict:
|
|
return success_payload(reminder_service.check_logistics_timeout(session))
|
|
|
|
|
|
@router.post("/check-all")
|
|
def check_all_reminders(
|
|
session: Session = Depends(get_db_session),
|
|
current_user: dict = Depends(require_roles("manager", "admin")),
|
|
) -> dict:
|
|
return success_payload(reminder_service.check_all(session))
|