/
aastray
/
StudentPart
Обзор
Документация
Войти
/
aastray
/
StudentPart
Код
Запросы
0
Задачи
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
API-lib/src/schemas/PracticeSchemas/application_schema.py
58 строк
3 KB
aastray
Реализован функционал загрузки файлов и просмотра документов, удалены базовые эндпоинты, обновлена документация
10 янв 2026, 15:38
10 янв 2026, 15:38
4d47c55
Код
Авторство
О чём код?
""" Схемы данных для работы с анкетами на практику. """ from typing import Optional, Dict, Any, List from datetime import datetime from pydantic import BaseModel, Field class PracticeApplicationCreate(BaseModel): """ Схема для создания новой анкеты на практику. """ student_id: str = Field(..., description="ID студента из внешней системы") practice_type: str = Field(..., description="Вид практики: учебная, производственная, преддипломная") practice_subtype: Optional[str] = Field(None, description="Тип практики (для производственной)") application_data: Dict[str, Any] = Field(..., description="Данные из анкеты студента") status: Optional[str] = Field("draft", description="Статус анкеты (по умолчанию draft)") class PracticeApplicationUpdate(BaseModel): """ Схема для обновления анкеты на практику. """ practice_type: Optional[str] = Field(None, description="Вид практики") practice_subtype: Optional[str] = Field(None, description="Тип практики") status: Optional[str] = Field(None, description="Статус анкеты") application_data: Optional[Dict[str, Any]] = Field(None, description="Данные из анкеты") submitted_at: Optional[datetime] = Field(None, description="Дата отправки") approved_at: Optional[datetime] = Field(None, description="Дата одобрения") printed_at: Optional[datetime] = Field(None, description="Дата печати документов") class PracticeApplicationResponse(BaseModel): """ Схема для ответа с данными анкеты на практику. """ id: str = Field(..., description="ID анкеты") student_id: str = Field(..., description="ID студента") practice_type: str = Field(..., description="Вид практики") practice_subtype: Optional[str] = Field(None, description="Тип практики") status: str = Field(..., description="Статус анкеты") application_data: Dict[str, Any] = Field(..., description="Данные из анкеты") created_at: datetime = Field(..., description="Дата создания") updated_at: datetime = Field(..., description="Дата обновления") submitted_at: Optional[datetime] = Field(None, description="Дата отправки") approved_at: Optional[datetime] = Field(None, description="Дата одобрения") printed_at: Optional[datetime] = Field(None, description="Дата печати документов") class Config: from_attributes = True class PracticeApplicationListResponse(BaseModel): """ Схема для ответа со списком анкет. """ total: int = Field(..., description="Общее количество анкет") items: List[PracticeApplicationResponse] = Field(..., description="Список анкет")