<?php

namespace Kylin\Region\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;

/**
 * 行政区划模型
 *
 * 存储中国省、市、区/县三级行政区划数据。
 *
 * @property int    $parent_id     父级ID
 * @property int    $level         层级（1-省 2-市 3-区/县）
 * @property string $code          行政区划代码
 * @property string $name          名称
 * @property string $pinyin        拼音
 * @property string $pinyin_prefix 拼音首字母
 */
class Region extends Model
{
    protected $table = 'kylin_regions';

    protected $fillable = ['parent_id', 'level', 'code', 'name', 'pinyin', 'pinyin_prefix', 'sort'];

    public function children(): HasMany
    {
        return $this->hasMany(self::class, 'parent_id')->orderBy('sort');
    }

    public function parent()
    {
        return $this->belongsTo(self::class, 'parent_id');
    }
}
