# ── Database ──
DB_HOST=localhost
DB_PORT=5432
DB_USERNAME=genex
DB_PASSWORD=genex_dev_password
DB_NAME=genex

# ── Redis ──
REDIS_HOST=localhost
REDIS_PORT=6379

# ── JWT ──
JWT_ACCESS_SECRET=dev-access-secret-change-in-production
JWT_ACCESS_EXPIRY=15m
JWT_REFRESH_SECRET=dev-refresh-secret-change-in-production
JWT_REFRESH_EXPIRY=7d

# ── SMS ──
SMS_ENABLED=false
SMS_CODE_EXPIRE_SECONDS=300
SMS_DAILY_LIMIT=10
SMS_MAX_VERIFY_ATTEMPTS=5

# ── Aliyun SMS (only when SMS_ENABLED=true) ──
# ALIYUN_ACCESS_KEY_ID=
# ALIYUN_ACCESS_KEY_SECRET=
# ALIYUN_SMS_SIGN_NAME=券金融
# ALIYUN_SMS_TEMPLATE_CODE=SMS_501745796
# ALIYUN_SMS_TPL_REGISTER=SMS_501745796
# ALIYUN_SMS_TPL_LOGIN=SMS_501720822
# ALIYUN_SMS_TPL_RESET_PASSWORD=SMS_501735781
# ALIYUN_SMS_TPL_CHANGE_PHONE=SMS_501925825
# ALIYUN_SMS_TPL_IDENTITY_VERIFY=SMS_501925825
# ALIYUN_SMS_TPL_TRANSACTION=SMS_501820752
# ALIYUN_SMS_TPL_PAYMENT=SMS_501855782

# ── Email (Gmail SMTP) ──
# EMAIL_ENABLED=true 时使用 Gmail 真实发送; false 时验证码打印到控制台
EMAIL_ENABLED=false
EMAIL_CODE_EXPIRE_SECONDS=300
EMAIL_DAILY_LIMIT=10
EMAIL_MAX_VERIFY_ATTEMPTS=5

# Gmail SMTP (only when EMAIL_ENABLED=true)
# 步骤：Google 账号 → 安全性 → 开启两步验证 → 应用专用密码 → 选「邮件」→ 复制16位密码
# GMAIL_USER=noreply@gmail.com
# GMAIL_APP_PASSWORD=xxxxxxxxxxxxxx     (16位，填写时不含空格)
# EMAIL_FROM_NAME=Genex

# ── WeChat OAuth (微信开放平台移动应用) ──────────────────────────────────────
#
# 申请步骤（需企业资质，个人无法申请移动应用 OAuth）：
#
# 1. 注册/登录微信开放平台
#    https://open.weixin.qq.com
#    → 账号中心 → 开发者资质认证（年费 300 元，需营业执照/组织机构代码证）
#
# 2. 创建移动应用
#    管理中心 → 移动应用 → 创建移动应用
#    填写基本信息：应用名称、简介、图标（512×512 PNG，无圆角）
#    填写平台信息：
#      Android — 应用包名: cn.gogenex.consumer
#                应用签名: release keystore 的 MD5（32位小写，无冒号分隔）
#                获取签名: keytool -exportcert -keystore release.jks \
#                           -alias release -storepass <密码> | md5sum
#      iOS     — Bundle ID: cn.gogenex.consumer
#    提交审核，等待 1-7 个工作日
#
# 3. 审核通过后在「应用详情」页面获取：
#    AppID   (16位，wx 开头) — 填入 WECHAT_APP_ID，客户端和服务端均需要
#    AppSecret (32位)        — 填入 WECHAT_APP_SECRET，仅服务端使用，严格保密
#
# 4. 启用 unionid（强烈建议）
#    开放平台 → 账号中心 → 公众号/小程序/移动应用 绑定到同一开放平台账号
#    绑定后，同一微信用户在所有绑定应用中 unionid 相同，可跨 App 识别用户
#    若不绑定，不同 App 下同一用户的 openid 不同，会注册出多个账号
#
# 5. Flutter 构建时传入 AppID（在 Android Studio / Xcode / CI 脚本中配置）：
#    flutter build apk --dart-define=WECHAT_APP_ID=wx0000000000000000
#    flutter build ipa --dart-define=WECHAT_APP_ID=wx0000000000000000
#
# 注意事项：
#   - AppSecret 严禁写入客户端代码或提交到 Git，只在服务端 .env 中配置
#   - Android 发布正式版本时，签名 MD5 必须与申请时一致，否则微信授权失败
#   - iOS Universal Links 需要在开放平台填写 https://www.gogenex.com/wechat/
#     并确保该 URL 可访问 apple-app-site-association 文件
#
# WECHAT_APP_ID=wx0000000000000000
# WECHAT_APP_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

