diff --git a/database/migrations/2025_06_08_225834_create_atm_transaction_report_logs_table.php b/database/migrations/2025_06_08_225834_create_atm_transaction_report_logs_table.php new file mode 100644 index 0000000..8f1c0ef --- /dev/null +++ b/database/migrations/2025_06_08_225834_create_atm_transaction_report_logs_table.php @@ -0,0 +1,49 @@ +id(); + $table->string('period', 8); // Format: Ymd (20250512) + $table->date('report_date'); + $table->enum('status', ['pending', 'processing', 'completed', 'failed'])->default('pending'); + $table->enum('authorization_status', ['pending', 'approved', 'rejected'])->default('pending'); + $table->string('file_path')->nullable(); + $table->bigInteger('file_size')->nullable(); + $table->integer('record_count')->nullable(); + $table->text('error_message')->nullable(); + $table->boolean('is_downloaded')->default(false); + $table->timestamp('downloaded_at')->nullable(); + $table->unsignedBigInteger('user_id'); + $table->unsignedBigInteger('created_by'); + $table->unsignedBigInteger('updated_by')->nullable(); + $table->unsignedBigInteger('authorized_by')->nullable(); + $table->timestamp('authorized_at')->nullable(); + $table->string('ip_address', 45)->nullable(); + $table->text('user_agent')->nullable(); + $table->timestamps(); + + $table->index(['period']); + $table->index(['status']); + $table->index(['authorization_status']); + $table->index(['created_at']); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('atm_transaction_report_logs'); + } +};