<?php namespace App; use Illuminate\Database\Eloquent\Model; use Illuminate\Validation\Rule; class Evento extends Model { /** * The attributes that are mass assignable. * * @var array */ protected $fillable = [ 'nome', 'descricao', 'tipo', 'natureza', 'inicioSubmissao', 'fimSubmissao', 'inicioRevisao', 'fimRevisao', 'resultado_final','resultado_preliminar', 'coordenadorId', 'numMaxTrabalhos', 'numMaxCoautores', 'hasResumo', 'criador_id', 'numParticipantes', 'dt_inicioRelatorioParcial', 'dt_fimRelatorioParcial', 'dt_inicioRelatorioFinal', 'dt_fimRelatorioFinal', 'formAvaliacaoExterno', 'formAvaliacaoInterno', 'cotaDoutor', 'inicioProjeto', 'fimProjeto', 'formAvaliacaoRelatorio', 'docTutorial' ]; #validação para as datas dos editais padrão public static $dates_rules = [ 'inicioSubmissao' => ['required', 'date'], 'fimSubmissao' => ['required', 'date'], 'inicioRevisao' => ['required', 'date'], 'fimRevisao' => ['required', 'date'], 'inicio_recurso' => ['required', 'date'], 'fim_recurso' => ['required', 'date'], 'resultado_final' => ['required', 'date'], 'resultado_preliminar' => ['required', 'date'], 'dt_inicioRelatorioParcial' => ['exclude_if:tipo,PIBEX,PIACEX', 'required', 'date'], 'dt_fimRelatorioParcial' => ['exclude_if:tipo,PIBEX,PIACEX', 'required', 'date'], 'dt_inicioRelatorioFinal' => ['required', 'date'], 'dt_fimRelatorioFinal' => ['required', 'date'], // 'inicioProjeto' => ['required', 'date'], // 'fimProjeto' => ['required', 'date'], //'modeloDocumento' => [], ]; #validação para as datas dos editais de fluxo continuo public static $continuos_dates_rules = [ 'inicioSubmissao' => ['required', 'date'], 'fimSubmissao' => ['required', 'date'], ]; #validação completa dos dados de editais padrão public static $rules = [ 'nome' => ['required', 'string'], 'descricao' => ['required', 'string','max:1500'], 'tipo' => ['required', 'string'], 'natureza' => ['required'], 'coordenadorId' => ['required'], // 'numParticipantes' => ['required'], 'nome_docExtra' => ['required_with:check_docExtra','max:255'], 'tipoAvaliacao' => ['required'], 'inicioSubmissao' => ['required', 'date', 'after:yesterday'], 'fimSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'], 'inicioRevisao' => ['required', 'date', 'after:yesterday'], 'fimRevisao' => ['required', 'date', 'after:inicioRevisao', 'after:fimSubmissao'], 'resultado_preliminar' => ['required', 'date', 'after_or_equal:fimRevisao'], 'inicio_recurso' => ['required', 'date', 'after_or_equal:resultado_preliminar'], 'fim_recurso' => ['required', 'date', 'after:inicio_recurso'], 'resultado_final' => ['required', 'date', 'after:fim_recurso'], 'dt_inicioRelatorioParcial' => ['exclude_if:tipo,PIBEX,PIACEX', 'required', 'date', 'after:resultado_final'], 'dt_fimRelatorioParcial' => ['exclude_if:tipo,PIBEX,PIACEX', 'required', 'date', 'after_or_equal:dt_inicioRelatorioParcial'], 'dt_inicioRelatorioFinal' => ['required', 'date', 'after:dt_fimRelatorioParcial'], 'dt_fimRelatorioFinal' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioFinal'], 'pdfEdital' => [('pdfEditalPreenchido'!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'], // 'inicioProjeto' => ['required', 'date', 'after:yesterday'], // 'fimProjeto' => ['required', 'date', 'after_or_equal:fimSubmissao'], ]; #validação completa dos dados de editais de fluxo continuo public static $continuos_rules = [ 'nome' => ['required', 'string'], 'descricao' => ['required', 'string','max:1500'], 'tipo' => ['required', 'string'], 'natureza' => ['required'], 'coordenadorId' => ['required'], // 'numParticipantes' => ['required'], 'nome_docExtra' => ['required_with:check_docExtra','max:255'], 'tipoAvaliacao' => ['required'], 'inicioSubmissao' => ['required', 'date', 'after:yesterday'], 'fimSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'], 'pdfEdital' => [('pdfEditalPreenchido'!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'], ]; public static $edit_rules = [ 'nome' => ['required', 'string'], 'descricao' => ['required', 'string', 'max:1500'], 'tipo' => ['required', 'string'], 'natureza' => ['required'], // 'numParticipantes' => ['required'], 'tipoAvaliacao' => ['required'], 'inicioSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'], 'fimSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'], 'inicioRevisao' => ['required', 'date', 'after:fimSubmissao'], 'fimRevisao' => ['required', 'date', 'after:inicioRevisao'], 'resultado_preliminar'=> ['required', 'date', 'after_or_equal:fimRevisao'], 'inicio_recurso' => ['required', 'date', 'after_or_equal:resultado_preliminar'], 'fim_recurso' => ['required', 'date', 'after:inicio_recurso'], 'resultado_final' => ['required', 'date', 'after:fim_recurso'], 'dt_inicioRelatorioParcial' => ['exclude_if:tipo,PIBEX,PIACEX', 'required', 'date', 'after:resultado_final'], 'dt_fimRelatorioParcial' => ['exclude_if:tipo,PIBEX,PIACEX', 'required', 'date', 'after_or_equal:dt_inicioRelatorioParcial'], 'dt_inicioRelatorioFinal' => ['required', 'date', 'after:dt_fimRelatorioParcial'], 'dt_fimRelatorioFinal' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioFinal'], 'modeloDocumento.*' => ['file', 'mimes:zip,doc,docx,odt,pdf', 'max:2048'], 'pdfFormAvalExterno' => ['file', 'mimes:pdf,doc,docx,xlsx,xls,csv,zip', 'max:2048'], // 'inicioProjeto' => ['required', 'date', 'after:resultado_final'], // 'fimProjeto' => ['required', 'date', 'after:inicioProjeto'], 'docTutorial' => ['file', 'mimes:zip,doc,docx,pdf', 'max:2048'], 'nome_docExtra' => ['required_with:check_docExtra', 'max:255'], ]; public static $continuos_edit_rules = [ 'nome' => ['required', 'string'], 'descricao' => ['required', 'string','max:1500'], 'tipo' => ['required', 'string'], 'natureza' => ['required'], 'coordenadorId' => ['required'], // 'numParticipantes' => ['required'], 'nome_docExtra' => ['required_with:check_docExtra','max:255'], 'tipoAvaliacao' => ['required'], 'inicioSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'], 'fimSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'], 'pdfEdital' => ['sometimes', 'required', 'file', 'mimes:pdf', 'max:2048'], ]; public function endereco(){ return $this->belongsTo('App\Endereco', 'enderecoId'); } public function atividade(){ return $this->hasOne('App\Atividade', 'eventoId'); } public function area(){ return $this->hasOne('App\Area', 'eventoId'); } public function coordenador(){ return $this->belongsTo('App\User', 'coordenadorId'); } public function coordenadorComissao(){ return $this->belongsTo('App\CoordenadorComissao', 'coordenadorId'); } public function trabalhos(){ return $this->hasMany('App\Trabalho'); } public function avaliadors(){ return $this->belongsToMany('App\Avaliador')->withPivot('convite', 'created_at'); } public function campos_avaliacao(){ return $this->hasMany('App\CampoAvaliacao'); } }