'datetime', 'status' => 'integer', ]; public function getAuthPassword(): string { return $this->password_hash; } public function roles(): BelongsToMany { return $this->belongsToMany(Role::class, 'admin_user_roles', 'admin_user_id', 'role_id'); } public function universities(): BelongsToMany { return $this->belongsToMany( University::class, 'admin_user_universities', 'admin_user_id', 'university_id' ); } public function researchDirections(): BelongsToMany { return $this->belongsToMany( ResearchDirection::class, 'admin_user_research_directions', 'admin_user_id', 'research_direction_id' ); } public function isGridMember(): bool { return $this->roles()->where('code', 'grid_member')->exists(); } public function isSuperAdmin(): bool { return $this->roles()->where('code', 'super_admin')->exists(); } /** * 首期不在接口层使用权限码;返回空数组。后续启用 `permissions` 时再实现聚合逻辑。 * * @return array */ public function permissionCodes(): array { return []; } }