from pydantic import BaseModel from typing import Optional, List from datetime import datetime from src.models.types import Provider, IssueStatus, WorkflowStatus, PRStatus class Repository(BaseModel): name: str owner: str full_name: str provider: Provider url: str = "" class PullRequest(BaseModel): number: int title: str author: str status: PRStatus draft: bool = False labels: List[str] = [] url: str = "" created_at: Optional[datetime] = None class Issue(BaseModel): number: int title: str author: str status: IssueStatus labels: List[str] = [] url: str = "" created_at: Optional[datetime] = None class Workflow(BaseModel): id: int name: str status: WorkflowStatus conclusion: Optional[str] = None url: str = "" created_at: Optional[datetime] = None class Config(BaseModel): github_token: Optional[str] = None gitlab_token: Optional[str] = None default_repo: Optional[str] = None refresh_interval: int = 30 theme: str = "dark"