"""requirements.json schema produced by the Requirement Analyst."""

from __future__ import annotations

from typing import List, Optional

from pydantic import BaseModel, Field


class ClarificationQuestion(BaseModel):
    number: int
    question: str
    rationale: Optional[str] = None


class RequirementsArtifact(BaseModel):
    jira_key: str
    summary: str
    acceptance_criteria: List[str] = Field(default_factory=list)
    clarification_questions: List[ClarificationQuestion] = Field(default_factory=list)
    is_clear: bool
    confidence: float = Field(ge=0.0, le=1.0)
    referenced_documentation: List[str] = Field(default_factory=list)
    out_of_scope_items: List[str] = Field(default_factory=list)
    notes: Optional[str] = None

    def clarification_comment_body(self) -> str:
        lines = [
            "## Agent Nova needs clarification",
            "",
            "Please answer the questions below so analysis can continue:",
            "",
        ]
        for q in self.clarification_questions:
            lines.append(f"{q.number}. {q.question}")
        lines.extend(["", "Next step: reply in a comment with your answers to resume."])
        return "\n".join(lines)
