| Server IP : 193.86.120.172 / Your IP : 216.73.216.67 Web Server : Apache/2.4.63 (Unix) System : Linux JServices 3.10.108 #86003 SMP Wed Oct 22 13:20:46 CST 2025 x86_64 User : kubec ( 1026) PHP Version : 8.2.28 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /volume1/web/kadernictvi_jservices_cz/sql/ |
Upload File : |
-- ============================================
-- Kadeřnictví Stella – databázové schéma
-- MySQL / MariaDB (Synology Web Station)
-- ============================================
CREATE DATABASE IF NOT EXISTS kadernictvidenisacz
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
USE kadernictvidenisacz;
-- --------------------------------------------
-- Služby
-- --------------------------------------------
CREATE TABLE IF NOT EXISTS sluzby (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
nazev VARCHAR(100) NOT NULL,
popis VARCHAR(255) DEFAULT NULL,
trvani_min SMALLINT NOT NULL COMMENT 'Délka v minutách',
cena DECIMAL(8,2) NOT NULL,
aktivni TINYINT(1) NOT NULL DEFAULT 1,
poradi SMALLINT NOT NULL DEFAULT 0,
vytvoreno DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
upraveno DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
INSERT INTO sluzby (nazev, trvani_min, cena, poradi) VALUES
('Střih & styling', 60, 450.00, 1),
('Barvení', 120, 890.00, 2),
('Melír', 90, 1100.00, 3),
('Péče o vlasy', 45, 350.00, 4),
('Dětský střih', 30, 250.00, 5),
('Foukaná', 45, 300.00, 6);
-- --------------------------------------------
-- Blokované termíny
-- --------------------------------------------
CREATE TABLE IF NOT EXISTS blokovane_terminy (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
datum_od DATE NOT NULL,
datum_do DATE NOT NULL,
duvod VARCHAR(100) DEFAULT NULL,
vytvoreno DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- --------------------------------------------
-- Admin uživatelé
-- (musí být PŘED rezervace kvůli FK)
-- --------------------------------------------
CREATE TABLE IF NOT EXISTS admin_uzivatele (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
uzivatelske_jmeno VARCHAR(60) NOT NULL UNIQUE,
heslo_hash VARCHAR(255) NOT NULL COMMENT 'password_hash() bcrypt',
vytvoreno DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- Výchozí admin: heslo = "stella2026" — ZMĚŇTE po instalaci!
INSERT INTO admin_uzivatele (uzivatelske_jmeno, heslo_hash) VALUES
('admin', '$2y$12$eHv3kM5oQpL1RvYzT9XuMuW7kNlPqS8dJfGhA2cBiDxE6oYvKwZtO');
-- --------------------------------------------
-- Admin session tokeny
-- (musí být PŘED rezervace)
-- --------------------------------------------
CREATE TABLE IF NOT EXISTS admin_session (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
user_id INT UNSIGNED NOT NULL,
token CHAR(64) NOT NULL UNIQUE,
platnost_do DATETIME NOT NULL,
vytvoreno DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES admin_uzivatele(id) ON DELETE CASCADE,
INDEX idx_token (token)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- --------------------------------------------
-- Rezervace
-- --------------------------------------------
CREATE TABLE IF NOT EXISTS rezervace (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
sluzba_id INT UNSIGNED NOT NULL,
datum DATE NOT NULL,
cas_od TIME NOT NULL,
cas_do TIME NOT NULL,
jmeno VARCHAR(80) NOT NULL,
prijmeni VARCHAR(80) NOT NULL,
email VARCHAR(180) NOT NULL,
telefon VARCHAR(30) DEFAULT NULL,
poznamka TEXT DEFAULT NULL,
stav ENUM('ceka','potvrzena','zrusena') NOT NULL DEFAULT 'ceka',
token_zmena CHAR(64) NOT NULL COMMENT 'Token pro změnu/zrušení e-mailem',
zruseno_kym ENUM('zakaznik','admin') DEFAULT NULL,
vytvoreno DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
upraveno DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
FOREIGN KEY (sluzba_id) REFERENCES sluzby(id) ON DELETE RESTRICT,
INDEX idx_datum (datum),
INDEX idx_token (token_zmena),
INDEX idx_email (email)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- --------------------------------------------
-- OAuth2 tokeny pro Microsoft 365
-- --------------------------------------------
CREATE TABLE IF NOT EXISTS oauth_tokeny (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
provider VARCHAR(30) NOT NULL DEFAULT 'microsoft',
access_token TEXT NOT NULL,
refresh_token TEXT NOT NULL,
expires_at DATETIME NOT NULL,
email VARCHAR(180) NOT NULL COMMENT 'Odesílací e-mail účtu',
upraveno DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- --------------------------------------------
-- Nastavení salónu (klíč–hodnota)
-- --------------------------------------------
CREATE TABLE IF NOT EXISTS nastaveni (
klic VARCHAR(60) NOT NULL PRIMARY KEY,
hodnota TEXT NOT NULL,
popis VARCHAR(200) DEFAULT NULL COMMENT 'Popis pro admin UI',
upraveno DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
INSERT INTO nastaveni (klic, hodnota, popis) VALUES
('salon_nazev', 'Kadeřnictví Stella', 'Název salónu (zobrazuje se v e-mailech a hlavičce)'),
('salon_telefon', '+420 123 456 789', 'Telefonní kontakt'),
('salon_email', 'info@vas-salon.cz', 'Kontaktní e-mail salónu'),
('salon_adresa', 'Hlavní 1, Praha', 'Adresa salónu'),
('pracovni_od', '480', 'Začátek pracovní doby (minuty od půlnoci, 480 = 8:00)'),
('pracovni_do', '1020', 'Konec pracovní doby (minuty od půlnoci, 1020 = 17:00)'),
('slot_minut', '30', 'Délka nejkratšího slotu v minutách'),
('pracovni_dny', '1,2,3,4,5,6', 'Pracovní dny: 1=Po, 2=Út, 3=St, 4=Čt, 5=Pá, 6=So, 7=Ne'),
('rezervace_min_predem', '60', 'Minimální předstih rezervace v minutách'),
('rezervace_storno_hod', '24', 'Kolik hodin předem lze stornovat online'),
('uvodni_text', 'Rezervujte si termín online během několika sekund.', 'Uvítací text na rezervační stránce');