<?php


namespace AutoAdmin\Bundle\Seo\Generator;


use AutoAdmin\Bundle\Seo\Entity\SeoMetadata;

interface GeneratorInterface
{
    public const TYPE_MANUAL_REGEN = 'manual_regen';
//    public const TYPE_ADMIN_SAVE = 'admin_save';
    public const TYPE_ORM_SAVE = 'orm_save';

    public const DEFAULT_FIELDS = ['title', 'description'];

    public function getTypes(): array;

    public function supports(object $subject): bool;

    public function generate(object $subject, array $fields, string $type): ?SeoMetadata;
}
