Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
2.04% covered (danger)
2.04%
1 / 49
50.00% covered (danger)
50.00%
1 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 1
CreateProviderSchemaTable
2.04% covered (danger)
2.04%
1 / 49
50.00% covered (danger)
50.00%
1 / 2
5.76
0.00% covered (danger)
0.00%
0 / 1
 up
0.00% covered (danger)
0.00%
0 / 48
0.00% covered (danger)
0.00%
0 / 1
2
 down
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3namespace App\Modules\SecurityModule\Database\Migrations;
4
5use CodeIgniter\Database\Migration;
6
7class CreateProviderSchemaTable extends Migration
8{
9    public function up()
10    {
11        $this->forge->addField([
12            'id' => [
13                'type'           => 'INT',
14                'constraint'     => 11,
15                'unsigned'       => true,
16                'auto_increment' => true,
17            ],
18
19            'channel_provider_id' => [
20                'type'       => 'INT',
21                'constraint' => 11,
22                'unsigned'   => true,
23            ],
24
25            'field_name' => [
26                'type'       => 'VARCHAR',
27                'constraint' => 100,
28            ],
29
30            'field_label' => [
31                'type'       => 'VARCHAR',
32                'constraint' => 150,
33            ],
34
35            'field_type' => [
36                'type'       => 'ENUM',
37                'constraint' => ['text', 'password', 'number', 'email', 'tel'],
38                'default'    => 'text',
39            ],
40
41            'is_required' => [
42                'type'       => 'TINYINT',
43                'constraint' => 1,
44                'default'    => 0,
45            ],
46
47            'sort_order' => [
48                'type'       => 'INT',
49                'constraint' => 11,
50                'default'    => 0,
51            ],
52
53            'created_at' => [
54                'type' => 'DATETIME',
55                'null' => true,
56            ],
57
58            'updated_at' => [
59                'type' => 'DATETIME',
60                'null' => true,
61            ],
62        ]);
63
64        $this->forge->addKey('id', true);
65        $this->forge->addKey('channel_provider_id');
66
67        // index utile pour requĂȘtes de configuration par provider
68        $this->forge->addKey(['channel_provider_id', 'sort_order']);
69
70        $this->forge->createTable('provider_schema', true);
71    }
72
73    public function down()
74    {
75        $this->forge->dropTable('provider_schema', true);
76    }
77}