CREATE DATABASE IF NOT EXISTS digital_tools_db;
USE digital_tools_db;

-- Users Table
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(100) NOT NULL UNIQUE,
    password VARCHAR(255) NOT NULL,
    balance DECIMAL(10, 2) DEFAULT 0.00,
    role ENUM('admin', 'user') DEFAULT 'user',
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- Services (টুলসগুলোর দাম এডমিন সেট করবে)
CREATE TABLE services (
    id INT AUTO_INCREMENT PRIMARY KEY,
    service_name VARCHAR(100) NOT NULL,
    service_slug VARCHAR(100) NOT NULL UNIQUE,
    price DECIMAL(10, 2) DEFAULT 0.00,
    status ENUM('active', 'inactive') DEFAULT 'active'
);

-- প্রাথমিক কিছু সার্ভিস ইনসার্ট করা হলো
INSERT INTO services (service_name, service_slug, price) VALUES 
('Text to QR', 'text_to_qr', 5.00),
('QR to Text', 'qr_to_text', 5.00),
('SEO Analyzer', 'seo_analyzer', 10.00);

-- Gateways (রূপান্তর পে এর API credentials এডমিন সেট করবে)
CREATE TABLE gateways (
    id INT AUTO_INCREMENT PRIMARY KEY,
    gateway_name VARCHAR(50) NOT NULL,
    api_key VARCHAR(255),
    secret_key VARCHAR(255),
    base_url VARCHAR(255),
    status ENUM('active', 'inactive') DEFAULT 'active'
);

-- প্রাথমিক গেটওয়ে ইনসার্ট
INSERT INTO gateways (gateway_name, status) VALUES ('Rupantor Pay', 'active');

-- Transactions (ইউজারদের ডিপোজিট এবং টুলস ব্যবহারের খরচ)
CREATE TABLE transactions (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT,
    amount DECIMAL(10, 2) NOT NULL,
    trx_type ENUM('deposit', 'charge') NOT NULL,
    description VARCHAR(255),
    status ENUM('pending', 'completed', 'failed') DEFAULT 'completed',
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
);
