Skip to content

Commit 7724c7f

Browse files
authored
Dummy data (#78)
* 🚧 wip * 🗃️ Add User and Article dummy data * 🧐 Add database dummy data
1 parent b7e4d05 commit 7724c7f

17 files changed

+1366
-43
lines changed

README.md

+5
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,11 @@ The following tools are required in order to start the installation.
4646

4747
Vous pouvez maintenant visiter l'application dans votre navigateur en visitant [http://laravel.cm.test](http://laravel.cm.test). Si vous avez amorcé la base de données, vous pouvez vous connecter à un compte de test avec ** `johndoe` ** & **` password` **.
4848

49+
Une fois que vous avez installé et configuré, pour avoir des dummy data vous devez exécuter la commande
50+
```shell
51+
php artisan db:seed --class=DummyDatabaseSeeder
52+
```
53+
4954
### Media Library Pro (optionnel)
5055

5156
Pour que l'upload de fichier fonctionne en local (pour les elements qui utilise Media Library Pro comme la modification de la photo de profil) vous devez renseignez la Licence avec votre compte de Spatie. Pour ce projet une licence commune est disponible etant une `single Licence` pour ce projet uniquement. Vous devez copier coller ce code dans le fichier `auth.json` qui a ete cree a la racine et relancer la commande `composer install`

app/Http/Livewire/Forum/CreateThread.php

+3-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,9 @@ public function store()
5555

5656
givePoint(new ThreadCreated($thread));
5757

58-
event(new ThreadWasCreated($thread));
58+
if (app()->environment('production')) {
59+
event(new ThreadWasCreated($thread));
60+
}
5961

6062
$this->redirectRoute('forum.show', $thread);
6163
}

composer.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,9 @@
108108
"setup": [
109109
"php -r \"file_exists('.env') || copy('.env.example', '.env');\"",
110110
"php artisan key:generate",
111-
"php artisan migrate --seed",
111+
"php artisan migrate",
112112
"php artisan rinvex:migrate:subscriptions",
113+
"php artisan db:seed",
113114
"php artisan lcm:admin"
114115
]
115116
},

database/seeders/AddEnterpriseRoleSeeder.php

-5
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,6 @@
77

