← ClaudeAtlas

pydantic-modellisted

Pydantic v2 model patterns for req/res validation, MongoDB conversion, validation rules. Travel Panel conventions.
hackermanishackerman/claude-skills-vault · ★ 2 · AI & Automation · score 68
Install: claude install-skill hackermanishackerman/claude-skills-vault
# Pydantic Model Skill Pydantic v2 model guidance for Travel Panel. ## When to Use - Creating req/res models for endpoints - Defining DTOs - Adding validation rules - MongoDB ↔ API response conversion ## Project Context - Models: `app/classes/<feature>/` - Version: Pydantic v2 only - Docs: `docs/endpoint-development-guide.md` ## CRITICAL: v2 API Only | Deprecated (v1) | Use (v2) | |------------------|-----------------------| | `__fields__` | `model_fields` | | `__validators__` | `model_validators` | | `schema()` | `model_json_schema()` | | `parse_obj()` | `model_validate()` | | `dict()` | `model_dump()` | | `json()` | `model_dump_json()` | ## Model Creation ### Step 1: Create Model File Location: `app/classes/<feature>/<feature>_models.py` ```python from pydantic import BaseModel, Field, field_validator, model_validator from typing import Optional, List from datetime import datetime, timezone from enum import Enum class StatusEnum(str, Enum): ACTIVE = "active" INACTIVE = "inactive" PENDING = "pending" class ItemCreate(BaseModel): """Create item request.""" name: str = Field(..., min_length=1, max_length=255, examples=["My Item"]) description: Optional[str] = Field(None, max_length=2000) status: StatusEnum = Field(default=StatusEnum.ACTIVE) tags: List[str] = Field(default_factory=list, max_length=10) price: flo