from fastapi import APIRouter
from pydantic import BaseModel
from functions.helpers import z_score_from_confidence, cochran

router = APIRouter()


# ----------- Request Models -----------

class ConfidenceRequest(BaseModel):
    confidence: float


class CochranRequest(BaseModel):
    Z: float
    p: float
    E: float
    N: int | None = None


# ----------- Routes -----------

@router.post("/confidence-score")
def get_confidence_score(payload: ConfidenceRequest):
    return {
        "z_score": z_score_from_confidence(payload.confidence)
    }


@router.post("/cochran")
def calculate_cochran(payload: CochranRequest):
    return cochran(**payload.dict())

