from collections import Counter

def main(input):
    counts = Counter(row["event_id"] for row in input)
    output = []
    for row in input:
        reasons = []
        if not row["event_id"].strip():
            reasons.append("missing_event_id")
        elif counts[row["event_id"]] > 1:
            reasons.append("duplicate_event_id")
        if not row["campaign_id"].strip():
            reasons.append("missing_campaign")
        output.append(dict(row, quality_reasons=", ".join(reasons), reportable=not reasons))
    return output
