from fastapi import APIRouter, Depends, HTTPException from sqlalchemy.orm import Session from .database import get_db from .models import NewsItem from pydantic import BaseModel from datetime import datetime router = APIRouter() # Modelo de datos de entrada class NewsItemCreate(BaseModel): titulo: str contenido: str autor: str | None = None fuente: str | None = None fecha: datetime | None = None link: str @router.post("/news/") def create_news_item(item: NewsItemCreate, db: Session = Depends(get_db)): # Verificar si el título ya existe existing_item = db.query(NewsItem).filter(NewsItem.titulo == item.titulo).first() if existing_item: raise HTTPException(status_code=400, detail="El título ya existe en la base de datos") # Crear nuevo objeto new_item = NewsItem( titulo=item.titulo, contenido=item.contenido, autor=item.autor, fuente=item.fuente, fecha=item.fecha or datetime.utcnow(), link=item.link ) db.add(new_item) db.commit() db.refresh(new_item) return {"message": "Noticia creada con éxito", "id": new_item.id, "titulo": new_item.titulo}