2026-06-02 17:07:50 -04:00

57 lines
2.0 KiB
PHP

<?php
// Script para inicializar la base de datos y crear el Super Administrador
$dbDir = __DIR__ . '/database';
if (!is_dir($dbDir)) {
mkdir($dbDir, 0777, true);
}
$uploadsDir = __DIR__ . '/uploads';
if (!is_dir($uploadsDir)) {
mkdir($uploadsDir, 0777, true);
}
require_once 'config/database.php';
try {
$queries = [
"CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
username TEXT UNIQUE NOT NULL,
password TEXT NOT NULL,
name TEXT NOT NULL,
role TEXT NOT NULL CHECK(role IN ('superadmin', 'admin', 'supervisor', 'user')),
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
)",
"CREATE TABLE IF NOT EXISTS documents (
id INTEGER PRIMARY KEY AUTOINCREMENT,
reference_number TEXT NOT NULL,
title TEXT NOT NULL,
description TEXT,
type TEXT NOT NULL CHECK(type IN ('entrada', 'salida', 'archivo_interno')),
category TEXT,
file_path TEXT NOT NULL,
uploaded_by INTEGER,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY(uploaded_by) REFERENCES users(id)
)"
];
foreach ($queries as $query) {
$db->exec($query);
}
// Crear Super Administrador por defecto si no existe
$stmt = $db->prepare("SELECT COUNT(*) FROM users WHERE username = 'superadmin'");
$stmt->execute();
if ($stmt->fetchColumn() == 0) {
$password = password_hash('superadmin123', PASSWORD_DEFAULT);
$stmt = $db->prepare("INSERT INTO users (username, password, name, role) VALUES ('superadmin', :password, 'Super Administrador Principal', 'superadmin')");
$stmt->execute(['password' => $password]);
echo "Usuario superadmin creado con éxito. Contraseña: superadmin123\n";
}
echo "Base de datos inicializada correctamente.\n";
} catch (PDOException $e) {
die("Error inicializando la base de datos: " . $e->getMessage());
}
?>