- Create SQL migration for prompt templates used in article and image generation. - Add migration to change publish interval from days to hours in the sites table. - Implement InstallerController to handle installation requests and validation. - Develop FtpService for FTP connections and file uploads. - Create InstallerService to manage the WordPress installation process, including downloading, extracting, and configuring WordPress. - Add index view for the installer with form inputs for FTP, database, and WordPress admin settings. - Implement progress tracking for the installation process with AJAX polling.
121 lines
6.9 KiB
SQL
121 lines
6.9 KiB
SQL
-- Global topics library (2-level hierarchy: category -> subtopic)
|
|
|
|
CREATE TABLE IF NOT EXISTS global_topics (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
parent_id INT NULL,
|
|
name VARCHAR(255) NOT NULL,
|
|
description TEXT NULL,
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
FOREIGN KEY (parent_id) REFERENCES global_topics(id) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
CREATE INDEX idx_global_topics_parent ON global_topics(parent_id);
|
|
|
|
-- Link topics to global_topics library
|
|
ALTER TABLE topics ADD COLUMN global_topic_id INT NULL AFTER site_id;
|
|
|
|
-- Seed: top-level categories (idempotent)
|
|
INSERT INTO global_topics (parent_id, name, description)
|
|
SELECT seed.parent_id, seed.name, seed.description
|
|
FROM (
|
|
SELECT NULL AS parent_id, 'Polityka' AS name, 'Tematy związane z polityką krajową i międzynarodową' AS description
|
|
UNION ALL SELECT NULL, 'Zdrowie', 'Zdrowie, medycyna, profilaktyka, wellness'
|
|
UNION ALL SELECT NULL, 'Sport', 'Dyscypliny sportowe, wydarzenia, treningi'
|
|
UNION ALL SELECT NULL, 'Technologia', 'IT, gadżety, sztuczna inteligencja, innowacje'
|
|
UNION ALL SELECT NULL, 'Biznes i Finanse', 'Ekonomia, inwestycje, przedsiębiorczość'
|
|
UNION ALL SELECT NULL, 'Rozrywka', 'Film, muzyka, gry, kultura popularna'
|
|
UNION ALL SELECT NULL, 'Nauka', 'Odkrycia naukowe, kosmos, badania'
|
|
UNION ALL SELECT NULL, 'Edukacja', 'Szkolnictwo, kursy, rozwój osobisty'
|
|
UNION ALL SELECT NULL, 'Podróże', 'Turystyka, przewodniki, inspiracje podróżnicze'
|
|
UNION ALL SELECT NULL, 'Motoryzacja', 'Samochody, motocykle, nowości motoryzacyjne'
|
|
UNION ALL SELECT NULL, 'Dom i Ogród', 'Aranżacja wnętrz, ogrodnictwo, DIY'
|
|
UNION ALL SELECT NULL, 'Kuchnia', 'Przepisy, diety, kuchnie świata'
|
|
UNION ALL SELECT NULL, 'Moda i Uroda', 'Trendy, pielęgnacja, kosmetyki'
|
|
UNION ALL SELECT NULL, 'Prawo', 'Porady prawne, zmiany w przepisach'
|
|
) AS seed
|
|
WHERE NOT EXISTS (
|
|
SELECT 1
|
|
FROM global_topics gt
|
|
WHERE gt.parent_id <=> seed.parent_id
|
|
AND gt.name = seed.name
|
|
);
|
|
|
|
-- Seed: subtopics (idempotent)
|
|
INSERT INTO global_topics (parent_id, name, description)
|
|
SELECT parent.id, seed.name, seed.description
|
|
FROM (
|
|
SELECT 'Polityka' AS parent_name, 'Polityka krajowa' AS name, 'Sejm, rząd, partie polityczne, wybory w Polsce' AS description
|
|
UNION ALL SELECT 'Polityka', 'Polityka międzynarodowa', 'Dyplomacja, konflikty, organizacje międzynarodowe'
|
|
UNION ALL SELECT 'Polityka', 'Unia Europejska', 'Polityka UE, fundusze europejskie, regulacje'
|
|
|
|
UNION ALL SELECT 'Zdrowie', 'Medycyna', 'Choroby, leczenie, nowinki medyczne'
|
|
UNION ALL SELECT 'Zdrowie', 'Zdrowy styl życia', 'Dieta, aktywność fizyczna, profilaktyka'
|
|
UNION ALL SELECT 'Zdrowie', 'Zdrowie psychiczne', 'Psychologia, stres, mindfulness, terapia'
|
|
UNION ALL SELECT 'Zdrowie', 'Suplementy i żywienie', 'Witaminy, suplementy diety, superfoods'
|
|
|
|
UNION ALL SELECT 'Sport', 'Piłka nożna', 'Liga, transfery, reprezentacja, piłka nożna na świecie'
|
|
UNION ALL SELECT 'Sport', 'Koszykówka', 'NBA, polska liga, Euroliga'
|
|
UNION ALL SELECT 'Sport', 'Siatkówka', 'PlusLiga, reprezentacja Polski, siatkówka plażowa'
|
|
UNION ALL SELECT 'Sport', 'Sporty walki', 'MMA, boks, judo, karate'
|
|
UNION ALL SELECT 'Sport', 'Fitness i siłownia', 'Treningi, plany treningowe, ćwiczenia'
|
|
UNION ALL SELECT 'Sport', 'Bieganie', 'Maratony, technika biegu, sprzęt biegowy'
|
|
|
|
UNION ALL SELECT 'Technologia', 'Sztuczna inteligencja', 'AI, machine learning, ChatGPT, automatyzacja'
|
|
UNION ALL SELECT 'Technologia', 'Smartfony i gadżety', 'Recenzje, nowości, porównania urządzeń'
|
|
UNION ALL SELECT 'Technologia', 'Programowanie', 'Języki programowania, frameworki, poradniki'
|
|
UNION ALL SELECT 'Technologia', 'Cyberbezpieczeństwo', 'Ochrona danych, hakerzy, prywatność w sieci'
|
|
UNION ALL SELECT 'Technologia', 'Gaming', 'Gry komputerowe, konsole, esport'
|
|
|
|
UNION ALL SELECT 'Biznes i Finanse', 'Inwestycje', 'Giełda, kryptowaluty, nieruchomości, fundusze'
|
|
UNION ALL SELECT 'Biznes i Finanse', 'Przedsiębiorczość', 'Zakładanie firmy, startupy, zarządzanie'
|
|
UNION ALL SELECT 'Biznes i Finanse', 'Oszczędzanie', 'Finanse osobiste, budżet domowy, porady'
|
|
UNION ALL SELECT 'Biznes i Finanse', 'Marketing', 'Marketing cyfrowy, SEO, social media, reklama'
|
|
|
|
UNION ALL SELECT 'Rozrywka', 'Film i seriale', 'Recenzje, premiery, Netflix, kino'
|
|
UNION ALL SELECT 'Rozrywka', 'Muzyka', 'Artyści, festiwale, nowości muzyczne'
|
|
UNION ALL SELECT 'Rozrywka', 'Książki', 'Recenzje książek, bestsellery, literatura'
|
|
|
|
UNION ALL SELECT 'Nauka', 'Kosmos', 'NASA, SpaceX, odkrycia astronomiczne'
|
|
UNION ALL SELECT 'Nauka', 'Ekologia', 'Zmiany klimatu, recykling, energia odnawialna'
|
|
UNION ALL SELECT 'Nauka', 'Historia', 'Ciekawostki historyczne, ważne wydarzenia'
|
|
|
|
UNION ALL SELECT 'Edukacja', 'Rozwój osobisty', 'Produktywność, nawyki, motywacja'
|
|
UNION ALL SELECT 'Edukacja', 'Języki obce', 'Nauka angielskiego, techniki zapamiętywania'
|
|
|
|
UNION ALL SELECT 'Podróże', 'Podróże po Polsce', 'Atrakcje turystyczne, szlaki, regiony'
|
|
UNION ALL SELECT 'Podróże', 'Podróże zagraniczne', 'Egzotyczne kierunki, tanie loty, porady'
|
|
UNION ALL SELECT 'Podróże', 'Camping i outdoor', 'Turystyka górska, biwakowanie, sprzęt'
|
|
|
|
UNION ALL SELECT 'Motoryzacja', 'Samochody elektryczne', 'Tesla, EV, ładowarki, przyszłość elektromobilności'
|
|
UNION ALL SELECT 'Motoryzacja', 'Testy i recenzje aut', 'Porównania, testy drogowe, nowości'
|
|
UNION ALL SELECT 'Motoryzacja', 'Porady kierowców', 'Ubezpieczenia, prawo jazdy, serwis'
|
|
|
|
UNION ALL SELECT 'Dom i Ogród', 'Aranżacja wnętrz', 'Design, meble, dekoracje, trendy'
|
|
UNION ALL SELECT 'Dom i Ogród', 'Ogrodnictwo', 'Rośliny, uprawy, pielęgnacja ogrodu'
|
|
UNION ALL SELECT 'Dom i Ogród', 'Remonty i DIY', 'Majsterkowanie, poradniki remontowe'
|
|
|
|
UNION ALL SELECT 'Kuchnia', 'Przepisy', 'Obiady, desery, dania na szybko'
|
|
UNION ALL SELECT 'Kuchnia', 'Diety', 'Keto, weganizm, intermittent fasting'
|
|
UNION ALL SELECT 'Kuchnia', 'Kuchnie świata', 'Włoska, azjatycka, meksykańska'
|
|
|
|
UNION ALL SELECT 'Moda i Uroda', 'Moda damska', 'Trendy, stylizacje, inspiracje'
|
|
UNION ALL SELECT 'Moda i Uroda', 'Moda męska', 'Garnitury, casual, street style'
|
|
UNION ALL SELECT 'Moda i Uroda', 'Pielęgnacja', 'Kosmetyki, zabiegi, skincare'
|
|
|
|
UNION ALL SELECT 'Prawo', 'Prawo pracy', 'Umowy, zwolnienia, prawa pracownika'
|
|
UNION ALL SELECT 'Prawo', 'Prawo cywilne', 'Umowy, spadki, nieruchomości'
|
|
UNION ALL SELECT 'Prawo', 'Prawo gospodarcze', 'Działalność gospodarcza, podatki, ZUS'
|
|
) AS seed
|
|
INNER JOIN (
|
|
SELECT name, MIN(id) AS id
|
|
FROM global_topics
|
|
WHERE parent_id IS NULL
|
|
GROUP BY name
|
|
) AS parent ON parent.name = seed.parent_name
|
|
WHERE NOT EXISTS (
|
|
SELECT 1
|
|
FROM global_topics gt
|
|
WHERE gt.parent_id = parent.id
|
|
AND gt.name = seed.name
|
|
);
|