45 lines
1.4 KiB
C#
45 lines
1.4 KiB
C#
|
|
namespace FlatRender.ContentSvc.Models;
|
||
|
|
|
||
|
|
// ── AI settings ───────────────────────────────────────────────────────────────
|
||
|
|
|
||
|
|
/// <summary>Settings returned to the admin UI. The API key is never returned in full.</summary>
|
||
|
|
public record AiSettingsResponse(
|
||
|
|
string Provider,
|
||
|
|
string BaseUrl,
|
||
|
|
string Model,
|
||
|
|
bool Enabled,
|
||
|
|
bool HasApiKey,
|
||
|
|
string? ApiKeyMasked,
|
||
|
|
DateTime? UpdatedAt
|
||
|
|
);
|
||
|
|
|
||
|
|
public record UpdateAiSettingsRequest(
|
||
|
|
string? Provider,
|
||
|
|
string? ApiKey, // null = leave unchanged; "" = clear
|
||
|
|
string? BaseUrl,
|
||
|
|
string? Model,
|
||
|
|
bool? Enabled
|
||
|
|
);
|
||
|
|
|
||
|
|
// ── SEO post generation ─────────────────────────────────────────────────────
|
||
|
|
|
||
|
|
public record GenerateSeoPostRequest(
|
||
|
|
string Description,
|
||
|
|
string? Title,
|
||
|
|
string? Type, // e.g. "video template", "image template", "product"
|
||
|
|
string[]? Tags,
|
||
|
|
string? Locale, // "fa" (default) or "en"
|
||
|
|
string? Audience, // optional target-audience hint
|
||
|
|
string? Keyword // optional primary keyword to target
|
||
|
|
);
|
||
|
|
|
||
|
|
public record SeoPostResponse(
|
||
|
|
string Title,
|
||
|
|
string Slug,
|
||
|
|
string MetaTitle,
|
||
|
|
string MetaDescription,
|
||
|
|
string[] Keywords,
|
||
|
|
string ShortDescription,
|
||
|
|
string ContentHtml
|
||
|
|
);
|