Add admin user management

This commit is contained in:
2026-04-03 12:23:44 +00:00
parent 3d37186fa7
commit 5168e52e4b
18 changed files with 989 additions and 19 deletions
+59
View File
@@ -0,0 +1,59 @@
"""User request and response schemas."""
from __future__ import annotations
from datetime import datetime
from pydantic import BaseModel, Field, field_validator
class UserResponse(BaseModel):
id: str
username: str
email: str | None = None
created_at: datetime | None = None
updated_at: datetime | None = None
class CreateUserRequest(BaseModel):
username: str = Field(min_length=1)
email: str | None = None
@field_validator("username")
@classmethod
def normalize_username(cls, value: str) -> str:
normalized = value.strip()
if not normalized:
raise ValueError("username은 비어 있을 수 없습니다")
return normalized
@field_validator("email")
@classmethod
def normalize_email(cls, value: str | None) -> str | None:
if value is None:
return None
normalized = value.strip()
return normalized or None
class UpdateUserRequest(BaseModel):
username: str | None = Field(default=None, min_length=1)
email: str | None = None
@field_validator("username")
@classmethod
def normalize_username(cls, value: str | None) -> str | None:
if value is None:
return None
normalized = value.strip()
if not normalized:
raise ValueError("username은 비어 있을 수 없습니다")
return normalized
@field_validator("email")
@classmethod
def normalize_email(cls, value: str | None) -> str | None:
if value is None:
return None
normalized = value.strip()
return normalized or None