Files
sam-manage/app/Models/Rd/CmSong.php
김보곤 272df31501 feat: [rd] CM송 길이 슬라이더, 다운로드, 저장/목록 기능 추가
- 10~60초 5초 간격 길이 선택 슬라이더
- 음성 파일 WAV 다운로드
- 생성 결과 DB 저장 + 목록/상세/삭제 관리
- CmSong 모델 + tenant 스토리지 연동
2026-03-05 14:37:29 +09:00

58 lines
1.2 KiB
PHP

<?php
namespace App\Models\Rd;
use App\Models\User;
use App\Traits\BelongsToTenant;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\SoftDeletes;
class CmSong extends Model
{
use BelongsToTenant, SoftDeletes;
protected $table = 'cm_songs';
protected $fillable = [
'tenant_id',
'user_id',
'company_name',
'industry',
'lyrics',
'audio_path',
'options',
];
protected $casts = [
'options' => 'array',
];
public function user(): BelongsTo
{
return $this->belongsTo(User::class);
}
public function getOption(string $key, mixed $default = null): mixed
{
return data_get($this->options, $key, $default);
}
public function setOption(string $key, mixed $value): void
{
$options = $this->options ?? [];
data_set($options, $key, $value);
$this->options = $options;
}
public function getMood(): string
{
return $this->getOption('mood', '-');
}
public function getDuration(): int
{
return $this->getOption('duration', 15);
}
}