- 마이그레이션: daily_work_logs, daily_work_log_items 테이블 생성 - 모델: DailyWorkLog, DailyWorkLogItem (멀티테넌트, SoftDeletes) - 컨트롤러: CRUD + 완료토글 + 이전일지 복사 - 뷰: React(Babel) 기반, 날짜 화살표 네비게이션, 달성률 표시 - 라우트: finance/daily-work-log 하위 API 라우트
54 lines
1.2 KiB
PHP
54 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace App\Models\Finance;
|
|
|
|
use App\Traits\BelongsToTenant;
|
|
use App\Traits\ModelTrait;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
|
|
|
class DailyWorkLogItem extends Model
|
|
{
|
|
use BelongsToTenant, ModelTrait, SoftDeletes;
|
|
|
|
protected $table = 'daily_work_log_items';
|
|
|
|
protected $fillable = [
|
|
'tenant_id',
|
|
'daily_work_log_id',
|
|
'sort_order',
|
|
'category',
|
|
'task',
|
|
'priority',
|
|
'is_completed',
|
|
'note',
|
|
'options',
|
|
];
|
|
|
|
protected $casts = [
|
|
'is_completed' => 'boolean',
|
|
'sort_order' => 'integer',
|
|
'options' => 'array',
|
|
];
|
|
|
|
public function dailyWorkLog(): BelongsTo
|
|
{
|
|
return $this->belongsTo(DailyWorkLog::class);
|
|
}
|
|
|
|
public function getOption(string $key, mixed $default = null): mixed
|
|
{
|
|
return data_get($this->options, $key, $default);
|
|
}
|
|
|
|
public function setOption(string $key, mixed $value): static
|
|
{
|
|
$options = $this->options ?? [];
|
|
data_set($options, $key, $value);
|
|
$this->options = $options;
|
|
|
|
return $this;
|
|
}
|
|
}
|