<?php

namespace App\Services;

use App\Models\Album;
use App\Models\Artist;
use App\Models\Contracts\Embeddable;
use App\Models\Embed;
use App\Models\Playlist;
use App\Models\Song;
use App\Models\User;

class EmbedService
{
    /** @param Album|Artist|Playlist|Song $embeddable */
    public function resolveEmbedForEmbeddable(Embeddable $embeddable, User $user): Embed
    {
        return $embeddable->embeds()->firstOrCreate([
            'embeddable_id' => $embeddable->getKey(),
            'embeddable_type' => $embeddable->getMorphClass(),
            'user_id' => $user->id,
        ]);
    }
}