MOCK_GATEWAY_HOST=127.0.0.1 MOCK_GATEWAY_PORT=19090 # EDIP token mock MOCK_TOKEN_PERIOD_SECONDS=3600 MOCK_EDIP_FORCE_ERROR_CODE= MOCK_EDIP_FORCE_ERROR_MSG= MOCK_EDIP_REFRESH_TOKEN_MUST_EXIST=false MOCK_TOKEN_GET_FIXTURE_FILE=./fixtures/token.get.json # Bally validate mock MOCK_VALIDATE_RESULT=SUCCESS MOCK_VALIDATE_FAIL_PINS=0000 # Bally external mock routes MOCK_TEAM_HIERARCHY_STATUS=true MOCK_TEAM_HIERARCHY_ERROR_CODE= MOCK_TEAM_HIERARCHY_MESSAGE=Mock team hierarchy MOCK_TEAM_HIERARCHY_ROLE=SUPPORT MOCK_TEAM_HIERARCHY_DEPARTMENT=IT MOCK_TEAM_HIERARCHY_TAGS=MOCK MOCK_PRIZE_REDEEM_ERROR_CODE= MOCK_PRIZE_REDEEM_ERROR_MSG= MOCK_PRIZE_REDEEM_VALUE= MOCK_POINT_VOID_ERROR_CODE= MOCK_POINT_VOID_ERROR_MSG= MOCK_POINT_VOID_RESULT=true MOCK_REDEEMED_PROMOTION_DETAIL_ERROR_CODE= MOCK_REDEEMED_PROMOTION_DETAIL_ERROR_MSG= MOCK_REDEEMED_PROMOTION_DETAIL_INCLUDE_DEFAULT_RECORD=true MOCK_REDEEMED_PROMOTION_DETAIL_VOIDED=false MOCK_PLAYERPROMOTION_REDEEM_ERROR_CODE= MOCK_PLAYERPROMOTION_REDEEM_ERROR_MSG= MOCK_PLAYERPROMOTION_REDEEM_RESULT=true MOCK_PROMOTION_REDEMPTION_BRIDGE_ENABLED=false MOCK_PROMOTION_REDEMPTION_BRIDGE_BASE_URL=http://127.0.0.1:8080 MOCK_PROMOTION_REDEMPTION_BRIDGE_LOGIN_USERNAME= MOCK_PROMOTION_REDEMPTION_BRIDGE_LOGIN_PASSWORD=mock-password MOCK_PROMOTION_REDEMPTION_BRIDGE_TIMEOUT_MS=30000 MOCK_PROMOTION_REDEMPTION_INITIATE_SOURCE=PROMOTION_MODULE MOCK_PROMOTION_REDEMPTION_SOURCE_BUCKET=m-comp # 留空时默认使用当前 Unix 秒级时间戳作为 seed,且必须保持在 Backend int 范围内 MOCK_PROMOTION_REDEMPTION_ID_START= MOCK_REDEEMEDPROMOTION_VOID_ERROR_CODE= MOCK_REDEEMEDPROMOTION_VOID_ERROR_MSG= MOCK_REDEEMEDPROMOTION_VOID_RESULT=true # Prize redemptions sync mock MOCK_PRIZE_REDEMPTIONS_SYNC_SUCCESS=true MOCK_PRIZE_REDEMPTIONS_SYNC_MESSAGE=Mock prize redemptions sync success # Member profile / image mock MOCK_MEMBER_PROFILE_FIXTURE_FILE=./fixtures/member.profile.json MOCK_MEMBER_PROFILE_FORCE_STATUS_CODE= MOCK_MEMBER_PROFILE_FORCE_ERROR_CODE= MOCK_MEMBER_PROFILE_FORCE_ERROR_MSG=Mock member profile error MOCK_MEMBER_PROFILE_DELAY_MS=0 MOCK_MEMBER_FIRST_NAME=MOCK MOCK_MEMBER_LAST_NAME=MEMBER MOCK_MEMBER_TIER=MOCK MOCK_MEMBER_EBONUS=0 MOCK_MEMBER_PHONE=12345678 MOCK_MEMBER_BIRTHDAY=1990-01-01 MOCK_MEMBER_GENDER=M MOCK_MEMBER_IMAGE= # Tier points mock MOCK_PLAYER_EARN_POINTS=0 # Promotions mock # 允许使用抓包文件(文件可包含前置文本,JSON 从第一个 "{" 开始解析) MOCK_PROMOTION_CAPTURE_FILE=./fixtures/promotions.capture.800048718.json MOCK_PROMOTION_MAX_ITEMS=30 MOCK_PROMOTIONS_REDEEMED_FIXTURE_FILE=./e.p/promotions-redeemed.json MOCK_REDEEMED_PROMOTION_RECORDING_ENABLED=true MOCK_REDEEMED_PROMOTION_RECORDING_FILE=./runtime/redeemed-promotions.recorded.json MOCK_PROMOTION_REDEEM_FULFILLMENT_OVERRIDES_ENABLED=true MOCK_PROMOTION_REDEEM_FULFILLMENT_OVERRIDES_FILE=./runtime/promotion-redeem-fulfillment-overrides.json # Task 10766 scenario mock # 开启后,accountNum=MOCK_TASK_10766_ACCOUNT_NUM 会返回固定 CNY Promotion, # 且 /ewl/promotion/v1/playerpromotion/redeem 稳定返回 "Prize definition not found" 场景 MOCK_TASK_10766_ENABLED=false MOCK_TASK_10766_ACCOUNT_NUM=80010766 MOCK_TASK_10766_PROMOTION_CAPTURE_FILE=./fixtures/promotions.capture.10766.json MOCK_TASK_10766_MEMBER_EBONUS=8888 MOCK_TASK_10766_REDEEM_ERROR_CODE=EWALLET_HTTP_ERROR MOCK_TASK_10766_REDEEM_ERROR_MSG=ewallet connection failed: 404 NOT_FOUND, {"success":false,"message":"Prize definition not found"} MOCK_TASK_10766_REDEEM_RESULT=false # Task 10852 scenario mock # 开启后,accountNum=MOCK_TASK_10852_ACCOUNT_NUM 会固定返回可点击的 entitled 双 outcome Promotion, # 用于验证 promotion 多选时 targetPrizes 多项场景 MOCK_TASK_10852_ENABLED=false MOCK_TASK_10852_ACCOUNT_NUM=80010852 # Task 10852: Keep the dedicated member on an isolated fixture so the enabled Redeem state does not leak to shared mock data. MOCK_TASK_10852_PROMOTION_CAPTURE_FILE=./fixtures/promotions.capture.10852.json MOCK_TASK_10852_MEMBER_EBONUS=188 # LDAP mock (Simple Bind + Search) MOCK_LDAP_ENABLED=true MOCK_LDAP_HOST=0.0.0.0 MOCK_LDAP_PORT=1389 MOCK_LDAP_BASE_DN=dc=macausjm-glp,dc=com MOCK_LDAP_MANAGER_DN=cn=s-cicd-app,OU=ServiceAccount,dc=macausjm-glp,dc=com MOCK_LDAP_GROUP_BASE_DN=OU=SecurityGroups,OU=GLPUsers,dc=macausjm-glp,dc=com # 开启后:LDAP 任意用户名/密码放行(用于前后端联调) MOCK_LDAP_ALLOW_ANY_USER_MODE=true MOCK_LDAP_ALLOW_ANY_USER_OU=OU=GLPUsers MOCK_LDAP_ALLOW_ANY_USER_GROUP_CN=SG-APP-EWALLET-SUPER-ADMIN MOCK_LDAP_ALLOW_ANY_USER_MAIL_DOMAIN=macausjm-glp.com # 留空表示 manager bind 允许任意密码(便于 Backend 仅改 LDAP_URL 即可接入) MOCK_LDAP_MANAGER_PASSWORD= # Default LDAP user (used when MOCK_LDAP_USERS_JSON is empty) MOCK_LDAP_DEFAULT_USER_SAMACCOUNTNAME=mock.user MOCK_LDAP_DEFAULT_USER_DN=cn=mock.user,OU=GLPUsers,dc=macausjm-glp,dc=com MOCK_LDAP_DEFAULT_USER_PASSWORD=mock-user-password MOCK_LDAP_DEFAULT_USER_CN=Mock User MOCK_LDAP_DEFAULT_USER_MAIL=mock.user@macausjm-glp.com MOCK_LDAP_DEFAULT_USER_MEMBER_OF=cn=SG-APP-EWALLET-SUPER-ADMIN,OU=SecurityGroups,OU=GLPUsers,dc=macausjm-glp,dc=com # Optional JSON array to override LDAP users # Format: # MOCK_LDAP_USERS_JSON=[{"sAMAccountName":"alice","dn":"cn=alice,OU=GLPUsers,dc=macausjm-glp,dc=com","password":"pass","cn":"Alice","mail":"alice@macausjm-glp.com","memberOf":["cn=SG-APP-EWALLET-SUPER-ADMIN,OU=SecurityGroups,OU=GLPUsers,dc=macausjm-glp,dc=com"]}] MOCK_LDAP_USERS_JSON=