<?php

namespace App\Contracts;

use App\DTOs\CreativeBrief;

interface CreativeBriefResolver
{
    /**
     * Resolve a normalized creative brief from a product URL.
     */
    public function fromProductUrl(string $url): CreativeBrief;

    /**
     * Resolve a normalized creative brief from a free-text prompt.
     *
     * @param  list<string>  $imagePaths  optional paths on the "public" disk used as visual product references.
     */
    public function fromPrompt(string $prompt, array $imagePaths = []): CreativeBrief;

    /**
     * Resolve a normalized creative brief from one or more uploaded product images.
     *
     * @param  list<string>  $imagePaths  paths on the "public" disk.
     */
    public function fromImages(array $imagePaths): CreativeBrief;
}
