-- সদস্যদের তথ্য টেবিল
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
);
