"""Recipients: manual add, CSV/TXT import with validation & preview, lists management.""" import csv import io import secrets from typing import List, Optional from fastapi import APIRouter, Depends, File, Form, HTTPException, Request, UploadFile from pydantic import BaseModel, EmailStr from sqlalchemy import delete as sa_delete, select, func from sqlalchemy.ext.asyncio import AsyncSession from app.api.deps import get_current_user, get_db from app.core.config import settings from app.core.security import log_audit from app.models import Recipient, RecipientList, SuppressionEntry, User from app.services import recipient_service router = APIRouter(prefix="/recipients", tags=["recipients"]) class ManualRecipient(BaseModel): email: EmailStr first_name: str = "" last_name: str = "" company_name: str = "" company_phone: str = "" customer_email: Optional[EmailStr] = None custom_fields: dict = {} class ListCreate(BaseModel): name: str description: str = "" def _rec_out(r: Recipient) -> dict: return {"id": r.id, "email": r.email, "first_name": r.first_name, "last_name": r.last_name, "company_name": r.company_name, "company_phone": r.company_phone, "customer_email": r.customer_email, "custom_fields": r.custom_fields or {}, "status": r.status, "is_valid": r.is_valid, "validation_error": r.validation_error} AttributeError: 'NoneType' object has no attribute 'model_dump'