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>
301 lines
6.6 KiB
C#
301 lines
6.6 KiB
C#
namespace FlatRender.ContentSvc.Models.Requests;
|
|
|
|
// ── Taxonomy ─────────────────────────────────────────────────────────────────
|
|
|
|
public record CreateCategoryRequest(
|
|
Guid? ParentId,
|
|
string Name,
|
|
string Slug,
|
|
string? Description,
|
|
string? ImageUrl,
|
|
string? Icon,
|
|
string? MetaTitle,
|
|
string? MetaDescription,
|
|
string? MetaKeywords,
|
|
bool BotFollow,
|
|
int Sort,
|
|
bool IsActive
|
|
);
|
|
|
|
public record UpdateCategoryRequest(
|
|
Guid? ParentId,
|
|
string Name,
|
|
string Slug,
|
|
string? Description,
|
|
string? ImageUrl,
|
|
string? Icon,
|
|
string? MetaTitle,
|
|
string? MetaDescription,
|
|
string? MetaKeywords,
|
|
bool BotFollow,
|
|
int Sort,
|
|
bool IsActive
|
|
);
|
|
|
|
public record CreateTagRequest(
|
|
string Name,
|
|
string? LatinName,
|
|
string Slug,
|
|
string? AppliesToMode,
|
|
bool IsActive
|
|
);
|
|
|
|
public record UpdateTagRequest(
|
|
string Name,
|
|
string? LatinName,
|
|
string Slug,
|
|
string? AppliesToMode,
|
|
bool IsActive
|
|
);
|
|
|
|
public record CreateFontRequest(
|
|
string Name,
|
|
string? OriginalName,
|
|
string? SystemName,
|
|
string? Family,
|
|
int? Weight,
|
|
string? Style,
|
|
string Direction,
|
|
string? FileUrl,
|
|
string? SampleImageUrl,
|
|
bool IsPremium,
|
|
bool IsActive,
|
|
bool InstalledOnNodes,
|
|
int Sort
|
|
);
|
|
|
|
public record UpdateFontRequest(
|
|
string Name,
|
|
string? OriginalName,
|
|
string? SystemName,
|
|
string? Family,
|
|
int? Weight,
|
|
string? Style,
|
|
string Direction,
|
|
string? FileUrl,
|
|
string? SampleImageUrl,
|
|
bool IsPremium,
|
|
bool IsActive,
|
|
bool InstalledOnNodes,
|
|
int Sort
|
|
);
|
|
|
|
public record CreateMusicTrackRequest(
|
|
string Name,
|
|
string? Caption,
|
|
string? Keywords,
|
|
string Url,
|
|
string? WaveformData,
|
|
decimal DurationSec,
|
|
int? Bpm,
|
|
string? Genre,
|
|
string? Mood,
|
|
bool IsPremium,
|
|
bool IsActive,
|
|
int Sort
|
|
);
|
|
|
|
public record UpdateMusicTrackRequest(
|
|
string Name,
|
|
string? Caption,
|
|
string? Keywords,
|
|
string Url,
|
|
string? WaveformData,
|
|
decimal DurationSec,
|
|
int? Bpm,
|
|
string? Genre,
|
|
string? Mood,
|
|
bool IsPremium,
|
|
bool IsActive,
|
|
int Sort
|
|
);
|
|
|
|
// ── Templates ────────────────────────────────────────────────────────────────
|
|
|
|
public record CreateContainerRequest(
|
|
string Slug,
|
|
string Name,
|
|
string? Description,
|
|
string? Keywords,
|
|
string? NewsText,
|
|
string? Image,
|
|
string? Demo,
|
|
string? FullDemo,
|
|
string? MiniDemo,
|
|
string? DemoScriptTag,
|
|
bool IsPublished,
|
|
bool IsPremium,
|
|
bool IsMockup,
|
|
string PrimaryMode,
|
|
int Sort,
|
|
List<Guid> CategoryIds,
|
|
List<Guid> TagIds
|
|
);
|
|
|
|
public record UpdateContainerRequest(
|
|
string Slug,
|
|
string Name,
|
|
string? Description,
|
|
string? Keywords,
|
|
string? NewsText,
|
|
string? Image,
|
|
string? Demo,
|
|
string? FullDemo,
|
|
string? MiniDemo,
|
|
string? DemoScriptTag,
|
|
bool IsPublished,
|
|
bool IsPremium,
|
|
bool IsMockup,
|
|
string PrimaryMode,
|
|
int Sort,
|
|
List<Guid> CategoryIds,
|
|
List<Guid> TagIds
|
|
);
|
|
|
|
public record ContainerListRequest(
|
|
int Page = 1,
|
|
int PageSize = 20,
|
|
string? Search = null,
|
|
Guid? CategoryId = null,
|
|
string? TagSlug = null,
|
|
bool? IsPublished = null,
|
|
bool? IsPremium = null,
|
|
string? Mode = null,
|
|
string? Sort = "sort_date_desc"
|
|
);
|
|
|
|
public record CreateProjectRequest(
|
|
Guid ContainerId,
|
|
Guid? ProjectServerId,
|
|
string Name,
|
|
string? Description,
|
|
string? Image,
|
|
string? FullDemo,
|
|
string? DemoScriptTag,
|
|
string? DownloadLink,
|
|
string? Folder,
|
|
int OriginalWidth,
|
|
int OriginalHeight,
|
|
string? Aspect,
|
|
decimal ProjectDurationSec,
|
|
decimal? MinDurationSec,
|
|
decimal? MaxDurationSec,
|
|
int FreeFps,
|
|
string ChooseMode,
|
|
string Resolution,
|
|
decimal VipFactor,
|
|
string RenderAepComp,
|
|
bool IsPublished,
|
|
int Sort
|
|
);
|
|
|
|
public record UpdateProjectRequest(
|
|
string Name,
|
|
string? Description,
|
|
string? Image,
|
|
string? FullDemo,
|
|
string? DemoScriptTag,
|
|
string? DownloadLink,
|
|
string? Folder,
|
|
int OriginalWidth,
|
|
int OriginalHeight,
|
|
string? Aspect,
|
|
decimal ProjectDurationSec,
|
|
decimal? MinDurationSec,
|
|
decimal? MaxDurationSec,
|
|
int FreeFps,
|
|
string ChooseMode,
|
|
string Resolution,
|
|
decimal VipFactor,
|
|
string RenderAepComp,
|
|
string? SharedLayerImage,
|
|
string? SharedColorsSvg,
|
|
string? SharedColorPresetsSvg,
|
|
bool IsPublished,
|
|
int Sort
|
|
);
|
|
|
|
// ── CMS ──────────────────────────────────────────────────────────────────────
|
|
|
|
public record CreateBlogRequest(
|
|
string Slug,
|
|
string Title,
|
|
string? ShortDescription,
|
|
string Content,
|
|
string? MetaTitle,
|
|
string? MetaDescription,
|
|
string? MetaKeywords,
|
|
bool IncludeInSiteMap,
|
|
string? Image,
|
|
string? Cover,
|
|
string? AuthorDisplayName,
|
|
bool IsPublished,
|
|
DateTime? PublishDate,
|
|
string Kind = "Blog"
|
|
);
|
|
|
|
public record UpdateBlogRequest(
|
|
string Slug,
|
|
string Title,
|
|
string? ShortDescription,
|
|
string Content,
|
|
string? MetaTitle,
|
|
string? MetaDescription,
|
|
string? MetaKeywords,
|
|
bool IncludeInSiteMap,
|
|
string? Image,
|
|
string? Cover,
|
|
string? AuthorDisplayName,
|
|
bool IsPublished,
|
|
DateTime? PublishDate
|
|
);
|
|
|
|
public record BlogListRequest(
|
|
int Page = 1,
|
|
int PageSize = 20,
|
|
string? Search = null,
|
|
bool? IsPublished = null,
|
|
string Kind = "Blog"
|
|
);
|
|
|
|
public record CreateCommentRequest(
|
|
Guid? BlogId,
|
|
Guid? ContainerId,
|
|
Guid? ParentCommentId,
|
|
string Content,
|
|
decimal? Rate
|
|
);
|
|
|
|
public record CreateSlideRequest(
|
|
string? Keyword,
|
|
string? Title,
|
|
string? Image,
|
|
string? Parameter,
|
|
string SlideType,
|
|
DateTime? ExpireDate,
|
|
int Sort,
|
|
bool IsActive
|
|
);
|
|
|
|
public record UpdateSlideRequest(
|
|
string? Keyword,
|
|
string? Title,
|
|
string? Image,
|
|
string? Parameter,
|
|
string SlideType,
|
|
DateTime? ExpireDate,
|
|
int Sort,
|
|
bool IsActive
|
|
);
|
|
|
|
public record UpsertWebsiteSettingRequest(
|
|
string Key,
|
|
string Value,
|
|
string? Description,
|
|
bool IsSecret
|
|
);
|
|
|
|
public record CreateFavoriteFolderRequest(string Name, string? Description);
|
|
public record UpdateFavoriteFolderRequest(string Name, string? Description);
|
|
public record AddFavoriteContainerRequest(Guid ContainerId, Guid? FolderId, string? Note);
|