Betternet 4.1 - Fixed Build ============================ মূল database import error fix: - Original SQL dump-এ child table (যেমন billings) parent table (users) তৈরি হওয়ার আগে তৈরি হচ্ছিল। - ফলে MySQL/phpMyAdmin error #1005 / errno: 150 "Foreign key constraint is incorrectly formed" দেখাচ্ছিল। - Fixed SQL-এ parent table আগে এবং dependent table পরে তৈরি করা হয়েছে। - Re-import সহজ করার জন্য DROP TABLE IF EXISTS এবং FOREIGN_KEY_CHECKS handling যোগ করা হয়েছে। Script fixes: - Broken/unused resource routes বাদ দিয়ে কেবল বাস্তবে থাকা controller action রাখা হয়েছে। - Admin-only routes server-side admin middleware দিয়ে সুরক্ষিত করা হয়েছে। - Ticket access/comment/open/close-এ owner/admin authorization যোগ করা হয়েছে। - Stripe/bKash payment-এ অন্য user-এর bill pay করা, duplicate payment, এবং request amount trust করার সমস্যা ঠিক করা হয়েছে। - bKash custom route name conflict ঠিক করা হয়েছে। - Router/package/user validation শক্ত করা হয়েছে এবং package-router mismatch বন্ধ করা হয়েছে। - Payment model fillable typo ঠিক করা হয়েছে। - Random invoice/ticket number generation-এর undefined variable edge case ঠিক করা হয়েছে। - Migration rollback-এ missing foreign key/column cleanup ঠিক করা হয়েছে। - APP_TIMEZONE .env থেকে load করা হচ্ছে। - BKASH_SANDBOX environment key ঠিক করা হয়েছে। - Settings migration-এ mail_from_address/mail_from_name integer থেকে string করা হয়েছে। Import: 1. phpMyAdmin-এ target database select করুন। 2. পুরনো/partial tables থাকলেও fixed SQL নিজেই drop/recreate করবে। 3. betternet4.1_fixed_database.sql Import করুন। 4. তারপর project-এর .env-এ hosting database credentials, APP_URL এবং payment credentials ঠিক করে দিন। 5. Production server-এ PHP 8.1/8.2 এবং প্রয়োজনীয় extensions (pdo_mysql, mbstring, dom/xml, curl, openssl) enabled রাখুন। নোট: - Project-এর existing .env আপনার original package থেকে রাখা হয়েছে; live credentials ব্যবহার করলে সেগুলো নিয়মিত rotate করা নিরাপদ। - এই environment-এ MySQL server এবং PHP DOM/mbstring/xml extensions না থাকায় live DB import / full PHPUnit execution করা যায়নি; PHP syntax, route registration এবং SQL foreign-key dependency order staticভাবে verify করা হয়েছে।