- Returns all `ACTIVE` mentors. `PENDING` and `REJECTED` mentors never appear. - `GET /mentors` accepts these optional query params: `keyword`, `mentorshipTypes`, `yearsExperience`, `areas`, `languages`, `focus`. - Type filter cases: - `?mentorshipTypes=AD_HOC` returns mentors with non-empty `menteeSection.adHoc`; excludes long-term-only. - `?mentorshipTypes=LONG_TERM` returns mentors with non-null `menteeSection.longTerm`; excludes ad-hoc-only. - `?mentorshipTypes=AD_HOC,LONG_TERM` returns the union — a mentor offering only one type still appears. - A mentor offering both appears in both single-type filters. - When the open cycle is `CLOSED`, the response still returns active mentors but skips the cycle-specific availability projection. Verify response shape. - Apply-button rule can be rendered client-side from the existing payload (for ad-hoc and both) — no extra call required.
ACTIVEmentors.PENDINGandREJECTEDmentors never appear.GET /mentorsaccepts these optional query params:keyword,mentorshipTypes,yearsExperience,areas,languages,focus.?mentorshipTypes=AD_HOCreturns mentors with non-emptymenteeSection.adHoc; excludes long-term-only.?mentorshipTypes=LONG_TERMreturns mentors with non-nullmenteeSection.longTerm; excludes ad-hoc-only.?mentorshipTypes=AD_HOC,LONG_TERMreturns the union — a mentor offering only one type still appears.CLOSED, the response still returns active mentors but skips the cycle-specific availability projection. Verify response shape.