Subversion Repositories SmartDukaan

Rev

Rev 2717 | Rev 3386 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

from shop2020.thriftpy.model.v1.user.ttypes import Address as TAddress,\
    Phone as TPhone, SocialHandles as TSocialHandles, UserCommunication as TUserCommunication,\
    UserState as TUserState, User as TUser, Cart as TCart, Line as TLine, Sex as TSex,\
    MasterAffiliate as TMasterAffiliate, Affiliate as TAffiliate, Tracker as TTracker, TrackLog as TTrackLog,\
    Promotion as TPromotion, Coupon as TCoupon, UserNote as TUserNote
from shop2020.utils.Utils import to_java_date

def to_t_address(address):
    t_address = TAddress()
    t_address.id = address.id
    t_address.line1 = address.line_1
    t_address.line2 = address.line_2
    t_address.landmark = address.landmark
    t_address.city = address.city
    t_address.state = address.state
    t_address.pin = address.pin
    t_address.country = address.country
    t_address.enabled = address.enabled
    t_address.type = address.type
    t_address.addedOn = to_java_date(address.added_on)
    t_address.name = address.name
    t_address.phone = address.phone
    return t_address    

def to_t_user(user):
    t_user = TUser()
    if user is None:
        t_user.userId = -1
        return t_user
    
    t_user.userId = user.id
    t_user.name = user.name
    t_user.email = user.email
    t_user.password = user.password
    t_user.sex = user.sex

    t_user.socialHandles = to_t_social_handle(user.social_handles)
    t_user.communicationEmail = user.communication_email
    t_user.defaultAddressId = user.default_address_id
    t_user.isAnonymous = user.is_anonymous
    t_user.activeCartId = user.active_cart_id
    t_user.dateOfBirth = user.date_of_birth
    t_user.mobileNumber = user.mobile_number
    t_user.source = user.source
    t_user.sourceStartTime = to_java_date(user.source_start_time)
    #put all addresses
    if user.addresses:
        t_user.addresses = list()
        for address in user.addresses:
            t_user.addresses.append(to_t_address(address))
    return t_user

def to_t_internal_info(internal_info):
    pass

def to_t_user_state(user_state):
    t_user_state = TUserState()
    t_user_state.userId = user_state.user.id
    t_user_state.lastLogin = to_java_date(user_state.last_login)
    t_user_state.lastLogout = to_java_date(user_state.last_logout)
    t_user_state.emailVerificationSentOn = to_java_date(user_state.email_verification_sent_on)
    t_user_state.smsVerificationSentOn = to_java_date(user_state.sms_verification_sent_on)
    t_user_state.isEmailVerified = user_state.is_email_verified
    t_user_state.isSMSVerified = user_state.is_sms_verified
    t_user_state.activeSince = to_java_date(user_state.active_since)
    t_user_state.status = user_state.account_status
    return t_user_state    

def to_t_phone(phone):
    t_phone = TPhone()
    t_phone.areaCode = phone.area_code
    t_phone.countryCode = phone.country_code
    t_phone.extension = phone.extension
    t_phone.number = phone.number
    t_phone.type = phone.type
    return t_phone

def to_t_social_handle(social_handles):
    t_socialHandle = TSocialHandles()
    for social_handle in social_handles:
        if social_handle.service.name == "Facebook":
            t_socialHandle.facebook = social_handle.handle
        if social_handle.service.name == "OpenSocial":
            t_socialHandle.opensocial = social_handle.handle
        if social_handle.service.name == "Twitter":
            t_socialHandle.twitter = social_handle.handle
    return t_socialHandle

def to_t_cart(cart):
    t_cart = TCart()
    if cart:
        t_cart.id = cart.id
        t_cart.status = cart.cart_status
        lines = []
        if cart.lines:
            for line in cart.lines:
                lines.append(to_t_line(line))
        t_cart.lines = lines
        t_cart.totalPrice = cart.total_price
        t_cart.discountedPrice = cart.discounted_price
        t_cart.couponCode = cart.coupon_code
        t_cart.createdOn = to_java_date(cart.created_on)
        t_cart.updatedOn = to_java_date(cart.updated_on)
        t_cart.userId = cart.user_id
        t_cart.addressId = cart.address_id
        t_cart.checkedOutOn = to_java_date(cart.checked_out_on)
    return t_cart
    
