from typing import Any

from pydantic import BaseModel


class DatasetCreate(BaseModel):
    name: str
    description: str | None = None
    dataset_type: str
    metadata: dict[str, Any] | None = None

class DatasetUpdate(BaseModel):
    name: str | None = None
    description: str | None = None
    status: str | None = None

class SampleCreate(BaseModel):
    content: str
    label: str
    split: str
    source_task_id: int | None = None
    metadata: dict[str, Any] | None = None

class DatasetResponse(BaseModel):
    id: int
    name: str
    description: str | None
    dataset_type: str
    version: int
    parent_version_id: int | None
    total_samples: int
    train_samples: int
    validation_samples: int
    test_samples: int
    created_by: int | None
    created_at: str | None
    updated_at: str | None
    meta_data: dict[str, Any]

    class Config:
        from_attributes = True
