<?php

namespace Growfund\Contracts;

defined( 'ABSPATH' ) || exit;

/**
 * Interface Migration
 *
 * Defines the contract for database migrations.
 * Each implementing class should provide logic for setting up (up)
 * and tearing down (down) database structures.
 *
 * @since 1.0.0
 */
interface Migration
{
    /**
     * Run the migration.
     *
     * This method should contain logic to create or modify database tables.
     *
     * @return void
     */
    public function handle_up();

    /**
     * Reverse the migration.
     *
     * This method should contain logic to undo changes made by the `up()` method.
     *
     * @return void
     */
    public function handle_down();
}
