54 lines
2.3 KiB
Plaintext
Executable File
54 lines
2.3 KiB
Plaintext
Executable File
<?php
|
||
|
||
use Illuminate\Database\Migrations\Migration;
|
||
use Illuminate\Database\Schema\Blueprint;
|
||
use Illuminate\Support\Facades\Schema;
|
||
use Illuminate\Support\Facades\DB;
|
||
|
||
return new class extends Migration
|
||
{
|
||
/**
|
||
* Run the migrations.
|
||
*/
|
||
public function up(): void
|
||
{
|
||
Schema::create('tg_group_users', function (Blueprint $table) {
|
||
$table->increments('id'); // 主键 + AUTO_INCREMENT
|
||
$table->string('chat_id', 50)->comment('隶属群ID');
|
||
$table->string('user_id', 15)->comment('tg的ID');
|
||
$table->string('first_name')->nullable();
|
||
$table->string('last_name')->nullable();;
|
||
$table->string('username')->nullable()->comment('tg的username');
|
||
$table->string('status')->comment('用户在群的角色'); // creator, administrator, member, left, kicked
|
||
$table->boolean('is_bot')->default(false)->comment('0:真人 1:机器人');
|
||
$table->string('language_code')->nullable();
|
||
$table->json('raw_data')->nullable();
|
||
$table->timestamps();
|
||
$table->unique(['chat_id', 'user_id']); // 防止重复记录
|
||
// $table->decimal('rate', 10, 2)->default(0)->comment('费率');
|
||
// $table->decimal('exchange_rate', 10, 2)->default(0)->comment('汇率');
|
||
// $table->integer('end_time')->nullable()->comment('日结束时间');
|
||
// $table->integer('operator')->default(0)->comment('操作员 0不是1是');
|
||
// $table->integer('competence')->default(0)->comment('0普通权限,1管理员');
|
||
// $table->string('inviter', 50)->nullable()->comment('邀请人');
|
||
$table->timestamp('created_at')->nullable();
|
||
$table->timestamp('updated_at')->nullable();
|
||
// 设置字符集与排序规则
|
||
$table->charset = 'utf8mb4';
|
||
$table->collation = 'utf8mb4_0900_ai_ci';
|
||
});
|
||
|
||
// 若需要设置表注释(Laravel 原生不支持)
|
||
// 可借助 doctrine/dbal 手动添加,或使用迁移后执行 SQL 语句
|
||
DB::statement("ALTER TABLE `tg_group_users` COMMENT = '群用户人员'");
|
||
}
|
||
|
||
/**
|
||
* Reverse the migrations.
|
||
*/
|
||
public function down(): void
|
||
{
|
||
Schema::dropIfExists('group_users');
|
||
}
|
||
};
|