init
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
"""Review schemas"""
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
from typing import Optional, List
|
||||
from datetime import datetime
|
||||
from app.models.review import ReviewStatusEnum
|
||||
from app.models.comment import SeverityEnum
|
||||
|
||||
|
||||
class CommentResponse(BaseModel):
|
||||
"""Schema for comment response"""
|
||||
id: int
|
||||
file_path: str
|
||||
line_number: int
|
||||
content: str
|
||||
severity: SeverityEnum
|
||||
posted: bool
|
||||
posted_at: Optional[datetime] = None
|
||||
created_at: datetime
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
|
||||
class PullRequestInfo(BaseModel):
|
||||
"""Schema for pull request information"""
|
||||
id: int
|
||||
pr_number: int
|
||||
title: str
|
||||
author: str
|
||||
source_branch: str
|
||||
target_branch: str
|
||||
url: str
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
|
||||
class ReviewResponse(BaseModel):
|
||||
"""Schema for review response"""
|
||||
id: int
|
||||
pull_request_id: int
|
||||
pull_request: PullRequestInfo
|
||||
status: ReviewStatusEnum
|
||||
started_at: datetime
|
||||
completed_at: Optional[datetime] = None
|
||||
files_analyzed: int
|
||||
comments_generated: int
|
||||
error_message: Optional[str] = None
|
||||
comments: Optional[List[CommentResponse]] = None
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
|
||||
class ReviewList(BaseModel):
|
||||
"""Schema for review list response"""
|
||||
items: List[ReviewResponse]
|
||||
total: int
|
||||
|
||||
|
||||
class ReviewStats(BaseModel):
|
||||
"""Schema for review statistics"""
|
||||
total_reviews: int
|
||||
active_reviews: int
|
||||
completed_reviews: int
|
||||
failed_reviews: int
|
||||
total_comments: int
|
||||
avg_comments_per_review: float
|
||||
|
||||
Reference in New Issue
Block a user