# Royal Teen Patti — Public Rooms और Owner Guide

## गेम में क्या नया है?

अब **Royal Teen Patti** में private code के बिना भी कोई registered player normal/public table में जा सकता है। Login के बाद **Play Teen Patti → Room List → Gold Rooms → Play Now** दबाएँ। Server उसी boot-tier की किसी खुली table में बैठाएगा। कोई table खाली न मिले तो नई public table अपने आप बनती है। ये अलग-अलग original UI assets और CSS से डिज़ाइन किए गए screens हैं; किसी दूसरे गेम के graphics कॉपी नहीं हुए हैं।

| Public room tier | Boot (virtual chips) | Table पर आने के लिए minimum | Maximum unused table chips |
|---|---:|---:|---:|
| Starter | 50 | 500 | 15,000 |
| Bronze | 100 | 1,000 | 30,000 |
| Silver | 250 | 2,500 | 75,000 |
| Gold | 500 | 5,000 | 150,000 |
| Platinum | 1,000 | 10,000 | 300,000 |
| Royal | 2,000 | 20,000 | 600,000 |

ऊपर दी गई सभी राशियाँ **free virtual chips** हैं, रुपये नहीं। Win होने पर table stack maximum entry से ऊपर जा सकता है; maximum नई chips को table पर लाने की सीमा है।

## Normal Public Room कैसे चलता है?

1. नया खिलाड़ी **नाम, फोन और email OTP** से register करेगा। उसे स्थायी `TP...` Game ID मिलेगा।
2. Home Lobby में **Play Teen Patti** पर क्लिक करेगा और public Room List खुलेगी।
3. **Gold Rooms** tab में Boot, Entry Limit, Online Players और Play Now दिखेगा। Online count वास्तविक connected player count है; demo के fake numbers नहीं।
4. Player **Play Now** दबाएगा। Minimum chips उसके free virtual wallet से table stack में ले जाएँगे। यह atomic transaction है; entry debit fail होने पर table join नहीं होगा।
5. Matchmaker उसी tier की उपलब्ध public table चुनेगा; नहीं होने पर नई table बनाएगा। Room code share करने की ज़रूरत नहीं है।
6. कम-से-कम **3 connected ready players** मिलें तो करीब 8 सेकंड की countdown के बाद round अपने आप शुरू होगा। कुल 6 खिलाड़ी बैठ सकते हैं। Public room में किसी host को Start दबाने की जरूरत नहीं।
7. अगले round के लिए खिलाड़ी **Ready** दबाएँगे। Wallet में free chips बचने पर बीच मैच में **Add to table** कर सकते हैं; unused chips **Withdraw to wallet** कर सकते हैं। यह cash withdrawal नहीं है।
8. **Leave Table** करने पर पहले से चल रहा hand fold होगा और बचे हुए unused table chips free wallet में लौटेंगे।
9. Wallet कम हो तो **Free Rewards** और **Request free chips from Owner** खुल सकते हैं; Telegram notification configured हो तो Owner को request का alert भेजा जाएगा।

**Private Room** का अलग option भी रहेगा: Home से create करें, code शेयर करें, फिर invited friends join करके host द्वारा round start करें। Practice में chip wallet नहीं घटता।

## Owner का पूरा Control

Owner same login screen से seeded admin account में login करेगा और sidebar में **Owner Dashboard** खोलेगा:

- **Players** → Player का `TP...` Game ID डालकर खोजें, profile/balance देखें, block/unblock करें।
- **Chip Requests** → Player की free-chip request approve/reject करें, reason लिखें।
- **Wallet Edit** → Game ID के अनुसार exact balance overwrite या signed adjustment करें; audit log में record रहेगा।
- **Live Rooms** → Public/private active tables, pot, online players और betting action logs देखें।
- **Round History** → Round खत्म होने के बाद सभी cards और winner देखें।
- **Safety Flags** → असामान्य gameplay की heuristic flags review करें।

Owner खेलते समय दूसरे खिलाड़ियों के hidden cards secretly नहीं देख सकता। Live hidden card access पुराने disclosed/private spectator mode तक सीमित है।

## Install / update

1. पुराने database का backup लें और old API process रोकें।
2. इस ZIP से files निकालें, `.env.example` को `.env` में copy करें और PostgreSQL/SMTP configure करें।
3. Node.js 22+, npm, PostgreSQL 16+ चाहिए।
4. `npm install`, `npm run migrate`, `npm run seed:owner` (पहली बार), और फिर `npm run dev:api` तथा `npm run dev:web` चलाएँ। Production build के लिए `npm run build`, `npm start` और HTTPS reverse proxy इस्तेमाल करें।
5. Browser में तीन real accounts से एक ही Boot tier चुनकर पूरा public round टेस्ट करें। फिर insufficient-balance, disconnect/reconnect, rewards और Owner chip request भी जाँचें।

**ध्यान दें:** यह source-code update है, verified live deployment / Android APK नहीं। Unit tests पास हैं, लेकिन npm installation इस environment में timeout हुई; इसलिए final Vite build और PostgreSQL/socket end-to-end run सत्यापित नहीं हैं। असली पैसे से chips खरीदना, cash prizes और UPI/bank payouts शामिल नहीं हैं।