def to_t_line(line):
    t_line = TLine()
    if line:
        t_line.cartId = line.cart_id
        t_line.itemId = line.item_id
        t_line.quantity = line.quantity
        t_line.estimate = line.estimate
        t_line.actualPrice = line.actual_price
        t_line.discountedPrice = line.discounted_price
        t_line.createdOn = to_java_date(line.created_on)
        t_line.updatedOn = to_java_date(line.updated_on)
        t_line.lineStatus = line.line_status
    return t_line

def to_t_user_communication(user_communication):
    t_user_communication = TUserCommunication()
    
    if user_communication:
        t_user_communication.id = user_communication.id
        t_user_communication.userId = user_communication.user_id
        t_user_communication.communicationType = user_communication.communication_type
        t_user_communication.orderId = user_communication.order_id
        t_user_communication.airwaybillNo = user_communication.airwaybill_no
        t_user_communication.replyTo = user_communication.reply_to
        t_user_communication.productName = user_communication.product_name
        t_user_communication.subject = user_communication.subject
        t_user_communication.message = user_communication.message
        t_user_communication.communication_timestamp = to_java_date(user_communication.communication_timestamp)
        
    return t_user_communication

def to_t_master_affiliate(master_affiliate):
    t_master_affiliate = TMasterAffiliate()
    
    if master_affiliate:
        t_master_affiliate.id = master_affiliate.id
        t_master_affiliate.name = master_affiliate.name
        t_master_affiliate.addedOn = to_java_date(master_affiliate.added_on)

    return t_master_affiliate

def to_t_affiliate(affiliate):
    t_affiliate = TAffiliate()
    
    if affiliate:
        t_affiliate.id = affiliate.id
        t_affiliate.name = affiliate.name
        t_affiliate.url = affiliate.url
        t_affiliate.masterAffiliateId = affiliate.master_affiliate_id
        t_affiliate.addedOn = to_java_date(affiliate.added_on)
        
    return t_affiliate

def to_t_tracker(tracker):
    t_tracker = TTracker()
    
    if tracker:
        t_tracker.id = tracker.id
        t_tracker.affiliateId = tracker.affiliate_id
        t_tracker.addedOn = to_java_date(tracker.added_on)
    
    return t_tracker

def to_t_track_log(track_log):
    t_track_log = TTrackLog()
    
    if track_log:
        t_track_log.id = track_log.id
        t_track_log.affiliateId = track_log.affiliate_id
        t_track_log.userId = track_log.user_id
        t_track_log.event = track_log.event
        t_track_log.url = track_log.url
        t_track_log.data = track_log.data
        t_track_log.addedOn = to_java_date(track_log.added_on)

    return t_track_log

def to_t_promotion(promotion):
    t_promotion = TPromotion()
    
    if promotion:
        t_promotion.id = promotion.id
        t_promotion.name = promotion.name
        t_promotion.ruleExecutionSrc = promotion.rule_execution_src
        t_promotion.startOn = to_java_date(promotion.start_on)
        t_promotion.endOn = to_java_date(promotion.end_on)
        
        #if promotion.coupons:
        #    t_promotion.coupons = [to_t_coupon(coupon) for coupon in promotion.coupons]
        
        t_promotion.createdOn = to_java_date(promotion.created_on)
    return t_promotion

def to_t_coupon(coupon):
    t_coupon = TCoupon()

    if coupon:
        t_coupon.code = coupon.code
        t_coupon.promotion_id = coupon.promotion_id
        t_coupon.arguments = coupon.arguments
    
    return t_coupon

def to_t_user_note(user_note):
    t_user_note = TUserNote()
    
    if user_note:
        t_user_note.user_id = user_note.user_id
        t_user_note.entity_id = user_note.entity_id
        t_user_note.slide = user_note.slide
        t_user_note.note = user_note.note
    
    return t_user_note