"""Pydantic models for Lambda response validation.""" from typing import Literal from pydantic import BaseModel, ConfigDict, Field from src.enums import EventType, TargetType class AdjustmentFileInitializeResponseData(BaseModel): """Data section for AdjustmentFileInitializeResponse.""" s3_bucket: str = Field(..., description='S3 bucket name') s3_key: str = Field(..., description='S3 object key') class AdjustmentFileInitializeResponseMetadata(BaseModel): """Metadata section for AdjustmentFileInitializeResponse.""" correlation_id: str = Field(..., description='Correlation ID for tracing') target_id: int = Field(..., description='The created batch ID') target_type: Literal[TargetType.WORKSHEET_ADJUSTMENT_BATCH] = Field( ..., description='Entity type (batch)' ) class AdjustmentFileInitializeResponseDetail(BaseModel): """Detail section for AdjustmentFileInitializeResponse.""" metadata: AdjustmentFileInitializeResponseMetadata = Field( ..., description='Event metadata' ) data: AdjustmentFileInitializeResponseData = Field( ..., description='Event business data' ) class AdjustmentFileInitializeResponse(BaseModel): """Response model for batch initialization.""" model_config = ConfigDict(populate_by_name=True) detail_type: Literal[EventType.ADJUSTMENT_BATCH_INITIALIZED] = Field( ..., description='Event type (e.g., adjustment_batch.initialized)', alias='detail-type', ) detail: AdjustmentFileInitializeResponseDetail = Field( ..., description='Event details' )