inital commit

This commit is contained in:
2026-06-24 18:29:01 +06:00
commit f401802bf7
3918 changed files with 553085 additions and 0 deletions

View File

@@ -0,0 +1,20 @@
<?php
namespace App\Http\Requests;
class AddPackageRequest extends ApiBaseRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'package_id'=>"required|integer",
];
}
}

View File

@@ -0,0 +1,26 @@
<?php
namespace App\Http\Requests;
class AddProfileRequest extends ApiBaseRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'street_no'=>'required|regex:'.$this->script_validation_rule,
'street_name'=>'required|regex:'.$this->script_validation_rule,
'city'=>'required|regex:'.$this->script_validation_rule,
'state'=>'required|regex:'.$this->script_validation_rule,
'zip_code'=>'required|regex:'.$this->script_validation_rule,
'ssn'=>'required|integer',
'phone'=>'required|regex:'.$this->script_validation_rule,
];
}
}

View File

@@ -0,0 +1,21 @@
<?php
namespace App\Http\Requests;
class AddSupportRequest extends BaseRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'support_text'=>'required',
'support_title'=>'required'
];
}
}

View File

@@ -0,0 +1,48 @@
<?php
namespace App\Http\Requests;
use App\Traits\ApiResponseTrait;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Http\Exceptions\HttpResponseException;
use Illuminate\Validation\ValidationException;
class ApiBaseRequest extends BaseRequest
{
use ApiResponseTrait;
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
//
];
}
protected function passedValidation()
{
$request = $this->all();
$rules = array_keys($this->rules());
$final_data = [];
if (!empty($rules)) {
foreach ($rules as $rule) {
if (isset($request[$rule])) {
$final_data[$rule] = $request[$rule];
}
}
}
$this->replace($final_data);
}
protected function failedValidation(Validator $validator)
{
$errors = (new ValidationException($validator))->errors();
throw new HttpResponseException($this->sendApiResponse($errors,"validation error",config('constant.API_VALIDATION_FAILED')));
}
}

View File

@@ -0,0 +1,37 @@
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class BaseRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
protected string $script_validation_rule = '/^[^<>]+$/';
protected string $RULE_EXPIRY_REGEX = "/^(0[1-9]|1[0-2]|[1-9])\/(1[4-9]|[0-9][0-9]|20[1-9][1-9])$/";
protected string $password_validation_rule = '/^(?=[-a-zA-Z0-9@_*.]*$).*/';
protected string $street_validation_rule = '/^(?=[-0-9A-Za-z.#\s]*$).*/';
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
//
];
}
}

View File

@@ -0,0 +1,50 @@
<?php
namespace App\Http\Requests;
use App\Rules\PasswordValidationRule;
use Illuminate\Validation\Rule;
class ClientRegistration extends BaseRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
$userData = [
'first_name'=>'required|string',
'last_name'=>'required|string',
'email'=>'required|email|unique:users,email',
'password'=>['required','min:8', new PasswordValidationRule()],
'street_no'=>'required|string|max:5|regex:'.$this->street_validation_rule,
'street_name'=>'required|max:50|regex:'.$this->street_validation_rule,
'city'=>'required|string|regex:'.$this->script_validation_rule,
'state'=>'required|string|regex:'.$this->script_validation_rule,
'zip_code'=>'required|string|min:5|max:5|regex:'.$this->script_validation_rule,
'phone'=>'required|string|regex:'.$this->script_validation_rule,
'user_access_date'=> 'date_format:m/d/Y|after:today'
];
$inputData = request()->all();
if(isset($inputData['make_payment']) && $inputData['make_payment']) {
$userData['payment_date'] = 'required|date_format:m/d/Y|before:tomorrow';
$userData['source_type'] = 'required';
$userData['birth_date'] = 'required|date_format:m/d/Y|before:18 years ago|after:-150 years';
$userData['ssn'] = 'required|min:4|max:4';
$userData['card_number'] = 'required';
$userData['expiry'] = 'required';
$userData['make_payment'] = 'required';
$userData['user_access_date'] = '';
}
return $userData;
}
}

View File

@@ -0,0 +1,28 @@
<?php
namespace App\Http\Requests;
use App\Rules\ReCaptcha;
use Illuminate\Validation\Rule;
class CreateAccountRequest extends ApiBaseRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'first_name'=>'required|regex:'.$this->script_validation_rule,
'last_name'=>'required|regex:'.$this->script_validation_rule,
'email'=>['required', 'email',Rule::unique('users', 'email')->withoutTrashed()],
'password'=>'required|min:8|regex:'.$this->password_validation_rule,
'captcha'=>['required']
];
}
}

View File

