Code clean up.

This commit is contained in:
James Cole 2017-11-15 10:53:17 +01:00
parent 649dca77f5
commit ef837f20dd
No known key found for this signature in database
GPG Key ID: C16961E655E74B5E
22 changed files with 632 additions and 604 deletions

View File

@ -167,7 +167,6 @@ class User extends Authenticatable
*/ */
public function hasRole(string $name): bool public function hasRole(string $name): bool
{ {
foreach ($this->roles as $role) { foreach ($this->roles as $role) {
if ($role->name === $name) { if ($role->name === $name) {
return true; return true;
@ -262,6 +261,4 @@ class User extends Authenticatable
{ {
return $this->hasManyThrough('FireflyIII\Models\Transaction', 'FireflyIII\Models\TransactionJournal'); return $this->hasManyThrough('FireflyIII\Models\Transaction', 'FireflyIII\Models\TransactionJournal');
} }
} }

View File

@ -12,7 +12,6 @@ declare(strict_types=1);
use Carbon\Carbon; use Carbon\Carbon;
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| Model Factories | Model Factories
@ -25,21 +24,22 @@ use Carbon\Carbon;
*/ */
$factory->define( $factory->define(
FireflyIII\User::class, function (Faker\Generator $faker) { FireflyIII\User::class,
static $password; function (Faker\Generator $faker) {
static $password;
return [ return [
'email' => $faker->safeEmail, 'email' => $faker->safeEmail,
'password' => $password ?: $password = bcrypt('secret'), 'password' => $password ?: $password = bcrypt('secret'),
'remember_token' => str_random(10), 'remember_token' => str_random(10),
]; ];
} }
); );
$factory->define( $factory->define(
FireflyIII\Models\CurrencyExchangeRate::class, function (Faker\Generator $faker) { FireflyIII\Models\CurrencyExchangeRate::class,
function (Faker\Generator $faker) {
return [ return [
'user_id' => 1, 'user_id' => 1,
'from_currency_id' => 1, 'from_currency_id' => 1,
'to_currency_id' => 2, 'to_currency_id' => 2,
@ -47,23 +47,24 @@ $factory->define(
'rate' => '1.5', 'rate' => '1.5',
'user_rate' => null, 'user_rate' => null,
]; ];
} }
); );
$factory->define( $factory->define(
FireflyIII\Models\TransactionCurrency::class, function (Faker\Generator $faker) { FireflyIII\Models\TransactionCurrency::class,
function (Faker\Generator $faker) {
return [ return [
'name' => $faker->words(1, true), 'name' => $faker->words(1, true),
'code' => 'ABC', 'code' => 'ABC',
'symbol' => 'x', 'symbol' => 'x',
]; ];
} }
); );
$factory->define( $factory->define(
FireflyIII\Models\ImportJob::class, function (Faker\Generator $faker) { FireflyIII\Models\ImportJob::class,
return [ function (Faker\Generator $faker) {
return [
'id' => $faker->numberBetween(1, 100), 'id' => $faker->numberBetween(1, 100),
'user_id' => 1, 'user_id' => 1,
'key' => $faker->words(1, true), 'key' => $faker->words(1, true),
@ -78,13 +79,14 @@ $factory->define(
'errors' => [], 'errors' => [],
], ],
]; ];
} }
); );
$factory->define( $factory->define(
FireflyIII\Models\TransactionJournal::class, function (Faker\Generator $faker) { FireflyIII\Models\TransactionJournal::class,
return [ function (Faker\Generator $faker) {
return [
'id' => $faker->unique()->numberBetween(1000, 10000), 'id' => $faker->unique()->numberBetween(1000, 10000),
'user_id' => 1, 'user_id' => 1,
'transaction_type_id' => 1, 'transaction_type_id' => 1,
@ -101,12 +103,13 @@ $factory->define(
'encrypted' => 0, 'encrypted' => 0,
'completed' => 1, 'completed' => 1,
]; ];
} }
); );
$factory->define( $factory->define(
FireflyIII\Models\Bill::class, function (Faker\Generator $faker) { FireflyIII\Models\Bill::class,
return [ function (Faker\Generator $faker) {
return [
'id' => $faker->numberBetween(1, 10), 'id' => $faker->numberBetween(1, 10),
'user_id' => 1, 'user_id' => 1,
'name' => $faker->words(3, true), 'name' => $faker->words(3, true),
@ -120,24 +123,26 @@ $factory->define(
'name_encrypted' => 0, 'name_encrypted' => 0,
'match_encrypted' => 0, 'match_encrypted' => 0,
]; ];
} }
); );
$factory->define( $factory->define(
FireflyIII\Models\PiggyBankRepetition::class, function (Faker\Generator $faker) { FireflyIII\Models\PiggyBankRepetition::class,
return [ function (Faker\Generator $faker) {
return [
'id' => $faker->unique()->numberBetween(100, 10000), 'id' => $faker->unique()->numberBetween(100, 10000),
'piggy_bank_id' => $faker->numberBetween(1, 10), 'piggy_bank_id' => $faker->numberBetween(1, 10),
'startdate' => '2017-01-01', 'startdate' => '2017-01-01',
'targetdate' => '2020-01-01', 'targetdate' => '2020-01-01',
'currentamount' => 10, 'currentamount' => 10,
]; ];
} }
); );
$factory->define( $factory->define(
FireflyIII\Models\PiggyBank::class, function (Faker\Generator $faker) { FireflyIII\Models\PiggyBank::class,
return [ function (Faker\Generator $faker) {
return [
'id' => $faker->unique()->numberBetween(100, 10000), 'id' => $faker->unique()->numberBetween(100, 10000),
'account_id' => $faker->numberBetween(1, 10), 'account_id' => $faker->numberBetween(1, 10),
'name' => $faker->words(3, true), 'name' => $faker->words(3, true),
@ -147,53 +152,58 @@ $factory->define(
'active' => 1, 'active' => 1,
'encrypted' => 0, 'encrypted' => 0,
]; ];
} }
); );
$factory->define( $factory->define(
FireflyIII\Models\Tag::class, function (Faker\Generator $faker) { FireflyIII\Models\Tag::class,
return [ function (Faker\Generator $faker) {
return [
'id' => $faker->unique()->numberBetween(200, 10000), 'id' => $faker->unique()->numberBetween(200, 10000),
'user_id' => 1, 'user_id' => 1,
'tagMode' => 'nothing', 'tagMode' => 'nothing',
'tag' => $faker->words(1, true), 'tag' => $faker->words(1, true),
]; ];
} }
); );
$factory->define( $factory->define(
FireflyIII\Models\Category::class, function (Faker\Generator $faker) { FireflyIII\Models\Category::class,
return [ function (Faker\Generator $faker) {
return [
'id' => $faker->numberBetween(1, 10), 'id' => $faker->numberBetween(1, 10),
'name' => $faker->words(3, true), 'name' => $faker->words(3, true),
]; ];
} }
); );
$factory->define( $factory->define(
FireflyIII\Models\Budget::class, function (Faker\Generator $faker) { FireflyIII\Models\Budget::class,
return [ function (Faker\Generator $faker) {
return [
'id' => $faker->numberBetween(1, 10), 'id' => $faker->numberBetween(1, 10),
'name' => $faker->words(3, true), 'name' => $faker->words(3, true),
]; ];
} }
); );
$factory->define( $factory->define(
FireflyIII\Models\PiggyBankEvent::class, function (Faker\Generator $faker) { FireflyIII\Models\PiggyBankEvent::class,
return [ function (Faker\Generator $faker) {
return [
'id' => $faker->numberBetween(1, 10), 'id' => $faker->numberBetween(1, 10),
'piggy_bank_id' => $faker->numberBetween(1, 10), 'piggy_bank_id' => $faker->numberBetween(1, 10),
'transaction_journal_id' => $faker->numberBetween(1, 10), 'transaction_journal_id' => $faker->numberBetween(1, 10),
'date' => $faker->date('Y-m-d'), 'date' => $faker->date('Y-m-d'),
'amount' => '100', 'amount' => '100',
]; ];
} }
); );
$factory->define( $factory->define(
FireflyIII\Models\BudgetLimit::class, function (Faker\Generator $faker) { FireflyIII\Models\BudgetLimit::class,
return [ function (Faker\Generator $faker) {
return [
'id' => $faker->numberBetween(1, 10), 'id' => $faker->numberBetween(1, 10),
'start_date' => '2017-01-01', 'start_date' => '2017-01-01',
'end_date' => '2017-01-31', 'end_date' => '2017-01-31',
@ -201,23 +211,25 @@ $factory->define(
'budget_id' => $faker->numberBetween(1, 6), 'budget_id' => $faker->numberBetween(1, 6),
]; ];
} }
); );
$factory->define( $factory->define(
FireflyIII\Models\Account::class, function (Faker\Generator $faker) { FireflyIII\Models\Account::class,
return [ function (Faker\Generator $faker) {
return [
'id' => $faker->unique()->numberBetween(1000, 10000), 'id' => $faker->unique()->numberBetween(1000, 10000),
'name' => $faker->words(3, true), 'name' => $faker->words(3, true),
'account_type_id' => 1, 'account_type_id' => 1,
'active' => true, 'active' => true,
]; ];
} }
); );
$factory->define( $factory->define(
FireflyIII\Models\Transaction::class, function (Faker\Generator $faker) { FireflyIII\Models\Transaction::class,
return [ function (Faker\Generator $faker) {
return [
'transaction_amount' => strval($faker->randomFloat(2, -100, 100)), 'transaction_amount' => strval($faker->randomFloat(2, -100, 100)),
'destination_amount' => strval($faker->randomFloat(2, -100, 100)), 'destination_amount' => strval($faker->randomFloat(2, -100, 100)),
'opposing_account_id' => $faker->numberBetween(1, 10), 'opposing_account_id' => $faker->numberBetween(1, 10),
@ -244,5 +256,5 @@ $factory->define(
'foreign_currency_code' => null, 'foreign_currency_code' => null,
'foreign_currency_symbol' => null, 'foreign_currency_symbol' => null,
]; ];
} }
); );

View File

@ -24,7 +24,6 @@ class CreateSupportTables extends Migration
*/ */
public function down() public function down()
{ {
Schema::drop('account_types'); Schema::drop('account_types');
Schema::drop('transaction_currencies'); Schema::drop('transaction_currencies');
Schema::drop('transaction_types'); Schema::drop('transaction_types');
@ -35,7 +34,6 @@ class CreateSupportTables extends Migration
Schema::drop('roles'); Schema::drop('roles');
Schema::drop('sessions'); Schema::drop('sessions');
Schema::drop('configuration'); Schema::drop('configuration');
} }
/** /**
@ -64,14 +62,15 @@ class CreateSupportTables extends Migration
{ {
if (!Schema::hasTable('account_types')) { if (!Schema::hasTable('account_types')) {
Schema::create( Schema::create(
'account_types', function (Blueprint $table) { 'account_types',
$table->increments('id'); function (Blueprint $table) {
$table->timestamps(); $table->increments('id');
$table->string('type', 50); $table->timestamps();
$table->string('type', 50);
// type must be unique. // type must be unique.
$table->unique(['type']); $table->unique(['type']);
} }
); );
} }
} }
@ -80,15 +79,15 @@ class CreateSupportTables extends Migration
{ {
if (!Schema::hasTable('configuration')) { if (!Schema::hasTable('configuration')) {
Schema::create( Schema::create(
'configuration', function (Blueprint $table) { 'configuration',
function (Blueprint $table) {
$table->increments('id'); $table->increments('id');
$table->timestamps(); $table->timestamps();
$table->softDeletes(); $table->softDeletes();
$table->string('name', 50); $table->string('name', 50);
$table->text('data'); $table->text('data');
$table->unique(['name']); $table->unique(['name']);
} }
); );
} }
} }
@ -100,18 +99,18 @@ class CreateSupportTables extends Migration
{ {
if (!Schema::hasTable('transaction_currencies')) { if (!Schema::hasTable('transaction_currencies')) {
Schema::create( Schema::create(
'transaction_currencies', function (Blueprint $table) { 'transaction_currencies',
$table->increments('id'); function (Blueprint $table) {
$table->timestamps(); $table->increments('id');
$table->softDeletes(); $table->timestamps();
$table->string('code', 3); $table->softDeletes();
$table->string('name', 255); $table->string('code', 3);
$table->string('symbol', 12); $table->string('name', 255);
$table->string('symbol', 12);
// code must be unique. // code must be unique.
$table->unique(['code']); $table->unique(['code']);
}
}
); );
} }
} }
@ -123,20 +122,20 @@ class CreateSupportTables extends Migration
{ {
if (!Schema::hasTable('jobs')) { if (!Schema::hasTable('jobs')) {
Schema::create( Schema::create(
'jobs', function (Blueprint $table) { 'jobs',
function (Blueprint $table) {
// straight from Laravel // straight from Laravel
$table->bigIncrements('id'); $table->bigIncrements('id');
$table->string('queue'); $table->string('queue');
$table->longText('payload'); $table->longText('payload');
$table->tinyInteger('attempts')->unsigned(); $table->tinyInteger('attempts')->unsigned();
$table->tinyInteger('reserved')->unsigned(); $table->tinyInteger('reserved')->unsigned();
$table->unsignedInteger('reserved_at')->nullable(); $table->unsignedInteger('reserved_at')->nullable();
$table->unsignedInteger('available_at'); $table->unsignedInteger('available_at');
$table->unsignedInteger('created_at'); $table->unsignedInteger('created_at');
$table->index(['queue', 'reserved', 'reserved_at']); $table->index(['queue', 'reserved', 'reserved_at']);
}
}
); );
} }
} }
@ -148,13 +147,13 @@ class CreateSupportTables extends Migration
{ {
if (!Schema::hasTable('password_resets')) { if (!Schema::hasTable('password_resets')) {
Schema::create( Schema::create(
'password_resets', function (Blueprint $table) { 'password_resets',
// straight from laravel function (Blueprint $table) {
$table->string('email')->index(); // straight from laravel
$table->string('token')->index(); $table->string('email')->index();
$table->timestamp('created_at'); $table->string('token')->index();
$table->timestamp('created_at');
} }
); );
} }
} }
@ -166,15 +165,16 @@ class CreateSupportTables extends Migration
{ {
if (!Schema::hasTable('permission_role')) { if (!Schema::hasTable('permission_role')) {
Schema::create( Schema::create(
'permission_role', function (Blueprint $table) { 'permission_role',
$table->integer('permission_id')->unsigned(); function (Blueprint $table) {
$table->integer('role_id')->unsigned(); $table->integer('permission_id')->unsigned();
$table->integer('role_id')->unsigned();
$table->foreign('permission_id')->references('id')->on('permissions')->onUpdate('cascade')->onDelete('cascade'); $table->foreign('permission_id')->references('id')->on('permissions')->onUpdate('cascade')->onDelete('cascade');
$table->foreign('role_id')->references('id')->on('roles')->onUpdate('cascade')->onDelete('cascade'); $table->foreign('role_id')->references('id')->on('roles')->onUpdate('cascade')->onDelete('cascade');
$table->primary(['permission_id', 'role_id']); $table->primary(['permission_id', 'role_id']);
} }
); );
} }
} }
@ -186,13 +186,14 @@ class CreateSupportTables extends Migration
{ {
if (!Schema::hasTable('permissions')) { if (!Schema::hasTable('permissions')) {
Schema::create( Schema::create(
'permissions', function (Blueprint $table) { 'permissions',
$table->increments('id'); function (Blueprint $table) {
$table->timestamps(); $table->increments('id');
$table->string('name')->unique(); $table->timestamps();
$table->string('display_name')->nullable(); $table->string('name')->unique();
$table->string('description')->nullable(); $table->string('display_name')->nullable();
} $table->string('description')->nullable();
}
); );
} }
} }
@ -204,13 +205,14 @@ class CreateSupportTables extends Migration
{ {
if (!Schema::hasTable('roles')) { if (!Schema::hasTable('roles')) {
Schema::create( Schema::create(
'roles', function (Blueprint $table) { 'roles',
$table->increments('id'); function (Blueprint $table) {
$table->timestamps(); $table->increments('id');
$table->string('name')->unique(); $table->timestamps();
$table->string('display_name')->nullable(); $table->string('name')->unique();
$table->string('description')->nullable(); $table->string('display_name')->nullable();
} $table->string('description')->nullable();
}
); );
} }
} }
@ -220,17 +222,17 @@ class CreateSupportTables extends Migration
*/ */
private function createSessionsTable() private function createSessionsTable()
{ {
if (!Schema::hasTable('sessions')) { if (!Schema::hasTable('sessions')) {
Schema::create( Schema::create(
'sessions', function (Blueprint $table) { 'sessions',
$table->string('id')->unique(); function (Blueprint $table) {
$table->integer('user_id')->nullable(); $table->string('id')->unique();
$table->string('ip_address', 45)->nullable(); $table->integer('user_id')->nullable();
$table->text('user_agent')->nullable(); $table->string('ip_address', 45)->nullable();
$table->text('payload'); $table->text('user_agent')->nullable();
$table->integer('last_activity'); $table->text('payload');
} $table->integer('last_activity');
}
); );
} }
} }
@ -242,16 +244,16 @@ class CreateSupportTables extends Migration
{ {
if (!Schema::hasTable('transaction_types')) { if (!Schema::hasTable('transaction_types')) {
Schema::create( Schema::create(
'transaction_types', function (Blueprint $table) { 'transaction_types',
$table->increments('id'); function (Blueprint $table) {
$table->timestamps(); $table->increments('id');
$table->softDeletes(); $table->timestamps();
$table->string('type', 50); $table->softDeletes();
$table->string('type', 50);
// type must be unique. // type must be unique.
$table->unique(['type']); $table->unique(['type']);
}
}
); );
} }
} }

View File

@ -35,16 +35,17 @@ class CreateUsersTable extends Migration
{ {
if (!Schema::hasTable('users')) { if (!Schema::hasTable('users')) {
Schema::create( Schema::create(
'users', function (Blueprint $table) { 'users',
$table->increments('id'); function (Blueprint $table) {
$table->timestamps(); $table->increments('id');
$table->string('email', 255); $table->timestamps();
$table->string('password', 60); $table->string('email', 255);
$table->string('remember_token', 100)->nullable(); $table->string('password', 60);
$table->string('reset', 32)->nullable(); $table->string('remember_token', 100)->nullable();
$table->tinyInteger('blocked', false, true)->default('0'); $table->string('reset', 32)->nullable();
$table->string('blocked_code', 25)->nullable(); $table->tinyInteger('blocked', false, true)->default('0');
} $table->string('blocked_code', 25)->nullable();
}
); );
} }
} }

View File

@ -82,33 +82,35 @@ class CreateMainTables extends Migration
{ {
if (!Schema::hasTable('accounts')) { if (!Schema::hasTable('accounts')) {
Schema::create( Schema::create(
'accounts', function (Blueprint $table) { 'accounts',
$table->increments('id'); function (Blueprint $table) {
$table->timestamps(); $table->increments('id');
$table->softDeletes(); $table->timestamps();
$table->integer('user_id', false, true); $table->softDeletes();
$table->integer('account_type_id', false, true); $table->integer('user_id', false, true);
$table->string('name', 1024); $table->integer('account_type_id', false, true);
$table->decimal('virtual_balance', 22, 12)->nullable(); $table->string('name', 1024);
$table->string('iban', 255)->nullable(); $table->decimal('virtual_balance', 22, 12)->nullable();
$table->boolean('active')->default(1); $table->string('iban', 255)->nullable();
$table->boolean('encrypted')->default(0); $table->boolean('active')->default(1);
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); $table->boolean('encrypted')->default(0);
$table->foreign('account_type_id')->references('id')->on('account_types')->onDelete('cascade'); $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
} $table->foreign('account_type_id')->references('id')->on('account_types')->onDelete('cascade');
}
); );
} }
if (!Schema::hasTable('account_meta')) { if (!Schema::hasTable('account_meta')) {
Schema::create( Schema::create(
'account_meta', function (Blueprint $table) { 'account_meta',
$table->increments('id'); function (Blueprint $table) {
$table->timestamps(); $table->increments('id');
$table->integer('account_id', false, true); $table->timestamps();
$table->string('name'); $table->integer('account_id', false, true);
$table->text('data'); $table->string('name');
$table->foreign('account_id')->references('id')->on('accounts')->onDelete('cascade'); $table->text('data');
} $table->foreign('account_id')->references('id')->on('accounts')->onDelete('cascade');
}
); );
} }
} }
@ -118,30 +120,28 @@ class CreateMainTables extends Migration
*/ */
private function createAttachmentsTable() private function createAttachmentsTable()
{ {
if (!Schema::hasTable('attachments')) { if (!Schema::hasTable('attachments')) {
Schema::create( Schema::create(
'attachments', function (Blueprint $table) { 'attachments',
$table->increments('id'); function (Blueprint $table) {
$table->timestamps(); $table->increments('id');
$table->softDeletes(); $table->timestamps();
$table->integer('user_id', false, true); $table->softDeletes();
$table->integer('attachable_id', false, true); $table->integer('user_id', false, true);
$table->string('attachable_type', 255); $table->integer('attachable_id', false, true);
$table->string('md5', 32); $table->string('attachable_type', 255);
$table->string('filename', 1024); $table->string('md5', 32);
$table->string('title', 1024)->nullable(); $table->string('filename', 1024);
$table->text('description')->nullable(); $table->string('title', 1024)->nullable();
$table->text('notes')->nullable(); $table->text('description')->nullable();
$table->string('mime', 1024); $table->text('notes')->nullable();
$table->integer('size', false, true); $table->string('mime', 1024);
$table->boolean('uploaded')->default(1); $table->integer('size', false, true);
$table->boolean('uploaded')->default(1);
// link user id to users table // link user id to users table
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
}
}
); );
} }
} }
@ -153,26 +153,27 @@ class CreateMainTables extends Migration
{ {
if (!Schema::hasTable('bills')) { if (!Schema::hasTable('bills')) {
Schema::create( Schema::create(
'bills', function (Blueprint $table) { 'bills',
$table->increments('id'); function (Blueprint $table) {
$table->timestamps(); $table->increments('id');
$table->softDeletes(); $table->timestamps();
$table->integer('user_id', false, true); $table->softDeletes();
$table->string('name', 1024); $table->integer('user_id', false, true);
$table->string('match', 1024); $table->string('name', 1024);
$table->decimal('amount_min', 22, 12); $table->string('match', 1024);
$table->decimal('amount_max', 22, 12); $table->decimal('amount_min', 22, 12);
$table->date('date'); $table->decimal('amount_max', 22, 12);
$table->string('repeat_freq', 30); $table->date('date');
$table->smallInteger('skip', false, true)->default(0); $table->string('repeat_freq', 30);
$table->boolean('automatch')->default(1); $table->smallInteger('skip', false, true)->default(0);
$table->boolean('active')->default(1); $table->boolean('automatch')->default(1);
$table->boolean('name_encrypted')->default(0); $table->boolean('active')->default(1);
$table->boolean('match_encrypted')->default(0); $table->boolean('name_encrypted')->default(0);
$table->boolean('match_encrypted')->default(0);
// link user id to users table // link user id to users table
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
} }
); );
} }
} }
@ -184,46 +185,46 @@ class CreateMainTables extends Migration
{ {
if (!Schema::hasTable('budgets')) { if (!Schema::hasTable('budgets')) {
Schema::create( Schema::create(
'budgets', function (Blueprint $table) { 'budgets',
$table->increments('id'); function (Blueprint $table) {
$table->timestamps(); $table->increments('id');
$table->softDeletes(); $table->timestamps();
$table->integer('user_id', false, true); $table->softDeletes();
$table->string('name', 1024); $table->integer('user_id', false, true);
$table->boolean('active')->default(1); $table->string('name', 1024);
$table->boolean('encrypted')->default(0); $table->boolean('active')->default(1);
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); $table->boolean('encrypted')->default(0);
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
}
}
); );
} }
if (!Schema::hasTable('budget_limits')) { if (!Schema::hasTable('budget_limits')) {
Schema::create( Schema::create(
'budget_limits', function (Blueprint $table) { 'budget_limits',
$table->increments('id'); function (Blueprint $table) {
$table->timestamps(); $table->increments('id');
$table->integer('budget_id', false, true); $table->timestamps();
$table->date('startdate'); $table->integer('budget_id', false, true);
$table->decimal('amount', 22, 12); $table->date('startdate');
$table->string('repeat_freq', 30); $table->decimal('amount', 22, 12);
$table->boolean('repeats')->default(0); $table->string('repeat_freq', 30);
$table->foreign('budget_id')->references('id')->on('budgets')->onDelete('cascade'); $table->boolean('repeats')->default(0);
$table->foreign('budget_id')->references('id')->on('budgets')->onDelete('cascade');
} }
); );
} }
if (!Schema::hasTable('limit_repetitions')) { if (!Schema::hasTable('limit_repetitions')) {
Schema::create( Schema::create(
'limit_repetitions', function (Blueprint $table) { 'limit_repetitions',
$table->increments('id'); function (Blueprint $table) {
$table->timestamps(); $table->increments('id');
$table->integer('budget_limit_id', false, true); $table->timestamps();
$table->date('startdate'); $table->integer('budget_limit_id', false, true);
$table->date('enddate'); $table->date('startdate');
$table->decimal('amount', 22, 12); $table->date('enddate');
$table->foreign('budget_limit_id')->references('id')->on('budget_limits')->onDelete('cascade'); $table->decimal('amount', 22, 12);
} $table->foreign('budget_limit_id')->references('id')->on('budget_limits')->onDelete('cascade');
}
); );
} }
} }
@ -235,18 +236,18 @@ class CreateMainTables extends Migration
{ {
if (!Schema::hasTable('categories')) { if (!Schema::hasTable('categories')) {
Schema::create( Schema::create(
'categories', function (Blueprint $table) { 'categories',
function (Blueprint $table) {
$table->increments('id');
$table->timestamps();
$table->softDeletes();
$table->integer('user_id', false, true);
$table->string('name', 1024);
$table->boolean('encrypted')->default(0);
$table->increments('id'); // link user id to users table
$table->timestamps(); $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->softDeletes(); }
$table->integer('user_id', false, true);
$table->string('name', 1024);
$table->boolean('encrypted')->default(0);
// link user id to users table
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
}
); );
} }
} }
@ -258,32 +259,33 @@ class CreateMainTables extends Migration
{ {
if (!Schema::hasTable('export_jobs')) { if (!Schema::hasTable('export_jobs')) {
Schema::create( Schema::create(
'export_jobs', function (Blueprint $table) { 'export_jobs',
$table->increments('id'); function (Blueprint $table) {
$table->timestamps(); $table->increments('id');
$table->integer('user_id', false, true); $table->timestamps();
$table->string('key', 12); $table->integer('user_id', false, true);
$table->string('status', 255); $table->string('key', 12);
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); $table->string('status', 255);
} $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
}
); );
} }
if (!Schema::hasTable('import_jobs')) { if (!Schema::hasTable('import_jobs')) {
Schema::create( Schema::create(
'import_jobs', function (Blueprint $table) { 'import_jobs',
$table->increments('id'); function (Blueprint $table) {
$table->timestamps(); $table->increments('id');
$table->integer('user_id')->unsigned(); $table->timestamps();
$table->string('key', 12)->unique(); $table->integer('user_id')->unsigned();
$table->string('file_type', 12); $table->string('key', 12)->unique();
$table->string('status', 45); $table->string('file_type', 12);
$table->text('configuration')->nullable(); $table->string('status', 45);
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); $table->text('configuration')->nullable();
} $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
}
); );
} }
} }
/** /**
@ -293,34 +295,36 @@ class CreateMainTables extends Migration
{ {
if (!Schema::hasTable('piggy_banks')) { if (!Schema::hasTable('piggy_banks')) {
Schema::create( Schema::create(
'piggy_banks', function (Blueprint $table) { 'piggy_banks',
$table->increments('id'); function (Blueprint $table) {
$table->timestamps(); $table->increments('id');
$table->softDeletes(); $table->timestamps();
$table->integer('account_id', false, true); $table->softDeletes();
$table->string('name', 1024); $table->integer('account_id', false, true);
$table->decimal('targetamount', 22, 12); $table->string('name', 1024);
$table->date('startdate')->nullable(); $table->decimal('targetamount', 22, 12);
$table->date('targetdate')->nullable(); $table->date('startdate')->nullable();
$table->integer('order', false, true)->default(0); $table->date('targetdate')->nullable();
$table->boolean('active')->default(0); $table->integer('order', false, true)->default(0);
$table->boolean('encrypted')->default(1); $table->boolean('active')->default(0);
$table->foreign('account_id')->references('id')->on('accounts')->onDelete('cascade'); $table->boolean('encrypted')->default(1);
} $table->foreign('account_id')->references('id')->on('accounts')->onDelete('cascade');
}
); );
} }
if (!Schema::hasTable('piggy_bank_repetitions')) { if (!Schema::hasTable('piggy_bank_repetitions')) {
Schema::create( Schema::create(
'piggy_bank_repetitions', function (Blueprint $table) { 'piggy_bank_repetitions',
$table->increments('id'); function (Blueprint $table) {
$table->timestamps(); $table->increments('id');
$table->integer('piggy_bank_id', false, true); $table->timestamps();
$table->date('startdate')->nullable(); $table->integer('piggy_bank_id', false, true);
$table->date('targetdate')->nullable(); $table->date('startdate')->nullable();
$table->decimal('currentamount', 22, 12); $table->date('targetdate')->nullable();
$table->foreign('piggy_bank_id')->references('id')->on('piggy_banks')->onDelete('cascade'); $table->decimal('currentamount', 22, 12);
} $table->foreign('piggy_bank_id')->references('id')->on('piggy_banks')->onDelete('cascade');
}
); );
} }
} }
@ -332,15 +336,16 @@ class CreateMainTables extends Migration
{ {
if (!Schema::hasTable('preferences')) { if (!Schema::hasTable('preferences')) {
Schema::create( Schema::create(
'preferences', function (Blueprint $table) { 'preferences',
$table->increments('id'); function (Blueprint $table) {
$table->timestamps(); $table->increments('id');
$table->integer('user_id', false, true); $table->timestamps();
$table->string('name', 1024); $table->integer('user_id', false, true);
$table->text('data'); $table->string('name', 1024);
$table->text('data');
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
} }
); );
} }
} }
@ -350,22 +355,20 @@ class CreateMainTables extends Migration
*/ */
private function createRoleTable() private function createRoleTable()
{ {
if (!Schema::hasTable('role_user')) { if (!Schema::hasTable('role_user')) {
Schema::create( Schema::create(
'role_user', function (Blueprint $table) { 'role_user',
$table->integer('user_id', false, true); function (Blueprint $table) {
$table->integer('role_id', false, true); $table->integer('user_id', false, true);
$table->integer('role_id', false, true);
$table->foreign('user_id')->references('id')->on('users')->onUpdate('cascade')->onDelete('cascade'); $table->foreign('user_id')->references('id')->on('users')->onUpdate('cascade')->onDelete('cascade');
$table->foreign('role_id')->references('id')->on('roles')->onUpdate('cascade')->onDelete('cascade'); $table->foreign('role_id')->references('id')->on('roles')->onUpdate('cascade')->onDelete('cascade');
$table->primary(['user_id', 'role_id']); $table->primary(['user_id', 'role_id']);
}
}
); );
} }
} }
/** /**
@ -376,81 +379,85 @@ class CreateMainTables extends Migration
{ {
if (!Schema::hasTable('rule_groups')) { if (!Schema::hasTable('rule_groups')) {
Schema::create( Schema::create(
'rule_groups', function (Blueprint $table) { 'rule_groups',
$table->increments('id'); function (Blueprint $table) {
$table->timestamps(); $table->increments('id');
$table->softDeletes(); $table->timestamps();
$table->integer('user_id', false, true); $table->softDeletes();
$table->string('title', 255); $table->integer('user_id', false, true);
$table->text('description')->nullable(); $table->string('title', 255);
$table->integer('order', false, true)->default(0); $table->text('description')->nullable();
$table->boolean('active')->default(1); $table->integer('order', false, true)->default(0);
$table->boolean('active')->default(1);
// link user id to users table // link user id to users table
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
} }
); );
} }
if (!Schema::hasTable('rules')) { if (!Schema::hasTable('rules')) {
Schema::create( Schema::create(
'rules', function (Blueprint $table) { 'rules',
$table->increments('id'); function (Blueprint $table) {
$table->timestamps(); $table->increments('id');
$table->softDeletes(); $table->timestamps();
$table->integer('user_id', false, true); $table->softDeletes();
$table->integer('rule_group_id', false, true); $table->integer('user_id', false, true);
$table->string('title', 255); $table->integer('rule_group_id', false, true);
$table->text('description')->nullable(); $table->string('title', 255);
$table->integer('order', false, true)->default(0); $table->text('description')->nullable();
$table->boolean('active')->default(1); $table->integer('order', false, true)->default(0);
$table->boolean('stop_processing')->default(0); $table->boolean('active')->default(1);
$table->boolean('stop_processing')->default(0);
// link user id to users table // link user id to users table
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
// link rule group id to rule group table // link rule group id to rule group table
$table->foreign('rule_group_id')->references('id')->on('rule_groups')->onDelete('cascade'); $table->foreign('rule_group_id')->references('id')->on('rule_groups')->onDelete('cascade');
} }
); );
} }
if (!Schema::hasTable('rule_actions')) { if (!Schema::hasTable('rule_actions')) {
Schema::create( Schema::create(
'rule_actions', function (Blueprint $table) { 'rule_actions',
$table->increments('id'); function (Blueprint $table) {
$table->timestamps(); $table->increments('id');
$table->integer('rule_id', false, true); $table->timestamps();
$table->integer('rule_id', false, true);
$table->string('action_type', 50); $table->string('action_type', 50);
$table->string('action_value', 255); $table->string('action_value', 255);
$table->integer('order', false, true)->default(0); $table->integer('order', false, true)->default(0);
$table->boolean('active')->default(1); $table->boolean('active')->default(1);
$table->boolean('stop_processing')->default(0); $table->boolean('stop_processing')->default(0);
// link rule id to rules table // link rule id to rules table
$table->foreign('rule_id')->references('id')->on('rules')->onDelete('cascade'); $table->foreign('rule_id')->references('id')->on('rules')->onDelete('cascade');
} }
); );
} }
if (!Schema::hasTable('rule_triggers')) { if (!Schema::hasTable('rule_triggers')) {
Schema::create( Schema::create(
'rule_triggers', function (Blueprint $table) { 'rule_triggers',
$table->increments('id'); function (Blueprint $table) {
$table->timestamps(); $table->increments('id');
$table->integer('rule_id', false, true); $table->timestamps();
$table->integer('rule_id', false, true);
$table->string('trigger_type', 50); $table->string('trigger_type', 50);
$table->string('trigger_value', 255); $table->string('trigger_value', 255);
$table->integer('order', false, true)->default(0); $table->integer('order', false, true)->default(0);
$table->boolean('active')->default(1); $table->boolean('active')->default(1);
$table->boolean('stop_processing')->default(0); $table->boolean('stop_processing')->default(0);
// link rule id to rules table // link rule id to rules table
$table->foreign('rule_id')->references('id')->on('rules')->onDelete('cascade'); $table->foreign('rule_id')->references('id')->on('rules')->onDelete('cascade');
} }
); );
} }
} }
@ -462,24 +469,24 @@ class CreateMainTables extends Migration
{ {
if (!Schema::hasTable('tags')) { if (!Schema::hasTable('tags')) {
Schema::create( Schema::create(
'tags', function (Blueprint $table) { 'tags',
$table->increments('id'); function (Blueprint $table) {
$table->timestamps(); $table->increments('id');
$table->softDeletes(); $table->timestamps();
$table->integer('user_id', false, true); $table->softDeletes();
$table->integer('user_id', false, true);
$table->string('tag', 1024); $table->string('tag', 1024);
$table->string('tagMode', 1024); $table->string('tagMode', 1024);
$table->date('date')->nullable(); $table->date('date')->nullable();
$table->text('description')->nullable(); $table->text('description')->nullable();
$table->decimal('latitude', 24, 12)->nullable(); $table->decimal('latitude', 24, 12)->nullable();
$table->decimal('longitude', 24, 12)->nullable(); $table->decimal('longitude', 24, 12)->nullable();
$table->smallInteger('zoomLevel', false, true)->nullable(); $table->smallInteger('zoomLevel', false, true)->nullable();
// link user id to users table // link user id to users table
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
}
}
); );
} }
} }
@ -493,141 +500,147 @@ class CreateMainTables extends Migration
{ {
if (!Schema::hasTable('transaction_journals')) { if (!Schema::hasTable('transaction_journals')) {
Schema::create( Schema::create(
'transaction_journals', function (Blueprint $table) { 'transaction_journals',
$table->increments('id'); function (Blueprint $table) {
$table->timestamps(); $table->increments('id');
$table->softDeletes(); $table->timestamps();
$table->integer('user_id', false, true); $table->softDeletes();
$table->integer('transaction_type_id', false, true); $table->integer('user_id', false, true);
$table->integer('bill_id', false, true)->nullable(); $table->integer('transaction_type_id', false, true);
$table->integer('transaction_currency_id', false, true); $table->integer('bill_id', false, true)->nullable();
$table->string('description', 1024); $table->integer('transaction_currency_id', false, true);
$table->date('date'); $table->string('description', 1024);
$table->date('interest_date')->nullable(); $table->date('date');
$table->date('book_date')->nullable(); $table->date('interest_date')->nullable();
$table->date('process_date')->nullable(); $table->date('book_date')->nullable();
$table->integer('order', false, true)->default(0); $table->date('process_date')->nullable();
$table->integer('tag_count', false, true); $table->integer('order', false, true)->default(0);
$table->boolean('encrypted')->default(1); $table->integer('tag_count', false, true);
$table->boolean('completed')->default(1); $table->boolean('encrypted')->default(1);
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); $table->boolean('completed')->default(1);
$table->foreign('transaction_type_id')->references('id')->on('transaction_types')->onDelete('cascade'); $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->foreign('bill_id')->references('id')->on('bills')->onDelete('set null'); $table->foreign('transaction_type_id')->references('id')->on('transaction_types')->onDelete('cascade');
$table->foreign('transaction_currency_id')->references('id')->on('transaction_currencies')->onDelete('cascade'); $table->foreign('bill_id')->references('id')->on('bills')->onDelete('set null');
} $table->foreign('transaction_currency_id')->references('id')->on('transaction_currencies')->onDelete('cascade');
}
); );
} }
if (!Schema::hasTable('journal_meta')) { if (!Schema::hasTable('journal_meta')) {
Schema::create( Schema::create(
'journal_meta', function (Blueprint $table) { 'journal_meta',
$table->increments('id'); function (Blueprint $table) {
$table->timestamps(); $table->increments('id');
$table->integer('transaction_journal_id', false, true); $table->timestamps();
$table->string('name', 255); $table->integer('transaction_journal_id', false, true);
$table->text('data'); $table->string('name', 255);
$table->string('hash', 64); $table->text('data');
$table->foreign('transaction_journal_id')->references('id')->on('transaction_journals')->onDelete('cascade'); $table->string('hash', 64);
} $table->foreign('transaction_journal_id')->references('id')->on('transaction_journals')->onDelete('cascade');
}
); );
} }
if (!Schema::hasTable('tag_transaction_journal')) { if (!Schema::hasTable('tag_transaction_journal')) {
Schema::create( Schema::create(
'tag_transaction_journal', function (Blueprint $table) { 'tag_transaction_journal',
$table->increments('id'); function (Blueprint $table) {
$table->integer('tag_id', false, true); $table->increments('id');
$table->integer('transaction_journal_id', false, true); $table->integer('tag_id', false, true);
$table->foreign('tag_id')->references('id')->on('tags')->onDelete('cascade'); $table->integer('transaction_journal_id', false, true);
$table->foreign('transaction_journal_id')->references('id')->on('transaction_journals')->onDelete('cascade'); $table->foreign('tag_id')->references('id')->on('tags')->onDelete('cascade');
$table->foreign('transaction_journal_id')->references('id')->on('transaction_journals')->onDelete('cascade');
}
}
); );
} }
if (!Schema::hasTable('budget_transaction_journal')) { if (!Schema::hasTable('budget_transaction_journal')) {
Schema::create( Schema::create(
'budget_transaction_journal', function (Blueprint $table) { 'budget_transaction_journal',
$table->increments('id'); function (Blueprint $table) {
$table->integer('budget_id', false, true); $table->increments('id');
$table->integer('transaction_journal_id', false, true); $table->integer('budget_id', false, true);
$table->foreign('budget_id')->references('id')->on('budgets')->onDelete('cascade'); $table->integer('transaction_journal_id', false, true);
$table->foreign('transaction_journal_id')->references('id')->on('transaction_journals')->onDelete('cascade'); $table->foreign('budget_id')->references('id')->on('budgets')->onDelete('cascade');
} $table->foreign('transaction_journal_id')->references('id')->on('transaction_journals')->onDelete('cascade');
}
); );
} }
if (!Schema::hasTable('category_transaction_journal')) { if (!Schema::hasTable('category_transaction_journal')) {
Schema::create( Schema::create(
'category_transaction_journal', function (Blueprint $table) { 'category_transaction_journal',
$table->increments('id'); function (Blueprint $table) {
$table->integer('category_id', false, true); $table->increments('id');
$table->integer('transaction_journal_id', false, true); $table->integer('category_id', false, true);
$table->foreign('category_id')->references('id')->on('categories')->onDelete('cascade'); $table->integer('transaction_journal_id', false, true);
$table->foreign('transaction_journal_id')->references('id')->on('transaction_journals')->onDelete('cascade'); $table->foreign('category_id')->references('id')->on('categories')->onDelete('cascade');
} $table->foreign('transaction_journal_id')->references('id')->on('transaction_journals')->onDelete('cascade');
}
); );
} }
if (!Schema::hasTable('piggy_bank_events')) { if (!Schema::hasTable('piggy_bank_events')) {
Schema::create( Schema::create(
'piggy_bank_events', function (Blueprint $table) { 'piggy_bank_events',
$table->increments('id'); function (Blueprint $table) {
$table->timestamps(); $table->increments('id');
$table->integer('piggy_bank_id', false, true); $table->timestamps();
$table->integer('transaction_journal_id', false, true)->nullable(); $table->integer('piggy_bank_id', false, true);
$table->date('date'); $table->integer('transaction_journal_id', false, true)->nullable();
$table->decimal('amount', 22, 12); $table->date('date');
$table->decimal('amount', 22, 12);
$table->foreign('piggy_bank_id')->references('id')->on('piggy_banks')->onDelete('cascade'); $table->foreign('piggy_bank_id')->references('id')->on('piggy_banks')->onDelete('cascade');
$table->foreign('transaction_journal_id')->references('id')->on('transaction_journals')->onDelete('set null'); $table->foreign('transaction_journal_id')->references('id')->on('transaction_journals')->onDelete('set null');
} }
); );
} }
if (!Schema::hasTable('transactions')) { if (!Schema::hasTable('transactions')) {
Schema::create( Schema::create(
'transactions', function (Blueprint $table) { 'transactions',
$table->increments('id'); function (Blueprint $table) {
$table->timestamps(); $table->increments('id');
$table->softDeletes(); $table->timestamps();
$table->integer('account_id', false, true); $table->softDeletes();
$table->integer('transaction_journal_id', false, true); $table->integer('account_id', false, true);
$table->string('description', 1024)->nullable(); $table->integer('transaction_journal_id', false, true);
$table->decimal('amount', 22, 12); $table->string('description', 1024)->nullable();
$table->decimal('amount', 22, 12);
$table->foreign('account_id')->references('id')->on('accounts')->onDelete('cascade'); $table->foreign('account_id')->references('id')->on('accounts')->onDelete('cascade');
$table->foreign('transaction_journal_id')->references('id')->on('transaction_journals')->onDelete('cascade'); $table->foreign('transaction_journal_id')->references('id')->on('transaction_journals')->onDelete('cascade');
}
}
); );
} }
if (!Schema::hasTable('budget_transaction')) { if (!Schema::hasTable('budget_transaction')) {
Schema::create( Schema::create(
'budget_transaction', function (Blueprint $table) { 'budget_transaction',
$table->increments('id'); function (Blueprint $table) {
$table->integer('budget_id', false, true); $table->increments('id');
$table->integer('transaction_id', false, true); $table->integer('budget_id', false, true);
$table->integer('transaction_id', false, true);
$table->foreign('budget_id')->references('id')->on('budgets')->onDelete('cascade'); $table->foreign('budget_id')->references('id')->on('budgets')->onDelete('cascade');
$table->foreign('transaction_id')->references('id')->on('transactions')->onDelete('cascade'); $table->foreign('transaction_id')->references('id')->on('transactions')->onDelete('cascade');
} }
); );
} }
if (!Schema::hasTable('category_transaction')) { if (!Schema::hasTable('category_transaction')) {
Schema::create( Schema::create(
'category_transaction', function (Blueprint $table) { 'category_transaction',
$table->increments('id'); function (Blueprint $table) {
$table->integer('category_id', false, true); $table->increments('id');
$table->integer('transaction_id', false, true); $table->integer('category_id', false, true);
$table->integer('transaction_id', false, true);
$table->foreign('category_id')->references('id')->on('categories')->onDelete('cascade'); $table->foreign('category_id')->references('id')->on('categories')->onDelete('cascade');
$table->foreign('transaction_id')->references('id')->on('transactions')->onDelete('cascade'); $table->foreign('transaction_id')->references('id')->on('transactions')->onDelete('cascade');
} }
); );
} }
} }

View File

@ -34,9 +34,10 @@ class ChangesFor3101 extends Migration
public function up() public function up()
{ {
Schema::table( Schema::table(
'import_jobs', function (Blueprint $table) { 'import_jobs',
$table->text('extended_status')->nullable(); function (Blueprint $table) {
} $table->text('extended_status')->nullable();
}
); );
} }
} }

View File

@ -24,7 +24,6 @@ class FixNullables extends Migration
*/ */
public function down() public function down()
{ {
} }
/** /**
@ -35,15 +34,17 @@ class FixNullables extends Migration
public function up() public function up()
{ {
Schema::table( Schema::table(
'rule_groups', function (Blueprint $table) { 'rule_groups',
$table->text('description')->nullable()->change(); function (Blueprint $table) {
} $table->text('description')->nullable()->change();
}
); );
Schema::table( Schema::table(
'rules', function (Blueprint $table) { 'rules',
$table->text('description')->nullable()->change(); function (Blueprint $table) {
} $table->text('description')->nullable()->change();
}
); );
} }
} }

View File

@ -35,9 +35,10 @@ class ExpandTransactionsTable extends Migration
public function up() public function up()
{ {
Schema::table( Schema::table(
'transactions', function (Blueprint $table) { 'transactions',
$table->smallInteger('identifier', false, true)->default(0); function (Blueprint $table) {
} $table->smallInteger('identifier', false, true)->default(0);
}
); );
} }
} }

View File

@ -14,7 +14,6 @@ declare(strict_types=1);
use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Schema\Blueprint;
/** /**
* Class ChangesForV410 * Class ChangesForV410
*/ */
@ -36,15 +35,16 @@ class ChangesForV410 extends Migration
public function up() public function up()
{ {
Schema::create( Schema::create(
'notes', function (Blueprint $table) { 'notes',
$table->increments('id'); function (Blueprint $table) {
$table->timestamps(); $table->increments('id');
$table->softDeletes(); $table->timestamps();
$table->integer('noteable_id', false, true); $table->softDeletes();
$table->string('noteable_type'); $table->integer('noteable_id', false, true);
$table->string('title')->nullable(); $table->string('noteable_type');
$table->text('text')->nullable(); $table->string('title')->nullable();
} $table->text('text')->nullable();
}
); );
} }
} }

View File

@ -35,9 +35,10 @@ class ChangesForV420 extends Migration
public function up() public function up()
{ {
Schema::table( Schema::table(
'journal_meta', function (Blueprint $table) { 'journal_meta',
$table->softDeletes(); function (Blueprint $table) {
} $table->softDeletes();
}
); );
} }
} }

View File

@ -36,20 +36,21 @@ class ChangesForV430 extends Migration
public function up() public function up()
{ {
Schema::create( Schema::create(
'available_budgets', function (Blueprint $table) { 'available_budgets',
$table->increments('id'); function (Blueprint $table) {
$table->timestamps(); $table->increments('id');
$table->softDeletes(); $table->timestamps();
$table->integer('user_id', false, true); $table->softDeletes();
$table->integer('transaction_currency_id', false, true); $table->integer('user_id', false, true);
$table->decimal('amount', 22, 12); $table->integer('transaction_currency_id', false, true);
$table->date('start_date'); $table->decimal('amount', 22, 12);
$table->date('end_date'); $table->date('start_date');
$table->date('end_date');
$table->foreign('transaction_currency_id')->references('id')->on('transaction_currencies')->onDelete('cascade'); $table->foreign('transaction_currency_id')->references('id')->on('transaction_currencies')->onDelete('cascade');
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
} }
); );
} }
} }

