1:"""Campaign logs and audit log endpoints: send attempts, events, errors with filters,
118:@router.get("/audit")
119:async def list_audit(action: str = Query(""),
144:    return {"audit": out, "total": total, "page": page, "page_size": page_size}
===
app/api/routers/accounts.py:11:from app.core.security import log_audit
app/api/routers/accounts.py:102:    await log_audit(db, user.id, "gmail.test", "gmail_account", account.id,
app/api/routers/accounts.py:149:    await log_audit(db, user.id, "gmail.disconnect", "gmail_account", account.id,
app/api/routers/accounts.py:170:    await log_audit(db, user.id, "gmail.delete", "gmail_account", account_id,
app/api/routers/accounts.py:191:    await log_audit(db, user.id, "gmail.clear_all", "gmail_account", None,
app/api/routers/accounts.py:222:    await log_audit(db, user.id, "oauth_config.imported", "oauth_client_config", row.id,
app/api/routers/attachments.py:15:from app.core.security import log_audit
app/api/routers/attachments.py:169:    await log_audit(db, user.id, "attachment.upload", "attachment", att.id,
app/api/routers/attachments.py:234:    await log_audit(db, user.id, "attachment.convert_pdf", "html_template", tpl.id,
app/api/routers/attachments.py:309:    await log_audit(db, user.id, "attachment.delete", "attachment", att_id,
app/api/routers/attachments.py:329:    await log_audit(db, user.id, "attachment.clear_all", "attachment", None,
app/api/routers/auth.py:15:from app.core.security import (create_access_token, hash_password, log_audit,
app/api/routers/auth.py:65:    await log_audit(db, user.id, "user.register", "user", user.id,
app/api/routers/auth.py:218:    await log_audit(db, user_id, "gmail.authorized", "gmail_account", account.id,
app/api/routers/campaigns.py:18:from app.core.security import log_audit
app/api/routers/campaigns.py:217:    await log_audit(db, user.id, "campaign.create", "campaign", c.id, {"name": c.name})
app/api/routers/campaigns.py:245:    await log_audit(db, user.id, "campaign.patch", "campaign", c.id, {"fields": list(data.keys())})
app/api/routers/campaigns.py:258:    await log_audit(db, user.id, "campaign.delete", "campaign", cid, {"name": c.name})
app/api/routers/campaigns.py:276:    await log_audit(db, user.id, "campaign.clear_all", "campaign", None,
app/api/routers/campaigns.py:401:    await log_audit(db, user.id, "campaign.start", "campaign", c.id,
app/api/routers/campaigns.py:414:    await log_audit(db, user.id, "campaign.pause", "campaign", c.id, {})
app/api/routers/campaigns.py:428:    await log_audit(db, user.id, "campaign.resume", "campaign", c.id, {})
app/api/routers/campaigns.py:440:    await log_audit(db, user.id, "campaign.cancel", "campaign", c.id, {})
app/api/routers/logs.py:119:async def list_audit(action: str = Query(""),
app/api/routers/phones.py:14:from app.core.security import log_audit
app/api/routers/phones.py:129:    await log_audit(db, user.id, "phone.add", "company_phone", p.id, {"label": p.label})
app/api/routers/phones.py:200:    await log_audit(db, user.id, "phone.import", "company_phone", None,
app/api/routers/phones.py:217:    await log_audit(db, user.id, "phone.patch", "company_phone", pid,
app/api/routers/phones.py:230:    await log_audit(db, user.id, "phone.delete", "company_phone", pid, {"phone": phone_value})
app/api/routers/phones.py:243:    await log_audit(db, user.id, "phone.clear_all", "company_phone", None,
