<?php

namespace App\Http\Controllers\Client\CashMovementTemp\Dto;

class CashMovementTempInsertDTO
{

    public static function validateData()
    {
        return [
            'CashMovementTemp_Amount'           => 'required|numeric',
            'CashMovementTemp_Currency'         => 'required|string|max:4',
            'CashMovementTemp_Name'             => 'required|string|max:100',
            'CashMovementTemp_LastName'         => 'required|string|max:100',
            'CashMovementTemp_Email'            => 'required|string|max:250',
            'CashMovementTemp_Country'          => 'required|string|max:100',
            'CashMovementTemp_City'             => 'required|string|max:100',
            'CashMovementTemp_Address'          => 'required|string|max:250',
            'CashMovementTemp_Phone'            => 'required|string|max:50',
            'CashMovementTemp_ReceiptNumber'    => 'required|string|max:100',
            'CashMovementTemp_CardLast'         => 'required|string|max:10',
            'CashMovementTemp_CardNumber'       => 'required|string|max:20',
            'CashMovementTemp_CardBrand'        => 'required|string|max:50',
            'CashMovementTemp_CardType'         => 'required|string|max:50',
            'CashMovementTemp_CardIssuer'       => 'required|string|max:50',
            'CashMovementTemp_Remark'           => 'string',
            'CashMovementTemp_Invoices'         => 'required|string',
            'Id_TypePayment'                    => 'int',
            'Id_Schedule'                       => 'int'
        ];
    }

    public function __construct(
        public float $CashMovementTemp_Amount,
        public string $CashMovementTemp_Currency,
        public string $CashMovementTemp_Name,
        public string $CashMovementTemp_LastName,
        public string $CashMovementTemp_Email,
        public string $CashMovementTemp_Country,
        public string $CashMovementTemp_City,
        public string $CashMovementTemp_Address,
        public string $CashMovementTemp_Phone,
        public string $CashMovementTemp_ReceiptNumber,
        public string $CashMovementTemp_CardLast,
        public string $CashMovementTemp_CardNumber,
        public string $CashMovementTemp_CardBrand,
        public string $CashMovementTemp_CardType,
        public string $CashMovementTemp_CardIssuer,
        public string $CashMovementTemp_Remark,
        public string $CashMovementTemp_Invoices,
        public int $Id_TypePayment,
        public int $Id_Schedule,
    ) {}
}
