Skip to content

ADR 0039 — Member Gender Field ​

Status: Accepted
Date: 2026-06-24
Deciders: Kristopher Turner
Supersedes:
Related: ADR 0032 (extended profile fields), ADR 0038 (RBAC multi-role)


Context ​

Heritage Virginia communicates with members in ways that reflect biblical fellowship patterns — announcements, meeting invitations, or pastoral messages that are intended specifically for "brothers" (men) or "sisters" (women) in the congregation. Without a gender field, there is no programmatic way to target gendered communications.

This field is also relevant for future features such as gender-specific small groups, prayer circles, or service roles.

Decision ​

Add a gender field to the User model as a PostgreSQL enum.

Enum values ​

ValueMeaning
MALEMember self-identifies as male (brother)
FEMALEMember self-identifies as female (sister)
NOT_SPECIFIEDMember has not provided a gender (default)

Access model ​

OperationWho can do it
Self-set via profile editAny authenticated adult member
View in directory / member detailAdmin, minister
Filter or target for commsAdmin, minister
Read own valueMember themselves

Children (PARENT_MANAGED accounts) may also have a gender set — by the parent during child account management.

Wire format ​

gender is returned as lowercase on the wire: 'male', 'female', 'not_specified'. The field is included in UserProfile and MemberSummary DTOs.

Privacy ​

Gender is not shown in the public member directory. It is visible to admins and ministers, and to the member themselves on their profile.

Consequences ​

  • One new enum type (Gender) and one new column (User.gender) in the database.
  • UpdateMyProfileBody schema gains an optional gender field.
  • AdminUpdateUserRequest also gains gender (allows admin to correct on behalf of a child account).
  • UserProfile DTO gains gender: GenderSlug field.
  • MemberSummary DTO gains gender: GenderSlug field (for admin use and CSV export).
  • Profile edit page gains a gender selector (Male / Female / Prefer not to say).
  • Admin member view gains a gender display field.
  • Future comms feature can filter recipients by gender = MALE | FEMALE.

Heritage Community Hub — Internal. Access restricted via Cloudflare Access + Entra ID.