# frozen_string_literal: true

require 'fileutils'

namespace :railway_ipc do

namespace :generate do
  desc 'Generates migrations to store Railway messages'
  task :migrations do
    raise 'Migration generation requires active record' unless defined?(ActiveRecord::Base)

    puts 'generating Railway IPC table migrations'
    seconds = 0
    gem_path = Gem.loaded_specs['railway-ipc'].full_gem_path
    folder_dest = "#{Rails.root}/db/migrate"
    FileUtils.mkdir_p(folder_dest)

    Dir.glob("#{gem_path}/priv/migrations/*.rb").each do |file_path|
      file_name = File.basename(file_path)
      migration_timestamp = (Time.now + seconds).utc.strftime('%Y%m%d%H%M%S') % '%.14d'
      new_file_name = "#{migration_timestamp}_#{file_name}"
      FileUtils.copy_file(file_path, "#{folder_dest}/#{new_file_name}")
      seconds += 1
    end
  end
end

end