import { TR_VOICES } from './voices';
/** soon: henüz açılmamış özellikler; listede "Yakında" etiketiyle, satın alınabilir gibi gösterilmez */
export type Plan = { id: string; name: string; credits: number; price: number; listPrice?: number; per: string; blurb: string; features: string[]; soon?: string[]; productEnv: string; featured?: boolean };
// Fiyatlar TRY (kuruşsuz gösterim). Dodo ürün kimlikleri env üzerinden eşlenir; Dodo'daki ürün fiyatı `price` ile aynı olmalı.
// Lansman kampanyası: `listPrice` üstü çizili gösterilir, satış `price` üzerinden yapılır.
// Kampanya bitince CAMPAIGN = null yapılır, `price` liste fiyatına çekilir ve Dodo ürün fiyatları güncellenir.
export const CAMPAIGN: { label: string } | null = { label: 'Lansmana özel' };
const per = (price: number, credits: number) => '₺' + Math.round(price / credits).toLocaleString('tr-TR');
export const PLANS: Plan[] = [
  { id: 'tek', name: 'Tek Parsel', credits: 1, price: 949, listPrice: 1290, per: 'video', blurb: 'Tek ilan için.', productEnv: 'DODO_PRODUCT_TEK',
    features: ['1 adet 9:16 video (1080×1920)', '6 şablondan dilediğiniz', `Türkçe seslendirme (${TR_VOICES.length} ses) ve İngilizce seçeneği`, 'İmar ve tapu bilgisi', 'Ofis logonuzla kapanış kartı', 'Ticari kullanım hakkı'] },
  { id: 'paket', name: 'Portföy 5', credits: 5, price: 3690, listPrice: 4990, per: '5 video', blurb: 'Portföyünde birkaç arsa olan danışmanlar için.', productEnv: 'DODO_PRODUCT_PAKET', featured: true,
    features: [`5 video kredisi (video başı ${per(3690, 5)})`, 'Tüm şablonlar', 'Logolu iletişim kartı', 'Öncelikli üretim kuyruğu', 'Kredi süresi dolmaz'] },
  { id: 'ofis', name: 'Ofis 20', credits: 20, price: 11790, listPrice: 15900, per: '20 video', blurb: 'Emlak ofisleri ve geliştiriciler.', productEnv: 'DODO_PRODUCT_OFIS',
    features: [`20 video kredisi (video başı ${per(11790, 20)})`, 'Master kalite: 1,5× süper örnekleme, daha keskin görüntü', 'En öncelikli üretim kuyruğu'],
    soon: ['Ekip içi kullanım', 'API / webhook teslimi'] },
];
export const planById = (id: string) => PLANS.find((p) => p.id === id);
export const tl = (n: number) => '₺' + n.toLocaleString('tr-TR');
/** Kampanyadaysa liste fiyatı ve indirim yüzdesi */
export const onSale = (p: Plan) => !!CAMPAIGN && !!p.listPrice && p.listPrice > p.price;
export const discountPct = (p: Plan) => (onSale(p) ? Math.round((1 - p.price / p.listPrice!) * 100) : 0);
