use criterion::{criterion_group, criterion_main, Criterion};
use marketing_engine::*;
use uuid::Uuid;

fn benchmark_content_validation(c: &mut Criterion) {
    let campaign_id = Uuid::new_v4();
    
    c.bench_function("валидация контента", |b| {
        b.iter(|| {
            let mut content = ContentMarketing::new("Тестовый контент", campaign_id);
            content.validate(0.85).unwrap();
        })
    });
}

fn benchmark_campaign_creation(c: &mut Criterion) {
    c.bench_function("создание кампании", |b| {
        b.iter(|| {
            CampaignBuilder::new()
                .title("Бенчмарк кампания")
                .budget(1000.0)
                .fluxion_target(0.7)
                .build()
                .unwrap()
        })
    });
}

criterion_group!(benches, benchmark_content_validation, benchmark_campaign_creation);
criterion_main!(benches);
