'integer', 'tempo_bpm' => 'integer', 'tags' => 'array', 'play_count' => 'integer', 'is_active' => 'boolean', ]; } // Relationships public function creator(): BelongsTo { return $this->belongsTo(User::class, 'created_by'); } public function attachments(): HasMany { return $this->hasMany(MusicAttachment::class); } public function setlistItems(): HasMany { return $this->hasMany(SetlistItem::class); } // Helper methods public function formattedDuration(): string { if (!$this->duration_seconds) { return '0:00'; } $minutes = floor($this->duration_seconds / 60); $seconds = $this->duration_seconds % 60; return sprintf('%d:%02d', $minutes, $seconds); } public function isActive(): bool { return $this->is_active; } }