inital commit

This commit is contained in:
2026-06-08 15:57:11 +02:00
parent aaf8729663
commit d9ca48addc
114 changed files with 12172 additions and 1 deletions

View File

@@ -0,0 +1,29 @@
from __future__ import annotations
import argparse
from app.db.bootstrap import create_all_tables
from app.db.models import Campaign, CampaignJob
from app.db.session import SessionLocal
from app.security.api_keys import authenticate_api_key
from app.settings import settings
def main() -> None:
parser = argparse.ArgumentParser(description="List persisted campaigns and job counts.")
parser.add_argument("--api-key", default=settings.dev_bootstrap_api_key)
args = parser.parse_args()
create_all_tables()
with SessionLocal() as session:
api_key = authenticate_api_key(session, args.api_key)
if not api_key:
raise SystemExit("Invalid API key")
campaigns = session.query(Campaign).filter(Campaign.tenant_id == api_key.tenant_id).order_by(Campaign.updated_at.desc()).all()
for campaign in campaigns:
jobs = session.query(CampaignJob).filter(CampaignJob.campaign_id == campaign.id).count()
print(f"{campaign.id} | {campaign.status:15s} | jobs={jobs:4d} | {campaign.name}")
if __name__ == "__main__":
main()