migrate template
This commit is contained in:
24
database/seeders/CategorySeeder.php
Normal file
24
database/seeders/CategorySeeder.php
Normal file
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\Category;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class CategorySeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
$categories = [
|
||||
['name' => 'Sygyr eti', 'slug' => 'sygyr-eti', 'icon' => 'set_meal', 'sort_order' => 1],
|
||||
['name' => 'Goýun eti', 'slug' => 'goyun-eti', 'icon' => 'cruelty_free', 'sort_order' => 2],
|
||||
['name' => 'Goş', 'slug' => 'gos', 'icon' => 'kebab_dining', 'sort_order' => 3],
|
||||
['name' => 'Guş eti', 'slug' => 'gus-eti', 'icon' => 'egg', 'sort_order' => 4],
|
||||
['name' => 'Kolbasalar', 'slug' => 'kolbasalar', 'icon' => 'local_pizza', 'sort_order' => 5],
|
||||
];
|
||||
|
||||
foreach ($categories as $category) {
|
||||
Category::create(array_merge($category, ['is_active' => true]));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3,23 +3,26 @@
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\User;
|
||||
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class DatabaseSeeder extends Seeder
|
||||
{
|
||||
use WithoutModelEvents;
|
||||
|
||||
/**
|
||||
* Seed the application's database.
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
// User::factory(10)->create();
|
||||
|
||||
User::factory()->create([
|
||||
'name' => 'Test User',
|
||||
'email' => 'test@example.com',
|
||||
'name' => 'Admin',
|
||||
'email' => 'admin@daragt.tm',
|
||||
]);
|
||||
|
||||
$this->call([
|
||||
SiteSettingSeeder::class,
|
||||
CategorySeeder::class,
|
||||
ProductSeeder::class,
|
||||
SignatureItemSeeder::class,
|
||||
TimelineEntrySeeder::class,
|
||||
FooterNavLinkSeeder::class,
|
||||
SocialLinkSeeder::class,
|
||||
HeroSlideSeeder::class,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
23
database/seeders/FooterNavLinkSeeder.php
Normal file
23
database/seeders/FooterNavLinkSeeder.php
Normal file
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\FooterNavLink;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class FooterNavLinkSeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
$links = [
|
||||
['label' => 'Çykgyş', 'url' => '#', 'sort_order' => 1],
|
||||
['label' => 'Eltip bermek', 'url' => '#', 'sort_order' => 2],
|
||||
['label' => 'Gizlinlik', 'url' => '#', 'sort_order' => 3],
|
||||
['label' => 'Şertler', 'url' => '#', 'sort_order' => 4],
|
||||
];
|
||||
|
||||
foreach ($links as $link) {
|
||||
FooterNavLink::create($link);
|
||||
}
|
||||
}
|
||||
}
|
||||
46
database/seeders/HeroSlideSeeder.php
Normal file
46
database/seeders/HeroSlideSeeder.php
Normal file
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\HeroSlide;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class HeroSlideSeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
$slides = [
|
||||
[
|
||||
'headline' => "Usta\ntarapyndan\ntaýýarlanan bölekler.",
|
||||
'subheadline' => 'Miras et, el bilen saýlanan we bilimiň stoly üçin usta taýýarlygy.',
|
||||
'cta_label' => 'Häzir satyn al',
|
||||
'cta_url' => '#explore',
|
||||
'image' => null,
|
||||
'sort_order' => 1,
|
||||
'is_active' => true,
|
||||
],
|
||||
[
|
||||
'headline' => "Kämilleşdirilmek\nüçin\ngowaldyrylan.",
|
||||
'subheadline' => 'Wagtyň synagdan geçen gowaldyryş usullary — ýokary ýumşaklyk we tagam çuňlugy.',
|
||||
'cta_label' => 'Gowaldyrylan etleri gözden geçiriň',
|
||||
'cta_url' => '#explore',
|
||||
'image' => null,
|
||||
'sort_order' => 2,
|
||||
'is_active' => true,
|
||||
],
|
||||
[
|
||||
'headline' => "Usta\nkolbasalary.",
|
||||
'subheadline' => 'Her gün el bilen baglanýar — adaty reseptler, premium bölekler we aýratyn tagam garyndylary.',
|
||||
'cta_label' => 'Saýlawy görmek',
|
||||
'cta_url' => '#explore',
|
||||
'image' => null,
|
||||
'sort_order' => 3,
|
||||
'is_active' => true,
|
||||
],
|
||||
];
|
||||
|
||||
foreach ($slides as $slide) {
|
||||
HeroSlide::create($slide);
|
||||
}
|
||||
}
|
||||
}
|
||||
60
database/seeders/ProductSeeder.php
Normal file
60
database/seeders/ProductSeeder.php
Normal file
@@ -0,0 +1,60 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\Category;
|
||||
use App\Models\Product;
|
||||
use Illuminate\Database\Seeder;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class ProductSeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
$productsByCategory = [
|
||||
'sygyr-eti' => [
|
||||
['name' => 'Ribeye Bifteği', 'price' => 320, 'price_unit' => 'kg', 'description' => 'Ýag damarlary bilen doly marbleli premium ribeye bifteği.', 'availability_status' => 'available', 'sort_order' => 1],
|
||||
['name' => 'Filé Minyon', 'price' => 480, 'price_unit' => 'kg', 'description' => 'Iň ýumşak we inçe süýümli et, aşpezleriň söýgülisi.', 'availability_status' => 'available', 'sort_order' => 2],
|
||||
['name' => 'T-Bone Bifteği', 'price' => 290, 'price_unit' => 'kg', 'description' => 'Iki sany bifteği bir kesimde — strip we filé.', 'availability_status' => 'available', 'sort_order' => 3],
|
||||
['name' => 'Çarşamba Bifteği', 'price' => 220, 'price_unit' => 'kg', 'description' => 'Güýçli tagamy bilen meşhur ýönekeý biftek.', 'availability_status' => 'available', 'sort_order' => 4],
|
||||
],
|
||||
'goyun-eti' => [
|
||||
['name' => 'Goýun Çapraz Bölegi', 'price' => 180, 'price_unit' => 'kg', 'description' => 'Slow-cook üçin amatly, süýji tagamly goýun eti.', 'availability_status' => 'available', 'sort_order' => 1],
|
||||
['name' => 'Goýun Gyrmak', 'price' => 240, 'price_unit' => 'kg', 'description' => 'El bilen gyrdylan inçe goýun eti.', 'availability_status' => 'available', 'sort_order' => 2],
|
||||
['name' => 'Goýun Kelleçe', 'price' => 160, 'price_unit' => 'kg', 'description' => 'Bahasynyň deregine tagamly we ýumşak et.', 'availability_status' => 'out_of_season', 'sort_order' => 3],
|
||||
],
|
||||
'gos' => [
|
||||
['name' => 'Goş Karbonat', 'price' => 200, 'price_unit' => 'kg', 'description' => 'Galyň dilen premium goş filési.', 'availability_status' => 'available', 'sort_order' => 1],
|
||||
['name' => 'Goş Garnide', 'price' => 170, 'price_unit' => 'kg', 'description' => 'Ýumşak ot kaburga bölekleri.', 'availability_status' => 'available', 'sort_order' => 2],
|
||||
['name' => 'Goş Gyrmak', 'price' => 140, 'price_unit' => 'kg', 'description' => 'El bilen taýýarlanan taze goş gyrmak.', 'availability_status' => 'available', 'sort_order' => 3],
|
||||
],
|
||||
'gus-eti' => [
|
||||
['name' => 'Towuk Döşi', 'price' => 110, 'price_unit' => 'kg', 'description' => 'Süýümli we ýagsyz towuk döşi.', 'availability_status' => 'available', 'sort_order' => 1],
|
||||
['name' => 'Hindi Buty', 'price' => 130, 'price_unit' => 'kg', 'description' => 'Tagamly hindi buty, süýji et.', 'availability_status' => 'available', 'sort_order' => 2],
|
||||
['name' => 'Ördek Döşi', 'price' => 260, 'price_unit' => 'kg', 'description' => 'Baý tagamly premium ördek döşi.', 'availability_status' => 'available', 'sort_order' => 3],
|
||||
],
|
||||
'kolbasalar' => [
|
||||
['name' => 'Gyzgyn Merguez', 'price' => 190, 'price_unit' => 'kg', 'description' => 'Demirgazyk Afrika resepti, harissa we zira bilen.', 'availability_status' => 'available', 'sort_order' => 1],
|
||||
['name' => 'Düzgün Sosis', 'price' => 150, 'price_unit' => 'kg', 'description' => 'Adaty resept bilen el bilen taýýarlanan sosis.', 'availability_status' => 'available', 'sort_order' => 2],
|
||||
['name' => 'Brätworst', 'price' => 170, 'price_unit' => 'kg', 'description' => 'Nemes stili premium doňuz sosisi.', 'availability_status' => 'available', 'sort_order' => 3],
|
||||
],
|
||||
];
|
||||
|
||||
foreach ($productsByCategory as $categorySlug => $products) {
|
||||
$category = Category::where('slug', $categorySlug)->first();
|
||||
|
||||
if (! $category) {
|
||||
continue;
|
||||
}
|
||||
|
||||
foreach ($products as $productData) {
|
||||
Product::create(array_merge($productData, [
|
||||
'category_id' => $category->id,
|
||||
'slug' => Str::slug($productData['name']),
|
||||
'image' => null,
|
||||
'is_active' => true,
|
||||
]));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
55
database/seeders/SignatureItemSeeder.php
Normal file
55
database/seeders/SignatureItemSeeder.php
Normal file
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\SignatureItem;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class SignatureItemSeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
$items = [
|
||||
[
|
||||
'name' => 'Gowaldyrylan Tomahawk',
|
||||
'price' => 890,
|
||||
'price_unit' => 'kg',
|
||||
'description' => '45 gün gowaldyrylan ribeye, baý we nahar tagamly. Paýlaşmak üçin amatly.',
|
||||
'image' => null,
|
||||
'sort_order' => 1,
|
||||
'is_active' => true,
|
||||
],
|
||||
[
|
||||
'name' => 'Öýde duzlanan we tüsse edilen goş',
|
||||
'price' => 420,
|
||||
'price_unit' => 'kg',
|
||||
'description' => 'Galyň bölekli goş göwresi, akderweýi bilen duzlanan we 12 sagat galadan agachynda tüsse edilen.',
|
||||
'image' => null,
|
||||
'sort_order' => 2,
|
||||
'is_active' => true,
|
||||
],
|
||||
[
|
||||
'name' => 'Açy goş Merguez',
|
||||
'price' => 280,
|
||||
'price_unit' => 'kg',
|
||||
'description' => 'Miras goş harissa, zira we rezene bilen. Demirgazyk Afrikanyň klasykasy.',
|
||||
'image' => null,
|
||||
'sort_order' => 3,
|
||||
'is_active' => true,
|
||||
],
|
||||
[
|
||||
'name' => 'Miras göýün taý kebi',
|
||||
'price' => 650,
|
||||
'price_unit' => 'kg',
|
||||
'description' => 'Bellik taý kebi, usta taýýarlykda frenc we baglanan.',
|
||||
'image' => null,
|
||||
'sort_order' => 4,
|
||||
'is_active' => true,
|
||||
],
|
||||
];
|
||||
|
||||
foreach ($items as $item) {
|
||||
SignatureItem::create($item);
|
||||
}
|
||||
}
|
||||
}
|
||||
27
database/seeders/SiteSettingSeeder.php
Normal file
27
database/seeders/SiteSettingSeeder.php
Normal file
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\SiteSetting;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class SiteSettingSeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
$settings = [
|
||||
'butchers_tale_title' => 'Kesimçiniň hekaýasy',
|
||||
'butchers_tale_body' => 'Bizi tutuş haýwan kesim sungatynda özüni bagyşlanan ustaçylyk maşgalasy. Esasyndan bäri senagatçilik ýoluny ret edip, ýerli çärikçiler bilen dogry gatnaşyklary, wagtyň synagdan geçen gowaldyryş usullaryny we hil boýunça bäsdeşsiz yhlasyny saýladyk.',
|
||||
'butchers_tale_image' => null,
|
||||
'footer_brand_name' => 'DARAGT',
|
||||
'footer_copyright' => '© 2026 DARAGT USTA KESIMÇILERI. EL BILEN TAÝÝARLANAN.',
|
||||
'footer_address' => 'Aşgabat, Türkmenistan',
|
||||
'footer_email' => 'info@daragt.tm',
|
||||
'footer_phone' => '+993 61 92 92 48',
|
||||
];
|
||||
|
||||
foreach ($settings as $key => $value) {
|
||||
SiteSetting::create(['key' => $key, 'value' => $value]);
|
||||
}
|
||||
}
|
||||
}
|
||||
22
database/seeders/SocialLinkSeeder.php
Normal file
22
database/seeders/SocialLinkSeeder.php
Normal file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\SocialLink;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class SocialLinkSeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
$links = [
|
||||
['platform' => 'Telegram', 'url' => 'https://t.me/daragt', 'icon' => 'social_leaderboard', 'sort_order' => 1],
|
||||
['platform' => 'Instagram', 'url' => 'https://instagram.com/daragt', 'icon' => 'photo_camera', 'sort_order' => 2],
|
||||
['platform' => 'Email', 'url' => 'mailto:info@daragt.tm', 'icon' => 'mail', 'sort_order' => 3],
|
||||
];
|
||||
|
||||
foreach ($links as $link) {
|
||||
SocialLink::create($link);
|
||||
}
|
||||
}
|
||||
}
|
||||
47
database/seeders/TimelineEntrySeeder.php
Normal file
47
database/seeders/TimelineEntrySeeder.php
Normal file
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\TimelineEntry;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class TimelineEntrySeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
$entries = [
|
||||
[
|
||||
'year' => 1987,
|
||||
'title' => 'Esasy',
|
||||
'body' => 'Daragt taryhy merkezi bazarynda ilkinji kiçijik dükançasyny açýar, diňe ýerli çörleri sygyr etine üns berýär.',
|
||||
'icon' => 'storefront',
|
||||
'sort_order' => 1,
|
||||
],
|
||||
[
|
||||
'year' => 1995,
|
||||
'title' => 'Tüsse otagy',
|
||||
'body' => 'Ilkinji ýörite dub tüsse otagyny gurýarys, meşhur duzlanan we tüsse edilen kolbasa hatarlarymyzy başladýarys.',
|
||||
'icon' => 'outdoor_grill',
|
||||
'sort_order' => 2,
|
||||
],
|
||||
[
|
||||
'year' => 2010,
|
||||
'title' => 'Döwlet boýunça eltip bermek',
|
||||
'body' => 'Sowuk zynjyrlawly logistika bilen hyzmatdaş bolup, usta taýýarlanan böleklerimizi döwlet boýunça öý aşpezlerine eltip berýäris.',
|
||||
'icon' => 'local_shipping',
|
||||
'sort_order' => 3,
|
||||
],
|
||||
[
|
||||
'year' => 2023,
|
||||
'title' => 'Resept kitaby',
|
||||
'body' => 'Miras reseptler toplumynyň çykarylysy — adaty taýýarlamany häzirki aşpezçilik usullary bilen baglaşdyrýarys.',
|
||||
'icon' => 'menu_book',
|
||||
'sort_order' => 4,
|
||||
],
|
||||
];
|
||||
|
||||
foreach ($entries as $entry) {
|
||||
TimelineEntry::create($entry);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user