Files
warehouse13/app/schemas/artifact.py
2025-10-14 15:37:37 -05:00

52 lines
1.5 KiB
Python

from pydantic import BaseModel, Field
from typing import Optional, Dict, Any, List
from datetime import datetime
class ArtifactCreate(BaseModel):
test_name: Optional[str] = None
test_suite: Optional[str] = None
test_config: Optional[Dict[str, Any]] = None
test_result: Optional[str] = None
metadata: Optional[Dict[str, Any]] = None
description: Optional[str] = None
tags: Optional[List[str]] = None
version: Optional[str] = None
parent_id: Optional[int] = None
class ArtifactResponse(BaseModel):
id: int
filename: str
file_type: str
file_size: int
storage_path: str
content_type: Optional[str] = None
test_name: Optional[str] = None
test_suite: Optional[str] = None
test_config: Optional[Dict[str, Any]] = None
test_result: Optional[str] = None
metadata: Optional[Dict[str, Any]] = None
description: Optional[str] = None
tags: Optional[List[str]] = None
created_at: datetime
updated_at: datetime
version: Optional[str] = None
parent_id: Optional[int] = None
class Config:
from_attributes = True
class ArtifactQuery(BaseModel):
filename: Optional[str] = None
file_type: Optional[str] = None
test_name: Optional[str] = None
test_suite: Optional[str] = None
test_result: Optional[str] = None
tags: Optional[List[str]] = None
start_date: Optional[datetime] = None
end_date: Optional[datetime] = None
limit: int = Field(default=100, le=1000)
offset: int = Field(default=0, ge=0)