<?php

namespace Openguru\OpenCartFramework\Migrations;

use Openguru\OpenCartFramework\Application;
use Psr\Log\LoggerInterface;
use Openguru\OpenCartFramework\QueryBuilder\Connections\ConnectionInterface;

abstract class Migration
{
    protected Application $app;
    protected ConnectionInterface $database;
    protected LoggerInterface $logger;

    public function __construct()
    {
        $this->app = Application::getInstance();
        $this->database = $this->app->get(ConnectionInterface::class);
        $this->logger = $this->app->get(LoggerInterface::class);
    }

    abstract public function up(): void;
}
