Files
ThreatHunt/backend/app/schemas/report.py

55 lines
1.1 KiB
Python

from pydantic import BaseModel
from typing import Optional, Dict, Any
from datetime import datetime
class ReportTemplateBase(BaseModel):
"""Base report template schema"""
name: str
description: Optional[str] = None
template_type: str
template_config: Dict[str, Any]
is_default: bool = False
class ReportTemplateCreate(ReportTemplateBase):
"""Schema for creating a report template"""
pass
class ReportTemplateRead(ReportTemplateBase):
"""Schema for reading report template data"""
id: int
tenant_id: int
created_by: int
created_at: datetime
class Config:
from_attributes = True
class ReportBase(BaseModel):
"""Base report schema"""
title: str
report_type: str
format: str
class ReportCreate(ReportBase):
"""Schema for creating a report"""
template_id: Optional[int] = None
class ReportRead(ReportBase):
"""Schema for reading report data"""
id: int
tenant_id: int
template_id: Optional[int]
file_path: Optional[str]
status: str
generated_by: int
generated_at: datetime
class Config:
from_attributes = True