-- Skrypt do aktualizacji tabeli firm o brakujące kolumny
-- Uwaga: Przed uruchomieniem zrób kopię bezpieczeństwa bazy danych!

-- Sprawdzamy, czy tabela firmy istnieje, jeśli nie - tworzymy ją
CREATE TABLE IF NOT EXISTS `firmy` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL COMMENT 'Nazwa firmy',
  `value` varchar(255) DEFAULT NULL COMMENT 'Skrócona nazwa (na wydruk)',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Dodajemy brakujące kolumny, jeśli nie istnieją
-- Kolumna: address (adres)
ALTER TABLE `firmy` 
ADD COLUMN IF NOT EXISTS `address` varchar(255) DEFAULT NULL COMMENT 'Adres firmy';

-- Kolumna: phone (telefon)
ALTER TABLE `firmy` 
ADD COLUMN IF NOT EXISTS `phone` varchar(50) DEFAULT NULL COMMENT 'Numer telefonu';

-- Kolumna: email
ALTER TABLE `firmy` 
ADD COLUMN IF NOT EXISTS `email` varchar(255) DEFAULT NULL COMMENT 'Adres email';

-- Kolumna: nip
ALTER TABLE `firmy` 
ADD COLUMN IF NOT EXISTS `nip` varchar(20) DEFAULT NULL COMMENT 'Numer NIP';

-- Kolumna: notes (notatki)
ALTER TABLE `firmy` 
ADD COLUMN IF NOT EXISTS `notes` text DEFAULT NULL COMMENT 'Dodatkowe informacje';

-- Wersja alternatywna (dla starszych wersji MySQL/MariaDB, które nie obsługują "IF NOT EXISTS" dla ALTER TABLE)
-- Należy odkomentować poniższe procedury i zakomentować powyższe zapytania ALTER TABLE

/*
DELIMITER //

DROP PROCEDURE IF EXISTS AddColumnIfNotExists//
CREATE PROCEDURE AddColumnIfNotExists(
    IN tableName VARCHAR(100),
    IN columnName VARCHAR(100),
    IN columnDefinition VARCHAR(255)
)
BEGIN
    DECLARE CONTINUE HANDLER FOR 1060 BEGIN END;  -- Ignoruje błąd jeśli kolumna już istnieje
    SET @query = CONCAT('ALTER TABLE ', tableName, ' ADD COLUMN ', columnName, ' ', columnDefinition);
    PREPARE stmt FROM @query;
    EXECUTE stmt;
    DEALLOCATE PREPARE stmt;
END//

DELIMITER ;

CALL AddColumnIfNotExists('firmy', 'address', 'varchar(255) DEFAULT NULL COMMENT "Adres firmy"');
CALL AddColumnIfNotExists('firmy', 'phone', 'varchar(50) DEFAULT NULL COMMENT "Numer telefonu"');
CALL AddColumnIfNotExists('firmy', 'email', 'varchar(255) DEFAULT NULL COMMENT "Adres email"');
CALL AddColumnIfNotExists('firmy', 'nip', 'varchar(20) DEFAULT NULL COMMENT "Numer NIP"');
CALL AddColumnIfNotExists('firmy', 'notes', 'text DEFAULT NULL COMMENT "Dodatkowe informacje"');
*/ 