CREATE TABLE IF NOT EXISTS member_registrations (
 id BIGINT AUTO_INCREMENT PRIMARY KEY,
 registration_code VARCHAR(60) NOT NULL UNIQUE,
 name VARCHAR(150) NOT NULL,
 phone VARCHAR(40) NOT NULL,
 email VARCHAR(150) NULL,
 address TEXT NULL,
 gender ENUM('L','P','') NOT NULL DEFAULT '',
 birth_date DATE NULL,
 notes TEXT NULL,
 status ENUM('pending','approved','rejected') NOT NULL DEFAULT 'pending',
 source VARCHAR(50) NOT NULL DEFAULT 'public_link',
 submitted_ip VARCHAR(64) NULL,
 reviewed_by INT NULL,
 reviewed_at DATETIME NULL,
 review_notes TEXT NULL,
 approved_member_id INT NULL,
 created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
 updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
 FOREIGN KEY(reviewed_by) REFERENCES users(id) ON DELETE SET NULL,
 FOREIGN KEY(approved_member_id) REFERENCES members(id) ON DELETE SET NULL,
 INDEX idx_member_reg_status(status,created_at),
 INDEX idx_member_reg_phone(phone),
 INDEX idx_member_reg_email(email)
) ENGINE=InnoDB;
INSERT INTO settings(setting_key,setting_value) VALUES
('public_member_registration_enabled','1'),
('public_member_default_level','Regular'),
('public_member_default_discount','0'),
('public_member_terms','Dengan mengirim formulir ini, saya menyatakan data yang diberikan benar dan bersedia menjadi member.')
ON DUPLICATE KEY UPDATE setting_value=setting_value;
