<?php

namespace App\View\Components\Links;

use Carbon\Exceptions\InvalidFormatException;
use Illuminate\Support\Carbon;
use Illuminate\View\Component;

class VideoLink extends Component
{
    /**
     * @var string
     */
    public $bvid;
    /**
     * @var int|string
     */
    public $part;
    /**
     * @var string|null
     */
    public $time;
    /**
     * @var int|string|null
     */
    public $sec;

    /**
     * Create a new component instance.
     *
     * @return void
     */
    public function __construct(string $bvid, $part = 1, $time = null, $sec=null)
    {
        $this->bvid = $bvid;
        $this->part = $part;
        if ($sec == null) {
            try {
                $sec = Carbon::createFromFormat("H:i:s", $time)->secondsSinceMidnight();
            } catch (InvalidFormatException $ex) {
                $time = null;
            }
        }
        $this->time = $time;
        $this->sec = $sec;
    }

    /**
     * Get the view / contents that represent the component.
     *
     * @return \Illuminate\Contracts\View\View|\Closure|string
     */
    public function render()
    {
        return view('components.links.video_link');
    }
}