c4839bd35f
Build backend images / build content-svc (push) Failing after 50s
Build backend images / build file-svc (push) Failing after 1m5s
Build backend images / build gateway (push) Failing after 3m13s
Build backend images / build identity-svc (push) Failing after 1m32s
Build backend images / build notification-svc (push) Failing after 5m7s
Build backend images / build render-svc (push) Failing after 1m2s
Build backend images / build studio-svc (push) Failing after 54s
The admin could edit a container but not manage its renderable projects or attach
AE files. Now, inside the template editor:
- add a new project/variant under the container (name, WxH, aspect, resolution,
duration, fps, choose-mode) → POST /v1/projects (maps via container_id)
- upload the After Effects file (.aep/.zip) per project → new PATCH
/v1/projects/{id}/aep (sets AepFileUrl/Minio/Md5/Size + RenderAepComp), with an
"AE ✓ / بدون فایل" status badge
- set the render composition name; delete a variant
- ProjectResponse now surfaces aep_file_url / aep_file_size_bytes / render_aep_comp
Additive only — the existing aspect/resolution variant editing is unchanged.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
356 lines
7.9 KiB
C#
356 lines
7.9 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 UpsertRouteRequest(
|
|
string Slug,
|
|
string? Name = null,
|
|
string? Image = null,
|
|
int Priority = 5,
|
|
DateTime? LastDate = null
|
|
);
|
|
|
|
public record UpsertHomeEventRequest(
|
|
string? Title,
|
|
string? Subtitle,
|
|
string? Description,
|
|
string? Badge,
|
|
string? BadgeClass,
|
|
string? ButtonText,
|
|
string? ButtonUrl,
|
|
string? ButtonClass,
|
|
string? Color,
|
|
string? BackgroundColor,
|
|
string? TextColor,
|
|
string? Image,
|
|
bool IsActive = true,
|
|
int Sort = 0,
|
|
DateTime? StartsAt = null,
|
|
DateTime? EndsAt = null
|
|
);
|
|
|
|
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 SetAepRequest(
|
|
string? AepFileUrl,
|
|
string? AepMinioBucket,
|
|
string? AepMinioKey,
|
|
string? AepFileMd5,
|
|
long? AepFileSizeBytes,
|
|
string? RenderAepComp,
|
|
string? Folder
|
|
);
|
|
|
|
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);
|