<?php

namespace Shopping\Publisher;

use PDO;

class PublisherRepository {
    private PDO $dbAdmin;

    public function __construct(PDO $dbAdmin) {
        $this->dbAdmin = $dbAdmin;
    }

    /**
     * Get publishers enabled for Shopping Data Feeds (SDF)
     *
     * @return array[]
     * [
     *   [
     *     'id' => 101,
     *     'affiliate' => 'savepages',
     *     'enabled_feeds' => []   // placeholder for now
     *   ]
     * ]
     */
    public function getActivePublishers(): array {
        $sql = "SELECT aid.id, aid.Affiliate,
                       ai.pub_aws_access_key, ai.pub_aws_secret_key,
                       ai.pub_s3_bucket, ai.pub_s3_region
                FROM AffiliateIDs aid
                JOIN Affiliate_info ai ON ai.Affiliate = aid.Affiliate
                WHERE aid.is_sdf = 1
                  AND ai.pub_aws_access_key != ''
                  AND ai.pub_aws_secret_key != ''
                  AND ai.pub_s3_bucket != ''";

        $stmt = $this->dbAdmin->prepare($sql);
        $stmt->execute();

        $publishers = [];

        while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
            $publishers[] = [
                'id'                  => (int)$row['id'],
                'affiliate'           => $row['Affiliate'],
                'pub_aws_access_key'  => $row['pub_aws_access_key'],
                'pub_aws_secret_key'  => $row['pub_aws_secret_key'],
                'pub_s3_bucket'       => $row['pub_s3_bucket'],
                'pub_s3_region'       => $row['pub_s3_region'],
                'enabled_feeds'       => []
            ];
        }

        return $publishers;
    }
}