Files
sam-api/app/Models/Tenants/Withdrawal.php
kent e7862ed6e6 feat: I-3 법인카드 사용내역 API 구현
- CardTransactionController: 카드 거래내역 조회 API
- CardTransactionService: 카드 거래 조회 로직
- Withdrawal 모델 카드 필드 확장
- Swagger 문서화
- withdrawals 테이블 카드 필드 마이그레이션

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 15:46:48 +09:00

106 lines
2.2 KiB
PHP

<?php
namespace App\Models\Tenants;
use App\Traits\BelongsToTenant;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\SoftDeletes;
class Withdrawal extends Model
{
use BelongsToTenant, SoftDeletes;
protected $fillable = [
'tenant_id',
'withdrawal_date',
'used_at',
'client_id',
'client_name',
'merchant_name',
'bank_account_id',
'card_id',
'amount',
'payment_method',
'account_code',
'description',
'reference_type',
'reference_id',
'created_by',
'updated_by',
'deleted_by',
];
protected $casts = [
'withdrawal_date' => 'date',
'used_at' => 'datetime',
'amount' => 'decimal:2',
'client_id' => 'integer',
'bank_account_id' => 'integer',
'card_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 card(): BelongsTo
{
return $this->belongsTo(Card::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;
}
}