feat: VivesPOS landing on Winter CMS 1.2 — theme + plugin + Dockerfile
Some checks are pending
Module sub-split / Sub-split (push) Waiting to run
Some checks are pending
Module sub-split / Sub-split (push) Waiting to run
- Base: wintercms/winter branch 1.2 (full framework) - Theme vivespos: Canvas 7 + Bootstrap 5 CDN, custom CSS - Layout: deferred GTM/GA4 tracking, JSON-LD SoftwareApplication - Partials: hero (offline-first), features, modes (offline/nube toggle), screenshots, pricing (3 planes), comparison, FAQ, CTA - Plugin VivesPOS.Site with ContactForm - Dockerfile: PHP 8.2 Apache, port 80, healthcheck - Added winter/wn-pages, blog, sitemap, seo plugins - Active theme set to vivespos
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
use Winter\Storm\Database\Schema\Blueprint;
|
||||
use Winter\Storm\Database\Updates\Migration;
|
||||
|
||||
class DbDeferredBindings extends Migration
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
Schema::create('deferred_bindings', function (Blueprint $table) {
|
||||
$table->engine = 'InnoDB';
|
||||
$table->increments('id');
|
||||
$table->string('master_type')->index();
|
||||
$table->string('master_field')->index();
|
||||
$table->string('slave_type')->index();
|
||||
$table->string('slave_id')->index();
|
||||
$table->string('session_key');
|
||||
$table->boolean('is_bind')->default(true);
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('deferred_bindings');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
use Winter\Storm\Database\Schema\Blueprint;
|
||||
use Winter\Storm\Database\Updates\Migration;
|
||||
|
||||
class DbSystemFiles extends Migration
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
Schema::create('system_files', function (Blueprint $table) {
|
||||
$table->engine = 'InnoDB';
|
||||
$table->increments('id');
|
||||
$table->string('disk_name');
|
||||
$table->string('file_name');
|
||||
$table->integer('file_size');
|
||||
$table->string('content_type');
|
||||
$table->string('title')->nullable();
|
||||
$table->text('description')->nullable();
|
||||
$table->string('field')->nullable()->index();
|
||||
$table->string('attachment_id')->index()->nullable();
|
||||
$table->string('attachment_type')->index()->nullable();
|
||||
$table->boolean('is_public')->default(true);
|
||||
$table->integer('sort_order')->nullable();
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('system_files');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
use Winter\Storm\Database\Schema\Blueprint;
|
||||
use Winter\Storm\Database\Updates\Migration;
|
||||
|
||||
class DbSystemPluginVersions extends Migration
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
Schema::create('system_plugin_versions', function (Blueprint $table) {
|
||||
$table->engine = 'InnoDB';
|
||||
$table->increments('id');
|
||||
$table->string('code')->index();
|
||||
$table->string('version', 50);
|
||||
$table->timestamp('created_at')->nullable();
|
||||
});
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('system_plugin_versions');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
use Winter\Storm\Database\Schema\Blueprint;
|
||||
use Winter\Storm\Database\Updates\Migration;
|
||||
|
||||
class DbSystemPluginHistory extends Migration
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
Schema::create('system_plugin_history', function (Blueprint $table) {
|
||||
$table->engine = 'InnoDB';
|
||||
$table->increments('id');
|
||||
$table->string('code')->index();
|
||||
$table->string('type', 20)->index();
|
||||
$table->string('version', 50);
|
||||
$table->string('detail')->nullable();
|
||||
$table->timestamp('created_at')->nullable();
|
||||
});
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('system_plugin_history');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
use Winter\Storm\Database\Schema\Blueprint;
|
||||
use Winter\Storm\Database\Updates\Migration;
|
||||
|
||||
class DbSystemSettings extends Migration
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
Schema::create('system_settings', function (Blueprint $table) {
|
||||
$table->engine = 'InnoDB';
|
||||
$table->increments('id');
|
||||
$table->string('item')->nullable()->index();
|
||||
$table->mediumtext('value')->nullable();
|
||||
});
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('system_settings');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
use Winter\Storm\Database\Schema\Blueprint;
|
||||
use Winter\Storm\Database\Updates\Migration;
|
||||
|
||||
class DbSystemParameters extends Migration
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
Schema::create('system_parameters', function (Blueprint $table) {
|
||||
$table->engine = 'InnoDB';
|
||||
$table->increments('id');
|
||||
$table->string('namespace', 100);
|
||||
$table->string('group', 50);
|
||||
$table->string('item', 150);
|
||||
$table->text('value')->nullable();
|
||||
$table->index(['namespace', 'group', 'item'], 'item_index');
|
||||
});
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('system_parameters');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
use Winter\Storm\Database\Schema\Blueprint;
|
||||
use Winter\Storm\Database\Updates\Migration;
|
||||
|
||||
class DbSystemAddDisabledFlag extends Migration
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
Schema::table('system_plugin_versions', function (Blueprint $table) {
|
||||
$table->boolean('is_disabled')->default(0);
|
||||
});
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
Schema::table('system_plugin_versions', function (Blueprint $table) {
|
||||
$table->dropColumn('is_disabled');
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
use Winter\Storm\Database\Schema\Blueprint;
|
||||
use Winter\Storm\Database\Updates\Migration;
|
||||
|
||||
class DbSystemMailTemplates extends Migration
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
Schema::create('system_mail_templates', function (Blueprint $table) {
|
||||
$table->engine = 'InnoDB';
|
||||
$table->increments('id');
|
||||
$table->string('code')->nullable();
|
||||
$table->string('subject')->nullable();
|
||||
$table->text('description')->nullable();
|
||||
$table->text('content_html')->nullable();
|
||||
$table->text('content_text')->nullable();
|
||||
$table->integer('layout_id')->index()->nullable();
|
||||
$table->boolean('is_custom')->default(0);
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('system_mail_templates');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
use Winter\Storm\Database\Schema\Blueprint;
|
||||
use Winter\Storm\Database\Updates\Migration;
|
||||
|
||||
class DbSystemMailLayouts extends Migration
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
Schema::create('system_mail_layouts', function (Blueprint $table) {
|
||||
$table->engine = 'InnoDB';
|
||||
$table->increments('id');
|
||||
$table->string('name')->nullable();
|
||||
$table->string('code')->nullable();
|
||||
$table->text('content_html')->nullable();
|
||||
$table->text('content_text')->nullable();
|
||||
$table->text('content_css')->nullable();
|
||||
$table->boolean('is_locked')->default(0);
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('system_mail_layouts');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
use Winter\Storm\Database\Schema\Blueprint;
|
||||
use Winter\Storm\Database\Updates\Migration;
|
||||
|
||||
class DbJobs extends Migration
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
Schema::create($this->getTableName(), function (Blueprint $table) {
|
||||
$table->engine = 'InnoDB';
|
||||
$table->bigIncrements('id');
|
||||
$table->string('queue');
|
||||
$table->text('payload');
|
||||
$table->tinyInteger('attempts')->unsigned();
|
||||
$table->tinyInteger('reserved')->unsigned();
|
||||
$table->unsignedInteger('reserved_at')->nullable();
|
||||
$table->unsignedInteger('available_at');
|
||||
$table->unsignedInteger('created_at');
|
||||
});
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists($this->getTableName());
|
||||
}
|
||||
|
||||
protected function getTableName()
|
||||
{
|
||||
return Config::get('queue.connections.database.table', 'jobs');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
use Winter\Storm\Database\Schema\Blueprint;
|
||||
use Winter\Storm\Database\Updates\Migration;
|
||||
|
||||
class DbSystemEventLogs extends Migration
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
Schema::create('system_event_logs', function (Blueprint $table) {
|
||||
$table->engine = 'InnoDB';
|
||||
$table->increments('id');
|
||||
$table->string('level')->nullable()->index();
|
||||
$table->text('message')->nullable();
|
||||
$table->mediumtext('details')->nullable();
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('system_event_logs');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
use Winter\Storm\Database\Schema\Blueprint;
|
||||
use Winter\Storm\Database\Updates\Migration;
|
||||
|
||||
class DbSystemRequestLogs extends Migration
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
Schema::create('system_request_logs', function (Blueprint $table) {
|
||||
$table->engine = 'InnoDB';
|
||||
$table->increments('id');
|
||||
$table->integer('status_code')->nullable();
|
||||
$table->string('url')->nullable();
|
||||
$table->text('referer')->nullable();
|
||||
$table->integer('count')->default(0);
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('system_request_logs');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
use Winter\Storm\Database\Schema\Blueprint;
|
||||
use Winter\Storm\Database\Updates\Migration;
|
||||
|
||||
class DbSystemSessions extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('sessions', function (Blueprint $table) {
|
||||
$table->string('id')->unique();
|
||||
$table->text('payload')->nullable();
|
||||
$table->integer('last_activity')->nullable();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('sessions');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
use System\Models\MailLayout;
|
||||
use Winter\Storm\Database\Updates\Migration;
|
||||
|
||||
class DbSystemMailLayoutRename extends Migration
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
foreach (MailLayout::all() as $layout) {
|
||||
try {
|
||||
$layout->content_html = preg_replace("/({{\s*message\s*[|]raw\s*}})/i", "{{ content|raw }}", $layout->content_html);
|
||||
$layout->content_text = preg_replace("/({{\s*message\s*[|]raw\s*}})/i", "{{ content|raw }}", $layout->content_text);
|
||||
$layout->forceSave();
|
||||
}
|
||||
catch (Exception $ex) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
use Winter\Storm\Database\Schema\Blueprint;
|
||||
use Winter\Storm\Database\Updates\Migration;
|
||||
|
||||
class DbSystemAddFrozenFlag extends Migration
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
Schema::table('system_plugin_versions', function (Blueprint $table) {
|
||||
$table->boolean('is_frozen')->default(0);
|
||||
});
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
Schema::table('system_plugin_versions', function (Blueprint $table) {
|
||||
$table->dropColumn('is_frozen');
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
use Winter\Storm\Database\Schema\Blueprint;
|
||||
use Winter\Storm\Database\Updates\Migration;
|
||||
|
||||
class DbCache extends Migration
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
Schema::create('cache', function (Blueprint $table) {
|
||||
$table->string('key')->unique();
|
||||
$table->longText('value');
|
||||
$table->integer('expiration');
|
||||
});
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('cache');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
use Winter\Storm\Database\Schema\Blueprint;
|
||||
use Winter\Storm\Database\Updates\Migration;
|
||||
|
||||
class DbSystemRevisions extends Migration
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
Schema::create('system_revisions', function (Blueprint $table) {
|
||||
$table->engine = 'InnoDB';
|
||||
$table->increments('id');
|
||||
$table->integer('user_id')->unsigned()->nullable()->index();
|
||||
$table->string('field')->nullable()->index();
|
||||
$table->string('cast')->nullable();
|
||||
$table->text('old_value')->nullable();
|
||||
$table->text('new_value')->nullable();
|
||||
$table->string('revisionable_type');
|
||||
$table->integer('revisionable_id');
|
||||
$table->timestamps();
|
||||
$table->index(['revisionable_id', 'revisionable_type']);
|
||||
});
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('system_revisions');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
use Winter\Storm\Database\Schema\Blueprint;
|
||||
use Winter\Storm\Database\Updates\Migration;
|
||||
|
||||
class DbFailedJobs extends Migration
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
Schema::create($this->getTableName(), function (Blueprint $table) {
|
||||
$table->engine = 'InnoDB';
|
||||
$table->increments('id');
|
||||
$table->text('connection');
|
||||
$table->text('queue');
|
||||
$table->text('payload');
|
||||
$table->timestamp('failed_at')->nullable();
|
||||
});
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists($this->getTableName());
|
||||
}
|
||||
|
||||
protected function getTableName()
|
||||
{
|
||||
return Config::get('queue.failed.table', 'failed_jobs');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
use Winter\Storm\Database\Schema\Blueprint;
|
||||
use Winter\Storm\Database\Updates\Migration;
|
||||
|
||||
class DbSystemPluginHistoryDetailText extends Migration
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
// Migration occurs before timestamps are patched (see next migration)
|
||||
DbDongle::disableStrictMode();
|
||||
|
||||
Schema::table('system_plugin_history', function (Blueprint $table) {
|
||||
$table->text('detail')->nullable()->change();
|
||||
});
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
Schema::table('system_plugin_history', function (Blueprint $table) {
|
||||
$table->string('detail')->nullable()->change();
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
|
||||
use Winter\Storm\Database\Updates\Migration;
|
||||
|
||||
/**
|
||||
* This migration addresses a MySQL specific issue around STRICT MODE.
|
||||
* In past versions, Laravel would give timestamps a bad default value
|
||||
* of "0" considered invalid by MySQL. Strict mode is disabled and the
|
||||
* the timestamps are patched up. Credit for this work: Dave Shoreman.
|
||||
*/
|
||||
class DbSystemTimestampFix extends Migration
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
DbDongle::disableStrictMode();
|
||||
|
||||
foreach ($this->getCoreTables() as $table => $columns) {
|
||||
if (is_int($table)) {
|
||||
$table = $columns;
|
||||
$columns = ['created_at', 'updated_at'];
|
||||
}
|
||||
|
||||
DbDongle::convertTimestamps($table, $columns);
|
||||
}
|
||||
|
||||
// Use this opportunity to reset backend styles for stable
|
||||
Db::table('system_settings')
|
||||
->where('item', 'backend_brand_settings')
|
||||
->delete();
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
// ...
|
||||
}
|
||||
|
||||
protected function getCoreTables()
|
||||
{
|
||||
$failedJobsTable = Config::get('queue.failed.table', 'failed_jobs');
|
||||
|
||||
return [
|
||||
'deferred_bindings',
|
||||
$failedJobsTable => 'failed_at',
|
||||
'system_files',
|
||||
'system_event_logs',
|
||||
'system_mail_layouts',
|
||||
'system_mail_templates',
|
||||
'system_plugin_history' => 'created_at',
|
||||
'system_plugin_versions' => 'created_at',
|
||||
'system_request_logs',
|
||||
'system_revisions',
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
class DbDeferredBindingsAddIndexSession extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table('deferred_bindings', function (Blueprint $table) {
|
||||
$table->index('session_key');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::table('deferred_bindings', function (Blueprint $table) {
|
||||
$table->dropIndex(['session_key']);
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
use Winter\Storm\Database\Schema\Blueprint;
|
||||
use Winter\Storm\Database\Updates\Migration;
|
||||
|
||||
class DbSystemSessionsUpdate extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table('sessions', function (Blueprint $table) {
|
||||
$table->unsignedInteger('user_id')->nullable();
|
||||
$table->string('ip_address', 45)->nullable();
|
||||
$table->text('user_agent')->nullable();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
// ...
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
<?php
|
||||
|
||||
use Winter\Storm\Database\Schema\Blueprint;
|
||||
use Winter\Storm\Database\Updates\Migration;
|
||||
|
||||
class DbJobsFailedJobsUpdate extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table($this->getTableName(), function (Blueprint $table) {
|
||||
$table->dropColumn('reserved');
|
||||
$table->index(['queue', 'reserved_at']);
|
||||
});
|
||||
|
||||
Schema::table($this->getFailedTableName(), function (Blueprint $table) {
|
||||
$table->longText('exception')->nullable()->after('payload');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::table($this->getTableName(), function (Blueprint $table) {
|
||||
$table->tinyInteger('reserved')->unsigned()->default(0);
|
||||
$table->dropIndex('jobs_queue_reserved_at_index');
|
||||
});
|
||||
|
||||
Schema::table($this->getFailedTableName(), function (Blueprint $table) {
|
||||
$table->dropColumn('exception');
|
||||
});
|
||||
}
|
||||
|
||||
protected function getTableName()
|
||||
{
|
||||
return Config::get('queue.connections.database.table', 'jobs');
|
||||
}
|
||||
|
||||
protected function getFailedTableName()
|
||||
{
|
||||
return Config::get('queue.failed.table', 'failed_jobs');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
use Winter\Storm\Database\Schema\Blueprint;
|
||||
use Winter\Storm\Database\Updates\Migration;
|
||||
|
||||
class DbSystemMailPartials extends Migration
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
Schema::create('system_mail_partials', function (Blueprint $table) {
|
||||
$table->engine = 'InnoDB';
|
||||
$table->increments('id');
|
||||
$table->string('name')->nullable();
|
||||
$table->string('code')->nullable();
|
||||
$table->text('content_html')->nullable();
|
||||
$table->text('content_text')->nullable();
|
||||
$table->boolean('is_custom')->default(0);
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('system_mail_partials');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
use Winter\Storm\Database\Schema\Blueprint;
|
||||
use Winter\Storm\Database\Updates\Migration;
|
||||
|
||||
class DbSystemMailLayoutsAddOptionsField extends Migration
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
Schema::table('system_mail_layouts', function (Blueprint $table) {
|
||||
$table->text('options')->nullable()->after('is_locked');
|
||||
});
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
Schema::table('system_mail_layouts', function (Blueprint $table) {
|
||||
$table->dropColumn('options');
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
use Winter\Storm\Database\Schema\Blueprint;
|
||||
use Winter\Storm\Database\Updates\Migration;
|
||||
|
||||
class DbAddPivotDataToDeferredBindings extends Migration
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
Schema::table('deferred_bindings', function (Blueprint $table) {
|
||||
$table->mediumText('pivot_data')->nullable()->after('slave_id');
|
||||
});
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
Schema::table('deferred_bindings', function (Blueprint $table) {
|
||||
$table->dropColumn('pivot_data');
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
use Winter\Storm\Database\Updates\Migration;
|
||||
use Carbon\Carbon;
|
||||
use System\Models\Parameter;
|
||||
use System\Models\PluginVersion;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
$appBirthday = Parameter::get('system::app.birthday');
|
||||
if ($appBirthday) {
|
||||
// Return early if the birthday has already been set
|
||||
return;
|
||||
}
|
||||
|
||||
$firstPluginCreated = PluginVersion::orderBy('created_at')
|
||||
->first()
|
||||
?->created_at;
|
||||
|
||||
$appBirthday = $firstPluginCreated ?: Carbon::now();
|
||||
|
||||
Parameter::set('system::app.birthday', $appBirthday);
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
use Winter\Storm\Database\Schema\Blueprint;
|
||||
use Winter\Storm\Support\Str;
|
||||
|
||||
return new class extends \Winter\Storm\Database\Updates\Migration
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
Schema::table($this->getTableName(), function (Blueprint $table) {
|
||||
$table->longText('payload')->change();
|
||||
});
|
||||
|
||||
Schema::table($this->getFailedTableName(), function (Blueprint $table) {
|
||||
$table->string('uuid')->nullable()->unique()->after('id');
|
||||
$table->longText('payload')->change();
|
||||
$table->longText('exception')->change();
|
||||
});
|
||||
|
||||
// Generate UUIDs for existing failed jobs
|
||||
DB::table($this->getFailedTableName())->whereNull('uuid')->cursor()->each(function ($job) {
|
||||
DB::table($this->getFailedTableName())
|
||||
->where('id', $job->id)
|
||||
->update(['uuid' => (string) Str::uuid()]);
|
||||
});
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
Schema::table($this->getFailedTableName(), function (Blueprint $table) {
|
||||
$table->dropColumn('uuid');
|
||||
});
|
||||
}
|
||||
|
||||
protected function getTableName()
|
||||
{
|
||||
return Config::get('queue.connections.database.table', 'jobs');
|
||||
}
|
||||
|
||||
protected function getFailedTableName()
|
||||
{
|
||||
return Config::get('queue.failed.table', 'failed_jobs');
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
use Winter\Storm\Database\Schema\Blueprint;
|
||||
use Winter\Storm\Support\Str;
|
||||
|
||||
return new class extends \Winter\Storm\Database\Updates\Migration
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
Schema::table('sessions', function ($table) {
|
||||
$table->index(['last_activity']);
|
||||
$table->index(['user_id']);
|
||||
});
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
Schema::table('sessions', function ($table) {
|
||||
$table->dropIndex(['last_activity']);
|
||||
$table->dropIndex(['user_id']);
|
||||
});
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
use Winter\Storm\Database\Schema\Blueprint;
|
||||
use Winter\Storm\Database\Updates\Migration;
|
||||
|
||||
class DbJobsBatches extends Migration
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
Schema::create($this->getTableName(), function (Blueprint $table) {
|
||||
$table->string('id')->primary();
|
||||
$table->string('name');
|
||||
$table->integer('total_jobs');
|
||||
$table->integer('pending_jobs');
|
||||
$table->integer('failed_jobs');
|
||||
$table->longText('failed_job_ids');
|
||||
$table->mediumText('options')->nullable();
|
||||
$table->integer('cancelled_at')->nullable();
|
||||
$table->integer('created_at');
|
||||
$table->integer('finished_at')->nullable();
|
||||
});
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists($this->getTableName());
|
||||
}
|
||||
|
||||
protected function getTableName()
|
||||
{
|
||||
return Config::get('queue.batching.table', 'job_batches');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
use Winter\Storm\Database\Schema\Blueprint;
|
||||
use Winter\Storm\Database\Updates\Migration;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
if (!Schema::hasColumn('system_files', 'metadata')) {
|
||||
Schema::table('system_files', function (Blueprint $table) {
|
||||
$table->mediumText('metadata')->nullable()->after('sort_order');
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
Schema::table('system_files', function (Blueprint $table) {
|
||||
$table->dropColumnIfExists('metadata');
|
||||
});
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
return new class extends \Winter\Storm\Database\Updates\Migration
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
Schema::table('system_request_logs', function ($table) {
|
||||
$table->index(['url', 'status_code']);
|
||||
});
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
Schema::table('system_request_logs', function ($table) {
|
||||
$table->dropIndex(['url', 'status_code']);
|
||||
});
|
||||
}
|
||||
};
|
||||
20
modules/system/database/seeds/DatabaseSeeder.php
Normal file
20
modules/system/database/seeds/DatabaseSeeder.php
Normal file
@@ -0,0 +1,20 @@
|
||||
<?php namespace System\Database\Seeds;
|
||||
|
||||
use Seeder;
|
||||
use Eloquent;
|
||||
|
||||
class DatabaseSeeder extends Seeder
|
||||
{
|
||||
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function run()
|
||||
{
|
||||
Eloquent::unguarded(function () {
|
||||
$this->call('System\Database\Seeds\SeedSetupMailLayouts');
|
||||
});
|
||||
}
|
||||
}
|
||||
12
modules/system/database/seeds/SeedSetupMailLayouts.php
Normal file
12
modules/system/database/seeds/SeedSetupMailLayouts.php
Normal file
@@ -0,0 +1,12 @@
|
||||
<?php namespace System\Database\Seeds;
|
||||
|
||||
use Seeder;
|
||||
use System\Models\MailLayout;
|
||||
|
||||
class SeedSetupMailLayouts extends Seeder
|
||||
{
|
||||
public function run()
|
||||
{
|
||||
MailLayout::createLayouts();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user