39522-vm/backend/src/db/seeders/20231127130745-sample-data.js
2026-04-08 17:15:27 +00:00

5268 lines
98 KiB
JavaScript
Raw 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.

const db = require('../models');
const Users = db.users;
const Memories = db.memories;
const Events = db.events;
const EventRegistrations = db.event_registrations;
const Announcements = db.announcements;
const Pages = db.pages;
const Founders = db.founders;
const ContactMessages = db.contact_messages;
const EmailCampaigns = db.email_campaigns;
const SiteSettings = db.site_settings;
const NavigationItems = db.navigation_items;
const HomeSliderItems = db.home_slider_items;
const MemoriesData = [
{
"title": "Kampus Tanisma Gunu Fotograf Albümü",
"slug": "kampus-tanisma-gunu-fotograf-albumu",
"content": "Yeni uyelerle tanisma gununden secme kareler ve kisa notlar",
// type code here for "images" field
// type code here for "files" field
// type code here for "relation_one" field
"status": "pending_review",
"featured": true,
"published_at": new Date('2026-03-20T09:00:00Z'),
"view_count": 128,
"meta_title": "Kampus Tanisma Gunu Anisi",
"meta_description": "Toplulugumuzun kampus tanisma gununden fotograflar ve kisa ozet",
},
{
"title": "Bahar Piknigi Hazirliklari",
"slug": "bahar-piknigi-hazirliklari",
"content": "Bahar piknigi icin planlama toplantisindan notlar ve gorev dagilimi",
// type code here for "images" field
// type code here for "files" field
// type code here for "relation_one" field
"status": "published",
"featured": false,
"published_at": new Date('2026-03-28T14:30:00Z'),
"view_count": 74,
"meta_title": "Bahar Piknigi Hazirlik Anisi",
"meta_description": "Piknik planlama toplantisi ozet notlari ve hazirlik sureci",
},
{
"title": "Gonullu Calisma Atolyesi Ozet",
"slug": "gonullu-calisma-atolyesi-ozet",
"content": "Gonullu calisma kulturunu konustugumuz atolye oturumunun ozet notlari",
// type code here for "images" field
// type code here for "files" field
// type code here for "relation_one" field
"status": "draft",
"featured": true,
"published_at": new Date('2026-04-01T11:00:00Z'),
"view_count": 21,
"meta_title": "Gonullu Calisma Atolyesi",
"meta_description": "Atolye oturumundan ozet ve paylasilan temel kaynaklar",
},
{
"title": "Etkinlik Sonrasi Geri Bildirimler",
"slug": "etkinlik-sonrasi-geri-bildirimler",
"content": "Son etkinlikten sonra katilimcilardan gelen geri bildirimlerin derlemesi",
// type code here for "images" field
// type code here for "files" field
// type code here for "relation_one" field
"status": "draft",
"featured": true,
"published_at": new Date('2026-04-05T10:00:00Z'),
"view_count": 0,
"meta_title": "Geri Bildirim Derlemesi",
"meta_description": "Katilimci gorusleri ve sonraki adimlar icin notlar",
},
];
const EventsData = [
{
"title": "Bahar Donemi Karsilama Toplantisi",
"slug": "bahar-donemi-karsilama-toplantisi",
"summary": "Yeni donem hedefleri ve ekip tanisma",
"description": "Topluluk hedeflerini paylasacagimiz ve yeni uye sorularini yanitlayacagimiz toplantidir",
"start_at": new Date('2026-04-15T16:00:00Z'),
"end_at": new Date('2026-04-15T17:30:00Z'),
"location_name": "Konferans Salonu A",
"location_address": "Universite Kampusu Merkez Bina Kat 2",
"meeting_url": "https://meet.example/ogrenci-topluluk-1",
// type code here for "images" field
// type code here for "files" field
"status": "live",
"featured": true,
// type code here for "relation_one" field
"capacity": 120,
"price": 0,
"requires_registration": true,
"meta_title": "Bahar Donemi Karsilama Toplantisi",
"meta_description": "Yeni donem planlarimizi paylasacagimiz tanisma toplantisi",
},
{
"title": "Kariyer Sohbeti: Mezun Deneyimleri",
"slug": "kariyer-sohbeti-mezun-deneyimleri",
"summary": "Mezun konuklarla kariyer yolculugu",
"description": "Mezun konuklarin sektore giris sureci, staj ve is arama deneyimleri uzerine sohbet",
"start_at": new Date('2026-04-22T17:00:00Z'),
"end_at": new Date('2026-04-22T18:30:00Z'),
"location_name": "Cok Amacli Salon",
"location_address": "Universite Kampusu Sosyal Tesisler",
"meeting_url": "https://meet.example/ogrenci-topluluk-2",
// type code here for "images" field
// type code here for "files" field
"status": "completed",
"featured": true,
// type code here for "relation_one" field
"capacity": 80,
"price": 0,
"requires_registration": true,
"meta_title": "Kariyer Sohbeti",
"meta_description": "Mezun konuklarla kariyer ve staj deneyimleri uzerine etkinlik",
},
{
"title": "Gonulluluk Atolyesi",
"slug": "gonulluluk-atolyesi",
"summary": "Gonullu calisma ve proje planlama",
"description": "Topluluk icinde gonullu calismayi kolaylastiran pratik yontemler ve mini calisma",
"start_at": new Date('2026-04-10T14:00:00Z'),
"end_at": new Date('2026-04-10T16:00:00Z'),
"location_name": "Atolye Odasi 3",
"location_address": "Muhendislik Fakultesi Zemin Kat",
"meeting_url": "https://meet.example/ogrenci-topluluk-3",
// type code here for "images" field
// type code here for "files" field
"status": "cancelled",
"featured": false,
// type code here for "relation_one" field
"capacity": 40,
"price": 0,
"requires_registration": true,
"meta_title": "Gonulluluk Atolyesi",
"meta_description": "Gonullu calisma kulturunu gelistirmeye yonelik atolye",
},
{
"title": "Bahar Piknigi",
"slug": "bahar-piknigi",
"summary": "Acik hava bulusmasi ve oyunlar",
"description": "Acik havada sosyallesme, tanisma oyunlari ve fotograf cekimleri",
"start_at": new Date('2026-05-03T11:00:00Z'),
"end_at": new Date('2026-05-03T15:00:00Z'),
"location_name": "Sehir Parki",
"location_address": "Merkez Park Girisi Kuzey Kapisi",
"meeting_url": "https://meet.example/ogrenci-topluluk-4",
// type code here for "images" field
// type code here for "files" field
"status": "scheduled",
"featured": true,
// type code here for "relation_one" field
"capacity": 150,
"price": 0,
"requires_registration": true,
"meta_title": "Bahar Piknigi",
"meta_description": "Topluluk uyeleri icin bahar piknigi ve acik hava etkinligi",
},
];
const EventRegistrationsData = [
{
// type code here for "relation_one" field
// type code here for "relation_one" field
"status": "cancelled",
"registered_at": new Date('2026-04-06T09:10:00Z'),
"note": "Ilk kez katilacagim",
},
{
// type code here for "relation_one" field
// type code here for "relation_one" field
"status": "waitlisted",
"registered_at": new Date('2026-04-06T09:35:00Z'),
"note": "Arkadasimla birlikte gelecegim",
},
{
// type code here for "relation_one" field
// type code here for "relation_one" field
"status": "waitlisted",
"registered_at": new Date('2026-04-07T08:20:00Z'),
"note": "Mezun konuklara soru hazirlayacagim",
},
{
// type code here for "relation_one" field
// type code here for "relation_one" field
"status": "waitlisted",
"registered_at": new Date('2026-04-07T13:05:00Z'),
"note": "Kontenjan acilirsa katilmak isterim",
},
];
const AnnouncementsData = [
{
"title": "Yeni Donem Kayitlari Acildi",
"slug": "yeni-donem-kayitlari-acildi",
"content": "Toplulugumuza katilmak icin kayit formunu doldurabilirsiniz",
"audience": "all_users",
"status": "draft",
"send_email_on_publish": true,
"published_at": new Date('2026-04-01T09:00:00Z'),
// type code here for "relation_one" field
},
{
"title": "Bahar Piknigi Katilim Formu",
"slug": "bahar-piknigi-katilim-formu",
"content": "Piknik icin katilim kaydi gereklidir. Lutfen etkinlik sayfasindan kayit olun",
"audience": "members_only",
"status": "archived",
"send_email_on_publish": true,
"published_at": new Date('2026-04-07T10:00:00Z'),
// type code here for "relation_one" field
},
{
"title": "Gonullu Ekip Basvurulari",
"slug": "gonullu-ekip-basvurulari",
"content": "Organizasyon, iletisim ve tasarim ekipleri icin gonullu basvurulari acilmistir",
"audience": "members_only",
"status": "published",
"send_email_on_publish": false,
"published_at": new Date('2026-04-03T12:30:00Z'),
// type code here for "relation_one" field
},
{
"title": "Site Bakim Calismasi",
"slug": "site-bakim-calismasi",
"content": "Kisa sureli bakim nedeniyle bazi saatlerde erisim sorunlari yasayabilirsiniz",
"audience": "members_only",
"status": "published",
"send_email_on_publish": false,
"published_at": new Date('2026-04-09T22:00:00Z'),
// type code here for "relation_one" field
},
];
const PagesData = [
{
"page_type": "custom",
"title": "Vizyon",
"slug": "vizyon",
"content": "Ogrenciler arasinda etkilesimi artiran ve surekli gelisen bir topluluk olmak",
// type code here for "images" field
"status": "draft",
"meta_title": "Topluluk Vizyonu",
"meta_description": "Toplulugumuzun uzun vadeli vizyonu ve hedefleri",
},
{
"page_type": "mission",
"title": "Misyon",
"slug": "misyon",
"content": "Paylasim, ogrenme ve gonulluluk temelinde etkinlikler duzenlemek",
// type code here for "images" field
"status": "draft",
"meta_title": "Topluluk Misyonu",
"meta_description": "Toplulugumuzun misyonu ve temel calisma ilkeleri",
},
{
"page_type": "about",
"title": "Hakkimizda",
"slug": "hakkimizda",
"content": "Toplulugumuz universite ogrencilerini bir araya getirir ve etkinlikler planlar",
// type code here for "images" field
"status": "draft",
"meta_title": "Hakkimizda",
"meta_description": "Toplulugumuzun amaci, faaliyetleri ve iletisim bilgileri",
},
{
"page_type": "custom",
"title": "Gizlilik Politikasi",
"slug": "gizlilik-politikasi",
"content": "Kisisel verilerin korunmasi ve iletisim formlarinin kullanimi hakkinda bilgilendirme",
// type code here for "images" field
"status": "draft",
"meta_title": "Gizlilik Politikasi",
"meta_description": "Gizlilik politikasi ve veri isleme bilgilendirmesi",
},
];
const FoundersData = [
{
"full_name": "Ece Karaca",
"title": "Founder",
"role_description": "Topluluk kurucu ve strateji sorumlusu",
"bio": "Topluluk kurulum surecini yuruttu ve ilk etkinlik planlarini olusturdu",
// type code here for "images" field
"email": "ece.karaca@ogrencitopluluk.example",
"linkedin_url": "https://linkedin.example/ecekaraca",
"instagram_url": "https://instagram.example/ecekaraca",
"sort_order": 1,
"is_active": true,
},
{
"full_name": "Kaan Arslan",
"title": "Co-Founder",
"role_description": "Teknik altyapi ve guvenlik",
"bio": "Web altyapisinin kurulumu, performans ve guvenlik konularinda destek verir",
// type code here for "images" field
"email": "kaan.arslan@ogrencitopluluk.example",
"linkedin_url": "https://linkedin.example/kaanarslan",
"instagram_url": "https://instagram.example/kaanarslan",
"sort_order": 2,
"is_active": true,
},
{
"full_name": "Selin Ucar",
"title": "Co-Founder",
"role_description": "Etkinlik ve operasyon",
"bio": "Etkinlik planlama ve operasyon sureclerinin kurulmasinda gorev aldi",
// type code here for "images" field
"email": "selin.ucar@ogrencitopluluk.example",
"linkedin_url": "https://linkedin.example/selinucar",
"instagram_url": "https://instagram.example/selinucar",
"sort_order": 3,
"is_active": true,
},
{
"full_name": "Bora Cetin",
"title": "Founding Member",
"role_description": "Iletisim ve ortakliklar",
"bio": "Paydaslarla iletisim, sponsor gorusmeleri ve sosyal medya koordinasyonu",
// type code here for "images" field
"email": "bora.cetin@ogrencitopluluk.example",
"linkedin_url": "https://linkedin.example/boracetin",
"instagram_url": "https://instagram.example/boracetin",
"sort_order": 4,
"is_active": true,
},
];
const ContactMessagesData = [
{
"full_name": "Ayse Cinar",
"email": "ayse.cinar@example.com",
"subject": "Uyelik Hakkinda Soru",
"message": "Uyelik onayi ne kadar suruyor ve etkinliklere kayit icin ek adim var mi",
"status": "new",
"submitted_at": new Date('2026-04-07T09:12:00Z'),
"admin_note": "Yanitsiz",
},
{
"full_name": "Emre Koc",
"email": "emre.koc@example.com",
"subject": "Etkinlik Mekani Degisikligi",
"message": "Kariyer sohbetinin salon bilgisi netlesti mi",
"status": "resolved",
"submitted_at": new Date('2026-04-06T14:05:00Z'),
"admin_note": "Organizator ile teyit ediliyor",
},
{
"full_name": "Nisa Altun",
"email": "nisa.altun@example.com",
"subject": "Gonullu Basvuru",
"message": "Iletisim ekibinde gonullu olmak istiyorum. Nasil basvurabilirim",
"status": "resolved",
"submitted_at": new Date('2026-04-05T11:48:00Z'),
"admin_note": "Basvuru formu linki paylasildi",
},
{
"full_name": "Hakan Sari",
"email": "hakan.sari@example.com",
"subject": "Sponsorluk Teklifi",
"message": "Ogrenci etkinliklerinize sponsorluk konusunda gorusmek isteriz",
"status": "spam",
"submitted_at": new Date('2026-04-04T09:30:00Z'),
"admin_note": "Gorusme icin eposta gonderildi",
},
];
const EmailCampaignsData = [
{
"name": "Nisan Duyurulari",
"campaign_type": "event_announcement",
"status": "draft",
"email_subject": "Nisan ayı duyurulari ve etkinlikler",
"email_body": "Bu ayki etkinlik takvimi ve onemli duyurular asagidadir",
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
"scheduled_at": new Date('2026-04-01T08:30:00Z'),
"sent_at": new Date('2026-04-01T09:05:00Z'),
"recipient_count": 245,
// type code here for "relation_one" field
},
{
"name": "Bahar Piknigi Hatirlatma",
"campaign_type": "general_announcement",
"status": "sending",
"email_subject": "Bahar piknigi kayitlari acik",
"email_body": "Piknige katilmak icin etkinlik sayfasindan kayit olabilirsiniz",
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
"scheduled_at": new Date('2026-04-20T09:00:00Z'),
"sent_at": new Date('2026-04-20T09:00:00Z'),
"recipient_count": 260,
// type code here for "relation_one" field
},
{
"name": "Kampus Tanisma Gunu Paylasimi",
"campaign_type": "event_announcement",
"status": "queued",
"email_subject": "Yeni anilar eklendi",
"email_body": "Kampus tanisma gununden yeni fotograflar ve anilar yayinda",
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
"scheduled_at": new Date('2026-03-20T10:00:00Z'),
"sent_at": new Date('2026-03-20T10:02:00Z'),
"recipient_count": 230,
// type code here for "relation_one" field
},
{
"name": "Kariyer Sohbeti Davet",
"campaign_type": "event_announcement",
"status": "queued",
"email_subject": "Kariyer sohbetine davetlisiniz",
"email_body": "Mezun konuklarla kariyer sohbetinde bulusalim. Detaylar etkinlik sayfasinda",
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
"scheduled_at": new Date('2026-04-12T12:00:00Z'),
"sent_at": new Date('2026-04-12T12:00:00Z'),
"recipient_count": 0,
// type code here for "relation_one" field
},
];
const SiteSettingsData = [
{
"site_name": "Ogrenci Topluluk Sitesi",
"site_tagline": "Anilar, etkinlikler ve duyurular tek yerde",
// type code here for "images" field
// type code here for "images" field
"primary_color": "#1D4ED8",
"font_family": "Montserrat",
"default_meta_title": "Ogrenci Topluluk Sitesi",
"default_meta_description": "Ogrenci toplulugu icin anilar, etkinlikler, duyurular ve iletisim sayfalari",
"smtp_host": "smtp.example.com",
"smtp_port": 587,
"smtp_username": "noreply@ogrencitopluluk.example",
"smtp_from_email": "noreply@ogrencitopluluk.example",
"smtp_from_name": "Ogrenci Topluluk",
"smtp_encryption": "ssl",
"maintenance_mode": true,
"auto_generate_sitemap": true,
"sitemap_last_generated_at": new Date('2026-04-07T23:00:00Z'),
},
{
"site_name": "Ogrenci Topluluk Sitesi Staging",
"site_tagline": "Test ortami",
// type code here for "images" field
// type code here for "images" field
"primary_color": "#0F172A",
"font_family": "Montserrat",
"default_meta_title": "Staging",
"default_meta_description": "Test ortami meta aciklamasi",
"smtp_host": "smtp-staging.example.com",
"smtp_port": 2525,
"smtp_username": "staging@ogrencitopluluk.example",
"smtp_from_email": "staging@ogrencitopluluk.example",
"smtp_from_name": "Ogrenci Topluluk Staging",
"smtp_encryption": "tls",
"maintenance_mode": true,
"auto_generate_sitemap": true,
"sitemap_last_generated_at": new Date('2026-04-06T23:00:00Z'),
},
{
"site_name": "Ogrenci Topluluk Sitesi Demo",
"site_tagline": "Demo icerik",
// type code here for "images" field
// type code here for "images" field
"primary_color": "#16A34A",
"font_family": "Montserrat",
"default_meta_title": "Demo Topluluk",
"default_meta_description": "Demo verilerle ogrenci toplulugu sitesi",
"smtp_host": "smtp-demo.example.com",
"smtp_port": 465,
"smtp_username": "demo@ogrencitopluluk.example",
"smtp_from_email": "demo@ogrencitopluluk.example",
"smtp_from_name": "Demo Topluluk",
"smtp_encryption": "tls",
"maintenance_mode": false,
"auto_generate_sitemap": false,
"sitemap_last_generated_at": new Date('2026-03-30T23:00:00Z'),
},
{
"site_name": "Ogrenci Topluluk Sitesi Backup",
"site_tagline": "Yedek ayarlar",
// type code here for "images" field
// type code here for "images" field
"primary_color": "#7C3AED",
"font_family": "Montserrat",
"default_meta_title": "Backup Ayarlar",
"default_meta_description": "Yedek ayar kaydi",
"smtp_host": "smtp-backup.example.com",
"smtp_port": 587,
"smtp_username": "backup@ogrencitopluluk.example",
"smtp_from_email": "backup@ogrencitopluluk.example",
"smtp_from_name": "Backup",
"smtp_encryption": "ssl",
"maintenance_mode": true,
"auto_generate_sitemap": false,
"sitemap_last_generated_at": new Date('2026-04-01T23:00:00Z'),
},
];
const NavigationItemsData = [
{
"label": "Ana Sayfa",
"url": "/",
// type code here for "relation_one" field
"target": "new_tab",
// type code here for "relation_one" field
"sort_order": 1,
"is_active": true,
"visibility": "public",
},
{
"label": "Anilar",
"url": "/anilar",
// type code here for "relation_one" field
"target": "same_tab",
// type code here for "relation_one" field
"sort_order": 2,
"is_active": true,
"visibility": "logged_in_only",
},
{
"label": "Etkinlikler",
"url": "/etkinlikler",
// type code here for "relation_one" field
"target": "new_tab",
// type code here for "relation_one" field
"sort_order": 3,
"is_active": true,
"visibility": "logged_in_only",
},
{
"label": "Vizyon ve Misyon",
"url": "/vizyon",
// type code here for "relation_one" field
"target": "same_tab",
// type code here for "relation_one" field
"sort_order": 4,
"is_active": true,
"visibility": "admins_only",
},
];
const HomeSliderItemsData = [
{
"content_type": "event",
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
"headline": "Kampus Tanisma Gunu Anilari",
"subheadline": "Secme kareler ve kisa notlar yayinda",
// type code here for "images" field
"cta_label": "Anilari Gor",
"cta_url": "/anilar/kampus-tanisma-gunu-fotograf-albumu",
"sort_order": 1,
"is_active": true,
"visible_from": new Date('2026-03-20T09:00:00Z'),
"visible_until": new Date('2026-04-20T09:00:00Z'),
},
{
"content_type": "announcement",
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
"headline": "Bahar Donemi Karsilama Toplantisi",
"subheadline": "Yeni donem hedefleri ve ekip tanisma",
// type code here for "images" field
"cta_label": "Kayit Ol",
"cta_url": "/etkinlikler/bahar-donemi-karsilama-toplantisi",
"sort_order": 2,
"is_active": true,
"visible_from": new Date('2026-04-01T09:00:00Z'),
"visible_until": new Date('2026-04-16T00:00:00Z'),
},
{
"content_type": "event",
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
"headline": "Yeni Donem Kayitlari",
"subheadline": "Topluluga katilmak icin kaydolun",
// type code here for "images" field
"cta_label": "Kayit",
"cta_url": "/duyurular/yeni-donem-kayitlari-acildi",
"sort_order": 3,
"is_active": true,
"visible_from": new Date('2026-04-01T09:00:00Z'),
"visible_until": new Date('2026-04-30T23:59:00Z'),
},
{
"content_type": "announcement",
// type code here for "relation_one" field
// type code here for "relation_one" field
// type code here for "relation_one" field
"headline": "Kutuphanede Calisma Bulusmasi",
"subheadline": "Birlikte calisma oturumundan anilar",
// type code here for "images" field
"cta_label": "Oku",
"cta_url": "/anilar/kutuphanede-calisma-bulusmasi",
"sort_order": 4,
"is_active": true,
"visible_from": new Date('2026-04-04T19:15:00Z'),
"visible_until": new Date('2026-05-04T19:15:00Z'),
},
];
// Similar logic for "relation_many"
async function associateMemoryWithAuthor() {
const relatedAuthor0 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Memory0 = await Memories.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Memory0?.setAuthor)
{
await
Memory0.
setAuthor(relatedAuthor0);
}
const relatedAuthor1 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Memory1 = await Memories.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Memory1?.setAuthor)
{
await
Memory1.
setAuthor(relatedAuthor1);
}
const relatedAuthor2 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Memory2 = await Memories.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Memory2?.setAuthor)
{
await
Memory2.
setAuthor(relatedAuthor2);
}
const relatedAuthor3 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Memory3 = await Memories.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (Memory3?.setAuthor)
{
await
Memory3.
setAuthor(relatedAuthor3);
}
}
async function associateEventWithOrganizer() {
const relatedOrganizer0 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Event0 = await Events.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Event0?.setOrganizer)
{
await
Event0.
setOrganizer(relatedOrganizer0);
}
const relatedOrganizer1 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Event1 = await Events.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Event1?.setOrganizer)
{
await
Event1.
setOrganizer(relatedOrganizer1);
}
const relatedOrganizer2 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Event2 = await Events.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Event2?.setOrganizer)
{
await
Event2.
setOrganizer(relatedOrganizer2);
}
const relatedOrganizer3 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Event3 = await Events.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (Event3?.setOrganizer)
{
await
Event3.
setOrganizer(relatedOrganizer3);
}
}
async function associateEventRegistrationWithEvent() {
const relatedEvent0 = await Events.findOne({
offset: Math.floor(Math.random() * (await Events.count())),
});
const EventRegistration0 = await EventRegistrations.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (EventRegistration0?.setEvent)
{
await
EventRegistration0.
setEvent(relatedEvent0);
}
const relatedEvent1 = await Events.findOne({
offset: Math.floor(Math.random() * (await Events.count())),
});
const EventRegistration1 = await EventRegistrations.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (EventRegistration1?.setEvent)
{
await
EventRegistration1.
setEvent(relatedEvent1);
}
const relatedEvent2 = await Events.findOne({
offset: Math.floor(Math.random() * (await Events.count())),
});
const EventRegistration2 = await EventRegistrations.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (EventRegistration2?.setEvent)
{
await
EventRegistration2.
setEvent(relatedEvent2);
}
const relatedEvent3 = await Events.findOne({
offset: Math.floor(Math.random() * (await Events.count())),
});
const EventRegistration3 = await EventRegistrations.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (EventRegistration3?.setEvent)
{
await
EventRegistration3.
setEvent(relatedEvent3);
}
}
async function associateEventRegistrationWithUser() {
const relatedUser0 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const EventRegistration0 = await EventRegistrations.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (EventRegistration0?.setUser)
{
await
EventRegistration0.
setUser(relatedUser0);
}
const relatedUser1 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const EventRegistration1 = await EventRegistrations.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (EventRegistration1?.setUser)
{
await
EventRegistration1.
setUser(relatedUser1);
}
const relatedUser2 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const EventRegistration2 = await EventRegistrations.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (EventRegistration2?.setUser)
{
await
EventRegistration2.
setUser(relatedUser2);
}
const relatedUser3 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const EventRegistration3 = await EventRegistrations.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (EventRegistration3?.setUser)
{
await
EventRegistration3.
setUser(relatedUser3);
}
}
async function associateAnnouncementWithAuthor() {
const relatedAuthor0 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Announcement0 = await Announcements.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (Announcement0?.setAuthor)
{
await
Announcement0.
setAuthor(relatedAuthor0);
}
const relatedAuthor1 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Announcement1 = await Announcements.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (Announcement1?.setAuthor)
{
await
Announcement1.
setAuthor(relatedAuthor1);
}
const relatedAuthor2 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Announcement2 = await Announcements.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (Announcement2?.setAuthor)
{
await
Announcement2.
setAuthor(relatedAuthor2);
}
const relatedAuthor3 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const Announcement3 = await Announcements.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (Announcement3?.setAuthor)
{
await
Announcement3.
setAuthor(relatedAuthor3);
}
}
async function associateEmailCampaignWithRelated_event() {
const relatedRelated_event0 = await Events.findOne({
offset: Math.floor(Math.random() * (await Events.count())),
});
const EmailCampaign0 = await EmailCampaigns.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (EmailCampaign0?.setRelated_event)
{
await
EmailCampaign0.
setRelated_event(relatedRelated_event0);
}
const relatedRelated_event1 = await Events.findOne({
offset: Math.floor(Math.random() * (await Events.count())),
});
const EmailCampaign1 = await EmailCampaigns.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (EmailCampaign1?.setRelated_event)
{
await
EmailCampaign1.
setRelated_event(relatedRelated_event1);
}
const relatedRelated_event2 = await Events.findOne({
offset: Math.floor(Math.random() * (await Events.count())),
});
const EmailCampaign2 = await EmailCampaigns.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (EmailCampaign2?.setRelated_event)
{
await
EmailCampaign2.
setRelated_event(relatedRelated_event2);
}
const relatedRelated_event3 = await Events.findOne({
offset: Math.floor(Math.random() * (await Events.count())),
});
const EmailCampaign3 = await EmailCampaigns.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (EmailCampaign3?.setRelated_event)
{
await
EmailCampaign3.
setRelated_event(relatedRelated_event3);
}
}
async function associateEmailCampaignWithRelated_memory() {
const relatedRelated_memory0 = await Memories.findOne({
offset: Math.floor(Math.random() * (await Memories.count())),
});
const EmailCampaign0 = await EmailCampaigns.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (EmailCampaign0?.setRelated_memory)
{
await
EmailCampaign0.
setRelated_memory(relatedRelated_memory0);
}
const relatedRelated_memory1 = await Memories.findOne({
offset: Math.floor(Math.random() * (await Memories.count())),
});
const EmailCampaign1 = await EmailCampaigns.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (EmailCampaign1?.setRelated_memory)
{
await
EmailCampaign1.
setRelated_memory(relatedRelated_memory1);
}
const relatedRelated_memory2 = await Memories.findOne({
offset: Math.floor(Math.random() * (await Memories.count())),
});
const EmailCampaign2 = await EmailCampaigns.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (EmailCampaign2?.setRelated_memory)
{
await
EmailCampaign2.
setRelated_memory(relatedRelated_memory2);
}
const relatedRelated_memory3 = await Memories.findOne({
offset: Math.floor(Math.random() * (await Memories.count())),
});
const EmailCampaign3 = await EmailCampaigns.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (EmailCampaign3?.setRelated_memory)
{
await
EmailCampaign3.
setRelated_memory(relatedRelated_memory3);
}
}
async function associateEmailCampaignWithRelated_announcement() {
const relatedRelated_announcement0 = await Announcements.findOne({
offset: Math.floor(Math.random() * (await Announcements.count())),
});
const EmailCampaign0 = await EmailCampaigns.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (EmailCampaign0?.setRelated_announcement)
{
await
EmailCampaign0.
setRelated_announcement(relatedRelated_announcement0);
}
const relatedRelated_announcement1 = await Announcements.findOne({
offset: Math.floor(Math.random() * (await Announcements.count())),
});
const EmailCampaign1 = await EmailCampaigns.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (EmailCampaign1?.setRelated_announcement)
{
await
EmailCampaign1.
setRelated_announcement(relatedRelated_announcement1);
}
const relatedRelated_announcement2 = await Announcements.findOne({
offset: Math.floor(Math.random() * (await Announcements.count())),
});
const EmailCampaign2 = await EmailCampaigns.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (EmailCampaign2?.setRelated_announcement)
{
await
EmailCampaign2.
setRelated_announcement(relatedRelated_announcement2);
}
const relatedRelated_announcement3 = await Announcements.findOne({
offset: Math.floor(Math.random() * (await Announcements.count())),
});
const EmailCampaign3 = await EmailCampaigns.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (EmailCampaign3?.setRelated_announcement)
{
await
EmailCampaign3.
setRelated_announcement(relatedRelated_announcement3);
}
}
async function associateEmailCampaignWithCreated_by_user() {
const relatedCreated_by_user0 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const EmailCampaign0 = await EmailCampaigns.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (EmailCampaign0?.setCreated_by_user)
{
await
EmailCampaign0.
setCreated_by_user(relatedCreated_by_user0);
}
const relatedCreated_by_user1 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const EmailCampaign1 = await EmailCampaigns.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (EmailCampaign1?.setCreated_by_user)
{
await
EmailCampaign1.
setCreated_by_user(relatedCreated_by_user1);
}
const relatedCreated_by_user2 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const EmailCampaign2 = await EmailCampaigns.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (EmailCampaign2?.setCreated_by_user)
{
await
EmailCampaign2.
setCreated_by_user(relatedCreated_by_user2);
}
const relatedCreated_by_user3 = await Users.findOne({
offset: Math.floor(Math.random() * (await Users.count())),
});
const EmailCampaign3 = await EmailCampaigns.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (EmailCampaign3?.setCreated_by_user)
{
await
EmailCampaign3.
setCreated_by_user(relatedCreated_by_user3);
}
}
async function associateNavigationItemWithPage() {
const relatedPage0 = await Pages.findOne({
offset: Math.floor(Math.random() * (await Pages.count())),
});
const NavigationItem0 = await NavigationItems.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (NavigationItem0?.setPage)
{
await
NavigationItem0.
setPage(relatedPage0);
}
const relatedPage1 = await Pages.findOne({
offset: Math.floor(Math.random() * (await Pages.count())),
});
const NavigationItem1 = await NavigationItems.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (NavigationItem1?.setPage)
{
await
NavigationItem1.
setPage(relatedPage1);
}
const relatedPage2 = await Pages.findOne({
offset: Math.floor(Math.random() * (await Pages.count())),
});
const NavigationItem2 = await NavigationItems.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (NavigationItem2?.setPage)
{
await
NavigationItem2.
setPage(relatedPage2);
}
const relatedPage3 = await Pages.findOne({
offset: Math.floor(Math.random() * (await Pages.count())),
});
const NavigationItem3 = await NavigationItems.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (NavigationItem3?.setPage)
{
await
NavigationItem3.
setPage(relatedPage3);
}
}
async function associateNavigationItemWithParent_item() {
const relatedParent_item0 = await NavigationItems.findOne({
offset: Math.floor(Math.random() * (await NavigationItems.count())),
});
const NavigationItem0 = await NavigationItems.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (NavigationItem0?.setParent_item)
{
await
NavigationItem0.
setParent_item(relatedParent_item0);
}
const relatedParent_item1 = await NavigationItems.findOne({
offset: Math.floor(Math.random() * (await NavigationItems.count())),
});
const NavigationItem1 = await NavigationItems.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (NavigationItem1?.setParent_item)
{
await
NavigationItem1.
setParent_item(relatedParent_item1);
}
const relatedParent_item2 = await NavigationItems.findOne({
offset: Math.floor(Math.random() * (await NavigationItems.count())),
});
const NavigationItem2 = await NavigationItems.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (NavigationItem2?.setParent_item)
{
await
NavigationItem2.
setParent_item(relatedParent_item2);
}
const relatedParent_item3 = await NavigationItems.findOne({
offset: Math.floor(Math.random() * (await NavigationItems.count())),
});
const NavigationItem3 = await NavigationItems.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (NavigationItem3?.setParent_item)
{
await
NavigationItem3.
setParent_item(relatedParent_item3);
}
}
async function associateHomeSliderItemWithMemory() {
const relatedMemory0 = await Memories.findOne({
offset: Math.floor(Math.random() * (await Memories.count())),
});
const HomeSliderItem0 = await HomeSliderItems.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (HomeSliderItem0?.setMemory)
{
await
HomeSliderItem0.
setMemory(relatedMemory0);
}
const relatedMemory1 = await Memories.findOne({
offset: Math.floor(Math.random() * (await Memories.count())),
});
const HomeSliderItem1 = await HomeSliderItems.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (HomeSliderItem1?.setMemory)
{
await
HomeSliderItem1.
setMemory(relatedMemory1);
}
const relatedMemory2 = await Memories.findOne({
offset: Math.floor(Math.random() * (await Memories.count())),
});
const HomeSliderItem2 = await HomeSliderItems.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (HomeSliderItem2?.setMemory)
{
await
HomeSliderItem2.
setMemory(relatedMemory2);
}
const relatedMemory3 = await Memories.findOne({
offset: Math.floor(Math.random() * (await Memories.count())),
});
const HomeSliderItem3 = await HomeSliderItems.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (HomeSliderItem3?.setMemory)
{
await
HomeSliderItem3.
setMemory(relatedMemory3);
}
}
async function associateHomeSliderItemWithEvent() {
const relatedEvent0 = await Events.findOne({
offset: Math.floor(Math.random() * (await Events.count())),
});
const HomeSliderItem0 = await HomeSliderItems.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (HomeSliderItem0?.setEvent)
{
await
HomeSliderItem0.
setEvent(relatedEvent0);
}
const relatedEvent1 = await Events.findOne({
offset: Math.floor(Math.random() * (await Events.count())),
});
const HomeSliderItem1 = await HomeSliderItems.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (HomeSliderItem1?.setEvent)
{
await
HomeSliderItem1.
setEvent(relatedEvent1);
}
const relatedEvent2 = await Events.findOne({
offset: Math.floor(Math.random() * (await Events.count())),
});
const HomeSliderItem2 = await HomeSliderItems.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (HomeSliderItem2?.setEvent)
{
await
HomeSliderItem2.
setEvent(relatedEvent2);
}
const relatedEvent3 = await Events.findOne({
offset: Math.floor(Math.random() * (await Events.count())),
});
const HomeSliderItem3 = await HomeSliderItems.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (HomeSliderItem3?.setEvent)
{
await
HomeSliderItem3.
setEvent(relatedEvent3);
}
}
async function associateHomeSliderItemWithAnnouncement() {
const relatedAnnouncement0 = await Announcements.findOne({
offset: Math.floor(Math.random() * (await Announcements.count())),
});
const HomeSliderItem0 = await HomeSliderItems.findOne({
order: [['id', 'ASC']],
offset: 0
});
if (HomeSliderItem0?.setAnnouncement)
{
await
HomeSliderItem0.
setAnnouncement(relatedAnnouncement0);
}
const relatedAnnouncement1 = await Announcements.findOne({
offset: Math.floor(Math.random() * (await Announcements.count())),
});
const HomeSliderItem1 = await HomeSliderItems.findOne({
order: [['id', 'ASC']],
offset: 1
});
if (HomeSliderItem1?.setAnnouncement)
{
await
HomeSliderItem1.
setAnnouncement(relatedAnnouncement1);
}
const relatedAnnouncement2 = await Announcements.findOne({
offset: Math.floor(Math.random() * (await Announcements.count())),
});
const HomeSliderItem2 = await HomeSliderItems.findOne({
order: [['id', 'ASC']],
offset: 2
});
if (HomeSliderItem2?.setAnnouncement)
{
await
HomeSliderItem2.
setAnnouncement(relatedAnnouncement2);
}
const relatedAnnouncement3 = await Announcements.findOne({
offset: Math.floor(Math.random() * (await Announcements.count())),
});
const HomeSliderItem3 = await HomeSliderItems.findOne({
order: [['id', 'ASC']],
offset: 3
});
if (HomeSliderItem3?.setAnnouncement)
{
await
HomeSliderItem3.
setAnnouncement(relatedAnnouncement3);
}
}
module.exports = {
up: async (queryInterface, Sequelize) => {
await Memories.bulkCreate(MemoriesData);
await Events.bulkCreate(EventsData);
await EventRegistrations.bulkCreate(EventRegistrationsData);
await Announcements.bulkCreate(AnnouncementsData);
await Pages.bulkCreate(PagesData);
await Founders.bulkCreate(FoundersData);
await ContactMessages.bulkCreate(ContactMessagesData);
await EmailCampaigns.bulkCreate(EmailCampaignsData);
await SiteSettings.bulkCreate(SiteSettingsData);
await NavigationItems.bulkCreate(NavigationItemsData);
await HomeSliderItems.bulkCreate(HomeSliderItemsData);
await Promise.all([
// Similar logic for "relation_many"
await associateMemoryWithAuthor(),
await associateEventWithOrganizer(),
await associateEventRegistrationWithEvent(),
await associateEventRegistrationWithUser(),
await associateAnnouncementWithAuthor(),
await associateEmailCampaignWithRelated_event(),
await associateEmailCampaignWithRelated_memory(),
await associateEmailCampaignWithRelated_announcement(),
await associateEmailCampaignWithCreated_by_user(),
await associateNavigationItemWithPage(),
await associateNavigationItemWithParent_item(),
await associateHomeSliderItemWithMemory(),
await associateHomeSliderItemWithEvent(),
await associateHomeSliderItemWithAnnouncement(),
]);
},
down: async (queryInterface, Sequelize) => {
await queryInterface.bulkDelete('memories', null, {});
await queryInterface.bulkDelete('events', null, {});
await queryInterface.bulkDelete('event_registrations', null, {});
await queryInterface.bulkDelete('announcements', null, {});
await queryInterface.bulkDelete('pages', null, {});
await queryInterface.bulkDelete('founders', null, {});
await queryInterface.bulkDelete('contact_messages', null, {});
await queryInterface.bulkDelete('email_campaigns', null, {});
await queryInterface.bulkDelete('site_settings', null, {});
await queryInterface.bulkDelete('navigation_items', null, {});
await queryInterface.bulkDelete('home_slider_items', null, {});
},
};