36952-vm/db/setup.php
Flatlogic Bot 76d7d99142 PMS 1
2025-12-15 01:31:18 +00:00

97 lines
3.4 KiB
PHP

<?php
require_once 'config.php';
try {
$db = db();
$sql_properties = "
CREATE TABLE IF NOT EXISTS properties (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
address TEXT NOT NULL,
rent_amount DECIMAL(10, 2) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);";
$db->exec($sql_properties);
$sql_tenants = "
CREATE TABLE IF NOT EXISTS tenants (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL UNIQUE,
phone VARCHAR(20),
property_id INT,
lease_start DATE,
lease_end DATE,
rent_due DECIMAL(10, 2),
security_deposit DECIMAL(10, 2),
status VARCHAR(50) DEFAULT 'active',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (property_id) REFERENCES properties(id) ON DELETE SET NULL
);";
$db->exec($sql_tenants);
$sql_payments = "
CREATE TABLE IF NOT EXISTS payments (
id INT AUTO_INCREMENT PRIMARY KEY,
tenant_id INT,
property_id INT,
amount DECIMAL(10, 2) NOT NULL,
payment_date DATE NOT NULL,
notes TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (tenant_id) REFERENCES tenants(id) ON DELETE SET NULL,
FOREIGN KEY (property_id) REFERENCES properties(id) ON DELETE SET NULL
);";
$db->exec($sql_payments);
$sql_maintenance = "
CREATE TABLE IF NOT EXISTS maintenance_requests (
id INT AUTO_INCREMENT PRIMARY KEY,
property_id INT,
tenant_id INT,
description TEXT NOT NULL,
status VARCHAR(50) DEFAULT 'Open',
reported_date DATE NOT NULL,
completed_date DATE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (property_id) REFERENCES properties(id) ON DELETE SET NULL,
FOREIGN KEY (tenant_id) REFERENCES tenants(id) ON DELETE SET NULL
);";
$db->exec($sql_maintenance);
$sql_files = "
CREATE TABLE IF NOT EXISTS files (
id INT AUTO_INCREMENT PRIMARY KEY,
file_name VARCHAR(255) NOT NULL,
file_path VARCHAR(255) NOT NULL,
property_id INT,
tenant_id INT,
payment_id INT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (property_id) REFERENCES properties(id) ON DELETE CASCADE,
FOREIGN KEY (tenant_id) REFERENCES tenants(id) ON DELETE CASCADE,
FOREIGN KEY (payment_id) REFERENCES payments(id) ON DELETE CASCADE
);";
$db->exec($sql_files);
$sql_users = "
CREATE TABLE IF NOT EXISTS users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(255) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
role VARCHAR(50) NOT NULL DEFAULT 'user', -- 'user', 'admin'
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);";
$db->exec($sql_users);
// Seed the database with a default admin user
$admin_user = 'admin';
$admin_pass = password_hash('password', PASSWORD_DEFAULT);
$stmt = $db->prepare('INSERT IGNORE INTO users (username, password, role) VALUES (?, ?, ?)');
$stmt->execute([$admin_user, $admin_pass, 'admin']);
echo "Tables 'properties', 'tenants', 'payments', 'maintenance_requests', 'files', and 'users' created successfully.";
} catch (PDOException $e) {
die("DB ERROR: ". $e->getMessage());
}
?>