001_admins_table_setup.schema.sql 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. DROP SCHEMA public CASCADE;
  2. CREATE SCHEMA public;
  3. CREATE TABLE roles_admin (
  4. id_rol SERIAL PRIMARY KEY,
  5. nombre VARCHAR(50) UNIQUE NOT NULL
  6. );
  7. CREATE TABLE usuarios_admin (
  8. id_usuario SERIAL PRIMARY KEY,
  9. username VARCHAR(100) UNIQUE NOT NULL,
  10. email VARCHAR(150) UNIQUE NOT NULL,
  11. password_hash TEXT NOT NULL,
  12. nombre VARCHAR(100),
  13. activo BOOLEAN DEFAULT TRUE,
  14. ultimo_login TIMESTAMP,
  15. fecha_creacion TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  16. id_rol INT NOT NULL,
  17. CONSTRAINT fk_admin_rol
  18. FOREIGN KEY(id_rol)
  19. REFERENCES roles_admin(id_rol)
  20. );
  21. CREATE TABLE sesiones_admin (
  22. id_sesion SERIAL PRIMARY KEY,
  23. id_usuario INT NOT NULL,
  24. token TEXT NOT NULL,
  25. ip VARCHAR(100),
  26. user_agent TEXT,
  27. fecha_inicio TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  28. fecha_expiracion TIMESTAMP,
  29. CONSTRAINT fk_sesion_usuario
  30. FOREIGN KEY(id_usuario)
  31. REFERENCES usuarios_admin(id_usuario)
  32. ON DELETE CASCADE
  33. );
  34. CREATE TABLE logs_admin (
  35. id_log SERIAL PRIMARY KEY,
  36. id_usuario INT,
  37. accion VARCHAR(255),
  38. descripcion TEXT,
  39. fecha TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  40. CONSTRAINT fk_log_usuario
  41. FOREIGN KEY(id_usuario)
  42. REFERENCES usuarios_admin(id_usuario)
  43. ON DELETE SET NULL
  44. );
  45. INSERT INTO roles_admin(nombre)
  46. VALUES
  47. ('superadmin'),
  48. ('admin'),
  49. ('moderador'),
  50. ('viewer');