<?php

namespace App\Traits;

use ArrayAccess;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use Illuminate\Support\Facades\Event;
use InvalidArgumentException;
use Spatie\EloquentSortable\EloquentModelSortedEvent;
use Spatie\EloquentSortable\Sortable;

/*
 * slug
 */
trait DistSlugTrait
{
    /*
     * 生成slug
     */
    public static function generateSlug($slug,$id=0) {
        //截取50个字符
        $slug = truncateString($slug, 50);
        $self = new self();
        $model = $self->model();
        $slug = generateSlug($slug);
        for ($i=0;$i<3;$i++) {
            if ($id > 0) {
                $count = $model->where('id','!=',$id)->where('slug', $slug)->where('dist_id', getDistributorId())->count();
            } else {
                $count = $model->where('slug', $slug)->where('dist_id', getDistributorId())->count();
            }
            if ($count == 0) {
                return $slug;
            } else {
                $slug = $slug . '-' . generateRandomString(2);
            }
        }
        return $slug . '-' . generateRandomString(5);
    }

    public static function isRepeatedSlug($id,$slug) {
        $id = intval($id);
        $self = new self();
        $model = $self->model();
        $count = $model->where('id','!=',$id)->where('slug', $slug)->where('dist_id', getDistributorId())->count();
        if ($count > 0) {
            return true;
        } else {
            return false;
        }
    }
}