'SavedSearch_ContactCategories_Locus_2_1', 'entity' => 'SavedSearch', 'cleanup' => 'unused', 'update' => 'unmodified', 'params' => [ 'version' => 4, 'values' => [ 'name' => 'ContactCategories_Locus_2_1', 'label' => E::ts('ContactCategories Locus 2.1'), 'api_entity' => 'Contact', 'api_params' => [ 'version' => 4, 'select' => [ 'id', 'sort_name', 'contact_type:label', 'contact_sub_type:label', 'Contact_ContributionRecur_contact_id_01_ContributionRecur_Contribution_contribution_recur_id_01.total_amount', ], 'orderBy' => [], 'where' => [], 'groupBy' => ['id'], 'join' => [ [ 'ContributionRecur AS Contact_ContributionRecur_contact_id_01', 'INNER', [ 'id', '=', 'Contact_ContributionRecur_contact_id_01.contact_id', ], [ 'Contact_ContributionRecur_contact_id_01.contribution_status_id:name', '=', '"Cancelled"', ], ], [ 'Contribution AS Contact_ContributionRecur_contact_id_01_ContributionRecur_Contribution_contribution_recur_id_01', 'INNER', [ 'Contact_ContributionRecur_contact_id_01.id', '=', 'Contact_ContributionRecur_contact_id_01_ContributionRecur_Contribution_contribution_recur_id_01.contribution_recur_id', ], [ 'Contact_ContributionRecur_contact_id_01_ContributionRecur_Contribution_contribution_recur_id_01.contribution_status_id:name', '=', '"Completed"', ], ], ], 'having' => [], ], 'description' => E::ts('anyone with an expired regular giving that yielded at least one completed contribution. Note: they may also have non-expired regular giving, but this is the catch all below those criteria.'), ], 'match' => ['name'], ], ], ];