cf5dd4f195
Build backend images / build content-svc (push) Failing after 21s
Build backend images / build file-svc (push) Failing after 3m49s
Build backend images / build gateway (push) Failing after 1m2s
Build backend images / build identity-svc (push) Failing after 1m1s
Build backend images / build notification-svc (push) Failing after 1m2s
Build backend images / build render-svc (push) Failing after 1m0s
Build backend images / build studio-svc (push) Failing after 58s
- categories/tags admin forms: add meta title/description/keywords, bot-follow,
sort, is_active (backend already supported these)
- new Templates admin (/admin/templates): container CRUD with description,
keywords, publishing, premium, primary mode, category/tag assignment, plus
editable per-variant aspect & resolution
- content-svc: PATCH /v1/projects/{id} partial update so aspect/resolution edits
never wipe render/colour data (SharedColorsSvg, RenderAepComp, Folder)
- admin resource proxy: add PATCH passthrough
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
319 lines
7.1 KiB
C#
319 lines
7.1 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
|
|
);
|
|
|
|
// Partial update — only non-null fields are applied, so editing an aspect/resolution
|
|
// never wipes render/colour data that the full UpdateProjectRequest would require.
|
|
public record PatchProjectRequest(
|
|
string? Name,
|
|
string? Description,
|
|
string? Aspect,
|
|
string? Resolution,
|
|
string? ChooseMode,
|
|
int? OriginalWidth,
|
|
int? OriginalHeight,
|
|
decimal? ProjectDurationSec,
|
|
decimal? MinDurationSec,
|
|
decimal? MaxDurationSec,
|
|
int? FreeFps,
|
|
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);
|