<?php
namespace NewsletterBridge\Utils;
/**
 * This Is the abstract class Service
 */
abstract class Service {

    protected $code;
    protected $name;
    protected $description;
    protected $params;
    protected $endpoint_url;

    abstract protected function subscribe($param);
    abstract protected function subscribeoptin($param);
    abstract protected function unsubscribe($param);

    public function getCode() {
        return $this->code;
    }
    protected function setCode($code) {
        $this->code = $code;
    }
    public function getName() {
        return $this->name;
    }
    protected function setName($name) {
        $this->name = $name;
    }

    public function getDescription() {
        return $this->description;
    }
    protected function setDescription($description) {
        $this->description = $description;
    }

    public function getParams() {
        return $this->params;
    }
    public function setParams($params) {
        $this->params = $params;
    }
    public function setParamValue($param_key,$param_value) {
        $this->params[$param_key]["value"] = $param_value;
    }

    public function getEndpointUrl() {
        return $this->endpoint_url;
    }
    protected function setEndpointUrl($endpoint_url) {
        $this->endpoint_url = $endpoint_url;
    }
    
}