'Test Applicant', 'email' => 'test221@example.com', 'mobile_number' => '9999999978', 'aadhaar_card' => '123456789012', 'pan_card' => 'ABCDE1234F', 'state' => 'approved', 'merchant_id' => 1, 'co_applicant_name' => null, 'co_applicant_aadhaar_card' => null, 'created_by' => 107, 'created_at' => Carbon::now(), 'updated_at' => Carbon::now(), ]; $data = array_merge($defaults, $overrides); $this->testApplicationId = DB::table('consumer_application')->insertGetId($data); return $this->testApplicationId; } /** * Creates a consumer_application_element row. */ protected function createApplicationElement($appId, array $overrides = []) { $defaults = [ 'application_id' => $appId, 'product_name' => 'Solar Panel', 'mandatory_document_list' => null, 'reference_contact_1' => null, 'reference_contact_2' => null, 'is_bnpl' => 0, 'type_of_customer' => 1, 'solar_power_type' => 1, 'created_at' => Carbon::now(), 'updated_at' => Carbon::now(), ]; return DB::table('consumer_application_element')->insertGetId( array_merge($defaults, $overrides) ); } /** * Creates a consumer_application_files row. */ protected function createApplicationFile($appId, $fileType, array $overrides = []) { $defaults = [ 'consumer_application_id' => $appId, 'file_type' => $fileType, 'applicant_type' => 1, 'doc_verify' => 0, 'ebill_name_verify' => null, 'deleted_at' => null, 'created_at' => Carbon::now(), 'updated_at' => Carbon::now(), ]; return DB::table('consumer_application_files')->insertGetId( array_merge($defaults, $overrides) ); } /** * Creates a utility_validation row. */ protected function createUtilityValidation($appId, array $data = []) { $defaults = [ 'consumer_application_id' => $appId, 'data' => json_encode($data), 'created_at' => Carbon::now(), 'updated_at' => Carbon::now(), 'consumer_application_file_id' => 12345, 'user_id' => 107, ]; return DB::table('utility_validation')->insertGetId($defaults); } /** * Creates a bank row with karza_response. */ protected function createBankRecord($appId, $karzaResponse, array $overrides = []) { $defaults = [ 'application_id' => $appId, 'applicant_type' => 1, 'karza_response' => is_string($karzaResponse) ? $karzaResponse : json_encode($karzaResponse), 'created_at' => Carbon::now(), 'updated_at' => Carbon::now(), 'bank_name' => 'SBI', 'account_number' => 1234567890, 'branch_name' => 'Dombivali', 'ifsc_code' => 'SBIN0000001', ]; return DB::table('bank')->insertGetId( array_merge($defaults, $overrides) ); } /** * Creates a credit_report row. */ protected function createCreditReport($appId, $applicantType, $panValidation, $panVendor = 'decentro', array $overrides = []) { $defaults = [ 'application_id' => $appId, 'applicant_type' => $applicantType, 'panValidation' => is_string($panValidation) ? $panValidation : json_encode($panValidation), 'panVendor' => $panVendor, 'created_at' => Carbon::now(), 'updated_at' => Carbon::now(), 'max_emi_serviced' => 0, 'current_emi_sum' => 0, ]; return DB::table('credit_report')->insertGetId( array_merge($defaults, $overrides) ); } /** * Creates a call_logs row. */ protected function createCallLog($appId, $purpose, $status, $recording = null, $to = null, array $overrides = []) { $defaults = [ '_id' => $appId, 'id_type' => 'application_id', 'purpose' => $purpose, 'status' => $status, 'recording' => $recording, 'to' => $to, 'created_at' => Carbon::now(), 'updated_at' => Carbon::now(), ]; return DB::table('call_logs')->insertGetId( array_merge($defaults, $overrides) ); } /** * Creates a pro_forma_invoice row. */ protected function createProFormaInvoice($appId, array $overrides = []) { $defaults = [ 'application_id' => $appId, 'merchant_collected_advance_amount' => 0, 'processing_fee_by_merchant' => 0, 'created_at' => Carbon::now(), 'updated_at' => Carbon::now(), ]; return DB::table('pro_forma_invoice')->insertGetId( array_merge($defaults, $overrides) ); } /** * Creates an emi_calculation row. */ protected function createEmiCalculation($appId, array $overrides = []) { $defaults = [ 'application_id' => $appId, 'processing_fee' => 0, 'upfront_from_customer' => 0, 'created_at' => Carbon::now(), 'updated_at' => Carbon::now(), ]; return DB::table('emi_calculation')->insertGetId( array_merge($defaults, $overrides) ); } /** * Creates a payment_transactions row. */ protected function createPaymentTransaction($appId, $paymentFor, $amount, array $overrides = []) { $defaults = [ 'application_id' => $appId, 'payment_for' => $paymentFor, 'amount' => $amount, 'status' => 'success', 'deleted_at' => null, 'created_at' => Carbon::now(), 'updated_at' => Carbon::now(), ]; return DB::table('payment_transactions')->insertGetId( array_merge($defaults, $overrides) ); } /** * Creates an auto_dcd_log row. */ protected function createAutoDcdLog($appId, $status, $result, array $overrides = []) { $defaults = [ 'application_id' => $appId, 'status' => $status, 'result' => is_string($result) ? $result : json_encode($result), 'job_id' => null, 'triggered_by' => 'test', 'created_at' => Carbon::now(), 'updated_at' => Carbon::now(), ]; return DB::table('auto_dcd_log')->insertGetId( array_merge($defaults, $overrides) ); } /** * Creates a loan_hypothecation_model row. */ protected function createLoanHypothecation($appId, array $overrides = []) { $defaults = [ 'application_id' => $appId, 'documentId' => 'test-document-id', 'status' => 'completed', 'response' => '{}', 'first_party_signing' => 1, 'applicant_signing' => 1, 'co_applicant_signing' => 0, 'deleted_at' => null, 'created_at' => Carbon::now(), 'updated_at' => Carbon::now(), ]; return DB::table('loan_hypothecation_model')->insertGetId( array_merge($defaults, $overrides) ); } /** * Creates a karza_video_webhooks row. */ protected function createKarzaVideoWebhook($appId, $applicantType, array $data, array $overrides = []) { $defaults = [ 'application_id' => $appId, 'applicant_type' => $applicantType, 'data' => json_encode($data), 'created_at' => Carbon::now(), 'updated_at' => Carbon::now(), ]; return DB::table('karza_video_webhooks')->insertGetId( array_merge($defaults, $overrides) ); } /** * Creates a digio_vkyc row. */ protected function createDigioVkyc($appId, $applicantType, $kycJourney, $kycStatus, array $overrides = []) { $defaults = [ 'application_id' => $appId, 'applicant_type' => $applicantType, 'kyc_journey' => $kycJourney, 'kyc_status' => $kycStatus, 'deleted_at' => null, 'created_at' => Carbon::now(), 'updated_at' => Carbon::now(), 'request_id' => 'efr5464nfbrnfjnwj454n', 'signer_identifier' => 'complete' ]; return DB::table('digio_vkyc')->insertGetId( array_merge($defaults, $overrides) ); } /** * Cleans up all test data inserted during the test. * Called automatically via DatabaseTransactions rollback, but available for manual use. */ protected function cleanupTestData($appId) { $tables = [ 'consumer_application_files' => 'consumer_application_id', 'consumer_application_element' => 'application_id', 'utility_validation' => 'consumer_application_id', 'bank' => 'application_id', 'credit_report' => 'application_id', 'call_logs' => '_id', 'pro_forma_invoice' => 'application_id', 'emi_calculation' => 'application_id', 'payment_transactions' => 'application_id', 'auto_dcd_log' => 'application_id', 'karza_video_webhooks' => 'application_id', 'digio_vkyc' => 'application_id', 'comments' => 'application_id', 'loan_hypothecation_model' => 'application_id', 'jobs' => 'application_id', ]; foreach ($tables as $table => $column) { DB::table($table)->where($column, $appId)->delete(); } DB::table('consumer_application')->where('id', $appId)->delete(); } }