fix(pilot): drop pydantic EmailStr — email-validator dep missing → backend startup crash #337

Merged
lekss361 merged 1 commit from fix/pilot-email-validator-hotfix into main 2026-05-17 21:32:24 +00:00

View file

@ -11,7 +11,7 @@ import logging
from typing import Annotated, Any, Literal from typing import Annotated, Any, Literal
from fastapi import APIRouter, Depends, Request from fastapi import APIRouter, Depends, Request
from pydantic import BaseModel, EmailStr, Field from pydantic import BaseModel, Field
from sqlalchemy import text from sqlalchemy import text
from sqlalchemy.orm import Session from sqlalchemy.orm import Session
@ -25,7 +25,10 @@ router = APIRouter()
class PilotRequestInput(BaseModel): class PilotRequestInput(BaseModel):
name: str = Field(min_length=2, max_length=200) name: str = Field(min_length=2, max_length=200)
phone: str | None = Field(default=None, max_length=50) phone: str | None = Field(default=None, max_length=50)
email: EmailStr | None = None # Note: was EmailStr but `email-validator` package not in deps → ImportError
# on backend startup → container unhealthy → whole deploy fails. Using plain
# str + minimal regex; full validation can happen on frontend/CRM side.
email: str | None = Field(default=None, max_length=200, pattern=r"^[^@\s]+@[^@\s]+\.[^@\s]+$")
company: str | None = Field(default=None, max_length=200) company: str | None = Field(default=None, max_length=200)
message: str | None = Field(default=None, max_length=2000) message: str | None = Field(default=None, max_length=2000)
source: Literal["landing", "analyze_page", "other"] = "landing" source: Literal["landing", "analyze_page", "other"] = "landing"