dootask/app/Observers/ProjectTaskVisibilityUserObserver.php
kuaifan fe7a2a0e73 feat: 扩展 SeekDB 支持联系人、项目、任务的 AI 搜索
- 合并 SeekDBFileSyncTask 到 SeekDBSyncTask
- 统一 AI 搜索 API 入口
2025-12-30 07:48:00 +00:00

85 lines
2.5 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace App\Observers;
use App\Models\ProjectTaskVisibilityUser;
use App\Tasks\SeekDBSyncTask;
/**
* ProjectTaskVisibilityUser 观察者
*
* 用于处理任务 visibility=3指定成员可见时的成员变更同步
*/
class ProjectTaskVisibilityUserObserver extends AbstractObserver
{
/**
* Handle the ProjectTaskVisibilityUser "created" event.
*
* @param \App\Models\ProjectTaskVisibilityUser $visibilityUser
* @return void
*/
public function created(ProjectTaskVisibilityUser $visibilityUser)
{
// 将指定成员添加到 SeekDB 的 task_users 表
self::taskDeliver(new SeekDBSyncTask('task_user_add', [
'task_id' => $visibilityUser->task_id,
'userid' => $visibilityUser->userid,
]));
}
/**
* Handle the ProjectTaskVisibilityUser "updated" event.
*
* @param \App\Models\ProjectTaskVisibilityUser $visibilityUser
* @return void
*/
public function updated(ProjectTaskVisibilityUser $visibilityUser)
{
// 通常不会更新,但如果更新了也同步
self::taskDeliver(new SeekDBSyncTask('task_user_add', [
'task_id' => $visibilityUser->task_id,
'userid' => $visibilityUser->userid,
]));
}
/**
* Handle the ProjectTaskVisibilityUser "deleted" event.
*
* @param \App\Models\ProjectTaskVisibilityUser $visibilityUser
* @return void
*/
public function deleted(ProjectTaskVisibilityUser $visibilityUser)
{
// 从 SeekDB 的 task_users 表删除该成员
// 注意:需要检查该用户是否仍是任务的负责人/协作人
// 如果是,则不应该删除(因为 ProjectTaskUser 仍存在)
self::taskDeliver(new SeekDBSyncTask('task_visibility_user_remove', [
'task_id' => $visibilityUser->task_id,
'userid' => $visibilityUser->userid,
]));
}
/**
* Handle the ProjectTaskVisibilityUser "restored" event.
*
* @param \App\Models\ProjectTaskVisibilityUser $visibilityUser
* @return void
*/
public function restored(ProjectTaskVisibilityUser $visibilityUser)
{
//
}
/**
* Handle the ProjectTaskVisibilityUser "force deleted" event.
*
* @param \App\Models\ProjectTaskVisibilityUser $visibilityUser
* @return void
*/
public function forceDeleted(ProjectTaskVisibilityUser $visibilityUser)
{
//
}
}