This commit is contained in:
Justin Visser 2026-03-02 00:03:27 +01:00
parent d9be57a6c1
commit 49cf7034b2
3 changed files with 23 additions and 5 deletions

View file

@ -2,7 +2,7 @@ from __future__ import annotations
from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field
from pydantic import BaseModel, ConfigDict, Field, model_validator
from app.api.schemas.common import ApiMeta
@ -128,11 +128,20 @@ class DataExportEnvelope(BaseModel):
class DataImportRequest(BaseModel):
schema_version: int | None = None
exported_at: str | None = None
scholars: list[ScholarExportItemData] = Field(default_factory=list)
publications: list[PublicationExportItemData] = Field(default_factory=list)
model_config = ConfigDict(extra="forbid")
@model_validator(mode="before")
@classmethod
def unwrap_export_envelope(cls, values: dict) -> dict: # type: ignore[override]
"""Accept the full export envelope format (with data/meta wrapper)."""
if isinstance(values, dict) and "data" in values and isinstance(values["data"], dict):
return values["data"]
return values
class DataImportResultData(BaseModel):
scholars_created: int