ports.py 944 B

123456789101112131415161718192021222324252627282930313233343536
  1. """Ports owned by the query planning bounded context."""
  2. from __future__ import annotations
  3. from typing import Any, Protocol
  4. from uuid import UUID
  5. from query_planning.domain import GenerationRequest, GeneratorKind, GeneratorOutput, KnowledgeNeedDraft
  6. class QueryGenerator(Protocol):
  7. kind: GeneratorKind
  8. def generate(self, request: GenerationRequest) -> GeneratorOutput:
  9. ...
  10. class LegacyQueryBatchSink(Protocol):
  11. def create_query_batch(self, **kwargs: Any) -> Any:
  12. ...
  13. def add_query(self, **kwargs: Any) -> Any:
  14. ...
  15. class QueryPlanningStore(Protocol):
  16. def create_plan(self, **kwargs: Any) -> UUID:
  17. ...
  18. def add_knowledge_need(self, *, plan_id: UUID, need: KnowledgeNeedDraft) -> UUID:
  19. ...
  20. def link_plan_batch(self, *, plan_id: UUID, batch_id: UUID) -> None:
  21. ...
  22. def link_query_need(self, *, query_id: UUID, knowledge_need_id: UUID) -> None:
  23. ...