gateway/modules/datamodels/datamodelTickets.py
2025-10-05 16:28:44 +02:00

22 lines
626 B
Python

"""Ticket datamodels used across Jira/ClickUp connectors."""
from typing import Optional
from pydantic import BaseModel, Field
from abc import ABC, abstractmethod
class TicketFieldAttribute(BaseModel):
fieldName: str = Field(description="Human-readable field name")
field: str = Field(description="Ticket field ID/key")
class TicketBase(ABC):
@abstractmethod
async def read_attributes(self) -> list[TicketFieldAttribute]: ...
@abstractmethod
async def read_tasks(self, *, limit: int = 0) -> list[dict]: ...
@abstractmethod
async def write_tasks(self, tasklist: list[dict]) -> None: ...