pydantic-modellisted
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