using System.Text.Json.Serialization; using LyricFlow.Core.Dtos; namespace LyricFlow.Backend.Api; public record SaveSnapshotRequest( [property: JsonPropertyName("file_path")] string FilePath, [property: JsonPropertyName("content")] string Content ); public record SaveScratchpadRequest( [property: JsonPropertyName("project_id")] string ProjectId, [property: JsonPropertyName("content")] string Content ); public record AnalyzeRequest([property: JsonPropertyName("text")] string Text); public record ProjectReadRequest([property: JsonPropertyName("project_file")] string ProjectFile); public record ProjectWriteRequest( [property: JsonPropertyName("project_file")] string ProjectFile, [property: JsonPropertyName("state")] ProjectStateDto State ); public record SessionLoadRequest([property: JsonPropertyName("workspace_root")] string? WorkspaceRoot); public record SessionSaveRequest( [property: JsonPropertyName("workspace_root")] string? WorkspaceRoot, [property: JsonPropertyName("snapshots")] List Snapshots ); public record SessionClearRequest([property: JsonPropertyName("workspace_root")] string? WorkspaceRoot); public record FileReadRequest([property: JsonPropertyName("path")] string Path); public record FileWriteRequest( [property: JsonPropertyName("path")] string Path, [property: JsonPropertyName("content")] string Content ); public record FileCreateRequest( [property: JsonPropertyName("path")] string Path, [property: JsonPropertyName("is_directory")] bool IsDirectory ); public record FileRenameRequest( [property: JsonPropertyName("old_path")] string OldPath, [property: JsonPropertyName("new_path")] string NewPath, [property: JsonPropertyName("root_path")] string? RootPath ); public record FileDeleteRequest( [property: JsonPropertyName("path")] string Path, [property: JsonPropertyName("root_path")] string? RootPath );