<?php
declare(strict_types=1);

namespace Celena\Core\Database\Driver;

/**
 * Контракт драйвера СУБД. Скрывает различия между PG и MySQL.
 */
interface DriverInterface
{
    public function name(): string;
    public function dsn(array $config): string;
    public function quoteId(string $id): string;

    /** Маппинг абстрактных типов колонок в нативные. */
    public function mapType(string $abstract, array $opts = []): string;

    /** Поддерживает ли RETURNING в INSERT (PG). */
    public function supportsReturning(): bool;

    /** Имя last-insert-id sequence (PG требует, MySQL игнорирует). */
    public function lastInsertSeq(string $table, string $column = 'id'): ?string;
}
