using System;
using System.Collections.Generic;

namespace Com.Bocom.OpenApi
{
    public abstract class BocomRequest<T> where T : BocomResponse
    {
        private string serviceUrl;

        public string GetServiceUrl()
        {
            return serviceUrl;
        }

        public void SetServiceUrl(string value)
        {
            serviceUrl = value;
        }

        private BizContent bizContent;

        public BizContent GetBizContent()
        {
            return bizContent;
        }

        public void SetBizContent(BizContent value)
        {
            bizContent = value;
        }

        private Dictionary<string, string> extraParams = new Dictionary<string, string>();

        public Dictionary<string, string> GetExtraParams()
        {
            return extraParams;
        }

        public abstract Type GetResponseClass();
        public abstract bool IsNeedEncrypt();

        public abstract Type GetBizContentClass();
        //abstract public Dictionary<string, string> getExtraParameters();


        /**
         * @return POST or GET
         */
        public abstract string GetMethod();

        //  abstract public string getEncrpytKey();


        //  abstract public string getEncrpytPolicy();

        // abstract public FileItem getFileItem();


        //     abstract public void setHashCode(string hashCode);


        //  abstract public string getDownloadPath();

        // abstract public string getEncrpytType();
    }
}