refactor(tags): remove tag entity and all references

Drops TagEntity, TagRepository, and tag wiring across data layer, worker,
and UI. Adds RemoveTags migration to clean up schema.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
mika kuns
2026-05-19 08:07:24 +02:00
parent 8d34db3f9b
commit 623ebf147b
42 changed files with 333 additions and 1118 deletions

View File

@@ -331,41 +331,6 @@ public sealed class WorkerHub : Microsoft.AspNetCore.SignalR.Hub
if (!result.Ok) throw new HubException(result.Reason ?? "set status failed");
}
public async Task SetTaskTags(string taskId, string[] tagNames)
{
await using var ctx = await _dbFactory.CreateDbContextAsync();
var entity = await ctx.Tasks.Include(t => t.Tags).FirstOrDefaultAsync(t => t.Id == taskId);
if (entity is null) throw new HubException("task not found");
var desired = (tagNames ?? Array.Empty<string>())
.Select(n => n?.Trim().ToLowerInvariant() ?? "")
.Where(n => n.Length > 0)
.ToHashSet();
foreach (var t in entity.Tags.Where(t => !desired.Contains(t.Name)).ToList())
entity.Tags.Remove(t);
var existingByName = await ctx.Tags
.Where(t => desired.Contains(t.Name))
.ToListAsync();
foreach (var name in desired)
{
if (entity.Tags.Any(t => t.Name == name)) continue;
var tag = existingByName.FirstOrDefault(t => t.Name == name)
?? new TagEntity { Name = name };
if (tag.Id == 0) ctx.Tags.Add(tag);
entity.Tags.Add(tag);
}
await ctx.SaveChangesAsync();
await _broadcaster.TaskUpdated(taskId);
}
public async Task<List<string>> GetAllTags()
{
await using var ctx = await _dbFactory.CreateDbContextAsync();
return await ctx.Tags.OrderBy(t => t.Name).Select(t => t.Name).ToListAsync();
}
public async Task UpdateTaskAgentSettings(UpdateTaskAgentSettingsDto dto)
{
using var ctx = _dbFactory.CreateDbContext();