import { BlLifeRechargeAccountModelOptions } from './types'; 
 | 
import { ChannelOutput } from './lifeRechargeServices'; 
 | 
import { BlLifeRecharge } from './lifeRecharge'; 
 | 
  
 | 
export class BlLifeRechargeAccountModel<TResponse = any, TRequestOptions = any> { 
 | 
  ctx: BlLifeRecharge<TResponse, TRequestOptions>; 
 | 
  
 | 
  userId = ''; 
 | 
  phoneNumber = ''; 
 | 
  channlesNum = ''; 
 | 
  promoterIdNumber = ''; 
 | 
  
 | 
  /**用户所有的渠道 */ 
 | 
  userChannles = [] as ChannelOutput[]; 
 | 
  isBackClientUser: boolean; 
 | 
  isGetUserInfo = false; 
 | 
  
 | 
  constructor( 
 | 
    ctx: BlLifeRecharge<TResponse, TRequestOptions>, 
 | 
    options: BlLifeRechargeAccountModelOptions = {} 
 | 
  ) { 
 | 
    const { userId = '', phoneNumber = '', channlesNum } = options; 
 | 
    this.ctx = ctx; 
 | 
    this.setUserId(userId); 
 | 
    this.setPhoneNumber(phoneNumber); 
 | 
    this.setChannlesNum(channlesNum); 
 | 
  } 
 | 
  
 | 
  setUserId(userId: string) { 
 | 
    this.userId = userId; 
 | 
    this.ctx.listener.fireEvent('update', this.ctx); 
 | 
    // if (userId) { 
 | 
    //   this.getUserInfo(userId); 
 | 
    // } 
 | 
  } 
 | 
  
 | 
  async getUserInfo(userId?: string) { 
 | 
    try { 
 | 
      let res = await this.ctx.services.lifePayUserMesssageByIduser( 
 | 
        { 
 | 
          id: userId || this.userId, 
 | 
        }, 
 | 
        { 
 | 
          showLoading: false, 
 | 
        } 
 | 
      ); 
 | 
      if (res && res.isBackClientUser) { 
 | 
        this.setUserChannles(res.channlesNum ?? []); 
 | 
      } 
 | 
      this.isBackClientUser = res.isBackClientUser; 
 | 
      this.promoterIdNumber = res.promoterIdNumber; 
 | 
      this.isGetUserInfo = true; 
 | 
      return res; 
 | 
    } catch (error) { 
 | 
      console.log('error: ', error); 
 | 
    } 
 | 
  } 
 | 
  
 | 
  setPhoneNumber(phoneNumber: string) { 
 | 
    this.phoneNumber = phoneNumber; 
 | 
    this.ctx.listener.fireEvent('update', this.ctx); 
 | 
  } 
 | 
  setChannlesNum(channlesNum: string) { 
 | 
    this.channlesNum = channlesNum; 
 | 
    this.ctx.listener.fireEvent('update', this.ctx); 
 | 
  } 
 | 
  setUserChannles(userChannles: ChannelOutput[]) { 
 | 
    this.userChannles = userChannles; 
 | 
    this.ctx.listener.fireEvent('update', this.ctx); 
 | 
  } 
 | 
  
 | 
  setUserPromoterIdNumber(promoterIdNumber: string) { 
 | 
    this.promoterIdNumber = promoterIdNumber; 
 | 
    this.ctx.listener.fireEvent('update', this.ctx); 
 | 
  } 
 | 
} 
 |