Deploy: 2026-05-23 00:33:48
This commit is contained in:
60
backend/check_db_data.php
Normal file
60
backend/check_db_data.php
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
<?php
|
||||||
|
if (php_sapi_name() !== 'cli') {
|
||||||
|
http_response_code(403);
|
||||||
|
exit('Access denied.');
|
||||||
|
}
|
||||||
|
|
||||||
|
require_once __DIR__ . '/app/bootstrap.php';
|
||||||
|
|
||||||
|
use App\Core\Database;
|
||||||
|
|
||||||
|
try {
|
||||||
|
$pdo = Database::getConnection();
|
||||||
|
|
||||||
|
echo "=== 1. Subscription Plans ===\n";
|
||||||
|
$plans = Database::selectAll("SELECT * FROM subscription_plans");
|
||||||
|
if (empty($plans)) {
|
||||||
|
echo "No subscription plans found.\n";
|
||||||
|
} else {
|
||||||
|
foreach ($plans as $p) {
|
||||||
|
echo "ID: {$p['id']} | Name: {$p['name']} | Price: {$p['price']} | Max Sessions: {$p['max_sessions']} | Max Requests: {$p['max_requests']} | Max Voice: {$p['max_voice_requests']} | Max OCR: {$p['max_ocr_requests']}\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "\n=== 2. Companies ===\n";
|
||||||
|
$companies = Database::selectAll("SELECT * FROM companies LIMIT 10");
|
||||||
|
if (empty($companies)) {
|
||||||
|
echo "No companies found.\n";
|
||||||
|
} else {
|
||||||
|
foreach ($companies as $c) {
|
||||||
|
echo "ID: {$c['id']} | Name: {$c['name']}\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "\n=== 3. Active Company Subscriptions ===\n";
|
||||||
|
$subs = Database::selectAll("
|
||||||
|
SELECT cs.*, p.name as plan_name
|
||||||
|
FROM company_subscriptions cs
|
||||||
|
JOIN subscription_plans p ON cs.plan_id = p.id
|
||||||
|
");
|
||||||
|
if (empty($subs)) {
|
||||||
|
echo "No subscriptions found.\n";
|
||||||
|
} else {
|
||||||
|
foreach ($subs as $s) {
|
||||||
|
echo "ID: {$s['id']} | Company ID: {$s['company_id']} | Plan: {$s['plan_name']} (ID: {$s['plan_id']}) | Status: {$s['status']} | Starts: {$s['starts_at']} | Ends: {$s['ends_at']}\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "\n=== 4. WooCommerce Stores ===\n";
|
||||||
|
$stores = Database::selectAll("SELECT id, company_id, store_url, is_active, webhook_secret FROM woocommerce_stores");
|
||||||
|
if (empty($stores)) {
|
||||||
|
echo "No WooCommerce stores found.\n";
|
||||||
|
} else {
|
||||||
|
foreach ($stores as $st) {
|
||||||
|
echo "ID: {$st['id']} | Company ID: {$st['company_id']} | URL: {$st['store_url']} | Active: {$st['is_active']} | Webhook Secret: " . ($st['webhook_secret'] ? "YES" : "NO") . "\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
echo "Error querying database: " . $e->getMessage() . "\n";
|
||||||
|
}
|
||||||
116
backend/seed_default_plans.php
Normal file
116
backend/seed_default_plans.php
Normal file
@@ -0,0 +1,116 @@
|
|||||||
|
<?php
|
||||||
|
if (php_sapi_name() !== 'cli') {
|
||||||
|
http_response_code(403);
|
||||||
|
exit('Access denied.');
|
||||||
|
}
|
||||||
|
|
||||||
|
require_once __DIR__ . '/app/bootstrap.php';
|
||||||
|
|
||||||
|
use App\Core\Database;
|
||||||
|
|
||||||
|
try {
|
||||||
|
$pdo = Database::getConnection();
|
||||||
|
|
||||||
|
echo "=== Seeding Default Subscription Plans ===\n";
|
||||||
|
|
||||||
|
$plans = [
|
||||||
|
[
|
||||||
|
'id' => 1,
|
||||||
|
'name' => 'Starter',
|
||||||
|
'price' => 19.00,
|
||||||
|
'max_sessions' => 1,
|
||||||
|
'max_requests' => 1000,
|
||||||
|
'max_voice_requests' => 0,
|
||||||
|
'max_ocr_requests' => 0,
|
||||||
|
'features' => json_encode(['text_chatbot' => true, 'campaigns' => true])
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'id' => 2,
|
||||||
|
'name' => 'Growth',
|
||||||
|
'price' => 49.00,
|
||||||
|
'max_sessions' => 2,
|
||||||
|
'max_requests' => 5000,
|
||||||
|
'max_voice_requests' => 500,
|
||||||
|
'max_ocr_requests' => 500,
|
||||||
|
'features' => json_encode(['text_chatbot' => true, 'campaigns' => true, 'woocommerce' => true, 'salla' => true])
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'id' => 3,
|
||||||
|
'name' => 'Professional',
|
||||||
|
'price' => 99.00,
|
||||||
|
'max_sessions' => 5,
|
||||||
|
'max_requests' => 15000,
|
||||||
|
'max_voice_requests' => 2000,
|
||||||
|
'max_ocr_requests' => 2000,
|
||||||
|
'features' => json_encode(['text_chatbot' => true, 'campaigns' => true, 'woocommerce' => true, 'salla' => true, 'webhooks' => true])
|
||||||
|
]
|
||||||
|
];
|
||||||
|
|
||||||
|
foreach ($plans as $p) {
|
||||||
|
Database::execute("
|
||||||
|
INSERT INTO subscription_plans (id, name, price, max_sessions, max_requests, max_voice_requests, max_ocr_requests, features)
|
||||||
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
|
||||||
|
ON DUPLICATE KEY UPDATE
|
||||||
|
name = VALUES(name),
|
||||||
|
price = VALUES(price),
|
||||||
|
max_sessions = VALUES(max_sessions),
|
||||||
|
max_requests = VALUES(max_requests),
|
||||||
|
max_voice_requests = VALUES(max_voice_requests),
|
||||||
|
max_ocr_requests = VALUES(max_ocr_requests),
|
||||||
|
features = VALUES(features)
|
||||||
|
", [
|
||||||
|
$p['id'],
|
||||||
|
$p['name'],
|
||||||
|
$p['price'],
|
||||||
|
$p['max_sessions'],
|
||||||
|
$p['max_requests'],
|
||||||
|
$p['max_voice_requests'],
|
||||||
|
$p['max_ocr_requests'],
|
||||||
|
$p['features']
|
||||||
|
]);
|
||||||
|
echo "✅ Seeded/Updated Plan: {$p['name']} (ID: {$p['id']})\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if the user specified a company to subscribe
|
||||||
|
global $argv;
|
||||||
|
if (isset($argv[1])) {
|
||||||
|
$companyId = (int)$argv[1];
|
||||||
|
$planId = isset($argv[2]) ? (int)$argv[2] : 2; // Default to Growth Plan (ID 2)
|
||||||
|
|
||||||
|
echo "\n=== Subscribing Company ID: $companyId to Plan ID: $planId ===\n";
|
||||||
|
|
||||||
|
// Check if company exists
|
||||||
|
$companyExists = Database::selectOne("SELECT id FROM companies WHERE id = ?", [$companyId]);
|
||||||
|
if (!$companyExists) {
|
||||||
|
echo "⚠️ Company ID $companyId does not exist in database. Creating it...\n";
|
||||||
|
Database::execute("INSERT INTO companies (id, name) VALUES (?, ?)", [$companyId, "Merchant Company $companyId"]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Subscribing
|
||||||
|
$startsAt = date('Y-m-d H:i:s');
|
||||||
|
$endsAt = date('Y-m-d H:i:s', strtotime('+30 days'));
|
||||||
|
|
||||||
|
// Delete existing subscriptions for this company
|
||||||
|
Database::execute("DELETE FROM company_subscriptions WHERE company_id = ?", [$companyId]);
|
||||||
|
|
||||||
|
Database::execute("
|
||||||
|
INSERT INTO company_subscriptions (company_id, plan_id, status, starts_at, ends_at)
|
||||||
|
VALUES (?, ?, 'active', ?, ?)
|
||||||
|
", [$companyId, $planId, $startsAt, $endsAt]);
|
||||||
|
|
||||||
|
// Clean cache for this company subscription
|
||||||
|
if (class_exists('App\Core\Cache')) {
|
||||||
|
\App\Core\Cache::delete("company_subscription:{$companyId}");
|
||||||
|
\App\Core\Cache::delete("company_subscription_usage:{$companyId}:" . date('Y-m-d', strtotime($startsAt)));
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "✅ Company ID $companyId successfully subscribed to Plan ID $planId until $endsAt.\n";
|
||||||
|
} else {
|
||||||
|
echo "\n💡 Tip: You can subscribe a company to a plan by passing company_id and plan_id as arguments:\n";
|
||||||
|
echo " php seed_default_plans.php [company_id] [plan_id]\n";
|
||||||
|
echo " Example: php seed_default_plans.php 1 2 (subscribes company ID 1 to Growth plan)\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
echo "❌ Error seeding data: " . $e->getMessage() . "\n";
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user