90ac0b81d1
Add full V2 architecture: identity, content, studio (.NET 10) and file, render, notification, gateway (Go) services with vendored deps, plus DB migrations, event/API contracts, and an init-db script. Wire the Next.js frontend to the gateway: server-side JWT auth routes (login/register/refresh/logout/me), gateway fetch helper, and session/ cookie/jwt helpers under src/lib. Containerize the stack via docker-compose.v2.yml and per-service Dockerfiles. Base images resolve through a Nexus mirror (Docker Hub) and MCR directly; npm/NuGet pull from Nexus groups. Self-host fonts via next/font/local to avoid Google Fonts (geo-blocked). Add CI workflow and ignore .env.v2, *.stackdump, and .NET bin/obj. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
126 lines
2.7 KiB
C#
126 lines
2.7 KiB
C#
namespace FlatRender.StudioSvc.Models.Requests;
|
|
|
|
public record CreateSavedProjectRequest(
|
|
Guid OriginalProjectId,
|
|
string? Name,
|
|
Guid? PresetStoryId,
|
|
bool CopyDefaultValues = true
|
|
);
|
|
|
|
public record UpdateSavedProjectRequest(
|
|
string? Name,
|
|
string? Image,
|
|
string? Type,
|
|
Guid? MusicFileId,
|
|
Guid? MusicTrackId,
|
|
decimal? MusicVolume,
|
|
Guid? VoiceoverFileId,
|
|
decimal? VoiceoverVolume,
|
|
bool? VoiceoverRecordedInBrowser,
|
|
decimal? SfxVolume,
|
|
bool? SfxEnabled,
|
|
string? AudioVisualizerMusicUrl,
|
|
decimal? AudioVisualizerDurationSec,
|
|
bool? ManualColorPicker,
|
|
Guid? SelectedPresetStoryId,
|
|
string? LastEditStep,
|
|
string? EditState
|
|
);
|
|
|
|
public record SaveSceneRequest(
|
|
Guid? OriginalSceneId,
|
|
string Key,
|
|
string? Title,
|
|
string? Image,
|
|
string? SceneColorSvg,
|
|
string SceneType,
|
|
int Sort,
|
|
decimal SceneLengthSec,
|
|
decimal? MinDurationSec,
|
|
decimal? MaxDurationSec,
|
|
decimal OverlapAtEndSec,
|
|
bool CanHandleDuration,
|
|
bool ManualColorSelection,
|
|
List<SaveSceneContentRequest> Contents,
|
|
List<SaveSceneColorRequest> Colors,
|
|
List<SaveSharedColorRequest> SharedColors,
|
|
List<SaveSharedLayerRequest> SharedLayers
|
|
);
|
|
|
|
public record SaveSceneContentRequest(
|
|
string Key,
|
|
string? Title,
|
|
string Type,
|
|
string? Value,
|
|
Guid? ValueFileId,
|
|
string? InsertedFileType,
|
|
string? FontFace,
|
|
string? FontFaceName,
|
|
int? FontSize,
|
|
int? DefaultFontSize,
|
|
string? DefaultFontFace,
|
|
string? Justify,
|
|
int PositionInContainer,
|
|
int DirectionLayerValue,
|
|
bool IsTextBox,
|
|
string? AiInputType,
|
|
int? SelectedDp,
|
|
string? RepeaterItemKey,
|
|
int? RepeaterIndex,
|
|
bool IsFocused,
|
|
string? MappedList,
|
|
string? Thumbnail,
|
|
int Sort
|
|
);
|
|
|
|
public record SaveSceneColorRequest(
|
|
string ElementKey,
|
|
string? Title,
|
|
string? Icon,
|
|
string AttrValue,
|
|
string Value,
|
|
bool IsSelected,
|
|
int Sort
|
|
);
|
|
|
|
public record SaveSharedColorRequest(
|
|
string ElementKey,
|
|
string? Title,
|
|
string? Icon,
|
|
string AttrValue,
|
|
string Value,
|
|
bool IsSelected,
|
|
int Sort
|
|
);
|
|
|
|
public record SaveSharedLayerRequest(
|
|
string Key,
|
|
string? Title,
|
|
string Type,
|
|
string? Value,
|
|
Guid? ValueFileId,
|
|
string? FontFace,
|
|
string? FontFaceName,
|
|
int? FontSize,
|
|
string? Justify,
|
|
int PositionInContainer,
|
|
int DirectionLayerValue,
|
|
bool IsTextBox,
|
|
string? AiInputType,
|
|
string? MappedList,
|
|
string? Thumbnail,
|
|
int? Width,
|
|
int? Height,
|
|
bool IsFocused,
|
|
bool IsFontChangeable,
|
|
bool IsFontSizeChangeable,
|
|
int Sort
|
|
);
|
|
|
|
public record SavedProjectListRequest(
|
|
int Page = 1,
|
|
int PageSize = 20,
|
|
string? Q = null,
|
|
string? Type = null
|
|
);
|