<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Storage;

class LiveStream extends Model
{
    use HasFactory;

    public function getHlsUrl()
    {
        $path = Storage::url("live-hls/{$this->stream_id}/index.m3u8");

        return url($path);
    }

    public function getStreamServer()
    {
        $proto = 'rtmp://';
        $host = config('livestreaming.server.host');
        $port = ':'.config('livestreaming.server.port');
        $path = '/'.config('livestreaming.server.path');

        return $proto.$host.$port.$path;
    }

    public function getStreamKeyUrl()
    {
        $path = $this->getStreamServer().'?';
        $query = http_build_query([
            'name' => $this->stream_key,
        ]);

        return $path.$query;
    }

    public function getStreamRtmpUrl()
    {
        return $this->getStreamServer().'/'.$this->stream_id;
    }
}
