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

# Bally validate mock
MOCK_VALIDATE_RESULT=SUCCESS
MOCK_VALIDATE_FAIL_PINS=0000

# Member profile / image mock
MOCK_MEMBER_FIRST_NAME=MOCK
MOCK_MEMBER_LAST_NAME=MEMBER
MOCK_MEMBER_TIER=MOCK
MOCK_MEMBER_EBONUS=0
MOCK_MEMBER_PHONE=+85312345678
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_DETAIL_INCLUDE_DEFAULT_RECORD=false

# Task 10766 scenario mock
# 开启后，accountNum=MOCK_TASK_10766_ACCOUNT_NUM 会返回固定 CNY Promotion，
# 且 /ewl/bal/v1/playerpromotion/redeem 稳定返回 "Prize definition not found" 场景
MOCK_TASK_10766_ENABLED=true
MOCK_TASK_10766_ACCOUNT_NUM=80010766
MOCK_TASK_10766_PROMOTION_CAPTURE_FILE=./fixtures/promotions.capture.10766.json
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=80010852 会固定返回可点击的 entitled 双 outcome Promotion，便于直接验证 targetPrizes 多项场景
MOCK_TASK_10852_ENABLED=true
MOCK_TASK_10852_ACCOUNT_NUM=80010852
# Task 10852: Point the dedicated member to a minimal entitled fixture so Redeem stays enabled only for this account.
MOCK_TASK_10852_PROMOTION_CAPTURE_FILE=./fixtures/promotions.capture.10852.json
MOCK_TASK_10852_MEMBER_EBONUS=188

MOCK_PROMOTION_REDEMPTION_BRIDGE_ENABLED=true
MOCK_PROMOTION_REDEMPTION_BRIDGE_BASE_URL=http://127.0.0.1:8080
MOCK_PROMOTION_REDEMPTION_BRIDGE_LOGIN_USERNAME=admin
MOCK_PROMOTION_REDEMPTION_BRIDGE_LOGIN_PASSWORD=admin
MOCK_PROMOTION_REDEMPTION_BRIDGE_TIMEOUT_MS=60000
MOCK_PROMOTION_REDEMPTION_INITIATE_SOURCE=EDIP_MINI_KIOSK
MOCK_PROMOTION_REDEMPTION_SOURCE_BUCKET=m-comp
MOCK_PROMOTION_REDEMPTION_ID_START=

# 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 任意用户名/密码放行（用于前后端联调）
# 注意：若需按账号区分用户组（如 admin/admin2），请关闭该模式
MOCK_LDAP_ALLOW_ANY_USER_MODE=false
MOCK_LDAP_ALLOW_ANY_USER_OU=OU=GLPUsers
MOCK_LDAP_ALLOW_ANY_USER_GROUP_CN=SG-EWALLET-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-EWALLET-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"]}]
# 注意：组名（CN）必须与后端数据库 roles 表中的 code 完全一致，否则登录后权限为空
MOCK_LDAP_USERS_JSON=[{"sAMAccountName":"admin","dn":"cn=admin,OU=GLPUsers,dc=macausjm-glp,dc=com","password":"admin","cn":"Admin","mail":"admin@macausjm-glp.com","memberOf":["cn=SG-EWALLET-ADMIN,OU=SecurityGroups,OU=GLPUsers,dc=macausjm-glp,dc=com"]},{"sAMAccountName":"admin2","dn":"cn=admin2,OU=GLPUsers,dc=macausjm-glp,dc=com","password":"admin2","cn":"Admin Two","mail":"admin2@macausjm-glp.com","memberOf":["cn=SG-EWALLET-ADMIN,OU=SecurityGroups,OU=GLPUsers,dc=macausjm-glp,dc=com"]},{"sAMAccountName":"admin3","dn":"cn=admin3,OU=GLPUsers,dc=macausjm-glp,dc=com","password":"admin3","cn":"Admin Three","mail":"admin3@macausjm-glp.com","memberOf":["cn=SG-EWALLET-OPERATOR,OU=SecurityGroups,OU=GLPUsers,dc=macausjm-glp,dc=com"]},{"sAMAccountName":"batch.test","dn":"cn=batch.test,OU=GLPUsers,dc=macausjm-glp,dc=com","password":"batch.test","cn":"Batch Test","mail":"batch.test@macausjm-glp.com","memberOf":["cn=SG-EWALLET-BATCH-OPERATION-EDITOR,OU=SecurityGroups,OU=GLPUsers,dc=macausjm-glp,dc=com"]},{"sAMAccountName":"batch.approver","dn":"cn=batch.approver,OU=GLPUsers,dc=macausjm-glp,dc=com","password":"batch.approver","cn":"Batch Approver","mail":"batch.approver@macausjm-glp.com","memberOf":["cn=SG-EWALLET-BATCH-OPERATION-APPROVER,OU=SecurityGroups,OU=GLPUsers,dc=macausjm-glp,dc=com"]}]
