from pydantic import BaseModel
from typing import Optional
from datetime import datetime
from enum import Enum


class SectionStatus(str, Enum):
    active = "active"
    inactive = "inactive"
    deleted = "deleted"


# Shared fields
class SectionBase(BaseModel):
    name: Optional[str] = None
    key: Optional[str] = None
    status: SectionStatus = SectionStatus.active


# For create request
class SectionCreate(SectionBase):
    pass


# For update request
class SectionUpdate(SectionBase):
    pass


# Response schema
class SectionOut(SectionBase):
    id: int
    created_at: datetime
    updated_at: datetime

    class Config:
        from_attributes = True   # for SQLAlchemy ORM mode
