Source code for app.schemas.update_member_schema

from pydantic import BaseModel, Field, field_validator
from typing import Optional, List

from app.utils import is_valid_datestring

[docs] class UpdateMemberSchema(BaseModel): username: Optional[str] = Field(default=None, min_length=3, max_length=32, pattern="^[a-zA-Z0-9]*$") name: Optional[str] = Field(default=None, min_length=1, max_length=512) email: Optional[str] = Field(default=None, min_length=1, max_length=512) password: Optional[str] = Field(default=None, min_length=6, max_length=256) member_number: Optional[int] = Field(default=None, gt=0) course: Optional[str] = Field(default=None, min_length=1, max_length=8) roles: Optional[List[str]] = Field(default=None) join_date: Optional[str] = Field(default=None) exit_date: Optional[str] = Field(default=None) description: Optional[str] = Field(default=None, max_length=2048) extra: Optional[str] = Field(default=None, max_length=2048)
[docs] @field_validator("join_date", "exit_date") @classmethod def validate_datestring(cls, v: str): if v is None: return None if not is_valid_datestring(v): raise ValueError( f'Invalid date format: "{v}". Expected format is "YYYY-MM-DD"' ) return v