-- সদস্যদের তথ্য টেবিল
CREATE TABLE IF NOT EXISTS members (
    id INT AUTO_INCREMENT PRIMARY KEY,
    member_code VARCHAR(20) UNIQUE NOT NULL,
    name VARCHAR(100) NOT NULL,
    nid VARCHAR(20) NOT NULL,
    mobile VARCHAR(15) NOT NULL,
    address TEXT,
    join_date DATE NOT NULL
);

-- ঋণ বিতরণের টেবিল (মেয়াদোত্তীর্ণ সুদের হারসহ আপডেট করা)
CREATE TABLE IF NOT EXISTS loans (
    id INT AUTO_INCREMENT PRIMARY KEY,
    member_code VARCHAR(20),
    principal_amount DECIMAL(10,2) NOT NULL,
    total_interest DECIMAL(10,2) NOT NULL,
    total_payable DECIMAL(10,2) NOT NULL,
    total_installments INT NOT NULL,
    overdue_interest_rate DECIMAL(5,2) DEFAULT 12.00, -- মেয়াদ শেষে বকেয়া আসলের ওপর বার্ষিক অতিরিক্ত সুদের হার (ডিফল্ট ১২%)
    expiry_date DATE NOT NULL,
    issued_by VARCHAR(50),
    issue_date DATE NOT NULL,
    status VARCHAR(20) DEFAULT 'active'
);

-- কিস্তি আদায়ের টেবিল
CREATE TABLE IF NOT EXISTS loan_collections (
    id INT AUTO_INCREMENT PRIMARY KEY,
    member_code VARCHAR(20),
    total_paid DECIMAL(10,2) NOT NULL,
    principal_paid DECIMAL(10,2) NOT NULL,
    interest_paid DECIMAL(10,2) NOT NULL,
    payment_date DATE NOT NULL
);

-- সাধারণ আদায় টেবিল (শেয়ার, সঞ্চয়, ভর্তি ফি ও বিবিধ জমা)
CREATE TABLE IF NOT EXISTS general_collections (
    id INT AUTO_INCREMENT PRIMARY KEY,
    member_code VARCHAR(20) NOT NULL,
    share_amount DECIMAL(10,2) DEFAULT 0.00,
    savings_amount DECIMAL(10,2) DEFAULT 0.00,
    admission_fee DECIMAL(10,2) DEFAULT 0.00,
    others_amount DECIMAL(10,2) DEFAULT 0.00,
    payment_date DATE NOT NULL
);

-- ফেরত (Refund) টেবিল
CREATE TABLE IF NOT EXISTS refunds (
    id INT AUTO_INCREMENT PRIMARY KEY,
    member_code VARCHAR(20) NOT NULL,
    refund_type VARCHAR(50) NOT NULL,
    amount DECIMAL(10,2) NOT NULL,
    refund_date DATE NOT NULL
);

-- ইউজার/স্টাফ লগইন টেবিল
CREATE TABLE IF NOT EXISTS users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) UNIQUE NOT NULL,
    email VARCHAR(100) UNIQUE NOT NULL,
    password VARCHAR(255) NOT NULL,
    role VARCHAR(20) DEFAULT 'staff',
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- অ্যাডমিন অ্যাকাউন্ট তৈরি (পাসওয়ার্ড: admin123)
INSERT INTO users (username, email, password, role) 
VALUES ('admin', 'admin@somity.com', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 'admin')
ON DUPLICATE KEY UPDATE username=username;
