<?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
    {
        Schema::create('tg_group_users', function (Blueprint $table) {
            $table->increments('id'); // 主键 + AUTO_INCREMENT
            $table->string('chat_id')->comment('隶属群ID');
            $table->string('user_id')->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->integer('operator')->default(0)->comment('操作员 0不是1是');
            $table->integer('competence')->default(0)->comment('0普通权限,1管理员');
            $table->string('inviter')->nullable()->comment('邀请人');
            $table->json('raw_data')->nullable();
            $table->unique(['chat_id', 'user_id']); // 防止重复记录
            $table->dateTime('created_at')->useCurrent()->nullable();
            $table->dateTime('updated_at')->nullable()->useCurrentOnUpdate();
            $table->charset = 'utf8mb4';
            $table->collation = 'utf8mb4_0900_ai_ci';
            $table->comment('群用户人员');
        });
    }

    /**
     * Reverse the migrations.
     */
    public function down(): void
    {
        Schema::dropIfExists('group_users');
    }
};
