# -*- coding: utf-8 -*-
# Module for Popbill Closedown API. It include base functionality of the
# RESTful web service request and parse json result. It uses Linkhub module
# to accomplish authentication APIs.
#
# http://www.popbill.com
# Author : Jeong Yohan (code@linkhubcorp.com)
# Written : 2015-07-16
# Updated : 2022-08-03
# Thanks for your interest.

from .base import PopbillBase, PopbillException


class ClosedownService(PopbillBase):
    """팝빌 휴폐업조회 API Service Implementation."""

    def __init__(self, LinkID, SecretKey):
        """생성자
        args
            LinkID : 링크허브에서 발급받은 링크아이디(LinkID)
            SecretKey : 링크허브에서 발급받은 비밀키(SecretKey)
        """

        super(self.__class__, self).__init__(LinkID, SecretKey)
        self._addScope("170")

    def getChargeInfo(self, CorpNum, UserID=None):
        """과금정보 확인
        args
            CorpNum : 회원 사업자번호
            UserID : 팝빌 회원아이디
        return
            과금정보 객체
        raise
            PopbillException
        """
        return self._httpget("/CloseDown/ChargeInfo", CorpNum, UserID)

    def getUnitCost(self, CorpNum):
        """휴폐업조회 단가 확인.
        args
            CorpNum : 팝빌회원 사업자번호
        return
            발행단가 by float
        raise
            PopbillException
        """

        result = self._httpget("/CloseDown/UnitCost", CorpNum)

        return float(result.unitCost)

    def checkCorpNum(self, MemberCorpNum, CheckCorpNum):
        """휴폐업조회 - 단건
        args
            MemberCorpNum : 팝빌회원 사업자번호
            CorpNum : 조회할 사업자번호
            MgtKey : 문서관리번호
        return
            휴폐업정보 object
        raise
            PopbillException
        """

        if MemberCorpNum == None or MemberCorpNum == "":
            raise PopbillException(-99999999, "팝빌회원 사업자번호가 입력되지 않았습니다.")

        if CheckCorpNum == None or CheckCorpNum == "":
            raise PopbillException(-99999999, "조회할 사업자번호가 입력되지 않았습니다.")

        return self._httpget("/CloseDown?CN=" + CheckCorpNum, MemberCorpNum)

    def checkCorpNums(self, MemberCorpNum, CorpNumList):
        """휴폐업조회 대량 확인, 최대 1000건
        args
            MemberCorpNum : 팝빌회원 사업자번호
            CorpNumList : 조회할 사업자번호 배열
        return
            휴폐업정보 Object as List
        raise
            PopbillException
        """
        if CorpNumList == None or len(CorpNumList) < 1:
            raise PopbillException(-99999999, "조죄할 사업자번호 목록이 입력되지 않았습니다.")

        postData = self._stringtify(CorpNumList)

        return self._httppost("/CloseDown", postData, MemberCorpNum)
