Passed
Push — develop ( dcecff...37402c )
by Septianata
16:01
created

DenominationSeeder::coins()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 46
Code Lines 37

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 37
c 0
b 0
f 0
dl 0
loc 46
rs 9.328
cc 1
nc 1
nop 0
1
<?php
2
3
namespace Database\Seeders;
4
5
use App\Enum\DenominationType;
6
use App\Models\Denomination;
7
use Illuminate\Database\Seeder;
8
use Illuminate\Support\Facades\File;
9
use Illuminate\Support\Facades\Storage;
10
11
class DenominationSeeder extends Seeder
12
{
13
    /**
14
     * Run the database seeds.
15
     *
16
     * @return void
17
     */
18
    public function run()
19
    {
20
        File::ensureDirectoryExists(Storage::path(Denomination::IMAGE_PATH));
21
22
        array_map(function (array $attributes) {
23
            File::copy(
24
                resource_path('img/denomination/' . $attributes['image']),
25
                Storage::path(Denomination::IMAGE_PATH . '/' . $attributes['image'])
26
            );
27
28
            return Denomination::create($attributes);
29
        }, array_merge($this->coins(), $this->banknotes()));
30
    }
31
32
    /**
33
     * Return list of coin seeder data.
34
     *
35
     * @return array
36
     */
37
    protected function coins(): array
38
    {
39
        return [
40
            [
41
                'key' => 'coin-100',
42
                'name' => 'Seratus',
43
                'value' => 100,
44
                'type' => DenominationType::coin(),
45
                'quantity_per_bundle' => 25,
46
                'minimum_order_bundle' => 1,
47
                'maximum_order_bundle' => 2,
48
                'minimum_order_quantity' => 1,
49
                'image' => 'coin-100.png',
50
            ],
51
            [
52
                'key' => 'coin-200',
53
                'name' => 'Dua ratus',
54
                'value' => 200,
55
                'type' => DenominationType::coin(),
56
                'quantity_per_bundle' => 25,
57
                'minimum_order_bundle' => 1,
58
                'maximum_order_bundle' => 2,
59
                'minimum_order_quantity' => 1,
60
                'image' => 'coin-200.png',
61
            ],
62
            [
63
                'key' => 'coin-500',
64
                'name' => 'Lima ratus',
65
                'value' => 500,
66
                'type' => DenominationType::coin(),
67
                'quantity_per_bundle' => 25,
68
                'minimum_order_bundle' => 1,
69
                'maximum_order_bundle' => 2,
70
                'minimum_order_quantity' => 1,
71
                'image' => 'coin-500.png',
72
            ],
73
            [
74
                'key' => 'coin-1000',
75
                'name' => 'Seribu',
76
                'value' => 1000,
77
                'type' => DenominationType::coin(),
78
                'quantity_per_bundle' => 25,
79
                'minimum_order_bundle' => 1,
80
                'maximum_order_bundle' => 2,
81
                'minimum_order_quantity' => 1,
82
                'image' => 'coin-1000.jpg',
83
            ],
84
        ];
85
    }
86
87
    /**
88
     * Return list of banknote seeder data.
89
     *
90
     * @return array
91
     */
92
    protected function banknotes(): array
93
    {
94
        return [
95
            [
96
                'key' => 'banknote-1000',
97
                'name' => 'Seribu',
98
                'value' => 1000,
99
                'type' => DenominationType::banknote(),
100
                'quantity_per_bundle' => 100,
101
                'minimum_order_bundle' => 1,
102
                'maximum_order_bundle' => 2,
103
                'minimum_order_quantity' => 1,
104
                'image' => 'banknote-1000.jpg',
105
            ],
106
            [
107
                'key' => 'banknote-2000',
108
                'name' => 'Dua ribu',
109
                'value' => 2000,
110
                'type' => DenominationType::banknote(),
111
                'quantity_per_bundle' => 100,
112
                'minimum_order_bundle' => 1,
113
                'maximum_order_bundle' => 2,
114
                'minimum_order_quantity' => 1,
115
                'image' => 'banknote-2000.jpg',
116
                'is_visible' => true,
117
            ],
118
            [
119
                'key' => 'banknote-5000',
120
                'name' => 'Lima ribu',
121
                'value' => 5000,
122
                'type' => DenominationType::banknote(),
123
                'quantity_per_bundle' => 100,
124
                'minimum_order_bundle' => 1,
125
                'maximum_order_bundle' => 2,
126
                'minimum_order_quantity' => 1,
127
                'image' => 'banknote-5000.jpg',
128
                'is_visible' => true,
129
            ],
130
            [
131
                'key' => 'banknote-10000',
132
                'name' => 'Sepuluh ribu',
133
                'value' => 10000,
134
                'type' => DenominationType::banknote(),
135
                'quantity_per_bundle' => 100,
136
                'minimum_order_bundle' => 1,
137
                'maximum_order_bundle' => 1,
138
                'minimum_order_quantity' => 1,
139
                'image' => 'banknote-10000.jpg',
140
                'is_visible' => true,
141
            ],
142
            [
143
                'key' => 'banknote-20000',
144
                'name' => 'Dua puluh ribu',
145
                'value' => 20000,
146
                'type' => DenominationType::banknote(),
147
                'quantity_per_bundle' => 100,
148
                'minimum_order_bundle' => 1,
149
                'maximum_order_bundle' => 1,
150
                'minimum_order_quantity' => 1,
151
                'image' => 'banknote-20000.jpg',
152
                'is_visible' => true,
153
            ],
154
            [
155
                'key' => 'banknote-50000',
156
                'name' => 'Lima puluh ribu',
157
                'value' => 50000,
158
                'type' => DenominationType::banknote(),
159
                'quantity_per_bundle' => 100,
160
                'minimum_order_bundle' => 1,
161
                'maximum_order_bundle' => 1,
162
                'minimum_order_quantity' => 1,
163
                'image' => 'banknote-50000.jpg',
164
            ],
165
            [
166
                'key' => 'banknote-75000',
167
                'name' => 'Tujuh puluh lima ribu',
168
                'value' => 75000,
169
                'type' => DenominationType::banknote(),
170
                'quantity_per_bundle' => 100,
171
                'minimum_order_bundle' => 1,
172
                'maximum_order_bundle' => 1,
173
                'minimum_order_quantity' => 1,
174
                'image' => 'banknote-75000.jpg',
175
            ],
176
            [
177
                'key' => 'banknote-100000',
178
                'name' => 'Seratus ribu',
179
                'value' => 100000,
180
                'type' => DenominationType::banknote(),
181
                'quantity_per_bundle' => 100,
182
                'minimum_order_bundle' => 1,
183
                'maximum_order_bundle' => 1,
184
                'minimum_order_quantity' => 1,
185
                'image' => 'banknote-100000.jpg',
186
            ],
187
        ];
188
    }
189
}
190