mirror of
https://github.com/cedar2025/Xboard.git
synced 2025-01-22 10:38:14 -05:00
refactor: consolidate and organize database migrations
Some checks are pending
Docker Build and Publish / build (push) Waiting to run
Some checks are pending
Docker Build and Publish / build (push) Waiting to run
This commit is contained in:
parent
ded0da79b0
commit
a6b68bb2e5
@ -13,6 +13,7 @@ class CreateFailedJobsTable extends Migration
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
if (!Schema::hasTable('failed_jobs')) {
|
||||
Schema::create('failed_jobs', function (Blueprint $table) {
|
||||
$table->bigIncrements('id');
|
||||
$table->text('connection');
|
||||
@ -22,6 +23,7 @@ class CreateFailedJobsTable extends Migration
|
||||
$table->timestamp('failed_at')->useCurrent();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
|
@ -4,13 +4,13 @@ use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
return new class extends Migration {
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
if (!Schema::hasTable('personal_access_tokens')) {
|
||||
Schema::create('personal_access_tokens', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->morphs('tokenable');
|
||||
@ -22,6 +22,7 @@ return new class extends Migration
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
|
496
database/migrations/2023_03_19_000000_create_v2_tables.php
Normal file
496
database/migrations/2023_03_19_000000_create_v2_tables.php
Normal file
@ -0,0 +1,496 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration {
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
// Commission Log
|
||||
if (!Schema::hasTable('v2_commission_log')) {
|
||||
Schema::create('v2_commission_log', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->integer('invite_user_id');
|
||||
$table->integer('user_id');
|
||||
$table->char('trade_no', 36);
|
||||
$table->integer('order_amount');
|
||||
$table->integer('get_amount');
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
});
|
||||
}
|
||||
|
||||
// Invite Code
|
||||
if (!Schema::hasTable('v2_invite_code')) {
|
||||
Schema::create('v2_invite_code', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->integer('user_id');
|
||||
$table->char('code', 32);
|
||||
$table->boolean('status')->default(false);
|
||||
$table->integer('pv')->default(0);
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
});
|
||||
}
|
||||
|
||||
// Knowledge
|
||||
if (!Schema::hasTable('v2_knowledge')) {
|
||||
Schema::create('v2_knowledge', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->char('language', 5)->comment('語言');
|
||||
$table->string('category')->comment('分類名');
|
||||
$table->string('title')->comment('標題');
|
||||
$table->text('body')->comment('內容');
|
||||
$table->integer('sort')->nullable()->comment('排序');
|
||||
$table->boolean('show')->default(false)->comment('顯示');
|
||||
$table->integer('created_at')->comment('創建時間');
|
||||
$table->integer('updated_at')->comment('更新時間');
|
||||
});
|
||||
}
|
||||
|
||||
// Plan
|
||||
if (!Schema::hasTable('v2_plan')) {
|
||||
Schema::create('v2_plan', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->integer('group_id');
|
||||
$table->integer('transfer_enable');
|
||||
$table->string('name');
|
||||
$table->integer('speed_limit')->nullable();
|
||||
$table->boolean('show')->default(false);
|
||||
$table->integer('sort')->nullable();
|
||||
$table->boolean('renew')->default(true);
|
||||
$table->text('content')->nullable();
|
||||
$table->integer('month_price')->nullable();
|
||||
$table->integer('quarter_price')->nullable();
|
||||
$table->integer('half_year_price')->nullable();
|
||||
$table->integer('year_price')->nullable();
|
||||
$table->integer('two_year_price')->nullable();
|
||||
$table->integer('three_year_price')->nullable();
|
||||
$table->integer('onetime_price')->nullable();
|
||||
$table->integer('reset_price')->nullable();
|
||||
$table->boolean('reset_traffic_method')->nullable()->comment('重置流量方式:0跟随系统设置、1每月1号、2按月重置、3不重置、4每年1月1日、5按年重置');
|
||||
$table->integer('capacity_limit')->nullable();
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
});
|
||||
}
|
||||
|
||||
// Server Group
|
||||
if (!Schema::hasTable('v2_server_group')) {
|
||||
Schema::create('v2_server_group', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->string('name');
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
});
|
||||
}
|
||||
|
||||
// Server Route
|
||||
if (!Schema::hasTable('v2_server_route')) {
|
||||
Schema::create('v2_server_route', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->string('remarks');
|
||||
$table->text('match');
|
||||
$table->string('action', 11);
|
||||
$table->string('action_value')->nullable();
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
});
|
||||
}
|
||||
|
||||
// stat server
|
||||
if (!Schema::hasTable('v2_stat_server')) {
|
||||
Schema::create('v2_stat_server', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->integer('server_id')->index('server_id')->comment('节点id');
|
||||
$table->char('server_type', 11)->comment('节点类型');
|
||||
$table->bigInteger('u');
|
||||
$table->bigInteger('d');
|
||||
$table->char('record_type', 1)->comment('d day m month');
|
||||
$table->integer('record_at')->index('record_at')->comment('记录时间');
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
|
||||
$table->unique(['server_id', 'server_type', 'record_at'], 'server_id_server_type_record_at');
|
||||
});
|
||||
}
|
||||
|
||||
// User
|
||||
if (!Schema::hasTable('v2_user')) {
|
||||
Schema::create('v2_user', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->integer('invite_user_id')->nullable();
|
||||
$table->bigInteger('telegram_id')->nullable();
|
||||
$table->string('email', 64)->unique('email');
|
||||
$table->string('password', 64);
|
||||
$table->char('password_algo', 10)->nullable();
|
||||
$table->char('password_salt', 10)->nullable();
|
||||
$table->integer('balance')->default(0);
|
||||
$table->integer('discount')->nullable();
|
||||
$table->tinyInteger('commission_type')->default(0)->comment('0: system 1: period 2: onetime');
|
||||
$table->integer('commission_rate')->nullable();
|
||||
$table->integer('commission_balance')->default(0);
|
||||
$table->integer('t')->default(0);
|
||||
$table->bigInteger('u')->default(0);
|
||||
$table->bigInteger('d')->default(0);
|
||||
$table->bigInteger('transfer_enable')->default(0);
|
||||
$table->boolean('banned')->default(false);
|
||||
$table->boolean('is_admin')->default(false);
|
||||
$table->integer('last_login_at')->nullable();
|
||||
$table->boolean('is_staff')->default(false);
|
||||
$table->integer('last_login_ip')->nullable();
|
||||
$table->string('uuid', 36);
|
||||
$table->integer('group_id')->nullable();
|
||||
$table->integer('plan_id')->nullable();
|
||||
$table->integer('speed_limit')->nullable();
|
||||
$table->tinyInteger('remind_expire')->nullable()->default(1);
|
||||
$table->tinyInteger('remind_traffic')->nullable()->default(1);
|
||||
$table->char('token', 32);
|
||||
$table->bigInteger('expired_at')->nullable()->default(0);
|
||||
$table->text('remarks')->nullable();
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
});
|
||||
}
|
||||
|
||||
// Mail Log
|
||||
if (!Schema::hasTable('v2_mail_log')) {
|
||||
Schema::create('v2_mail_log', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->string('email', 64);
|
||||
$table->string('subject');
|
||||
$table->string('template_name');
|
||||
$table->text('error')->nullable();
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
});
|
||||
}
|
||||
|
||||
// Log
|
||||
if (!Schema::hasTable('v2_log')) {
|
||||
Schema::create('v2_log', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->text('title');
|
||||
$table->string('level', 11)->nullable();
|
||||
$table->string('host')->nullable();
|
||||
$table->string('uri');
|
||||
$table->string('method', 11);
|
||||
$table->text('data')->nullable();
|
||||
$table->string('ip', 128)->nullable();
|
||||
$table->text('context')->nullable();
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
});
|
||||
}
|
||||
|
||||
// Stat
|
||||
if (!Schema::hasTable('v2_stat')) {
|
||||
Schema::create('v2_stat', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->integer('record_at');
|
||||
$table->char('record_type', 1);
|
||||
$table->integer('order_count')->comment('订单数量');
|
||||
$table->integer('order_total')->comment('订单合计');
|
||||
$table->integer('commission_count');
|
||||
$table->integer('commission_total')->comment('佣金合计');
|
||||
$table->integer('paid_count');
|
||||
$table->integer('paid_total');
|
||||
$table->integer('register_count');
|
||||
$table->integer('invite_count');
|
||||
$table->string('transfer_used_total', 32);
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
|
||||
if (config('database.default') !== 'sqlite') {
|
||||
$table->unique(['record_at']);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// stat user
|
||||
if (!Schema::hasTable('v2_stat_user')) {
|
||||
Schema::create('v2_stat_user', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->integer('user_id');
|
||||
$table->decimal('server_rate', 10);
|
||||
$table->bigInteger('u');
|
||||
$table->bigInteger('d');
|
||||
$table->char('record_type', 2);
|
||||
$table->integer('record_at');
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
|
||||
// 如果是不是sqlite才添加多个索引
|
||||
if (config('database.default') !== 'sqlite') {
|
||||
$table->index(['user_id', 'server_rate', 'record_at']);
|
||||
$table->unique(['server_rate', 'user_id', 'record_at'], 'server_rate_user_id_record_at');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// ticket message
|
||||
if (!Schema::hasTable('v2_ticket_message')) {
|
||||
Schema::create('v2_ticket_message', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->integer('user_id');
|
||||
$table->integer('ticket_id');
|
||||
$table->text('message');
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
});
|
||||
}
|
||||
|
||||
// Order
|
||||
if (!Schema::hasTable('v2_order')) {
|
||||
Schema::create('v2_order', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->integer('invite_user_id')->nullable();
|
||||
$table->integer('user_id');
|
||||
$table->integer('plan_id');
|
||||
$table->integer('coupon_id')->nullable();
|
||||
$table->integer('payment_id')->nullable();
|
||||
$table->integer('type')->comment('1新购2续费3升级');
|
||||
$table->string('period');
|
||||
$table->string('trade_no', 36)->unique('trade_no');
|
||||
$table->string('callback_no')->nullable();
|
||||
$table->integer('total_amount');
|
||||
$table->integer('handling_amount')->nullable();
|
||||
$table->integer('discount_amount')->nullable();
|
||||
$table->integer('surplus_amount')->nullable()->comment('剩余价值');
|
||||
$table->integer('refund_amount')->nullable()->comment('退款金额');
|
||||
$table->integer('balance_amount')->nullable()->comment('使用余额');
|
||||
$table->text('surplus_order_ids')->nullable()->comment('折抵订单');
|
||||
$table->boolean('status')->default(false)->comment('0待支付1开通中2已取消3已完成4已折抵');
|
||||
$table->boolean('commission_status')->default(false)->comment('0待确认1发放中2有效3无效');
|
||||
$table->integer('commission_balance')->default(0);
|
||||
$table->integer('actual_commission_balance')->nullable()->comment('实际支付佣金');
|
||||
$table->integer('paid_at')->nullable();
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
});
|
||||
}
|
||||
|
||||
// Payment
|
||||
if (!Schema::hasTable('v2_payment')) {
|
||||
Schema::create('v2_payment', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->char('uuid', 32);
|
||||
$table->string('payment', 16);
|
||||
$table->string('name');
|
||||
$table->string('icon')->nullable();
|
||||
$table->text('config');
|
||||
$table->string('notify_domain', 128)->nullable();
|
||||
$table->integer('handling_fee_fixed')->nullable();
|
||||
$table->decimal('handling_fee_percent', 5)->nullable();
|
||||
$table->boolean('enable')->default(false);
|
||||
$table->integer('sort')->nullable();
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
});
|
||||
}
|
||||
|
||||
// Coupon
|
||||
if (!Schema::hasTable('v2_coupon')) {
|
||||
Schema::create('v2_coupon', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->string('code');
|
||||
$table->string('name');
|
||||
$table->boolean('type');
|
||||
$table->integer('value');
|
||||
$table->boolean('show')->default(false);
|
||||
$table->integer('limit_use')->nullable();
|
||||
$table->integer('limit_use_with_user')->nullable();
|
||||
$table->string('limit_plan_ids')->nullable();
|
||||
$table->string('limit_period')->nullable();
|
||||
$table->integer('started_at');
|
||||
$table->integer('ended_at');
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
});
|
||||
}
|
||||
|
||||
// Notice
|
||||
if (!Schema::hasTable('v2_notice')) {
|
||||
Schema::create('v2_notice', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->string('title');
|
||||
$table->text('content');
|
||||
$table->boolean('show')->default(false);
|
||||
$table->string('img_url')->nullable();
|
||||
$table->string('tags')->nullable();
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
});
|
||||
}
|
||||
|
||||
// Ticket
|
||||
if (!Schema::hasTable('v2_ticket')) {
|
||||
Schema::create('v2_ticket', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->integer('user_id');
|
||||
$table->string('subject');
|
||||
$table->boolean('level');
|
||||
$table->boolean('status')->default(false)->comment('0:已开启 1:已关闭');
|
||||
$table->boolean('reply_status')->default(true)->comment('0:待回复 1:已回复');
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
});
|
||||
}
|
||||
|
||||
// Server Hysteria
|
||||
if (!Schema::hasTable('v2_server_hysteria')) {
|
||||
Schema::create('v2_server_hysteria', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->string('group_id');
|
||||
$table->string('route_id')->nullable();
|
||||
$table->string('name');
|
||||
$table->integer('parent_id')->nullable();
|
||||
$table->string('host');
|
||||
$table->string('port', 11);
|
||||
$table->integer('server_port');
|
||||
$table->string('tags')->nullable();
|
||||
$table->string('rate', 11);
|
||||
$table->boolean('show')->default(false);
|
||||
$table->integer('sort')->nullable();
|
||||
$table->integer('up_mbps');
|
||||
$table->integer('down_mbps');
|
||||
$table->string('server_name', 64)->nullable();
|
||||
$table->boolean('insecure')->default(false);
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
});
|
||||
}
|
||||
|
||||
// Server Shadowsocks
|
||||
if (!Schema::hasTable('v2_server_shadowsocks')) {
|
||||
autoIncrement:
|
||||
Schema::create('v2_server_shadowsocks', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->string('group_id');
|
||||
$table->string('route_id')->nullable();
|
||||
$table->integer('parent_id')->nullable();
|
||||
$table->string('tags')->nullable();
|
||||
$table->string('name');
|
||||
$table->string('rate', 11);
|
||||
$table->string('host');
|
||||
$table->string('port', 11);
|
||||
$table->integer('server_port');
|
||||
$table->string('cipher');
|
||||
$table->char('obfs', 11)->nullable();
|
||||
$table->string('obfs_settings')->nullable();
|
||||
$table->tinyInteger('show')->default(0);
|
||||
$table->integer('sort')->nullable();
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
});
|
||||
}
|
||||
// Server Trojan
|
||||
if (!Schema::hasTable('v2_server_trojan')) {
|
||||
Schema::create('v2_server_trojan', function (Blueprint $table) {
|
||||
$table->integer('id', true)->comment('节点ID');
|
||||
$table->string('group_id')->comment('节点组');
|
||||
$table->string('route_id')->nullable();
|
||||
$table->integer('parent_id')->nullable()->comment('父节点');
|
||||
$table->string('tags')->nullable()->comment('节点标签');
|
||||
$table->string('name')->comment('节点名称');
|
||||
$table->string('rate', 11)->comment('倍率');
|
||||
$table->string('host')->comment('主机名');
|
||||
$table->string('port', 11)->comment('连接端口');
|
||||
$table->integer('server_port')->comment('服务端口');
|
||||
$table->boolean('allow_insecure')->default(false)->comment('是否允许不安全');
|
||||
$table->string('server_name')->nullable();
|
||||
$table->boolean('show')->default(false)->comment('是否显示');
|
||||
$table->integer('sort')->nullable();
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
});
|
||||
}
|
||||
|
||||
// Server Vless
|
||||
if (!Schema::hasTable('v2_server_vless')) {
|
||||
Schema::create('v2_server_vless', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->text('group_id');
|
||||
$table->text('route_id')->nullable();
|
||||
$table->string('name');
|
||||
$table->integer('parent_id')->nullable();
|
||||
$table->string('host');
|
||||
$table->integer('port');
|
||||
$table->integer('server_port');
|
||||
$table->boolean('tls');
|
||||
$table->text('tls_settings')->nullable();
|
||||
$table->string('flow', 64)->nullable();
|
||||
$table->string('network', 11);
|
||||
$table->text('network_settings')->nullable();
|
||||
$table->text('tags')->nullable();
|
||||
$table->string('rate', 11);
|
||||
$table->boolean('show')->default(false);
|
||||
$table->integer('sort')->nullable();
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
});
|
||||
}
|
||||
|
||||
// Server Vmess
|
||||
if (!Schema::hasTable('v2_server_vmess')) {
|
||||
Schema::create('v2_server_vmess', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->string('group_id');
|
||||
$table->string('route_id')->nullable();
|
||||
$table->string('name');
|
||||
$table->integer('parent_id')->nullable();
|
||||
$table->string('host');
|
||||
$table->string('port', 11);
|
||||
$table->integer('server_port');
|
||||
$table->tinyInteger('tls')->default(0);
|
||||
$table->string('tags')->nullable();
|
||||
$table->string('rate', 11);
|
||||
$table->string('network', 11);
|
||||
$table->text('rules')->nullable();
|
||||
$table->text('networkSettings')->nullable();
|
||||
$table->text('tlsSettings')->nullable();
|
||||
$table->text('ruleSettings')->nullable();
|
||||
$table->text('dnsSettings')->nullable();
|
||||
$table->boolean('show')->default(false);
|
||||
$table->integer('sort')->nullable();
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('v2_commission_log');
|
||||
Schema::dropIfExists('v2_plan');
|
||||
Schema::dropIfExists('v2_user');
|
||||
Schema::dropIfExists('v2_mail_log');
|
||||
Schema::dropIfExists('v2_log');
|
||||
Schema::dropIfExists('v2_stat');
|
||||
Schema::dropIfExists('v2_order');
|
||||
Schema::dropIfExists('v2_coupon');
|
||||
Schema::dropIfExists('v2_notice');
|
||||
Schema::dropIfExists('v2_ticket');
|
||||
Schema::dropIfExists('v2_settings');
|
||||
Schema::dropIfExists('v2_ticket_message');
|
||||
Schema::dropIfExists('v2_invite_code');
|
||||
Schema::dropIfExists('v2_knowledge');
|
||||
Schema::dropIfExists('v2_server_group');
|
||||
Schema::dropIfExists('v2_server_route');
|
||||
Schema::dropIfExists('v2_stat_server');
|
||||
Schema::dropIfExists('v2_stat_user');
|
||||
Schema::dropIfExists('v2_server_hysteria');
|
||||
Schema::dropIfExists('v2_server_shadowsocks');
|
||||
Schema::dropIfExists('v2_server_trojan');
|
||||
Schema::dropIfExists('v2_server_vless');
|
||||
Schema::dropIfExists('v2_server_vmess');
|
||||
}
|
||||
};
|
@ -1,37 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('v2_commission_log', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->integer('invite_user_id');
|
||||
$table->integer('user_id');
|
||||
$table->char('trade_no', 36);
|
||||
$table->integer('order_amount');
|
||||
$table->integer('get_amount');
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('v2_commission_log');
|
||||
}
|
||||
};
|
@ -1,43 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('v2_coupon', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->string('code');
|
||||
$table->string('name');
|
||||
$table->boolean('type');
|
||||
$table->integer('value');
|
||||
$table->boolean('show')->default(false);
|
||||
$table->integer('limit_use')->nullable();
|
||||
$table->integer('limit_use_with_user')->nullable();
|
||||
$table->string('limit_plan_ids')->nullable();
|
||||
$table->string('limit_period')->nullable();
|
||||
$table->integer('started_at');
|
||||
$table->integer('ended_at');
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('v2_coupon');
|
||||
}
|
||||
};
|
@ -1,36 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('v2_invite_code', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->integer('user_id');
|
||||
$table->char('code', 32);
|
||||
$table->boolean('status')->default(false);
|
||||
$table->integer('pv')->default(0);
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('v2_invite_code');
|
||||
}
|
||||
};
|
@ -1,38 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('v2_knowledge', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->char('language', 5)->comment('語言');
|
||||
$table->string('category')->comment('分類名');
|
||||
$table->string('title')->comment('標題');
|
||||
$table->text('body')->comment('內容');
|
||||
$table->integer('sort')->nullable()->comment('排序');
|
||||
$table->boolean('show')->default(false)->comment('顯示');
|
||||
$table->integer('created_at')->comment('創建時間');
|
||||
$table->integer('updated_at')->comment('更新時間');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('v2_knowledge');
|
||||
}
|
||||
};
|
@ -1,40 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('v2_log', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->text('title');
|
||||
$table->string('level', 11)->nullable();
|
||||
$table->string('host')->nullable();
|
||||
$table->string('uri');
|
||||
$table->string('method', 11);
|
||||
$table->text('data')->nullable();
|
||||
$table->string('ip', 128)->nullable();
|
||||
$table->text('context')->nullable();
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('v2_log');
|
||||
}
|
||||
};
|
@ -1,36 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('v2_mail_log', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->string('email', 64);
|
||||
$table->string('subject');
|
||||
$table->string('template_name');
|
||||
$table->text('error')->nullable();
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('v2_mail_log');
|
||||
}
|
||||
};
|
@ -1,37 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('v2_notice', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->string('title');
|
||||
$table->text('content');
|
||||
$table->boolean('show')->default(false);
|
||||
$table->string('img_url')->nullable();
|
||||
$table->string('tags')->nullable();
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('v2_notice');
|
||||
}
|
||||
};
|
@ -1,53 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('v2_order', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->integer('invite_user_id')->nullable();
|
||||
$table->integer('user_id');
|
||||
$table->integer('plan_id');
|
||||
$table->integer('coupon_id')->nullable();
|
||||
$table->integer('payment_id')->nullable();
|
||||
$table->integer('type')->comment('1新购2续费3升级');
|
||||
$table->string('period');
|
||||
$table->string('trade_no', 36)->unique('trade_no');
|
||||
$table->string('callback_no')->nullable();
|
||||
$table->integer('total_amount');
|
||||
$table->integer('handling_amount')->nullable();
|
||||
$table->integer('discount_amount')->nullable();
|
||||
$table->integer('surplus_amount')->nullable()->comment('剩余价值');
|
||||
$table->integer('refund_amount')->nullable()->comment('退款金额');
|
||||
$table->integer('balance_amount')->nullable()->comment('使用余额');
|
||||
$table->text('surplus_order_ids')->nullable()->comment('折抵订单');
|
||||
$table->boolean('status')->default(false)->comment('0待支付1开通中2已取消3已完成4已折抵');
|
||||
$table->boolean('commission_status')->default(false)->comment('0待确认1发放中2有效3无效');
|
||||
$table->integer('commission_balance')->default(0);
|
||||
$table->integer('actual_commission_balance')->nullable()->comment('实际支付佣金');
|
||||
$table->integer('paid_at')->nullable();
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('v2_order');
|
||||
}
|
||||
};
|
@ -1,42 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('v2_payment', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->char('uuid', 32);
|
||||
$table->string('payment', 16);
|
||||
$table->string('name');
|
||||
$table->string('icon')->nullable();
|
||||
$table->text('config');
|
||||
$table->string('notify_domain', 128)->nullable();
|
||||
$table->integer('handling_fee_fixed')->nullable();
|
||||
$table->decimal('handling_fee_percent', 5)->nullable();
|
||||
$table->boolean('enable')->default(false);
|
||||
$table->integer('sort')->nullable();
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('v2_payment');
|
||||
}
|
||||
};
|
@ -1,50 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('v2_plan', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->integer('group_id');
|
||||
$table->integer('transfer_enable');
|
||||
$table->string('name');
|
||||
$table->integer('speed_limit')->nullable();
|
||||
$table->boolean('show')->default(false);
|
||||
$table->integer('sort')->nullable();
|
||||
$table->boolean('renew')->default(true);
|
||||
$table->text('content')->nullable();
|
||||
$table->integer('month_price')->nullable();
|
||||
$table->integer('quarter_price')->nullable();
|
||||
$table->integer('half_year_price')->nullable();
|
||||
$table->integer('year_price')->nullable();
|
||||
$table->integer('two_year_price')->nullable();
|
||||
$table->integer('three_year_price')->nullable();
|
||||
$table->integer('onetime_price')->nullable();
|
||||
$table->integer('reset_price')->nullable();
|
||||
$table->boolean('reset_traffic_method')->nullable()->comment('重置流量方式:0跟随系统设置、1每月1号、2按月重置、3不重置、4每年1月1日、5按年重置');
|
||||
$table->integer('capacity_limit')->nullable();
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('v2_plan');
|
||||
}
|
||||
};
|
@ -1,33 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('v2_server_group', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->string('name');
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('v2_server_group');
|
||||
}
|
||||
};
|
@ -1,47 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('v2_server_hysteria', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->string('group_id');
|
||||
$table->string('route_id')->nullable();
|
||||
$table->string('name');
|
||||
$table->integer('parent_id')->nullable();
|
||||
$table->string('host');
|
||||
$table->string('port', 11);
|
||||
$table->integer('server_port');
|
||||
$table->string('tags')->nullable();
|
||||
$table->string('rate', 11);
|
||||
$table->boolean('show')->default(false);
|
||||
$table->integer('sort')->nullable();
|
||||
$table->integer('up_mbps');
|
||||
$table->integer('down_mbps');
|
||||
$table->string('server_name', 64)->nullable();
|
||||
$table->boolean('insecure')->default(false);
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('v2_server_hysteria');
|
||||
}
|
||||
};
|
@ -1,36 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('v2_server_route', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->string('remarks');
|
||||
$table->text('match');
|
||||
$table->string('action', 11);
|
||||
$table->string('action_value')->nullable();
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('v2_server_route');
|
||||
}
|
||||
};
|
@ -1,46 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('v2_server_shadowsocks', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->string('group_id');
|
||||
$table->string('route_id')->nullable();
|
||||
$table->integer('parent_id')->nullable();
|
||||
$table->string('tags')->nullable();
|
||||
$table->string('name');
|
||||
$table->string('rate', 11);
|
||||
$table->string('host');
|
||||
$table->string('port', 11);
|
||||
$table->integer('server_port');
|
||||
$table->string('cipher');
|
||||
$table->char('obfs', 11)->nullable();
|
||||
$table->string('obfs_settings')->nullable();
|
||||
$table->tinyInteger('show')->default(0);
|
||||
$table->integer('sort')->nullable();
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('v2_server_shadowsocks');
|
||||
}
|
||||
};
|
@ -1,45 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('v2_server_trojan', function (Blueprint $table) {
|
||||
$table->integer('id', true)->comment('节点ID');
|
||||
$table->string('group_id')->comment('节点组');
|
||||
$table->string('route_id')->nullable();
|
||||
$table->integer('parent_id')->nullable()->comment('父节点');
|
||||
$table->string('tags')->nullable()->comment('节点标签');
|
||||
$table->string('name')->comment('节点名称');
|
||||
$table->string('rate', 11)->comment('倍率');
|
||||
$table->string('host')->comment('主机名');
|
||||
$table->string('port', 11)->comment('连接端口');
|
||||
$table->integer('server_port')->comment('服务端口');
|
||||
$table->boolean('allow_insecure')->default(false)->comment('是否允许不安全');
|
||||
$table->string('server_name')->nullable();
|
||||
$table->boolean('show')->default(false)->comment('是否显示');
|
||||
$table->integer('sort')->nullable();
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('v2_server_trojan');
|
||||
}
|
||||
};
|
@ -1,48 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('v2_server_vless', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->text('group_id');
|
||||
$table->text('route_id')->nullable();
|
||||
$table->string('name');
|
||||
$table->integer('parent_id')->nullable();
|
||||
$table->string('host');
|
||||
$table->integer('port');
|
||||
$table->integer('server_port');
|
||||
$table->boolean('tls');
|
||||
$table->text('tls_settings')->nullable();
|
||||
$table->string('flow', 64)->nullable();
|
||||
$table->string('network', 11);
|
||||
$table->text('network_settings')->nullable();
|
||||
$table->text('tags')->nullable();
|
||||
$table->string('rate', 11);
|
||||
$table->boolean('show')->default(false);
|
||||
$table->integer('sort')->nullable();
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('v2_server_vless');
|
||||
}
|
||||
};
|
@ -1,50 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('v2_server_vmess', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->string('group_id');
|
||||
$table->string('route_id')->nullable();
|
||||
$table->string('name');
|
||||
$table->integer('parent_id')->nullable();
|
||||
$table->string('host');
|
||||
$table->string('port', 11);
|
||||
$table->integer('server_port');
|
||||
$table->tinyInteger('tls')->default(0);
|
||||
$table->string('tags')->nullable();
|
||||
$table->string('rate', 11);
|
||||
$table->string('network', 11);
|
||||
$table->text('rules')->nullable();
|
||||
$table->text('networkSettings')->nullable();
|
||||
$table->text('tlsSettings')->nullable();
|
||||
$table->text('ruleSettings')->nullable();
|
||||
$table->text('dnsSettings')->nullable();
|
||||
$table->boolean('show')->default(false);
|
||||
$table->integer('sort')->nullable();
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('v2_server_vmess');
|
||||
}
|
||||
};
|
@ -1,40 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('v2_stat_server', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->integer('server_id')->index('server_id')->comment('节点id');
|
||||
$table->char('server_type', 11)->comment('节点类型');
|
||||
$table->bigInteger('u');
|
||||
$table->bigInteger('d');
|
||||
$table->char('record_type', 1)->comment('d day m month');
|
||||
$table->integer('record_at')->index('record_at')->comment('记录时间');
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
|
||||
$table->unique(['server_id', 'server_type', 'record_at'], 'server_id_server_type_record_at');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('v2_stat_server');
|
||||
}
|
||||
};
|
@ -1,48 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('v2_stat', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->integer('record_at');
|
||||
$table->char('record_type', 1);
|
||||
$table->integer('order_count')->comment('订单数量');
|
||||
$table->integer('order_total')->comment('订单合计');
|
||||
$table->integer('commission_count');
|
||||
$table->integer('commission_total')->comment('佣金合计');
|
||||
$table->integer('paid_count');
|
||||
$table->integer('paid_total');
|
||||
$table->integer('register_count');
|
||||
$table->integer('invite_count');
|
||||
$table->string('transfer_used_total', 32);
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
|
||||
if(config('database.default') !== 'sqlite'){
|
||||
$table->unique(['record_at']);
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('v2_stat');
|
||||
}
|
||||
};
|
@ -1,46 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('v2_stat_user', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->integer('user_id');
|
||||
$table->decimal('server_rate', 10);
|
||||
$table->bigInteger('u');
|
||||
$table->bigInteger('d');
|
||||
$table->char('record_type', 2);
|
||||
$table->integer('record_at');
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
|
||||
// 如果是不是sqlite才添加多个索引
|
||||
if(config('database.default') !== 'sqlite'){
|
||||
$table->index(['user_id','server_rate','record_at']);
|
||||
$table->unique(['server_rate', 'user_id', 'record_at'], 'server_rate_user_id_record_at');
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('v2_stat_user');
|
||||
}
|
||||
};
|
@ -1,35 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('v2_ticket_message', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->integer('user_id');
|
||||
$table->integer('ticket_id');
|
||||
$table->text('message');
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('v2_ticket_message');
|
||||
}
|
||||
};
|
@ -1,37 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('v2_ticket', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->integer('user_id');
|
||||
$table->string('subject');
|
||||
$table->boolean('level');
|
||||
$table->boolean('status')->default(false)->comment('0:已开启 1:已关闭');
|
||||
$table->boolean('reply_status')->default(true)->comment('0:待回复 1:已回复');
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('v2_ticket');
|
||||
}
|
||||
};
|
@ -1,61 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('v2_user', function (Blueprint $table) {
|
||||
$table->integer('id', true);
|
||||
$table->integer('invite_user_id')->nullable();
|
||||
$table->bigInteger('telegram_id')->nullable();
|
||||
$table->string('email', 64)->unique('email');
|
||||
$table->string('password', 64);
|
||||
$table->char('password_algo', 10)->nullable();
|
||||
$table->char('password_salt', 10)->nullable();
|
||||
$table->integer('balance')->default(0);
|
||||
$table->integer('discount')->nullable();
|
||||
$table->tinyInteger('commission_type')->default(0)->comment('0: system 1: period 2: onetime');
|
||||
$table->integer('commission_rate')->nullable();
|
||||
$table->integer('commission_balance')->default(0);
|
||||
$table->integer('t')->default(0);
|
||||
$table->bigInteger('u')->default(0);
|
||||
$table->bigInteger('d')->default(0);
|
||||
$table->bigInteger('transfer_enable')->default(0);
|
||||
$table->boolean('banned')->default(false);
|
||||
$table->boolean('is_admin')->default(false);
|
||||
$table->integer('last_login_at')->nullable();
|
||||
$table->boolean('is_staff')->default(false);
|
||||
$table->integer('last_login_ip')->nullable();
|
||||
$table->string('uuid', 36);
|
||||
$table->integer('group_id')->nullable();
|
||||
$table->integer('plan_id')->nullable();
|
||||
$table->integer('speed_limit')->nullable();
|
||||
$table->tinyInteger('remind_expire')->nullable()->default(1);
|
||||
$table->tinyInteger('remind_traffic')->nullable()->default(1);
|
||||
$table->char('token', 32);
|
||||
$table->bigInteger('expired_at')->nullable()->default(0);
|
||||
$table->text('remarks')->nullable();
|
||||
$table->integer('created_at');
|
||||
$table->integer('updated_at');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('v2_user');
|
||||
}
|
||||
};
|
Loading…
Reference in New Issue
Block a user