- // FIXME: `select('e.*')` seems too broad.
- $e->query
- ->select('e.*')
- ->select('mt.minimum_fee as fee, e.id as id , e.join_date, e.start_date, e.end_date, ms.name as status, mt.name as type')
- ->join('mt', "!casMailingJoinType civicrm_membership_type mt ON e.membership_type_id = mt.id")
- ->join('ms', "!casMailingJoinType civicrm_membership_status ms ON e.status_id = ms.id");
+ /**
+ * Get any overrides for token metadata.
+ *
+ * This is most obviously used for setting the audience, which
+ * will affect widget-presence.
+ *
+ * Changing the audience is done in order to simplify the
+ * UI for more general users.
+ *
+ * @return \string[][]
+ */
+ protected function getTokenMetadataOverrides(): array {
+ return [
+ 'owner_membership_id' => ['audience' => 'sysadmin'],
+ 'max_related' => ['audience' => 'sysadmin'],
+ 'contribution_recur_id' => ['audience' => 'sysadmin'],
+ 'is_override' => ['audience' => 'sysadmin'],
+ 'is_test' => ['audience' => 'sysadmin'],
+ // Pay later is considered to be unreliable in the schema
+ // and will eventually be removed.
+ 'is_pay_later' => ['audience' => 'deprecated'],
+ ];