'date', 'previous_data' => 'array', 'created_at' => 'datetime', ]; /** * 견적 마스터 */ public function quote(): BelongsTo { return $this->belongsTo(Quote::class); } /** * 수정자 */ public function reviser(): BelongsTo { return $this->belongsTo(User::class, 'revision_by'); } /** * 이전 데이터 스냅샷에서 특정 필드 가져오기 */ public function getPreviousValue(string $key, $default = null) { return data_get($this->previous_data, $key, $default); } /** * 이전 데이터 스냅샷에서 품목 목록 가져오기 */ public function getPreviousItems(): array { return $this->getPreviousValue('items', []); } /** * 이전 데이터 스냅샷에서 총액 가져오기 */ public function getPreviousTotalAmount(): float { return (float) $this->getPreviousValue('total_amount', 0); } }