-- +goose Up
SET @bases_exists := (
  SELECT COUNT(*)
  FROM information_schema.tables
  WHERE table_schema = DATABASE()
    AND table_name = 'bases'
);

SET @col_default_shift_time_exists := (
  SELECT COUNT(*)
  FROM information_schema.columns
  WHERE table_schema = DATABASE()
    AND table_name = 'bases'
    AND column_name = 'default_shift_time'
);

SET @drop_default_shift_time_sql := IF(
  @bases_exists > 0 AND @col_default_shift_time_exists > 0,
  'ALTER TABLE bases DROP COLUMN default_shift_time',
  'SELECT 1'
);

PREPARE stmt_drop_default_shift_time FROM @drop_default_shift_time_sql;
EXECUTE stmt_drop_default_shift_time;
DEALLOCATE PREPARE stmt_drop_default_shift_time;

-- +goose Down
SET @bases_exists := (
  SELECT COUNT(*)
  FROM information_schema.tables
  WHERE table_schema = DATABASE()
    AND table_name = 'bases'
);

SET @col_default_shift_time_exists := (
  SELECT COUNT(*)
  FROM information_schema.columns
  WHERE table_schema = DATABASE()
    AND table_name = 'bases'
    AND column_name = 'default_shift_time'
);

SET @add_default_shift_time_sql := IF(
  @bases_exists > 0 AND @col_default_shift_time_exists = 0,
  'ALTER TABLE bases ADD COLUMN default_shift_time VARCHAR(64) NULL AFTER default_shift_end',
  'SELECT 1'
);

PREPARE stmt_add_default_shift_time FROM @add_default_shift_time_sql;
EXECUTE stmt_add_default_shift_time;
DEALLOCATE PREPARE stmt_add_default_shift_time;
