<?php
class Language {
    private $db;

    public function __construct() {
        $database = new Database();
        $this->db = $database->getConnection();
    }

    public function getSupported() {
        try {
            $query = "SELECT * FROM languages WHERE is_active = 1 ORDER BY name";
            $stmt = $this->db->prepare($query);
            $stmt->execute();
            return $stmt->fetchAll();
        } catch (Exception $e) {
            error_log("Get supported languages error: " . $e->getMessage());
            return [];
        }
    }

    public function setLanguage($code) {
        if (array_key_exists($code, SUPPORTED_LANGUAGES)) {
            $_SESSION['language'] = $code;
            return true;
        }
        return false;
    }

    public function getCurrentLanguage() {
        return $_SESSION['language'] ?? DEFAULT_LANGUAGE;
    }

    public function getTranslation($articleId, $langCode) {
        try {
            $query = "SELECT * FROM article_translations WHERE article_id = :article_id AND language_code = :language_code";
            $stmt = $this->db->prepare($query);
            $stmt->bindParam(':article_id', $articleId);
            $stmt->bindParam(':language_code', $langCode);
            $stmt->execute();
            return $stmt->fetch();
        } catch (Exception $e) {
            error_log("Get translation error: " . $e->getMessage());
            return false;
        }
    }

    public function saveTranslation($articleId, $langCode, $data) {
        try {
            $query = "INSERT INTO article_translations (article_id, language_code, title, content, excerpt, meta_title, meta_description)
                      VALUES (:article_id, :language_code, :title, :content, :excerpt, :meta_title, :meta_description)
                      ON DUPLICATE KEY UPDATE
                      title = VALUES(title),
                      content = VALUES(content),
                      excerpt = VALUES(excerpt),
                      meta_title = VALUES(meta_title),
                      meta_description = VALUES(meta_description),
                      updated_at = NOW()";

            $stmt = $this->db->prepare($query);
            $stmt->bindParam(':article_id', $articleId);
            $stmt->bindParam(':language_code', $langCode);
            $stmt->bindParam(':title', $data['title']);
            $stmt->bindParam(':content', $data['content']);
            $stmt->bindParam(':excerpt', $data['excerpt']);
            $stmt->bindParam(':meta_title', $data['meta_title']);
            $stmt->bindParam(':meta_description', $data['meta_description']);

            return $stmt->execute();
        } catch (Exception $e) {
            error_log("Save translation error: " . $e->getMessage());
            return false;
        }
    }
}
?>