@@ -0,0 +1,59 @@
<?php
namespace App\Http\Requests;
use Illuminate\Validation\Rule;
class CreateCustomerRequest extends ApiBaseRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules(): array
{
$userData =[
"package_id"=>"required|integer",
"first_name"=>"required|string",
"last_name"=>"required|string",
'email' => 'required|email|unique:users,email',
'password'=>'required|min:8|regex:'.$this->password_validation_rule,
'birth_date'=>'required|date_format:m/d/Y|before:18 years ago|after:-150 years',
'full_ssn'=>'required|min:4|max:4',
// 'full_ssn'=>'required|min:9|max:11',
'street_no'=>'required|string|max:5|regex:'.$this->street_validation_rule,
'street_name'=>'required|max:50|regex:'.$this->street_validation_rule,
'city'=>'required|string|regex:'.$this->script_validation_rule,
'state'=>'required|string|regex:'.$this->script_validation_rule,
'zip_code'=>'required|string|min:5|max:5|regex:'.$this->script_validation_rule,
'ssn'=>'required',
'amount'=>'required',
'phone'=>'required|string|regex:'.$this->script_validation_rule,
'is_free'=>'required',
];
$inputData = request()->all();
if(isset($inputData['is_free']) && $inputData['is_free'] != 1){
$userData['card_number'] ='required';
$userData['cvv_no']='required';
$userData['expiry']='required';
}
return $userData;
}
/**
* @return array|string[]
*/
public function messages(): array
{
return [
'street_name.max' => 'The street name may not be greater than 50 characters.',
'street_name.regex' => 'The street name may not be special characters.',
];
}
}

View File

@@ -0,0 +1,23 @@
<?php
namespace App\Http\Requests;
class CreditReportProviderRequest extends BaseRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'link'=> 'required|regex:'.config('constant.REPORT_PROVIDER_LINK_VALIDATION'),
'source_type' => 'required|unique:creditreport_providers,company_type'
];
}
}

View File

@@ -0,0 +1,20 @@
<?php
namespace App\Http\Requests;
class CreditReportRequest extends ApiBaseRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
//
];
}
}

View File

@@ -0,0 +1,43 @@
<?php
namespace App\Http\Requests;
class CustomerProfileRequest extends ApiBaseRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules(): array
{
return [
"package_id"=>"required|integer",
"first_name"=>"required|string",
"last_name"=>"required|string",
'email'=>['required', 'email','unique:users,email'],
'password'=>'required|min:8|regex:'.$this->password_validation_rule,
'birth_date'=>'required|date_format:m/d/Y|before:18 years ago|after:-150 years',
'full_ssn'=>'required|min:4|max:4',
// 'full_ssn'=>'required|min:9|max:11',
'street_no'=>'required|string|max:5|regex:'.$this->street_validation_rule,
'street_name'=>'required|max:50|regex:'.$this->street_validation_rule,
'city'=>'required|string|regex:'.$this->script_validation_rule,
'state'=>'required|string|regex:'.$this->script_validation_rule,
'zip_code'=>'required|string|regex:'.$this->script_validation_rule,
'ssn'=>'required',
'amount'=>'required',
'phone'=>'required|string|regex:'.$this->script_validation_rule,
];
}
public function messages(): array
{
return [
'street_name.max' => 'The street name may not be greater than 50 characters.',
'street_name.regex' => 'The street name may not be special characters.',
];
}
}

View File

@@ -0,0 +1,27 @@
<?php
namespace App\Http\Requests;
use Illuminate\Validation\Rule;
class EditEmployeeInfoRequest extends BaseRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
"id" => "required",
"first_name" => "required|string",
"last_name" => "required|string",
'email' => "required|email",
'password' => 'required',
'userRole' => 'required'
];
}
}

View File

@@ -0,0 +1,26 @@
<?php
namespace App\Http\Requests;
use Illuminate\Validation\Rule;
class EmployeeRegistrationRequest extends BaseRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
"first_name" => "required|string",
"last_name" => "required|string",
'email' => ['required', 'email',Rule::unique('users', 'email')->withoutTrashed()],
'password' => 'required',
'userRole' => 'required'
];
}
}

View File

@@ -0,0 +1,22 @@
<?php
namespace App\Http\Requests;
class LinkRequest extends BaseRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'section_name' => 'required',
'link' => 'required|regex:'.config('constant.VIMEO_VIDEO_LINK_VALIDATION'),
'status' => 'required|numeric',
];
}
}

View File

@@ -0,0 +1,21 @@
<?php
namespace App\Http\Requests;
class LoginRequest extends BaseRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'email'=>'required|email',
'password'=>'required'
];
}
}

View File

@@ -0,0 +1,46 @@
<?php
namespace App\Http\Requests;
use Illuminate\Validation\Rule;
class MakePaymentRequest extends ApiBaseRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
"package_id"=>"required|integer",
"first_name"=>"required|string",
"last_name"=>"required|string",
'email'=>['required', 'email'],
'password'=>'required|min:8|regex:'.$this->password_validation_rule,
'birth_date'=>'required|date_format:m/d/Y|before:18 years ago|after:-150 years',
'full_ssn'=>'required',
'street_no'=>'required|string|regex:'.$this->script_validation_rule,
'street_name'=>'required|regex:'.$this->script_validation_rule,
'city'=>'required|string|regex:'.$this->script_validation_rule,
'state'=>'required|string|regex:'.$this->script_validation_rule,
'zip_code'=>'required|string|regex:'.$this->script_validation_rule,
'ssn'=>'required',
'phone'=>'required|string|regex:'.$this->script_validation_rule,
'amount'=>'required|numeric',
'card_number'=>'required|regex:/^\d{15,20}$/',
'expiry'=>['required','string','regex:'.$this->RULE_EXPIRY_REGEX]
];
}
public function messages()
{
return [
'card_number.regex'=>'Value is invalid'
];
}
}

