Files
OSIT-AE-API-FastAPI/app/object_definitions/membership.py
Scott Idem b8a417a5d7 Key Accomplishments:
1. Badge Model Updates: Added print_count, print_first_datetime, and print_last_datetime to the
      Event_Badge_Basic_Base model.
   2. Soft Delete in V3 CRUD: Implemented a method query parameter (delete, hide, disable) for the DELETE
      endpoints in api_crud_v3.py.
   3. Security Hardening: Populated searchable_fields allowlists for all objects across the V3 CRUD
      definitions (core.py, events.py, orders.py, cms.py, lookups.py, membership.py, other.py).
   4. Shared Documentation: Created /home/scott/agents_sync/Aether/api_v3.md to coordinate these V3 API
      features with the Svelte agent and other tools.
2026-01-05 20:05:33 -05:00

126 lines
5.0 KiB
Python

from app.models.membership_cfg_models import *
from app.models.membership_group_models import *
from app.models.membership_person_group_models import *
from app.models.membership_person_models import *
from app.models.membership_person_profile_models import *
from app.models.membership_type_models import *
from app.models.membership_person_type_models import *
membership_obj_li = {
'membership_cfg': {
'tbl': 'membership_cfg',
'tbl_default': 'v_membership_cfg',
'tbl_update': 'membership_cfg',
'mdl': Membership_Cfg_Base,
'mdl_default': Membership_Cfg_Base,
# Legacy V2 keys:
'table_name': 'v_membership_cfg',
'tbl_name_update': 'membership_cfg',
'base_name': Membership_Cfg_Base,
# V3 Search Security:
'searchable_fields': [
'membership_cfg_id_random', 'account_id_random', 'name', 'description',
'created_on', 'updated_on'
],
},
'membership_group': {
'tbl': 'membership_group',
'tbl_default': 'v_membership_group',
'tbl_update': 'membership_group',
'mdl': Membership_Group_Base,
'mdl_default': Membership_Group_Base,
# Legacy V2 keys:
'table_name': 'v_membership_group',
'tbl_name_update': 'membership_group',
'base_name': Membership_Group_Base,
# V3 Search Security:
'searchable_fields': [
'membership_group_id_random', 'account_id_random', 'code', 'name',
'description', 'enable', 'hide', 'priority', 'group', 'created_on', 'updated_on'
],
},
'membership_person_group': {
'tbl': 'membership_person_group',
'tbl_default': 'v_membership_person_group',
'tbl_update': 'membership_person_group',
'mdl': Membership_Person_Group_Base,
'mdl_default': Membership_Person_Group_Base,
# Legacy V2 keys:
'table_name': 'v_membership_person_group',
'tbl_name_update': 'membership_person_group',
'base_name': Membership_Person_Group_Base,
# V3 Search Security:
'searchable_fields': [
'membership_person_group_id_random', 'membership_person_id_random',
'membership_group_id_random', 'enable', 'hide', 'priority', 'group',
'created_on', 'updated_on'
],
},
'membership_person': {
'tbl': 'membership_person',
'tbl_default': 'v_membership_person',
'tbl_update': 'membership_person',
'mdl': Membership_Person_Base,
'mdl_default': Membership_Person_Base,
# Legacy V2 keys:
'table_name': 'v_membership_person',
'tbl_name_update': 'membership_person',
'base_name': Membership_Person_Base,
# V3 Search Security:
'searchable_fields': [
'membership_person_id_random', 'account_id_random', 'person_id_random',
'status', 'enable', 'hide', 'priority', 'group', 'created_on', 'updated_on'
],
},
'membership_person_profile': {
'tbl': 'membership_person_profile',
'tbl_default': 'v_membership_person_profile',
'tbl_update': 'membership_person_profile',
'mdl': Membership_Person_Profile_Base,
'mdl_default': Membership_Person_Profile_Base,
# Legacy V2 keys:
'table_name': 'v_membership_person_profile',
'tbl_name_update': 'membership_person_profile',
'base_name': Membership_Person_Profile_Base,
# V3 Search Security:
'searchable_fields': [
'membership_person_profile_id_random', 'membership_person_id_random',
'informal_name', 'given_name', 'family_name', 'full_name',
'email', 'enable', 'hide', 'priority', 'group', 'created_on', 'updated_on'
],
},
'membership_type': {
'tbl': 'membership_type',
'tbl_default': 'v_membership_type',
'tbl_update': 'membership_type',
'mdl': Membership_Type_Base,
'mdl_default': Membership_Type_Base,
# Legacy V2 keys:
'table_name': 'v_membership_type',
'tbl_name_update': 'membership_type',
'base_name': Membership_Type_Base,
# V3 Search Security:
'searchable_fields': [
'membership_type_id_random', 'account_id_random', 'code', 'name',
'description', 'enable', 'hide', 'priority', 'group', 'created_on', 'updated_on'
],
},
'membership_person_type': {
'tbl': 'membership_person_type',
'tbl_default': 'v_membership_person_type',
'tbl_update': 'membership_person_type',
'mdl': Membership_Person_Type_Base,
'mdl_default': Membership_Person_Type_Base,
# Legacy V2 keys:
'table_name': 'v_membership_person_type',
'tbl_name_update': 'membership_person_type',
'base_name': Membership_Person_Type_Base,
# V3 Search Security:
'searchable_fields': [
'membership_person_type_id_random', 'membership_person_id_random',
'membership_type_id_random', 'enable', 'hide', 'priority', 'group',
'created_on', 'updated_on'
],
},
}