Subversion Repositories SmartDukaan

Rev

Rev 6031 | Blame | Compare with Previous | Last modification | View Log | RSS feed

'''
Created on 11-Sep-2012

@author: mandeep
'''
from elixir.fields import Field
from elixir.options import using_options, using_table_options
from shop2020.model.v1.order.impl.model.RechargeOrder import RechargeOrder
from shop2020.thriftpy.model.v1.order.ttypes import \
    RechargeOrder as TRechargeOrder, RechargeType
from sqlalchemy.types import String, Integer

class MobileRechargeOrder(RechargeOrder):
    '''
    classdocs
    '''
    mobileNumber = Field(String(256))
    mobileOperatorId = Field(Integer)
    rechargePlan = Field(String(256))
    using_options(shortnames=True, inheritance='multi')
    using_table_options(mysql_engine="InnoDB")

    def __init__(self):
        '''
        Constructor
        '''
        super(MobileRechargeOrder, self).__init__()
        self.idPrefix = 'MOBR'

    def to_thrift_object(self):
        mobileRechargeOrder = TRechargeOrder()
        super(MobileRechargeOrder, self).to_thrift_object(mobileRechargeOrder)
        mobileRechargeOrder.deviceNumber = self.mobileNumber
        mobileRechargeOrder.operatorId = self.mobileOperatorId
        mobileRechargeOrder.plan = self.rechargePlan
        mobileRechargeOrder.rechargeType = RechargeType.MOBILE
        return mobileRechargeOrder

    def from_thrift_object(self, thriftMobileRechargeOrder):
        super(MobileRechargeOrder, self).from_thrift_object(thriftMobileRechargeOrder)
        self.mobileNumber = thriftMobileRechargeOrder.deviceNumber
        self.mobileOperatorId = thriftMobileRechargeOrder.operatorId
        self.rechargePlan = thriftMobileRechargeOrder.plan
        if not self.is_valid():
            raise ValueError()

    def is_valid(self):
        return super(MobileRechargeOrder, self).is_valid() and self.totalAmount < 5000