View File

@@ -0,0 +1,53 @@
<?php
namespace App\Http\Requests;
use App\Rules\PasswordValidationRule;
class ManageClientRequest extends BaseRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'creditreport.first_name' => 'required',
'creditreport.last_name' => 'required',
'creditreport.birth_date' => 'required',
'creditreport.street_no' => 'required|regex:'.$this->script_validation_rule,
'creditreport.street_name' => 'required|regex:'.$this->script_validation_rule,
'creditreport.city' => 'required|regex:'.$this->script_validation_rule,
'creditreport.state' => 'required|regex:'.$this->script_validation_rule,
'creditreport.zip_code' => 'required|regex:'.$this->script_validation_rule,
'creditreport.phone' => 'required|regex:'.$this->script_validation_rule,
'uploadmedia.identification' => 'file|max:'.config('constant.MAX_FILE_SIZE'),
'uploadmedia.ssn' => 'file|max:'.config('constant.MAX_FILE_SIZE'),
'uploadmedia.state_photo_id' => 'file|max:'.config('constant.MAX_FILE_SIZE'),
'uploadmedia.mail_doc' => 'file|max:'.config('constant.MAX_FILE_SIZE'),
'creditreport.credit_report_company_type' => 'required',
'creditreport.ssn' => ['required','min:4','max:4'],
'creditreport.password' => ['required','min:8',new PasswordValidationRule()]
];
}
public function messages()
{
$file_size_message = "Maximum file size to upload is ".sizeFilter(config('constant.MAX_FILE_SIZE')). " . If you are uploading a file, try to make it under ".sizeFilter(config('constant.MAX_FILE_SIZE')).".";
return [
'uploadmedia.identification.max' => 'Identification: '.$file_size_message,
'uploadmedia.ssn.max' => 'SSN: '.$file_size_message,
'uploadmedia.state_photo_id.max' => 'State Photo: '.$file_size_message,
'uploadmedia.mail_doc.max' => 'Other Doc: '.$file_size_message,
'creditreport.password.min' => 'Password mast be 8 characters.',
'creditreport.password' => 'Password is required.',
'creditreport.ssn.min' => 'Please enter last 4 digit of your ssn.',
'creditreport.ssn.max' => 'Please enter last 4 digit of your ssn.',
];
}
}

View File

@@ -0,0 +1,22 @@
<?php
namespace App\Http\Requests;
class PasswordChangeRequest extends BaseRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'email' => 'required|email',
// 'change_password'=>'required',
'current_password'=>'required',
];
}
}

View File

@@ -0,0 +1,22 @@
<?php
namespace App\Http\Requests;
class PaymentSettingRequest extends BaseRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'card_number'=>'required',
'expiry'=>'required',
'cvv'=>'required'
];
}
}

View File

@@ -0,0 +1,29 @@
<?php
namespace App\Http\Requests;
class PermissionCreateRequest extends BaseRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
"employee_id" => "required",
"userRole" => "required",
];
}
public function messages()
{
return [
'employee_id' => 'Select an employee.',
'userRole' => 'Select permission.'
];
}
}

View File

@@ -0,0 +1,20 @@
<?php
namespace App\Http\Requests;
class SecurityQuestionRequest extends BaseRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'question' => 'required'
];
}
}

View File

@@ -0,0 +1,23 @@
<?php
namespace App\Http\Requests;
class SetCreditReportRequest extends ApiBaseRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
"email"=>"required|email",
"password"=>"required",
"package_id"=>"integer",
"user_id"=>"integer",
];
}
}

View File

@@ -0,0 +1,54 @@
<?php
namespace App\Http\Requests;
use App\Rules\PasswordValidationRule;
class UserEditRequest extends BaseRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
$userData = [
'first_name'=>'required',
'last_name'=>'required',
'email'=>'required|email',
'previous_email'=>'required|email',
'street_no'=>'required|regex:'.$this->script_validation_rule,
'street_name'=>'required|regex:'.$this->script_validation_rule,
'city'=>'required|regex:'.$this->script_validation_rule,
'state'=>'required|regex:'.$this->script_validation_rule,
'zip_code'=>'required|regex:'.$this->script_validation_rule,
'phone'=>'required|regex:'.$this->script_validation_rule,
'password'=> ['required','min:8', new PasswordValidationRule()],
// 'reset_account'=>'sometimes',
];
$inputData = request()->all();
if(isset($inputData['report_provider_info']) && $inputData['report_provider_info']) {
$userData['source_type'] = 'required';
$userData['birth_date'] = 'required|date_format:m/d/Y|before:18 years ago|after:-150 years';
$userData['ssn'] = 'required|min:4|max:4';
}
if($inputData['previous_email'] != $inputData['email']){
$userData['email'] = 'required|email|unique:users,email';
}
return $userData;
}
public function messages()
{
return [
'password.min' => 'Password mast be 8 characters.',
];
}
}