VcRlAgent's picture
Initial WorkWise backend GPU
06db534
"""Pydantic models for Jira ticket data"""
from pydantic import BaseModel, Field
from typing import Optional, List
from datetime import datetime
class JiraTicket(BaseModel):
"""Jira ticket schema"""
ticket_id: str = Field(..., description="Unique ticket identifier")
summary: str = Field(..., description="Ticket summary")
description: Optional[str] = Field(None, description="Detailed description")
status: str = Field(..., description="Current status")
priority: str = Field(..., description="Priority level")
assignee: Optional[str] = Field(None, description="Assigned team member")
reporter: str = Field(..., description="Ticket creator")
project: str = Field(..., description="Project name")
created_date: str = Field(..., description="Creation timestamp")
resolved_date: Optional[str] = Field(None, description="Resolution timestamp")
issue_type: str = Field(..., description="Type of issue")
labels: Optional[str] = Field(None, description="Comma-separated labels")
'''
class IngestRequest(BaseModel):
"""Request model for data ingestion"""
file_path: str = Field(..., description="Path to Jira data file")
'''
class IngestResponse(BaseModel):
status: str
records_indexed: int
message: str
class IngestResponse(BaseModel):
"""Response model for data ingestion"""
status: str
records_indexed: int
message: Optional[str] = None
class QueryRequest(BaseModel):
"""Request model for RAG queries"""
query: str = Field(..., description="Natural language question")
class ChartData(BaseModel):
"""Chart data structure"""
type: str = Field(..., description="Chart type: bar, line, pie")
data: List[dict] = Field(..., description="Chart data points")
class QueryResponse(BaseModel):
"""Response model for RAG queries"""
answer: str
chart: Optional[ChartData] = None
sources: Optional[List[str]] = None
class MetricsResponse(BaseModel):
"""Response model for metrics endpoint"""
avg_resolution_time: str
open_tickets: int
closed_tickets: int
sla_compliance: str
total_tickets: int