PXG_2026_API/config/pxg.php

41 lines
1.5 KiB
PHP

<?php
return [
'otp_ttl_minutes' => (int) env('OTP_TTL_MINUTES', 5),
'otp_max_attempts' => (int) env('OTP_MAX_ATTEMPTS', 5),
'otp_rate_limit_per_phone' => (int) env('OTP_RATE_LIMIT_PER_PHONE', 3), // per 10 minutes
'pairing_token_ttl_minutes' => (int) env('PAIRING_TOKEN_TTL_MINUTES', 30),
'wa_otp_driver' => env('WA_OTP_DRIVER', 'log'),
'pairing' => [
// Balanced target seats: 4 slots (BEGINNER treated as HIGH-like by default)
'balanced_target' => ['LOW', 'MID', 'MID', 'HIGH'],
// Seat fill order
'seat_order' => [1,2,3,4],
// Pace-of-play guardrails
'max_high_like_per_flight' => 2,
// Course balancing: spread assigned seats across A/B unless course_pref is set
'course_balance' => true,
// Semi-hard course preference:
// true => always try preferred course first; only fallback if no seats exist on preferred.
// false => treat as soft preference (score-based).
'course_pref_semi_hard' => true,
// Hole bottleneck guardrail:
// Distribute HIGH/BEGINNER across start holes (shotgun) to avoid stacking slow flights on same hole.
'hole_balance_high_like' => true,
// Penalty weight for assigning high-like players onto already high-like-heavy holes.
'hole_high_like_penalty' => 12,
],
'xendit' => [
'api_key' => env('XENDIT_API_KEY', ''),
'webhook_token' => env('XENDIT_WEBHOOK_TOKEN', ''),
],
];