akaunting/database/migrations/2019_11_14_000000_create_contacts_table.php
2019-11-16 10:21:14 +03:00

77 lines
2.3 KiB
PHP

<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class CreateContactsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('contacts', function (Blueprint $table) {
$table->increments('id');
$table->integer('company_id');
$table->string('type');
$table->string('name');
$table->string('email')->nullable();
$table->integer('user_id')->nullable();
$table->string('tax_number')->nullable();
$table->string('phone')->nullable();
$table->text('address')->nullable();
$table->string('website')->nullable();
$table->string('currency_code', 3);
$table->boolean('enabled');
$table->string('reference')->nullable();
$table->timestamps();
$table->softDeletes();
$table->index(['company_id', 'type']);
$table->unique(['company_id', 'type', 'email', 'deleted_at']);
});
$rename_bills = [
'vendor_id' => 'contact_id',
'vendor_name' => 'contact_name',
'vendor_email' => 'contact_email',
'vendor_tax_number' => 'contact_tax_number',
'vendor_phone' => 'contact_phone',
'vendor_address' => 'contact_address',
];
foreach ($rename_bills as $from => $to) {
Schema::table('bills', function (Blueprint $table) use ($from, $to) {
$table->renameColumn($from, $to);
});
}
$rename_invoices = [
'customer_id' => 'contact_id',
'customer_name' => 'contact_name',
'customer_email' => 'contact_email',
'customer_tax_number' => 'contact_tax_number',
'customer_phone' => 'contact_phone',
'customer_address' => 'contact_address',
];
foreach ($rename_invoices as $from => $to) {
Schema::table('invoices', function (Blueprint $table) use ($from, $to) {
$table->renameColumn($from, $to);
});
}
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('contacts');
}
}