# ── 支付宝 OAuth（移动应用） ─────────────────────────────────────────────────
#
# 申请步骤：
# 1. 登录支付宝开放平台 https://open.alipay.com
#    → 控制台 → 创建应用 → 移动应用 → 填写 App 名称/图标/Bundle ID
#
# 2. 配置 RSA2 密钥对（SHA256WithRSA，推荐 2048 位）
#    下载「支付宝开放平台密钥工具」生成密钥对：
#    https://opendocs.alipay.com/common/02kipl
#    - 将「应用公钥」上传到支付宝开放平台
#    - 将「应用私钥（PKCS8 格式）」填入 ALIPAY_PRIVATE_KEY（Base64，无换行）
#    - 在开放平台获取「支付宝公钥」（非应用公钥），填入 ALIPAY_PUBLIC_KEY
#
# 3. 添加功能：获取会员信息（alipay.user.info.share）
#    应用详情 → 添加功能 → 获取会员信息 → 签约（约1个工作日审核）
#
# 4. 获取 AppID（16位数字，如 2021003189xxxxxx）
#
# ALIPAY_APP_ID=2021003189xxxxxx
# ALIPAY_PRIVATE_KEY=MIIEvAIBADANBgkqhkiG9w0BAQEFAASC...（PKCS8 Base64，无换行）
# ALIPAY_PUBLIC_KEY=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMI...（支付宝公钥，无换行）
# ALIPAY_GATEWAY=openapi.alipay.com  # 沙箱: openapi-sandbox.dl.alipaydev.com

# ── Google Sign-In ────────────────────────────────────────────────────────────
#
# 申请步骤：
# 1. 登录 Google Cloud Console https://console.cloud.google.com
#    → 选择/创建项目
#
# 2. 启用 API
#    API 和服务 → 库 → 搜索「Google Sign-In API」→ 启用
#
# 3. 创建 OAuth 2.0 凭据
#    API 和服务 → 凭据 → 创建凭据 → OAuth 2.0 客户端 ID
#    分别创建：
#      Android 类型: 包名 cn.gogenex.consumer + SHA-1 指纹（debug/release 各一）
#                  SHA-1 获取: keytool -exportcert -keystore debug.keystore \
#                    -alias androiddebugkey -storepass android | openssl sha1 -binary | xxd
#      iOS 类型:    Bundle ID cn.gogenex.consumer
#
# 4. 服务端获取一个「Web 应用」类型的 Client ID（可选，用于验证 aud 字段）
#    若不配置，GOOGLE_CLIENT_ID 可留空（跳过 aud 验证，安全性略降低）
#
# GOOGLE_CLIENT_ID=xxxxxxxxxx.apps.googleusercontent.com

# ── Apple Sign In ─────────────────────────────────────────────────────────────
#
# 申请步骤：
# 1. Apple Developer 账号（个人 $99/年）https://developer.apple.com
#
# 2. 开启 Sign In with Apple 能力
#    Certificates, Identifiers & Profiles
#    → Identifiers → 选择 App ID (cn.gogenex.consumer)
#    → Capabilities → 勾选「Sign In with Apple」→ Save
#
# 3. iOS Xcode 配置
#    Target → Signing & Capabilities → + Capability → Sign In with Apple
#
# APPLE_CLIENT_ID=cn.gogenex.consumer  # 填 Bundle ID 即可

# ── Kafka (optional, events silently skipped if unavailable) ──
KAFKA_BROKERS=localhost:9092

# ── Service ──
PORT=3010