View File

@ -28,24 +28,26 @@ class ChangesForV431 extends Migration
{ {
// reinstate "repeats" and "repeat_freq". // reinstate "repeats" and "repeat_freq".
Schema::table( Schema::table(
'budget_limits', function (Blueprint $table) { 'budget_limits',
$table->string('repeat_freq', 30)->nullable(); function (Blueprint $table) {
} $table->string('repeat_freq', 30)->nullable();
}
); );
Schema::table( Schema::table(
'budget_limits', function (Blueprint $table) { 'budget_limits',
$table->boolean('repeats')->default(0); function (Blueprint $table) {
} $table->boolean('repeats')->default(0);
}
); );
// remove date field "end_date" // remove date field "end_date"
Schema::table( Schema::table(
'budget_limits', function (Blueprint $table) { 'budget_limits',
$table->dropColumn('end_date'); function (Blueprint $table) {
} $table->dropColumn('end_date');
}
); );
} }
/** /**
@ -57,38 +59,40 @@ class ChangesForV431 extends Migration
{ {
// add decimal places to "transaction currencies". // add decimal places to "transaction currencies".
Schema::table( Schema::table(
'transaction_currencies', function (Blueprint $table) { 'transaction_currencies',
$table->smallInteger('decimal_places', false, true)->default(2); function (Blueprint $table) {
} $table->smallInteger('decimal_places', false, true)->default(2);
}
); );
// change field "startdate" to "start_date" // change field "startdate" to "start_date"
Schema::table( Schema::table(
'budget_limits', function (Blueprint $table) { 'budget_limits',
$table->renameColumn('startdate', 'start_date'); function (Blueprint $table) {
} $table->renameColumn('startdate', 'start_date');
}
); );
// add date field "end_date" after "start_date" // add date field "end_date" after "start_date"
Schema::table( Schema::table(
'budget_limits', function (Blueprint $table) { 'budget_limits',
$table->date('end_date')->nullable()->after('start_date'); function (Blueprint $table) {
} $table->date('end_date')->nullable()->after('start_date');
}
); );
// drop "repeats" and "repeat_freq". // drop "repeats" and "repeat_freq".
Schema::table( Schema::table(
'budget_limits', function (Blueprint $table) { 'budget_limits',
$table->dropColumn('repeats'); function (Blueprint $table) {
$table->dropColumn('repeats');
} }
); );
Schema::table( Schema::table(
'budget_limits', function (Blueprint $table) { 'budget_limits',
$table->dropColumn('repeat_freq'); function (Blueprint $table) {
} $table->dropColumn('repeat_freq');
}
); );
} }
} }

View File

@ -42,30 +42,31 @@ class ChangesForV440 extends Migration
{ {
if (!Schema::hasTable('currency_exchange_rates')) { if (!Schema::hasTable('currency_exchange_rates')) {
Schema::create( Schema::create(
'currency_exchange_rates', function (Blueprint $table) { 'currency_exchange_rates',
$table->increments('id'); function (Blueprint $table) {
$table->timestamps(); $table->increments('id');
$table->softDeletes(); $table->timestamps();
$table->integer('user_id', false, true); $table->softDeletes();
$table->integer('from_currency_id', false, true); $table->integer('user_id', false, true);
$table->integer('to_currency_id', false, true); $table->integer('from_currency_id', false, true);
$table->date('date'); $table->integer('to_currency_id', false, true);
$table->decimal('rate', 22, 12); $table->date('date');
$table->decimal('user_rate', 22, 12)->nullable(); $table->decimal('rate', 22, 12);
$table->decimal('user_rate', 22, 12)->nullable();
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->foreign('from_currency_id')->references('id')->on('transaction_currencies')->onDelete('cascade'); $table->foreign('from_currency_id')->references('id')->on('transaction_currencies')->onDelete('cascade');
$table->foreign('to_currency_id')->references('id')->on('transaction_currencies')->onDelete('cascade'); $table->foreign('to_currency_id')->references('id')->on('transaction_currencies')->onDelete('cascade');
} }
); );
} }
// //
Schema::table( Schema::table(
'transactions', function (Blueprint $table) { 'transactions',
$table->integer('transaction_currency_id', false, true)->after('description')->nullable(); function (Blueprint $table) {
$table->foreign('transaction_currency_id')->references('id')->on('transaction_currencies')->onDelete('set null'); $table->integer('transaction_currency_id', false, true)->after('description')->nullable();
} $table->foreign('transaction_currency_id')->references('id')->on('transaction_currencies')->onDelete('set null');
}
); );
} }
} }

View File

@ -39,17 +39,19 @@ class ChangesForV450 extends Migration
{ {
// add "foreign_amount" to transactions // add "foreign_amount" to transactions
Schema::table( Schema::table(
'transactions', function (Blueprint $table) { 'transactions',
$table->decimal('foreign_amount', 22, 12)->nullable()->after('amount'); function (Blueprint $table) {
} $table->decimal('foreign_amount', 22, 12)->nullable()->after('amount');
}
); );
// add foreign transaction currency id to transactions (is nullable): // add foreign transaction currency id to transactions (is nullable):
Schema::table( Schema::table(
'transactions', function (Blueprint $table) { 'transactions',
$table->integer('foreign_currency_id', false, true)->default(null)->after('foreign_amount')->nullable(); function (Blueprint $table) {
$table->foreign('foreign_currency_id')->references('id')->on('transaction_currencies')->onDelete('set null'); $table->integer('foreign_currency_id', false, true)->default(null)->after('foreign_amount')->nullable();
} $table->foreign('foreign_currency_id')->references('id')->on('transaction_currencies')->onDelete('set null');
}
); );
} }
} }

View File

@ -20,7 +20,6 @@ class ChangesForV470 extends Migration
{ {
Schema::dropIfExists('journal_links'); Schema::dropIfExists('journal_links');
Schema::dropIfExists('link_types'); Schema::dropIfExists('link_types');
} }
/** /**
@ -33,38 +32,38 @@ class ChangesForV470 extends Migration
{ {
if (!Schema::hasTable('link_types')) { if (!Schema::hasTable('link_types')) {
Schema::create( Schema::create(
'link_types', function (Blueprint $table) { 'link_types',
$table->increments('id'); function (Blueprint $table) {
$table->timestamps(); $table->increments('id');
$table->softDeletes(); $table->timestamps();
$table->string('name'); $table->softDeletes();
$table->string('outward'); $table->string('name');
$table->string('inward'); $table->string('outward');
$table->boolean('editable'); $table->string('inward');
$table->boolean('editable');
$table->unique(['name', 'outward','inward']); $table->unique(['name', 'outward','inward']);
} }
); );
} }
if (!Schema::hasTable('journal_links')) { if (!Schema::hasTable('journal_links')) {
Schema::create( Schema::create(
'journal_links', function (Blueprint $table) { 'journal_links',
$table->increments('id'); function (Blueprint $table) {
$table->timestamps(); $table->increments('id');
$table->integer('link_type_id', false, true); $table->timestamps();
$table->integer('source_id', false, true); $table->integer('link_type_id', false, true);
$table->integer('destination_id', false, true); $table->integer('source_id', false, true);
$table->text('comment')->nullable(); $table->integer('destination_id', false, true);
$table->text('comment')->nullable();
$table->foreign('link_type_id')->references('id')->on('link_types')->onDelete('cascade'); $table->foreign('link_type_id')->references('id')->on('link_types')->onDelete('cascade');
$table->foreign('source_id')->references('id')->on('transaction_journals')->onDelete('cascade'); $table->foreign('source_id')->references('id')->on('transaction_journals')->onDelete('cascade');
$table->foreign('destination_id')->references('id')->on('transaction_journals')->onDelete('cascade'); $table->foreign('destination_id')->references('id')->on('transaction_journals')->onDelete('cascade');
$table->unique(['link_type_id','source_id','destination_id']); $table->unique(['link_type_id','source_id','destination_id']);
}
}
); );
} }
} }

View File

@ -27,9 +27,10 @@ class ChangesForV470a extends Migration
public function up() public function up()
{ {
Schema::table( Schema::table(
'transactions', function (Blueprint $table) { 'transactions',
$table->boolean('reconciled')->after('deleted_at')->default(0); function (Blueprint $table) {
} $table->boolean('reconciled')->after('deleted_at')->default(0);
}
); );
} }
} }

View File

@ -31,6 +31,4 @@ class AccountTypeSeeder extends Seeder
AccountType::create(['type' => 'Import account']); AccountType::create(['type' => 'Import account']);
AccountType::create(['type' => 'Loan']); AccountType::create(['type' => 'Loan']);
} }
} }

View File

@ -29,6 +29,5 @@ class DatabaseSeeder extends Seeder
$this->call(TransactionTypeSeeder::class); $this->call(TransactionTypeSeeder::class);
$this->call(PermissionSeeder::class); $this->call(PermissionSeeder::class);
$this->call(LinkTypeSeeder::class); $this->call(LinkTypeSeeder::class);
} }
} }

View File

@ -51,7 +51,5 @@ class LinkTypeSeeder extends Seeder
$link->outward = '(partially) reimburses'; $link->outward = '(partially) reimburses';
$link->editable = false; $link->editable = false;
$link->save(); $link->save();
} }
} }

View File

@ -33,7 +33,5 @@ class PermissionSeeder extends Seeder
$demo->display_name = 'Demo User'; $demo->display_name = 'Demo User';
$demo->description = 'User is a demo user'; $demo->description = 'User is a demo user';
$demo->save(); $demo->save();
} }
} }

View File

@ -30,5 +30,4 @@ class TransactionCurrencySeeder extends Seeder
TransactionCurrency::create(['code' => 'XBT', 'name' => 'Bitcoin', 'symbol' => 'B', 'decimal_places' => 8]); TransactionCurrency::create(['code' => 'XBT', 'name' => 'Bitcoin', 'symbol' => 'B', 'decimal_places' => 8]);
TransactionCurrency::create(['code' => 'JPY', 'name' => 'Japanese yen', 'symbol' => '¥', 'decimal_places' => 2]); TransactionCurrency::create(['code' => 'JPY', 'name' => 'Japanese yen', 'symbol' => '¥', 'decimal_places' => 2]);
} }
} }

View File

@ -26,5 +26,4 @@ class TransactionTypeSeeder extends Seeder
TransactionType::create(['type' => TransactionType::TRANSFER]); TransactionType::create(['type' => TransactionType::TRANSFER]);
TransactionType::create(['type' => TransactionType::OPENING_BALANCE]); TransactionType::create(['type' => TransactionType::OPENING_BALANCE]);
} }
} }