feat: V2 microservices stack — backend services, gateway, JWT auth
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>
This commit is contained in:
@@ -0,0 +1,125 @@
|
||||
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
|
||||
);
|
||||
Reference in New Issue
Block a user