from fastapi import FastAPI, Request, Depends, UploadFile, Form from fastapi.responses import HTMLResponse from fastapi.templating import Jinja2Templates from sqlalchemy.orm import Session from app.database import Base, engine, get_db from app import models from app.routers import content, deliver, health app = FastAPI(title="PR/IR MiniSaaS") app.include_router(content.router) app.include_router(deliver.router) app.include_router(health.router) templates = Jinja2Templates(directory="app/templates") @app.on_event("startup") def on_startup(): Base.metadata.create_all(bind=engine) @app.get("/", response_class=HTMLResponse) async def index(request: Request, db: Session = Depends(get_db)): drafts = db.query(models.Draft).order_by(models.Draft.id.desc()).limit(20).all() return templates.TemplateResponse("index.html", {"request": request, "drafts": drafts, "Tone": models.Tone, "ContentType": models.ContentType}) @app.get("/draft/{draft_id}", response_class=HTMLResponse) async def detail(draft_id: int, request: Request, db: Session = Depends(get_db)): d = db.get(models.Draft, draft_id) return templates.TemplateResponse("detail.html", {"request": request, "d": d})