Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 47
0.00% covered (danger)
0.00%
0 / 6
CRAP
0.00% covered (danger)
0.00%
0 / 1
Move
0.00% covered (danger)
0.00%
0 / 47
0.00% covered (danger)
0.00%
0 / 6
110
0.00% covered (danger)
0.00%
0 / 1
 dependency
0.00% covered (danger)
0.00%
0 / 10
0.00% covered (danger)
0.00%
0 / 1
6
 resolve
0.00% covered (danger)
0.00%
0 / 6
0.00% covered (danger)
0.00%
0 / 1
2
 resolve_category
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 1
2
 resolve_sub_categories_lv1
0.00% covered (danger)
0.00%
0 / 6
0.00% covered (danger)
0.00%
0 / 1
2
 resolve_sub_categories_lv2
0.00% covered (danger)
0.00%
0 / 6
0.00% covered (danger)
0.00%
0 / 1
2
 getData
0.00% covered (danger)
0.00%
0 / 16
0.00% covered (danger)
0.00%
0 / 1
20
1<?php
2
3namespace App\Http\Helpers\ChangeManagement\ShortcutCategory;
4
5use App\Http\Helpers\ChangeManagement\ChangeManagement;
6use App\Http\Models\Shortcut;
7use App\Http\Models\ShortcutSubCategoryLv1;
8use App\Http\Models\ShortcutSubCategoryLv2;
9
10class Move extends ChangeManagement
11{
12    public function dependency($id)
13    {
14        $shortcuts = Shortcut::where('category_id', $id)->count();
15
16        $hasDependency = false;
17
18        if ($shortcuts > 0) {
19            $hasDependency = true;
20        }
21
22        return [
23            'has_dependency' => $hasDependency,
24            'dependency' => [
25                'shortcuts' => $shortcuts,
26            ],
27        ];
28    }
29
30    public function resolve($id)
31    {
32        Shortcut::where('category_id', $id)->update([
33            'category_id' => $this->categoryId,
34            'sub_categories_lv1_id' => null,
35            'sub_categories_lv2_id' => null,
36        ]);
37
38        return true;
39    }
40
41    public function resolve_category($id)
42    {
43        $move_to_category_type = $this->move_to_category_type;
44
45        $data = $this->getData($move_to_category_type);
46
47        Shortcut::where('category_id', $id)->update($data);
48    }
49
50    public function resolve_sub_categories_lv1($id)
51    {
52        $move_to_category_type = $this->move_to_category_type;
53
54        Shortcut::where('sub_categories_lv1_id', $id)->update([
55            'category_id' => $this->categoryId,
56            'sub_categories_lv1_id' => null,
57            'sub_categories_lv2_id' => null,
58        ]);
59    }
60
61    public function resolve_sub_categories_lv2($id)
62    {
63        $move_to_category_type = $this->move_to_category_type;
64
65        Shortcut::where('sub_categories_lv2_id', $id)->update([
66            'category_id' => $this->categoryId,
67            'sub_categories_lv1_id' => null,
68            'sub_categories_lv2_id' => null,
69        ]);
70    }
71
72    protected function getData($move_to_category_type)
73    {
74        $data = [];
75
76        if ($move_to_category_type == 'category') {
77            $data['category_id'] = $this->categoryId;
78            $data['sub_categories_lv1_id'] = null;
79            $data['sub_categories_lv2_id'] = null;
80        } elseif ($move_to_category_type == 'sub_categories_lv1') {
81            $sub_categories_lv1_data = ShortcutSubCategoryLv1::find($this->categoryId);
82            $data['category_id'] = $sub_categories_lv1_data->category_id;
83            $data['sub_categories_lv1_id'] = $sub_categories_lv1_data->id;
84            $data['sub_categories_lv2_id'] = null;
85        } elseif ($move_to_category_type == 'sub_categories_lv2') {
86            $sub_categories_lv2_data = ShortcutSubCategoryLv2::with('subCategoryLv1')->find($this->categoryId);
87            $data['category_id'] = $sub_categories_lv2_data->subCategoryLv1->category_id;
88            $data['sub_categories_lv1_id'] = $sub_categories_lv2_data->subCategoryLv1->id;
89            $data['sub_categories_lv2_id'] = $sub_categories_lv2_data->id;
90        }
91
92        return $data;
93    }
94}