88
class AddEnterpriseRoleSeeder extends Seeder
99
{
10-
/**
11-
* Run the database seeds.
12-
*
13-
* @return void
14-
*/
1510
public function run(): void
1611
{
1712
Role::create(['name' => 'company']);

database/seeders/ChannelSeeder.php

-5
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,6 @@
77

88
class ChannelSeeder extends Seeder
99
{
10-
/**
11-
* Run the database seeds.
12-
*
13-
* @return void
14-
*/
1510
public function run(): void
1611
{
1712
$authentification = Channel::create(['name' => 'Authentification', 'slug' => 'authentification', 'color' => '#31c48d']);

database/seeders/DatabaseSeeder.php

+3-5
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,15 @@
77

88
class DatabaseSeeder extends Seeder
99
{
10-
/**
11-
* Seed the application's database.
12-
*
13-
* @return void
14-
*/
1510
public function run(): void
1611
{
1712
$this->call(TagSeeder::class);
1813
$this->call(RoleSeeder::class);
14+
$this->call(AddEnterpriseRoleSeeder::class);
1915
$this->call(ReactionSeeder::class);
2016
$this->call(ChannelSeeder::class);
17+
$this->call(DeveloperPremiumPlanSeeder::class);
18+
$this->call(WorldSeeder::class);
2119

2220
if (! App::environment('production')) {
2321
$this->call(UserSeeder::class);

database/seeders/DeveloperPremiumPlanSeeder.php

-5
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,6 @@
88

99
class DeveloperPremiumPlanSeeder extends Seeder
1010
{
11-
/**
12-
* Run the database seeds.
13-
*
14-
* @return void
15-
*/
1611
public function run(): void
1712
{
1813
$rookiePlan = Plan::create([
+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?php
2+
3+
namespace Database\Seeders;
4+
5+
use Database\Seeders\Fixtures\ArticleTableSeeder;
6+
use Database\Seeders\Fixtures\DiscussionTableSeeder;
7+
use Database\Seeders\Fixtures\ThreadTableSeeder;
8+
use Database\Seeders\Fixtures\UsersTableSeeder;
9+
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
10+
use Illuminate\Database\Seeder;
11+
12+
class DummyDatabaseSeeder extends Seeder
13+
{
14+
use WithoutModelEvents;
15+
16+
public function run(): void
17+
{
18+
$this->call([
19+
UsersTableSeeder::class,
20+
ArticleTableSeeder::class,
21+
DiscussionTableSeeder::class,
22+
ThreadTableSeeder::class,
23+
]);
24+
}
25+
}

database/seeders/Fixtures/ArticleTableSeeder.php

+1,258
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<?php
2+
3+
namespace Database\Seeders\Fixtures;
4+
5+
use App\Models\Discussion;
6+
use App\Models\Tag;
7+
use App\Models\User;
8+
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
9+
use Illuminate\Database\Seeder;
10+
11+
class DiscussionTableSeeder extends Seeder
12+
{
13+
use WithoutModelEvents;
14+
15+
public function run(): void
16+
{
17+
$usersIds = User::all()->modelKeys();
18+
$tagsIds = Tag::query()
19+
->whereJsonContains('concerns', ['discussion'])
20+
->get()
21+
->modelKeys();
22+
$discussions = Discussion::factory()->count(20)->create([
23+
'user_id' => (int) array_rand($usersIds),
24+
]);
25+
26+
foreach ($discussions as $discussion) {
27+
/** @var $discussion Discussion */
28+
$discussion->syncTags(array_rand($tagsIds, 3));
29+
}
30+
}
31+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?php
2+
3+
namespace Database\Seeders\Fixtures;
4+
5+
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
6+
use Illuminate\Database\Seeder;
7+
8+
class ThreadTableSeeder extends Seeder
9+
{
10+
use WithoutModelEvents;
11+
12+
public function run(): void
13+
{
14+
//
15+
}
16+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?php
2+
3+
namespace Database\Seeders\Fixtures;
4+
5+
use App\Models\User;
6+
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
7+
use Illuminate\Database\Seeder;
8+
9+
class UsersTableSeeder extends Seeder
10+
{
11+
use WithoutModelEvents;
12+
13+
public function run(): void
14+
{
15+
$users = User::factory()->count(20)->create();
16+
17+
foreach ($users as $user) {
18+
$user->assignRole('user');
19+
}
20+
}
21+
}

database/seeders/ReactionSeeder.php

-5
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,6 @@
77

88
class ReactionSeeder extends Seeder
99
{
10-
/**
11-
* Run the database seeds.
12-
*
13-
* @return void
14-
*/
1510
public function run(): void
1611
{
1712
Reaction::createFromName('clap');

database/seeders/RoleSeeder.php

-5
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,6 @@
77

88
class RoleSeeder extends Seeder
99
{
10-
/**
11-
* Run the database seeds.
12-
*
13-
* @return void
14-
*/
1510
public function run(): void
1611
{
1712
Role::create(['name' => 'admin']);

database/seeders/TagSeeder.php

-5
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,6 @@
77

88
class TagSeeder extends Seeder
99
{
10-
/**
11-
* Run the database seeds.
12-
*
13-
* @return void
14-
*/
1510
public function run(): void
1611
{
1712
$this->createTag('AlpineJS', 'alpinejs', ['post', 'tutorial']);

database/seeders/UserSeeder.php

+1-5
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,9 @@
77

88
class UserSeeder extends Seeder
99
{
10-
/**
11-
* Run the database seeds.
12-
*
13-
* @return void
14-
*/
1510
public function run(): void
1611
{
12+
/** @var User $user */
1713
$user = User::factory()->create([
1814
'name' => 'Arthur Doe',
1915
'email' => '[email protected]',

database/seeders/WorldSeeder.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
class WorldSeeder extends Seeder
99
{
10-
public function run()
10+
public function run(): void
1111
{
1212
$this->call([
1313
SeedAction::class,

0 commit comments

Comments
 (0)