'date', 'amount' => 'decimal:2', 'client_id' => 'integer', 'bank_account_id' => 'integer', 'reference_id' => 'integer', ]; /** * 결제수단 목록 */ public const PAYMENT_METHODS = [ 'cash' => '현금', 'transfer' => '계좌이체', 'card' => '카드', 'check' => '수표', ]; /** * 거래처 관계 */ public function client(): BelongsTo { return $this->belongsTo(\App\Models\Orders\Client::class); } /** * 입금 계좌 관계 */ public function bankAccount(): BelongsTo { return $this->belongsTo(BankAccount::class); } /** * 생성자 관계 */ public function creator(): BelongsTo { return $this->belongsTo(\App\Models\Members\User::class, 'created_by'); } /** * 거래처명 조회 (회원/비회원 통합) */ public function getDisplayClientNameAttribute(): string { if ($this->client) { return $this->client->name; } return $this->client_name ?? ''; } /** * 결제수단 라벨 */ public function getPaymentMethodLabelAttribute(): string { return self::PAYMENT_METHODS[$this->payment_method] ?? $this->payment_method; } }