#!/usr/bin/env python3
"""Local decision-rule exercise. No network, AI model, Make API or file writes.
Run: python3 customer-handoff-routing-check.py customer-handoff-test-cases.csv
This educational fixture does not implement persistent duplicate detection.
"""
import csv
import sys
from pathlib import Path


def route(record):
    reference = record.get('reference', '').strip()
    if reference and record.get('already_processed', '').strip().lower() == 'true':
        return 'duplicate_review'
    if not reference or not record.get('contact', '').strip() or not record.get('request', '').strip():
        return 'manual_review'
    return 'prepare_for_staff_review'


def main():
    if len(sys.argv) != 2:
        raise SystemExit('Usage: python3 customer-handoff-routing-check.py CASES.csv')
    with Path(sys.argv[1]).open(newline='', encoding='utf-8') as source:
        cases = list(csv.DictReader(source))
    if not cases:
        raise SystemExit('FAIL: no test cases')
    failed = []
    for case in cases:
        actual = route(case)
        passed = actual == case['expected']
        print(f"{'PASS' if passed else 'FAIL'} {case['case']}: {actual}")
        if not passed:
            failed.append(case['case'])
    if failed:
        raise SystemExit(f'FAIL: {len(failed)} of {len(cases)} cases')
    print(f'PASS: {len(cases)} local routing cases. No external actions performed.')


if __name__ == '__main__':
    main()
