Loading
feat: enforce unique person+contact-type per WiscNic group member
A person may hold multiple contact-type roles (e.g., Admin and Tech) in the same group, but the same (person, group, contact type) triple should not repeat. AddMemberAsync now returns 409 on duplicates, and a unique composite index on wn_group_members enforces it at the DB level.