<?php

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

class WebContactMessageUpdateDTO
{

  public static function validateData()
  {
    return [
      'Id_WebContactMessage'                => 'required|int',
      'WebContactMessage_DateReception'     => 'string|date',
      'WebContactMessage_DateFirstContact'  => 'string|date',
      'WebContactMessage_DateAssign'        => 'string|date',
      'WebContactMessage_DateFirstAnswer'   => 'string|date',
      'WebContactMessage_FirstMessage'      => 'string|max:2000',
      'WebContactMessage_Account'           => 'string|max:250',
      'WebContactMessage_LostMessage'       => 'string|max:1000',
      'WebContactMessage_LostDate'          => 'string|date',
      'WebContactMessage_Name'              => 'string|max:250',
      'WebContactMessage_LastName'          => 'string|max:250',
      'WebContactMessage_Email'             => 'string|max:255',
      'WebContactMessage_Country'           => 'string|max:250',
      'WebContactMessage_CountryCurrent'    => 'string|max:250',
      'WebContactMessage_PhoneCode'         => 'string|max:10',
      'WebContactMessage_Phone'             => 'string|max:100',
      'WebContactMessage_Message'           => 'string|max:2000',
      'WebContactMessage_Adults'            => 'int|min:0',
      'WebContactMessage_Children'          => 'int|min:0',
      'WebContactMessage_Subscription'      => 'int',
      'WebContactMessage_AdminRemark'       => 'string|max:2000',
      'WebContactMessage_Route'             => 'string|max:1000',
      'WebContactMessage_Status'            => 'int',
      // ------------------------------------------------------------------------
      'Id_Country'                          => 'int',
      'Id_Country_Current'                  => 'int',
      'Id_Language'                         => 'int',
      'Id_Channel'                          => 'int',
      'Id_Language_Contact'                 => 'int',
      'Id_Language_Answer'                  => 'int',
      'Id_WebTypeClient'                    => 'int',
      'Id_Admin'                            => 'int',
      'Id_WebPage'                          => 'int',
    ];
  }

  public function __construct(
    public int $Id_WebContactMessage,
    public ?string $WebContactMessage_DateReception,
    public ?string $WebContactMessage_DateFirstContact,
    public ?string $WebContactMessage_DateAssign,
    public ?string $WebContactMessage_DateFirstAnswer,
    public ?string $WebContactMessage_FirstMessage,
    public ?string $WebContactMessage_Account,
    public ?string $WebContactMessage_LostMessage,
    public ?string $WebContactMessage_LostDate,
    public ?string $WebContactMessage_Name,
    public ?string $WebContactMessage_LastName,
    public ?string $WebContactMessage_Email,
    public ?string $WebContactMessage_Country,
    public ?string $WebContactMessage_CountryCurrent,
    public ?string $WebContactMessage_PhoneCode,
    public ?string $WebContactMessage_Phone,
    public ?string $WebContactMessage_Message,
    public ?int $WebContactMessage_Adults,
    public ?int $WebContactMessage_Children,
    public ?int $WebContactMessage_Subscription,
    public ?string $WebContactMessage_AdminRemark,
    public ?string $WebContactMessage_Route,
    public ?int $WebContactMessage_Status,
    // ------------------------------------------------------------------------
    public ?int $Id_Country,
    public ?int $Id_Country_Current,
    public ?int $Id_Language,
    public ?int $Id_Channel,
    public ?int $Id_Language_Contact,
    public ?int $Id_Language_Answer,
    public ?int $Id_WebTypeClient,
    public ?int $Id_Admin,
    public ?int $Id_WebPage,
  ) {}
}
