45 lines
1.1 KiB
Python
45 lines
1.1 KiB
Python
from datetime import datetime
|
|
from typing import Any, Dict, List, Optional
|
|
|
|
from orm.tables.events import EventState, EventStatus
|
|
from pydantic import Field, TypeAdapter
|
|
|
|
from api.schemas.base import Base
|
|
|
|
|
|
class ListEventUpdate(Base):
|
|
name: Optional[str] = Field(None, max_length=40)
|
|
title: Optional[str] = Field(None, max_length=64)
|
|
schema_: Optional[Dict[str, Any]] = Field(None, alias="schema")
|
|
state: Optional[EventState] = None
|
|
status: Optional[EventStatus] = None
|
|
|
|
|
|
class AllListEvent(Base):
|
|
id: int
|
|
name: str
|
|
title: str
|
|
creator_id: int
|
|
created_at: datetime
|
|
schema_: Dict[str, Any] = Field(default={}, alias="schema")
|
|
state: EventState
|
|
status: EventStatus
|
|
|
|
|
|
class AllListEventResponse(Base):
|
|
list_event: List[AllListEvent]
|
|
amount_count: int
|
|
amount_pages: int
|
|
current_page: int
|
|
limit: int
|
|
|
|
|
|
all_list_event_adapter = TypeAdapter(List[AllListEvent])
|
|
|
|
|
|
class ListEventFilterDTO(Base):
|
|
pagination: Dict[str, int]
|
|
search: Optional[str] = None
|
|
order: Optional[Dict[str, str]] = None
|
|
filters: Optional[Dict[str, List[str]]] = None
|