from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
import pyodbc

app = FastAPI()

conn_str = (
	"Driver={ODBC Driver 18 for SQL Server};"
        "Server=192.168.1.13;"
        "Database=Home;"
        "UID=unabomber;"
        "PWD=n116533891W2k;"
        "Encrypt=yes;"
        "TrustServerCertificate=yes;"
)

class MarkRequest(BaseModel):
    fileIds: list[int]
    toDelete: bool

def get_conn():
    return pyodbc.connect(conn_str)

@app.post("/dup-groups/mark")
def mark_files(req: MarkRequest):

    if not req.fileIds:
        raise HTTPException(status_code=400, detail="No fileIds supplied")

    conn = get_conn()
    try:
        cursor = conn.cursor()

        # Build parameter placeholders safely
        placeholders = ",".join("?" for _ in req.fileIds)

        sql = f"""
            UPDATE files
            SET todelete = ?
            WHERE id IN ({placeholders})
        """

        cursor.execute(sql, [int(req.toDelete)] + req.fileIds)
        conn.commit()

        return {"updated": cursor.rowcount}

    finally:
        conn.close()
