STAGES = [
    ("new", "New"), ("contacted", "Contacted"), ("interested", "Interested"),
    ("meeting", "Meeting / demo"), ("proposal", "Proposal sent"),
    ("won", "Won"), ("lost", "Lost"), ("dnc", "Do not contact"),
]
TERMINAL = {"won", "lost", "dnc"}              # no follow-ups needed any more
PRIORITIES = [("", "-"), ("high", "High"), ("medium", "Medium"), ("low", "Low")]
PRIORITY_RANK = {"": 3, "high": 0, "medium": 1, "low": 2}

ACTIVITY_TYPES = [("call", "Call"), ("visit", "Visit"), ("email", "Email"),
                  ("message", "WhatsApp / SMS"), ("meeting", "Meeting"),
                  ("demo", "Demo"), ("note", "Note")]
SYSTEM_TYPES = [("stage", "Stage change"), ("system", "Update")]
OUTCOMES = [("", "-"), ("connected", "Spoke with them"), ("no_answer", "No answer"),
            ("left_message", "Left a message"), ("callback", "Asked to call back"),
            ("interested", "Interested"), ("not_interested", "Not interested"),
            ("wrong_number", "Wrong number")]

CONTACT_TYPES = {"call", "visit", "email", "message", "meeting", "demo"}
ATTEMPT_ONLY_OUTCOMES = {"no_answer", "left_message", "wrong_number"}   # tried, but didn't reach them

STAGE_LABELS = dict(STAGES)
PRIORITY_LABELS = dict(PRIORITIES)
KIND_LABELS = dict(ACTIVITY_TYPES + SYSTEM_TYPES)
OUTCOME_LABELS = {k: v for k, v in OUTCOMES if k}
