Files
vkv/database/seeders/NewsPostSeeder.php
Zdeněk Burda 41e3ce6f25 Initial commit
2026-01-09 21:26:40 +01:00

137 lines
4.3 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?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:0023: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:0023: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:0023:00 CET.',
'en' => 'Planned downtime on 15 Dec 2025 between 22:0023: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();
}
}
}