seedAuditQuestions(); $this->seedOutsourceQuestions(); $this->seedDigitalSolutionsQuestions(); $this->seedLegalQuestions(); $this->seedTaxQuestions(); } /** * Seed questions for Audit category. */ private function seedAuditQuestions(): void { $categoryId = DB::table('categories')->where('name', 'Audit')->value('id'); // Group 1: Opportunity Details (NOT scored) $groupId = DB::table('question_groups')->insertGetId([ 'category_id' => $categoryId, 'name' => 'Opportunity Details', 'sort_order' => 1, 'description' => null, 'scoring_instructions' => null, 'created_at' => now(), 'updated_at' => now(), ]); DB::table('questions')->insert([ [ 'question_group_id' => $groupId, 'text' => 'What sort of audit opportunity is it?', 'has_yes' => false, 'has_no' => false, 'has_na' => false, 'details' => 'required', 'sort_order' => 1, 'is_scored' => false, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'How many locations involved in this opportunity?', 'has_yes' => false, 'has_no' => false, 'has_na' => false, 'details' => 'required', 'sort_order' => 2, 'is_scored' => false, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'List any locations included in this opportunity where we do not have a Baker Tilly firm.', 'has_yes' => false, 'has_no' => false, 'has_na' => false, 'details' => 'required', 'sort_order' => 3, 'is_scored' => false, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Where is the client HQ?', 'has_yes' => false, 'has_no' => false, 'has_na' => false, 'details' => 'required', 'sort_order' => 4, 'is_scored' => false, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Who is the competition?', 'has_yes' => false, 'has_no' => false, 'has_na' => false, 'details' => 'required', 'sort_order' => 5, 'is_scored' => false, 'created_at' => now(), 'updated_at' => now(), ], ]); // Group 2: Client Background and History (scored) $groupId = DB::table('question_groups')->insertGetId([ 'category_id' => $categoryId, 'name' => 'Client Background and History', 'sort_order' => 2, 'description' => null, 'scoring_instructions' => 'If you answer yes, you will score 1 point, if you answer no you will score 0 points', 'created_at' => now(), 'updated_at' => now(), ]); DB::table('questions')->insert([ [ 'question_group_id' => $groupId, 'text' => 'What is the client\'s business and industry?', 'has_yes' => false, 'has_no' => false, 'has_na' => false, 'details' => 'required', 'sort_order' => 1, 'is_scored' => false, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'There have been no significant changes in the client\'s business operations or structure recently?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'req_on_no', 'sort_order' => 2, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Does the sector and/or client come with a reputation which we are comfortable that Baker Tilly is associated with?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => null, 'sort_order' => 3, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Are there any previous audit reports or findings that need to be considered?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'req_on_yes', 'sort_order' => 4, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], ]); // Group 3: Financial Information (scored) $groupId = DB::table('question_groups')->insertGetId([ 'category_id' => $categoryId, 'name' => 'Financial Information', 'sort_order' => 3, 'description' => null, 'scoring_instructions' => 'If you answer yes, you will score 1 point, if you answer no you will score 0 points', 'created_at' => now(), 'updated_at' => now(), ]); DB::table('questions')->insert([ [ 'question_group_id' => $groupId, 'text' => 'Has the client provided financial statements or balance sheet?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'optional', 'sort_order' => 1, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Are the client\'s financial statements complete and accurate?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'optional', 'sort_order' => 2, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], ]); // Group 4: Regulatory Compliance (scored) $groupId = DB::table('question_groups')->insertGetId([ 'category_id' => $categoryId, 'name' => 'Regulatory Compliance', 'sort_order' => 4, 'description' => null, 'scoring_instructions' => 'If you answer yes, you will score 1 point, if you answer no you will score 0 points', 'created_at' => now(), 'updated_at' => now(), ]); DB::table('questions')->insert([ [ 'question_group_id' => $groupId, 'text' => 'Does the client comply with all relevant regulatory requirements and standards?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'req_on_no', 'sort_order' => 1, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'The client has no pending legal or regulatory issues that you know of that could impact the audit?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'req_on_no', 'sort_order' => 2, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'The client has been subject to no regulatory investigations or penalties?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'req_on_no', 'sort_order' => 3, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], ]); // Group 5: Risk Assessment (scored) $groupId = DB::table('question_groups')->insertGetId([ 'category_id' => $categoryId, 'name' => 'Risk Assessment', 'sort_order' => 5, 'description' => null, 'scoring_instructions' => 'If you answer yes, you will score 1 point, if you answer no you will score 0 points', 'created_at' => now(), 'updated_at' => now(), ]); DB::table('questions')->insert([ [ 'question_group_id' => $groupId, 'text' => 'There are no key risks associated with the audit?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'req_on_no', 'sort_order' => 1, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Have you completed a conflict check?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'required', 'sort_order' => 2, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Are you and other BTI member firms independent with the meaning of local and IESBA rules?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'req_on_no', 'sort_order' => 3, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], ]); // Group 6: Resource Allocation (scored) $groupId = DB::table('question_groups')->insertGetId([ 'category_id' => $categoryId, 'name' => 'Resource Allocation', 'sort_order' => 6, 'description' => null, 'scoring_instructions' => 'If you answer yes, you will score 1 point, if you answer no you will score 0 points', 'created_at' => now(), 'updated_at' => now(), ]); DB::table('questions')->insert([ [ 'question_group_id' => $groupId, 'text' => 'What resources are required for the audit (personnel, time, budget)?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'optional', 'sort_order' => 1, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Does your firm have the scale, seniority and degree of expertise available at the right time to report in accordance with the client\'s schedule?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'optional', 'sort_order' => 2, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], ]); // Group 7: Reporting Requirements (scored) $groupId = DB::table('question_groups')->insertGetId([ 'category_id' => $categoryId, 'name' => 'Reporting Requirements', 'sort_order' => 7, 'description' => null, 'scoring_instructions' => 'If you answer yes, you will score 1 point, if you answer no you will score 0 points', 'created_at' => now(), 'updated_at' => now(), ]); DB::table('questions')->insert([ [ 'question_group_id' => $groupId, 'text' => 'Do we understand reporting rules, regulatory environment and stakeholder expectations?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'optional', 'sort_order' => 1, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], ]); } /** * Seed questions for Outsource category. */ private function seedOutsourceQuestions(): void { $categoryId = DB::table('categories')->where('name', 'Outsource')->value('id'); // Group 1: Opportunity Details (NOT scored) $groupId = DB::table('question_groups')->insertGetId([ 'category_id' => $categoryId, 'name' => 'Opportunity Details', 'sort_order' => 1, 'description' => null, 'scoring_instructions' => null, 'created_at' => now(), 'updated_at' => now(), ]); DB::table('questions')->insert([ [ 'question_group_id' => $groupId, 'text' => 'What sort of outsourcing opportunity is it?', 'has_yes' => false, 'has_no' => false, 'has_na' => false, 'details' => 'required', 'sort_order' => 1, 'is_scored' => false, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'How many locations involved in this opportunity?', 'has_yes' => false, 'has_no' => false, 'has_na' => false, 'details' => 'required', 'sort_order' => 2, 'is_scored' => false, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'List any locations included in this opportunity where we do not have a Baker Tilly firm.', 'has_yes' => false, 'has_no' => false, 'has_na' => false, 'details' => 'required', 'sort_order' => 3, 'is_scored' => false, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Where is the client HQ?', 'has_yes' => false, 'has_no' => false, 'has_na' => false, 'details' => 'required', 'sort_order' => 4, 'is_scored' => false, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'What is the client\'s business and industry?', 'has_yes' => false, 'has_no' => false, 'has_na' => false, 'details' => 'required', 'sort_order' => 5, 'is_scored' => false, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Who are the competitors in this space?', 'has_yes' => false, 'has_no' => false, 'has_na' => false, 'details' => 'required', 'sort_order' => 6, 'is_scored' => false, 'created_at' => now(), 'updated_at' => now(), ], ]); // Group 2: Client Background and History (scored) $groupId = DB::table('question_groups')->insertGetId([ 'category_id' => $categoryId, 'name' => 'Client Background and History', 'sort_order' => 2, 'description' => null, 'scoring_instructions' => 'If you answer yes, you will score 1 point, if you answer no you will score 0 points', 'created_at' => now(), 'updated_at' => now(), ]); DB::table('questions')->insert([ [ 'question_group_id' => $groupId, 'text' => 'Have we previously worked with this client, and was the experience positive?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => null, 'sort_order' => 1, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Have we conducted a reputational risk check on the client (negative press, ethical concerns, etc.)?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => null, 'sort_order' => 2, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], ]); // Group 3: Regulatory Compliance (scored) $groupId = DB::table('question_groups')->insertGetId([ 'category_id' => $categoryId, 'name' => 'Regulatory Compliance', 'sort_order' => 3, 'description' => null, 'scoring_instructions' => 'If you answer yes, you will score 1 point, if you answer no you will score 0 points', 'created_at' => now(), 'updated_at' => now(), ]); DB::table('questions')->insert([ [ 'question_group_id' => $groupId, 'text' => 'Does the client comply with all relevant regulatory requirements?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => null, 'sort_order' => 1, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Has the client provided complete and accurate financial records for review?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => null, 'sort_order' => 2, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Does the client have no pending legal, tax or regulatory issues that [you know of] which could impact this opportunity?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => null, 'sort_order' => 3, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], ]); // Group 4: Risk Assessment (scored) $groupId = DB::table('question_groups')->insertGetId([ 'category_id' => $categoryId, 'name' => 'Risk Assessment', 'sort_order' => 4, 'description' => null, 'scoring_instructions' => 'If you answer yes, you will score 1 point, if you answer no you will score 0 points', 'created_at' => now(), 'updated_at' => now(), ]); DB::table('questions')->insert([ [ 'question_group_id' => $groupId, 'text' => 'Is there a clear understanding on the scope, responsibilities and deliverables?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => null, 'sort_order' => 1, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Do we have the necessary delivery tools (platforms, technology, security measures etc.) to support this opportunity?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => null, 'sort_order' => 2, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Have you completed a conflict check?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => null, 'sort_order' => 3, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Can we meet the service-level agreements (SLAs) without overcommitting our resources?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => null, 'sort_order' => 4, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Are there no special expectations or requirements from the client that may pose a challenge?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => null, 'sort_order' => 5, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], ]); // Group 5: Resource Allocation (scored) $groupId = DB::table('question_groups')->insertGetId([ 'category_id' => $categoryId, 'name' => 'Resource Allocation', 'sort_order' => 5, 'description' => null, 'scoring_instructions' => 'If you answer yes, you will score 1 point, if you answer no you will score 0 points', 'created_at' => now(), 'updated_at' => now(), ]); DB::table('questions')->insert([ [ 'question_group_id' => $groupId, 'text' => 'Do you have the resources required for the opportunity (personnel, time, budget)?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => null, 'sort_order' => 1, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Do you have the right expertise and capacity across our network to deliver high-quality service?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => null, 'sort_order' => 2, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], ]); } /** * Seed questions for Digital Solutions category. */ private function seedDigitalSolutionsQuestions(): void { $categoryId = DB::table('categories')->where('name', 'Digital Solutions')->value('id'); // Group 1: Opportunity Details (NOT scored) $groupId = DB::table('question_groups')->insertGetId([ 'category_id' => $categoryId, 'name' => 'Opportunity Details', 'sort_order' => 1, 'description' => null, 'scoring_instructions' => null, 'created_at' => now(), 'updated_at' => now(), ]); DB::table('questions')->insert([ [ 'question_group_id' => $groupId, 'text' => 'What sort of digital consulting opportunity is it?', 'has_yes' => false, 'has_no' => false, 'has_na' => false, 'details' => 'required', 'sort_order' => 1, 'is_scored' => false, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'How many locations involved in this opportunity and are there any locations where we do not have digital capabilities in the local Baker Tilly firm.', 'has_yes' => false, 'has_no' => false, 'has_na' => false, 'details' => 'required', 'sort_order' => 2, 'is_scored' => false, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Where is the client HQ? please share more about the clients industry and digital maturity level.', 'has_yes' => false, 'has_no' => false, 'has_na' => false, 'details' => 'required', 'sort_order' => 3, 'is_scored' => false, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Who are the competitors in this space?', 'has_yes' => false, 'has_no' => false, 'has_na' => false, 'details' => 'required', 'sort_order' => 4, 'is_scored' => false, 'created_at' => now(), 'updated_at' => now(), ], ]); // Group 2: Client Background and History (scored) $groupId = DB::table('question_groups')->insertGetId([ 'category_id' => $categoryId, 'name' => 'Client Background and History', 'sort_order' => 2, 'description' => null, 'scoring_instructions' => 'If you answer yes, you will score 1 point, if you answer no you will score 0 points', 'created_at' => now(), 'updated_at' => now(), ]); DB::table('questions')->insert([ [ 'question_group_id' => $groupId, 'text' => 'Have we previously worked with this client, and was the experience positive?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => null, 'sort_order' => 1, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Have we conducted a reputational risk check on the client (negative press, ethical concerns, etc.)?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => null, 'sort_order' => 2, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], ]); // Group 3: Regulatory Compliance (scored) $groupId = DB::table('question_groups')->insertGetId([ 'category_id' => $categoryId, 'name' => 'Regulatory Compliance', 'sort_order' => 3, 'description' => null, 'scoring_instructions' => 'If you answer yes, you will score 1 point, if you answer no you will score 0 points', 'created_at' => now(), 'updated_at' => now(), ]); DB::table('questions')->insert([ [ 'question_group_id' => $groupId, 'text' => 'Does the project involve cross-border data transfers, and if so, are necessary safeguards in place?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => null, 'sort_order' => 1, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Does the client have no pending legal, tax or regulatory issues that [you know of] which could impact this opportunity?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => null, 'sort_order' => 2, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], ]); // Group 4: Risk Assessment (scored) $groupId = DB::table('question_groups')->insertGetId([ 'category_id' => $categoryId, 'name' => 'Risk Assessment', 'sort_order' => 4, 'description' => null, 'scoring_instructions' => 'If you answer yes, you will score 1 point, if you answer no you will score 0 points', 'created_at' => now(), 'updated_at' => now(), ]); DB::table('questions')->insert([ [ 'question_group_id' => $groupId, 'text' => 'Is there a clear understanding of the project scope, responsibilities, and deliverables?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => null, 'sort_order' => 1, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Do we have the necessary delivery tools (platforms, technology, security measures etc.) to support this opportunity?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => null, 'sort_order' => 2, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Have we completed a conflict check?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => null, 'sort_order' => 3, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Can we meet the service-level agreements (SLAs) without overcommitting our resources?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => null, 'sort_order' => 4, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Are there no special expectations or requirements from the client that may pose a challenge?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => null, 'sort_order' => 5, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], ]); // Group 5: Resource Allocation (scored) $groupId = DB::table('question_groups')->insertGetId([ 'category_id' => $categoryId, 'name' => 'Resource Allocation', 'sort_order' => 5, 'description' => null, 'scoring_instructions' => 'If you answer yes, you will score 1 point, if you answer no you will score 0 points', 'created_at' => now(), 'updated_at' => now(), ]); DB::table('questions')->insert([ [ 'question_group_id' => $groupId, 'text' => 'Do you have the resources required for the opportunity (personnel, time, budget)?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => null, 'sort_order' => 1, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Do you have the right expertise and capacity across our network to deliver high-quality service?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => null, 'sort_order' => 2, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], ]); // Group 6: Technology & Innovation Fit (scored) $groupId = DB::table('question_groups')->insertGetId([ 'category_id' => $categoryId, 'name' => 'Technology & Innovation Fit', 'sort_order' => 6, 'description' => null, 'scoring_instructions' => 'If you answer yes, you will score 1 point; if you answer no, you will score 0 points', 'created_at' => now(), 'updated_at' => now(), ]); DB::table('questions')->insert([ [ 'question_group_id' => $groupId, 'text' => 'Are the technologies involved within our area of expertise, or do we have partnerships to support the implementation?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => null, 'sort_order' => 1, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], ]); } /** * Seed questions for Legal category. */ private function seedLegalQuestions(): void { $categoryId = DB::table('categories')->where('name', 'Legal')->value('id'); // Group 1: Opportunity Details (mixed scored and non-scored) $groupId = DB::table('question_groups')->insertGetId([ 'category_id' => $categoryId, 'name' => 'Opportunity Details', 'sort_order' => 1, 'description' => null, 'scoring_instructions' => null, 'created_at' => now(), 'updated_at' => now(), ]); DB::table('questions')->insert([ [ 'question_group_id' => $groupId, 'text' => 'What type of legal opportunity is it (e.g., litigation, corporate, M&A, regulatory)?', 'has_yes' => false, 'has_no' => false, 'has_na' => false, 'details' => 'required', 'sort_order' => 1, 'is_scored' => false, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'How many locations involved in this opportunity?', 'has_yes' => false, 'has_no' => false, 'has_na' => false, 'details' => 'required', 'sort_order' => 2, 'is_scored' => false, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Do we have a presence or a reliable partner in all locations listed in this opportunity?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'req_on_no', 'sort_order' => 3, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Is the client budget realistic?', 'has_yes' => false, 'has_no' => false, 'has_na' => false, 'details' => 'required', 'sort_order' => 4, 'is_scored' => false, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Has the client requested any additional information from our firms?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'required', 'sort_order' => 5, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'What is the deadline to respond to the client on this opportunity?', 'has_yes' => false, 'has_no' => false, 'has_na' => false, 'details' => 'required', 'sort_order' => 6, 'is_scored' => false, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Where is the client HQ?', 'has_yes' => false, 'has_no' => false, 'has_na' => false, 'details' => 'required', 'sort_order' => 7, 'is_scored' => false, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Who is the competition?', 'has_yes' => false, 'has_no' => false, 'has_na' => false, 'details' => 'required', 'sort_order' => 8, 'is_scored' => false, 'created_at' => now(), 'updated_at' => now(), ], ]); // Group 2: Client Background and History (mixed) $groupId = DB::table('question_groups')->insertGetId([ 'category_id' => $categoryId, 'name' => 'Client Background and History', 'sort_order' => 2, 'description' => null, 'scoring_instructions' => 'If you answer yes, you will score 1 point, if you answer no you will score 0 points', 'created_at' => now(), 'updated_at' => now(), ]); DB::table('questions')->insert([ [ 'question_group_id' => $groupId, 'text' => 'What is the client\'s business and industry?', 'has_yes' => false, 'has_no' => false, 'has_na' => false, 'details' => 'required', 'sort_order' => 1, 'is_scored' => false, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Have there been any significant changes in the client\'s business operations or structure recently?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'req_on_yes', 'sort_order' => 2, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'What is our competitive edge in this opportunity (e.g., prior experience with the client, unique expertise, pricing advantage)?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'required', 'sort_order' => 3, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], ]); // Group 3: Financial Information (scored) $groupId = DB::table('question_groups')->insertGetId([ 'category_id' => $categoryId, 'name' => 'Financial Information', 'sort_order' => 3, 'description' => null, 'scoring_instructions' => 'If you answer yes, you will score 1 point, if you answer no you will score 0 points', 'created_at' => now(), 'updated_at' => now(), ]); DB::table('questions')->insert([ [ 'question_group_id' => $groupId, 'text' => 'Has the client provided enough financial information about their company?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'optional', 'sort_order' => 1, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Are there any significant financial risks or uncertainties that you are aware of?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'req_on_yes', 'sort_order' => 2, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], ]); // Group 4: Regulatory Compliance (scored) $groupId = DB::table('question_groups')->insertGetId([ 'category_id' => $categoryId, 'name' => 'Regulatory Compliance', 'sort_order' => 4, 'description' => null, 'scoring_instructions' => 'If you answer yes, you will score 1 point, if you answer no you will score 0 points', 'created_at' => now(), 'updated_at' => now(), ]); DB::table('questions')->insert([ [ 'question_group_id' => $groupId, 'text' => 'Are there any pending legal or regulatory issues that you know of that could impact the opportunity?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'req_on_yes', 'sort_order' => 1, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Has the client been subject to any regulatory investigations or penalties?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'req_on_yes', 'sort_order' => 2, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], ]); // Group 5: Risk Assessment for Legal Opportunities (scored) $groupId = DB::table('question_groups')->insertGetId([ 'category_id' => $categoryId, 'name' => 'Risk Assessment for Legal Opportunities', 'sort_order' => 5, 'description' => null, 'scoring_instructions' => 'If you answer yes, you will score 1 point, if you answer no you will score 0 points', 'created_at' => now(), 'updated_at' => now(), ]); DB::table('questions')->insert([ [ 'question_group_id' => $groupId, 'text' => 'Are there any potential risks or challenges associated with the opportunity?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'req_on_yes', 'sort_order' => 1, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Has a conflict check been completed?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'req_on_yes', 'sort_order' => 2, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Are there any potential conflicts of interest?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'req_on_yes', 'sort_order' => 3, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], ]); // Group 6: Resource Allocation (mixed) $groupId = DB::table('question_groups')->insertGetId([ 'category_id' => $categoryId, 'name' => 'Resource Allocation', 'sort_order' => 6, 'description' => null, 'scoring_instructions' => 'If you answer yes, you will score 1 point, if you answer no you will score 0 points', 'created_at' => now(), 'updated_at' => now(), ]); DB::table('questions')->insert([ [ 'question_group_id' => $groupId, 'text' => 'Do we have the required skills and capacity within our firm to deliver this work, or would we need support from another firm?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'optional', 'sort_order' => 1, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'What resources are required for the opportunity (personnel, time, budget)?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'optional', 'sort_order' => 2, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Are there any constraints on the availability of your resources?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'optional', 'sort_order' => 3, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Do you know of the any constraints on the availability of other firms included in this opportunity?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'optional', 'sort_order' => 4, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Is the deadline to respond to the client is more than two weeks away. Our experience shows that anything shorter is often unrealistic to pursue.', 'has_yes' => false, 'has_no' => false, 'has_na' => false, 'details' => 'required', 'sort_order' => 5, 'is_scored' => false, 'created_at' => now(), 'updated_at' => now(), ], ]); // Group 7: Stakeholder Engagement (mixed) $groupId = DB::table('question_groups')->insertGetId([ 'category_id' => $categoryId, 'name' => 'Stakeholder Engagement', 'sort_order' => 7, 'description' => null, 'scoring_instructions' => 'If you answer yes, you will score 1 point, if you answer no you will score 0 points', 'created_at' => now(), 'updated_at' => now(), ]); DB::table('questions')->insert([ [ 'question_group_id' => $groupId, 'text' => 'Who are the key stakeholders involved in this opportunity?', 'has_yes' => false, 'has_no' => false, 'has_na' => false, 'details' => 'required', 'sort_order' => 1, 'is_scored' => false, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Are there any special expectations and requirements?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'optional', 'sort_order' => 2, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], ]); // Group 8: Fee Quote (scored) $groupId = DB::table('question_groups')->insertGetId([ 'category_id' => $categoryId, 'name' => 'Fee Quote', 'sort_order' => 8, 'description' => null, 'scoring_instructions' => 'If you answer yes, you will score 1 point, if you answer no you will score 0 points', 'created_at' => now(), 'updated_at' => now(), ]); DB::table('questions')->insert([ [ 'question_group_id' => $groupId, 'text' => 'Has the client provided sufficient information to enable a fee quote?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'optional', 'sort_order' => 1, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], ]); } /** * Seed questions for Tax category. */ private function seedTaxQuestions(): void { $categoryId = DB::table('categories')->where('name', 'Tax')->value('id'); // Group 1: Opportunity Details (mixed) $groupId = DB::table('question_groups')->insertGetId([ 'category_id' => $categoryId, 'name' => 'Opportunity Details', 'sort_order' => 1, 'description' => null, 'scoring_instructions' => null, 'created_at' => now(), 'updated_at' => now(), ]); DB::table('questions')->insert([ [ 'question_group_id' => $groupId, 'text' => 'What sort of opportunity is it?/Describe the Scope of Work', 'has_yes' => false, 'has_no' => false, 'has_na' => false, 'details' => 'required', 'sort_order' => 1, 'is_scored' => false, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'How many locations involved in this opportunity?', 'has_yes' => false, 'has_no' => false, 'has_na' => false, 'details' => 'required', 'sort_order' => 2, 'is_scored' => false, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Do we have a Baker Tilly firm in all locations within this opportunity?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'req_on_no', 'sort_order' => 3, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Has the client requested any additional information from our firms?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'required', 'sort_order' => 4, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'What is the deadline to respond to the client on this opportunity?', 'has_yes' => false, 'has_no' => false, 'has_na' => false, 'details' => 'required', 'sort_order' => 5, 'is_scored' => false, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Where is the client HQ?', 'has_yes' => false, 'has_no' => false, 'has_na' => false, 'details' => 'required', 'sort_order' => 6, 'is_scored' => false, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Who is the competition?', 'has_yes' => false, 'has_no' => false, 'has_na' => false, 'details' => 'required', 'sort_order' => 7, 'is_scored' => false, 'created_at' => now(), 'updated_at' => now(), ], ]); // Group 2: Client Background and History (mixed) $groupId = DB::table('question_groups')->insertGetId([ 'category_id' => $categoryId, 'name' => 'Client Background and History', 'sort_order' => 2, 'description' => null, 'scoring_instructions' => 'If you answer yes, you will score 1 point, if you answer no you will score 0 points', 'created_at' => now(), 'updated_at' => now(), ]); DB::table('questions')->insert([ [ 'question_group_id' => $groupId, 'text' => 'What is the client\'s business and industry?', 'has_yes' => false, 'has_no' => false, 'has_na' => false, 'details' => 'required', 'sort_order' => 1, 'is_scored' => false, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Have there been any significant changes in the client\'s business operations or structure recently?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'req_on_yes', 'sort_order' => 2, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Is the client an existing client?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'required', 'sort_order' => 3, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], ]); // Group 3: Financial Information (scored) $groupId = DB::table('question_groups')->insertGetId([ 'category_id' => $categoryId, 'name' => 'Financial Information', 'sort_order' => 3, 'description' => null, 'scoring_instructions' => 'If you answer yes, you will score 1 point, if you answer no you will score 0 points', 'created_at' => now(), 'updated_at' => now(), ]); DB::table('questions')->insert([ [ 'question_group_id' => $groupId, 'text' => 'Has the client provided enough financial information about their company?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'optional', 'sort_order' => 1, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Are there any significant financial risks or uncertainties that you are aware of?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'req_on_yes', 'sort_order' => 2, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], ]); // Group 4: Regulatory Compliance (scored) $groupId = DB::table('question_groups')->insertGetId([ 'category_id' => $categoryId, 'name' => 'Regulatory Compliance', 'sort_order' => 4, 'description' => null, 'scoring_instructions' => 'If you answer yes, you will score 1 point, if you answer no you will score 0 points', 'created_at' => now(), 'updated_at' => now(), ]); DB::table('questions')->insert([ [ 'question_group_id' => $groupId, 'text' => 'Does the client comply with all relevant regulatory requirements and standards?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'req_on_no', 'sort_order' => 1, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Are there any pending legal or regulatory issues that you know of that could impact the opportunity?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'req_on_yes', 'sort_order' => 2, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Has the client been subject to any regulatory investigations or penalties?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'req_on_yes', 'sort_order' => 3, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], ]); // Group 5: Risk Assessment (scored) $groupId = DB::table('question_groups')->insertGetId([ 'category_id' => $categoryId, 'name' => 'Risk Assessment', 'sort_order' => 5, 'description' => null, 'scoring_instructions' => 'If you answer yes, you will score 1 point, if you answer no you will score 0 points', 'created_at' => now(), 'updated_at' => now(), ]); DB::table('questions')->insert([ [ 'question_group_id' => $groupId, 'text' => 'Are there any potential risks or challenges associated with the opportunity?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'req_on_yes', 'sort_order' => 1, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Are there any potential conflicts of interest?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'req_on_yes', 'sort_order' => 2, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], ]); // Group 6: Resource Allocation (mixed) $groupId = DB::table('question_groups')->insertGetId([ 'category_id' => $categoryId, 'name' => 'Resource Allocation', 'sort_order' => 6, 'description' => null, 'scoring_instructions' => 'If you answer yes, you will score 1 point, if you answer no you will score 0 points', 'created_at' => now(), 'updated_at' => now(), ]); DB::table('questions')->insert([ [ 'question_group_id' => $groupId, 'text' => 'What resources are required for the opportunity (personnel, time, budget)?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'optional', 'sort_order' => 1, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Are there any constraints on the availability of your resources?', 'has_yes' => false, 'has_no' => false, 'has_na' => false, 'details' => 'optional', 'sort_order' => 2, 'is_scored' => false, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Do you know of the any constraints on the availability of other firms included in this opportunity?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'optional', 'sort_order' => 3, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'What is the expected timeline for the opportunity, including any critical deadlines that must be met?', 'has_yes' => false, 'has_no' => false, 'has_na' => false, 'details' => 'optional', 'sort_order' => 4, 'is_scored' => false, 'created_at' => now(), 'updated_at' => now(), ], ]); // Group 7: Stakeholder Engagement (mixed) $groupId = DB::table('question_groups')->insertGetId([ 'category_id' => $categoryId, 'name' => 'Stakeholder Engagement', 'sort_order' => 7, 'description' => null, 'scoring_instructions' => 'If you answer yes, you will score 1 point, if you answer no you will score 0 points', 'created_at' => now(), 'updated_at' => now(), ]); DB::table('questions')->insert([ [ 'question_group_id' => $groupId, 'text' => 'Who are the key stakeholders involved in this opportunity?', 'has_yes' => false, 'has_no' => false, 'has_na' => false, 'details' => 'required', 'sort_order' => 1, 'is_scored' => false, 'created_at' => now(), 'updated_at' => now(), ], [ 'question_group_id' => $groupId, 'text' => 'Are there any special expectations and requirements?', 'has_yes' => true, 'has_no' => true, 'has_na' => true, 'details' => 'optional', 'sort_order' => 2, 'is_scored' => true, 'created_at' => now(), 'updated_at' => now(), ], ]); } }