Enforce user locks for AI updates
This commit is contained in:
@@ -30,6 +30,10 @@ public final class ExistingLyricsRevisionDirector: Sendable {
|
||||
throw ExistingLyricsRevisionDirectorError.emptySourceLyrics
|
||||
}
|
||||
|
||||
guard !project.isUpdateScopeLocked(.lyrics) else {
|
||||
return SongProjectUpdateResult(project: project)
|
||||
}
|
||||
|
||||
let request = LyricsRevisionRequest(
|
||||
context: AIRequestContext(
|
||||
userInstruction: trimmedInstruction,
|
||||
@@ -42,14 +46,14 @@ public final class ExistingLyricsRevisionDirector: Sendable {
|
||||
)
|
||||
let result = try await aiService.reviseLyrics(from: request)
|
||||
|
||||
var updatedProject = project
|
||||
updatedProject.lyrics = result.lyrics
|
||||
updatedProject.updatedAt = revisedAt
|
||||
|
||||
return SongProjectUpdateResult(
|
||||
project: updatedProject,
|
||||
var proposedProject = project
|
||||
proposedProject.lyrics = result.lyrics
|
||||
return SongProjectAIUpdateMerger().apply(
|
||||
snapshot: SongProjectSnapshot(project: proposedProject),
|
||||
changedScopes: [.lyrics],
|
||||
notes: result.notes
|
||||
notes: result.notes,
|
||||
to: project,
|
||||
updatedAt: revisedAt
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user