"""Task examples for the Python nodes playground."""

from sqlbuild.tasks import SkipMode, task


@task(tags=["python", "ingress"], group="ingress")
def prepare_raw_orders(ctx):
    """Prepare a tiny in-memory order extract before the loader runs."""

    rows = [
        {"order_id": 1, "customer_id": 10, "amount_cents": 1200, "load_batch": 1},
        {"order_id": 2, "customer_id": 20, "amount_cents": 800, "load_batch": 1},
    ]
    return ctx.result(payload={"rows": rows}, metadata={"row_count": len(rows)})


@task(tags=["python", "optional"], group="exports")
def optional_partner_feed(ctx):
    """Soft-skip an optional upstream without blocking sibling fan-in."""

    return ctx.skip(reason="partner feed is not configured", mode=SkipMode.SOFT)


@task(tags=["python", "optional"], group="exports")
def export_window(ctx):
    """Successful sibling that lets downstream fan-in continue."""

    return ctx.result(payload={"window": "daily"})
