<?php

namespace App\Http\Controllers\Owner\TourTemplate\Dto;

use App\Modules\Template\TourTemplate\Domain\TourTemplateStatus;

class TourTemplateInsertDTO
{

    public static function validateData()
    {
        return [
            'TourTemplate_Name' => 'required|string|max:250',
            'TourTemplate_TourTitle' => 'string|max:250',
            'TourTemplate_Orientation' => 'required|string|max:250',
            'TourTemplate_Format' => 'required|string|max:250',
            'TourTemplate_Pdf' => 'required|mimes:pdf',
            'TourTemplate_DateToPrint' => 'required|in:1,2',
            'TourTemplate_TextName' => 'required|string|max:2000',
            'TourTemplate_TextDays' => 'required|string|max:2000',
            'TourTemplate_TextTour' => 'required|string|max:2000',
            'TourTemplate_TextDate' => 'required|string|max:2000',
            'TourTemplate_Status' => 'required|in:' . implode(',', TourTemplateStatus::validValues()),
            'Id_Tour' => 'required|int',
            'Type' => 'required|in:Id_TourTemplate,Id_TourTemplate_Blank',
        ];
    }

    public function __construct(
        public string $TourTemplate_Name,
        public string $TourTemplate_TourTitle,
        public string $TourTemplate_Orientation,
        public string $TourTemplate_Format,
        public string $TourTemplate_Pdf,
        public int $TourTemplate_DateToPrint,
        public string $TourTemplate_TextName,
        public string $TourTemplate_TextDays,
        public string $TourTemplate_TextTour,
        public string $TourTemplate_TextDate,
        public string $TourTemplate_Status,
        public string $Id_Tour,
        public string $Type,
    ) {}
}
