<?php

namespace App\Distributor\Repositories;

use App\Models\SmmUserAccount as Model;
use Carbon\Carbon;
use Dcat\Admin\Repositories\EloquentRepository;

class SmmUserAccount extends EloquentRepository
{
    /**
     * Model.
     *
     * @var string
     */
    protected $eloquentClass = Model::class;

    /**
     * 插入新的社媒账号（仅在找到对应社媒时插入）
     *
     * @param string $mediaName    要查找的社媒名称
     * @param string $accountName 要插入的账号名称
     * @param string $accessToken 访问令牌
     * @return Model|null         新创建的模型实例或null
     */
    public static function createAccountIfMediaExists($mediaName, $accountId,$accountName, $accessToken)
    {
        $model = new Model();
        // 查找匹配的社媒记录
        $mediaRecord = $model->where('title', $mediaName)->first();
        if (!$mediaRecord) {
            return null;
        }
        // 创建新账号并关联父级
        $data = [
            'account_id'   => $accountId,
            'title'        => $accountName,
            'access_token' => $accessToken,
            'parent_id'    => $mediaRecord->id,
            'created_at'   => Carbon::now(),  // 自动生成时间戳
            'updated_at'   => Carbon::now(),
        ];
        return $model->insert($data);
    }


    /*
     * 查出dist_id=0和parent_id=0的账号
     */
    public static function getRootAccounts()
    {
        $model = new Model();
        $accounts = $model->where('dist_id', 0)->where('parent_id', 0)->get();
        return $accounts;
    }


    /*
     * 查找所有用户账号
     */
    public static function getUserAccounts()
    {
        $model = new Model();
        $accounts = $model->where('dist_id','>', 0)->where('parent_id','>',0)->orderBy('parent_id', 'asc')->get();
        return $accounts;
    }


}
