<?php
/**
 * Migration Interface
 *
 * Defines the contract for database migration classes.
 *
 * @package CloudXM\SDK\Contracts
 */

namespace CloudXM\SDK\Contracts;

/**
 * Migration Interface
 *
 * All migration classes must implement this interface.
 */
interface MigrationInterface
{
    /**
     * Constructor
     *
     * @param string $table_prefix Plugin-specific table prefix (e.g., 'cloudxm_')
     */
    public function __construct(string $table_prefix);

    /**
     * Run the migration
     *
     * @return bool True on success, false on failure
     */
    public function run(): bool;

    /**
     * Rollback the migration
     *
     * @return bool True on success, false on failure
     */
    public function rollback(): bool;

    /**
     * Get migration description
     *
     * @return string Human-readable description
     */
    public function getDescription(): string;
}