<?php

namespace app\controller;

use app\service\MetaBusinessService;
use support\Response;

//use Webman\Http\Response;

class MetaController extends Controller
{
    protected $metaBusinessService;


    public function __construct()
    {
        // 初始化各个服务
        $this->metaBusinessService = new MetaBusinessService();
    }

    // 获取广告账户
    public function getBusinessAccounts(): Response
    {
        $accounts = $this->metaBusinessService->getBusinessAccounts();
        return $this->successResponse(['data' => $accounts]);
    }

    // 保存广告账户
    public function saveBusinessAccounts(): Response
    {
        $accounts = $this->metaBusinessService->getBusinessAccounts();
        $this->metaBusinessService->saveBusinessAccounts($accounts);
        return $this->successResponse(['message' => 'Business accounts saved successfully']);
    }

    // 获取广告系列列表
    public function getCampaigns(): Response
    {
        $campaigns = $this->metaBusinessService->getCampaigns();
        return $this->successResponse(['data' => $campaigns]);
    }

    // 创建广告系列
    public function createCampaign($name, $objective, $status): Response
    {
        $campaign = $this->metaBusinessService->createCampaign($name, $objective, $status);
        return $this->successResponse(['data' => $campaign]);
    }

    // 获取广告组列表
    public function getAdGroups($campaignId): Response
    {
        $adGroups = $this->metaBusinessService->getAdGroups($campaignId);
        return $this->successResponse(['data' => $adGroups]);
    }

    // 创建广告组
    public function createAdGroup($campaignId, $name, $status): Response
    {
        $adGroup = $this->metaBusinessService->createAdGroup($campaignId, $name, $status);
        return $this->successResponse(['data' => $adGroup]);
    }

    // 获取广告列表
    public function getAds($adGroupId): Response
    {
        $ads = $this->metaBusinessService->getAds($adGroupId);
        return $this->successResponse(['data' => $ads]);
    }

    // 创建广告
    public function createAd($adGroupId, $name, $status): Response
    {
        $ad = $this->metaBusinessService->createAd($adGroupId, $name, $status);
        return $this->successResponse(['data' => $ad]);
    }
}