<?php

    namespace Modules\Lpj\Http\Requests;

    use Illuminate\Foundation\Http\FormRequest;

    class PersetujuanPenawaranRequest extends FormRequest
    {
        public function authorize()
        {
            return true;
        }

        public function rules()
        {
            return [
            'permohonan_id'              => 'nullable|exists:permohonan,id',
            'penawaran_id'               => 'nullable|exists:penawaran,id',
            'nomor_proposal_penawaran'   => 'nullable|string|max:255',
            'nomor_tiket'                => 'nullable|string|max:100',
            'nominal_kurang_bayar'       => 'nullable|string|max:100',
            'bukti_ksl_kurang_bayar'     => 'nullable|file|mimes:pdf,doc,docx|max:10240',
            'tanggal_proposal_penawaran' => 'nullable|date',
            'biaya_final'                => 'nullable|numeric|min:0',
            'sla_resume'                 => 'nullable|numeric|min:0',
            'sla_final'                  => 'nullable|numeric|min:0',
            'file_persetujuan_penawaran' => 'nullable|file|mimes:pdf,doc,docx|max:10240',
            'surat_representasi'         => 'nullable|file|mimes:pdf,doc,docx|max:10240',
            'status'                     => 'nullable|boolean',
            'authorized_status'          => 'boolean',
            'authorized_at'              => 'nullable|date',
            'authorized_by'              => 'nullable|exists:users,id',
            'catatan'                    => 'nullable|string',
        ];
        }

        public function messages()
        {
            return [
            'penawaran_id.required'               => 'Penawaran ID wajib diisi.',
            'penawaran_id.exists'                 => 'Penawaran ID tidak valid.',
            'nomor_proposal_penawaran.required'   => 'Nomor proposal penawaran wajib diisi.',
            'nomor_tiket.string'                  => 'Nomor tiket harus berupa teks.',
            'nomor_tiket.max'                     => 'Nomor tiket tidak boleh lebih dari 100 karakter.',
            'tanggal_proposal_penawaran.required' => 'Tanggal proposal penawaran wajib diisi.',
            'tanggal_proposal_penawaran.date'     => 'Tanggal proposal penawaran harus berupa tanggal yang valid.',
            'biaya_final.required'                => 'Biaya final wajib diisi.',
            'biaya_final.numeric'                 => 'Biaya final harus berupa angka.',
            'biaya_final.min'                     => 'Biaya final tidak boleh kurang dari 0.',
            'sla_resume.required'                 => 'SLA Resume wajib diisi.',
            'sla_final.required'                  => 'SLA Final wajib diisi.',
            'file_persetujuan_penawaran.file'     => 'File Persetujuan Penawaran harus berupa file.',
            'file_persetujuan_penawaran.mimes'    => 'File Persetujuan Penawaran harus berupa file PDF, DOC, atau DOCX.',
            'file_persetujuan_penawaran.max'      => 'Ukuran File Persetujuan Penawaran tidak boleh lebih dari 10MB.',
            'surat_representasi.file'             => 'Surat Representasi harus berupa file.',
            'surat_representasi.mimes'            => 'Surat Representasi harus berupa file PDF, DOC, atau DOCX.',
            'surat_representasi.max'              => 'Ukuran Surat Representasi tidak boleh lebih dari 10MB.',
            'region_id.required'                  => 'Region ID wajib diisi.',
            'region_id.exists'                    => 'Region ID tidak valid.',
            'status.required'                     => 'Status wajib diisi.',
            'status.boolean'                      => 'Status harus berupa nilai boolean.',
            'authorized_status.boolean'           => 'Status otorisasi harus berupa nilai boolean.',
            'authorized_at.date'                  => 'Tanggal otorisasi harus berupa tanggal yang valid.',
            'authorized_by.exists'                => 'ID pengguna yang mengotorisasi tidak valid.',
        ];
        }
    }
