'datetime', 'waktu_selesai' => 'datetime', 'aktif' => 'boolean', ]; /** * Relasi ke item flash sale */ public function items() { return $this->hasMany(FlashSaleItem::class); } /** * Relasi ke barang-barang yang termasuk dalam flash sale */ public function barangs() { return $this->belongsToMany(Barang::class, 'flash_sale_items') ->withPivot('harga_flash_sale', 'persentase_diskon', 'stok_flash_sale', 'stok_terjual', 'aktif') ->withTimestamps(); } /** * Scope untuk mendapatkan flash sale yang aktif dan berjalan saat ini */ public function scopeAktif($query) { return $query->where('aktif', true) ->where('waktu_mulai', '<=', now()) ->where('waktu_selesai', '>=', now()); } /** * Cek apakah flash sale sedang berlangsung */ public function getSedangBerlangsungAttribute() { return $this->aktif && $this->waktu_mulai <= now() && $this->waktu_selesai >= now(); } }