Initial commit
This commit is contained in:
136
database/seeders/NewsPostSeeder.php
Normal file
136
database/seeders/NewsPostSeeder.php
Normal file
@@ -0,0 +1,136 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\NewsPost;
|
||||
use Illuminate\Database\Seeder;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class NewsPostSeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
// Pozor: pokud už máš v produkci data, truncate nepoužívej.
|
||||
NewsPost::truncate();
|
||||
|
||||
$items = [
|
||||
[
|
||||
'title' => [
|
||||
'cs' => 'Vývojová verze nového vyhodnocovacího systému VKV závodů',
|
||||
'en' => 'Development version of the new VHF contest evaluation system',
|
||||
],
|
||||
'content' => [
|
||||
'cs' => <<<MD
|
||||
## Vývojová verze
|
||||
|
||||
Tento systém pro vyhodnocování VKV závodů je aktuálně ve vývojové verzi.
|
||||
|
||||
**Co to znamená:**
|
||||
|
||||
- mohou se objevit chyby nebo nekompletní funkce
|
||||
- data a výsledky se mohou ještě měnit
|
||||
- budeme rádi za zpětnou vazbu a nahlášené problémy
|
||||
MD,
|
||||
'en' => <<<MD
|
||||
## Development version
|
||||
|
||||
This VHF contest evaluation system is currently a development version.
|
||||
|
||||
**What this means:**
|
||||
|
||||
- features may be incomplete and bugs may appear
|
||||
- data and results may still change
|
||||
- we welcome feedback and reported issues
|
||||
MD,
|
||||
],
|
||||
'excerpt' => [
|
||||
'cs' => 'Nový systém pro vyhodnocování VKV závodů je ve vývoji.',
|
||||
'en' => 'The new VHF contest evaluation system is in development.',
|
||||
],
|
||||
'is_published' => true,
|
||||
'published_at' => now()->subDays(7),
|
||||
],
|
||||
[
|
||||
'title' => [
|
||||
'cs' => 'Plánovaná údržba systému',
|
||||
'en' => 'Planned system maintenance',
|
||||
],
|
||||
'content' => [
|
||||
'cs' => <<<MD
|
||||
## Plánovaná údržba
|
||||
|
||||
Systém bude nedostupný **15. 12. 2025** mezi *22:00–23:00 CET* z důvodu údržby databáze.
|
||||
|
||||
Po dobu odstávky nebude možné:
|
||||
|
||||
- odesílat logy
|
||||
- prohlížet výsledky
|
||||
MD,
|
||||
'en' => <<<MD
|
||||
## Planned maintenance
|
||||
|
||||
The system will be unavailable on **15 Dec 2025** between *22:00–23:00 CET* due to database maintenance.
|
||||
|
||||
During this window it will not be possible to:
|
||||
|
||||
- submit logs
|
||||
- view results
|
||||
MD,
|
||||
],
|
||||
'excerpt' => [
|
||||
'cs' => 'Plánovaná odstávka systému 15. 12. 2025 mezi 22:00–23:00 CET.',
|
||||
'en' => 'Planned downtime on 15 Dec 2025 between 22:00–23:00 CET.',
|
||||
],
|
||||
'is_published' => false,
|
||||
'published_at' => now()->subDays(3),
|
||||
],
|
||||
[
|
||||
'title' => [
|
||||
'cs' => 'Testovací novinka pouze v češtině',
|
||||
'en' => 'Test news item (Czech only translation)',
|
||||
],
|
||||
'content' => [
|
||||
'cs' => <<<MD
|
||||
## Testovací novinka
|
||||
|
||||
Tato novinka slouží k otestování zobrazení lokalizovaného obsahu v uživatelském rozhraní.
|
||||
MD,
|
||||
'en' => <<<MD
|
||||
## Test news item
|
||||
|
||||
This news entry is used to test localized content rendering in the user interface.
|
||||
MD,
|
||||
],
|
||||
'excerpt' => [
|
||||
'cs' => 'Testovací novinka pro ověření lokalizace.',
|
||||
'en' => 'Test news item for localization checks.',
|
||||
],
|
||||
'is_published' => false,
|
||||
'published_at' => now()->subDay(),
|
||||
],
|
||||
];
|
||||
|
||||
foreach ($items as $item) {
|
||||
// slug vygenerujeme z českého titulku (nebo fallback na en)
|
||||
$titleForSlug = $item['title']['cs']
|
||||
?? $item['title']['en']
|
||||
?? reset($item['title']);
|
||||
|
||||
$slug = Str::slug($titleForSlug);
|
||||
|
||||
$news = new NewsPost();
|
||||
|
||||
// lokalizované položky nastavíme explicitně jako překlady
|
||||
$news->setTranslations('title', $item['title']);
|
||||
$news->setTranslations('content', $item['content']);
|
||||
$news->setTranslations('excerpt', $item['excerpt']);
|
||||
|
||||
$news->slug = $slug;
|
||||
$news->is_published = $item['is_published'];
|
||||
$news->published_at = $item['published_at'];
|
||||
$news->author_id = null; // nebo nějaký konkrétní user_id
|
||||
|
||||
$news->save();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user