feat:계좌 입출금 분개 테이블 마이그레이션 추가

- barobill_bank_transaction_splits 테이블 생성
- 계좌 입출금 거래를 여러 계정과목으로 분개하여 저장

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
김보곤
2026-02-06 14:43:10 +09:00
parent 28bf445844
commit edbd95053c

View File

@@ -0,0 +1,53 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
* 계좌 입출금 거래 분개 테이블 - 하나의 입출금 거래를 여러 계정과목으로 분개
*/
public function up(): void
{
Schema::create('barobill_bank_transaction_splits', function (Blueprint $table) {
$table->id();
$table->foreignId('tenant_id')->constrained()->onDelete('cascade');
// 원본 거래 고유키 (바로빌에서 가져온 원본 데이터 식별)
$table->string('original_unique_key', 200)->comment('원본 거래 고유키 (bankAccountNum|transDt|deposit|withdraw|balance)');
// 분개 정보
$table->decimal('split_amount', 18, 2)->comment('분개 금액');
$table->string('account_code', 50)->nullable()->comment('계정과목 코드');
$table->string('account_name', 100)->nullable()->comment('계정과목명');
$table->string('description', 255)->nullable()->comment('분개 내역');
$table->string('memo', 255)->nullable()->comment('분개 메모');
$table->integer('sort_order')->default(0)->comment('정렬 순서');
// 원본 거래 정보 (조회 편의를 위해 저장)
$table->string('bank_account_num', 50)->comment('계좌번호');
$table->string('trans_dt', 20)->comment('거래일시 (YYYYMMDDHHMMSS)');
$table->string('trans_date', 8)->comment('거래일 (YYYYMMDD)');
$table->decimal('original_deposit', 18, 2)->default(0)->comment('원본 입금액');
$table->decimal('original_withdraw', 18, 2)->default(0)->comment('원본 출금액');
$table->string('summary', 255)->nullable()->comment('원본 적요');
$table->timestamps();
// 인덱스
$table->index(['tenant_id', 'original_unique_key'], 'bb_bank_split_tenant_key_idx');
$table->index(['tenant_id', 'trans_date'], 'bb_bank_split_tenant_date_idx');
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('barobill_bank_transaction_splits');
}
};