<?php namespace MovieSite\MovieSite\Workflow; use MovieSite\MovieSite\Models\MovieSite; use Validator; class MovieSiteValidator { /** * Determine if the given movie_site is valid for complete status. * * @param MovieSite $movie_site * * @return bool / Validator */ public function complete(MovieSite $movie_site) { return Validator::make($movie_site->toArray(), [ 'title' => 'required|min:15', ]); } /** * Determine if the given movie_site is valid for verify status. * * @param MovieSite $movie_site * * @return bool / Validator */ public function verify(MovieSite $movie_site) { return Validator::make($movie_site->toArray(), [ 'title' => 'required|min:15', 'status' => 'in:complete', ]); } /** * Determine if the given movie_site is valid for approve status. * * @param MovieSite $movie_site * * @return bool / Validator */ public function approve(MovieSite $movie_site) { return Validator::make($movie_site->toArray(), [ 'title' => 'required|min:15', 'status' => 'in:verify', ]); } /** * Determine if the given movie_site is valid for publish status. * * @param MovieSite $movie_site * * @return bool / Validator */ public function publish(MovieSite $movie_site) { return Validator::make($movie_site->toArray(), [ 'title' => 'required|min:15', 'description' => 'required|min:50', 'status' => 'in:approve,archive,unpublish', ]); } /** * Determine if the given movie_site is valid for archive status. * * @param MovieSite $movie_site * * @return bool / Validator */ public function archive(MovieSite $movie_site) { return Validator::make($movie_site->toArray(), [ 'title' => 'required|min:15', 'description' => 'required|min:50', 'status' => 'in:approve,publish,unpublish', ]); } /** * Determine if the given movie_site is valid for unpublish status. * * @param MovieSite $movie_site * * @return bool / Validator */ public function unpublish(MovieSite $movie_site) { return Validator::make($movie_site->toArray(), [ 'title' => 'required|min:15', 'description' => 'required|min:50', 'status' => 'in:publish', ]); } }