add the subscription card fields

plans() حالا features و badge می‌دهد؛ بندهای کارتِ اشتراک و برچسبِ بالایش
دیگر لازم نیست در کد بمانند و عوض کردنشان به دیپلویِ تازه نیاز ندارد.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-14 02:03:19 +03:30
parent 7dd457d2fc
commit 007c450c0a
2 changed files with 6 additions and 0 deletions

View File

@@ -53,6 +53,8 @@ const answer = await api.ai.ask('این رو نفهمیدم', { lessonId });
استفاده کنید — یک درخواست برای کلِ مبحث، نه یکی به‌ازای هر کارت.
- `lessons.intro()` متن را سه‌تکه می‌دهد: `introText` (توضیح)، `example`، و
`steps` (حلِ گام‌به‌گام). `kind` می‌گوید آزمون است یا ویدیو.
- `plans()` حالا `features` و `badge` می‌دهد — بندهای کارتِ اشتراک و برچسبِ
بالایش دیگر لازم نیست در کد بمانند؛ عوض کردنشان به دیپلویِ تازه نیاز ندارد.
- `profile.update({ age })` هم کار می‌کند؛ سرور خودش به سالِ تولدِ شمسی تبدیل
می‌کند. `age` و `birthYear` را با هم نفرستید.

View File

@@ -142,6 +142,10 @@ export interface Plan {
popular: boolean;
discountPercent: number;
durationDays: number;
/** بندهای زیرِ کارتِ پلن — از سرور می‌آید، دیگر لازم نیست در کد بماند. */
features: string[];
/** برچسبِ بالای کارت: «محبوب‌ترین»، «بهترین ارزش». خالی یعنی بدونِ برچسب. */
badge: string;
}
export type ReportReason =