SET @schema_name := DATABASE();

SET @sql := (
    SELECT IF(
        EXISTS(
            SELECT 1
            FROM information_schema.columns
            WHERE table_schema = @schema_name
              AND table_name = 'company_subscriptions'
              AND column_name = 'first_due_date'
        ),
        'SELECT 1',
        'ALTER TABLE company_subscriptions ADD COLUMN first_due_date DATE NULL AFTER start_date'
    )
);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

UPDATE company_subscriptions
SET first_due_date = due_date
WHERE first_due_date IS NULL;
