Spaces:
Running
Running
File size: 2,598 Bytes
090d2fb | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | """
check_ammar_csv_callbacks.py -- read-only: CSV-imported leads added by Ammar Ali that have a callback
scheduled, and whether each one would actually show on Pipeline right now.
User request, 2026-09-23: "csv import sy Ammar Ali ny jo lead add ki hain or us me action perform kye
callbacks waly, woh lead humny pipeline me add krna hai" -- Pipeline's own inScope filter
(components/pipeline/pipeline-view.tsx) already shows ANY lead with callback_at set, regardless of
source/who added it, automatically -- so this checks whether that's actually true for these leads, or
whether something is stopping them from showing up (hidden, no callback_at despite the disposition, etc).
uv run python scripts/check_ammar_csv_callbacks.py
Read-only -- prints what it finds, changes nothing.
"""
from __future__ import annotations
import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).resolve().parent.parent))
from sqlalchemy import select # noqa: E402
from app.database import SessionLocal # noqa: E402
from app.models import Lead, User # noqa: E402
def main() -> int:
db = SessionLocal()
try:
ammar = db.scalar(select(User).where(User.name.ilike("%ammar%")))
if not ammar:
print("No user matching 'ammar' found.")
return 1
print(f"Matched user: #{ammar.id} {ammar.name} <{ammar.email}>\n")
leads = list(
db.scalars(
select(Lead)
.where(Lead.source_prompt == "CSV Batch Import", Lead.created_by_user_id == ammar.id)
.order_by(Lead.created_at)
).all()
)
print(f"{len(leads)} CSV-imported lead(s) added by {ammar.name} total.\n")
with_callback = [l for l in leads if l.callback_at is not None]
print(f"{len(with_callback)} of those have callback_at set:\n")
if not with_callback:
print("(none -- if a callback disposition was applied, it should have set this; check the")
print(" call_events / trace_csv_actions.py output for what outcome was actually recorded.)")
return 0
for lead in with_callback:
would_show = lead.hidden_at is None
print(f"#{lead.id:<6} {lead.company_name}")
print(f" stage={lead.pipeline_stage} callback_at={lead.callback_at} hidden_at={lead.hidden_at}")
print(f" would show on Pipeline right now: {'YES' if would_show else 'NO -- hidden_at is set'}")
print()
return 0
finally:
db.close()
if __name__ == "__main__":
sys.exit(main())
|