import moment = require("moment");
import { ACTIVITY_TYPE } from "../../consts";
import { ActivityPopUpShopModelType } from "../../db/ActivityPopUpShop";

// 弹框商店
export class PopUpShopData {
    type: number//活动类型 
    activityId: number;      // 活动id
    id: number;      // 第几个，从1开始
    name: string;           //名字
    consume: string;  //消耗资源(这里优先rmb的price价格，其次资源消耗)
    price: number; // 商品价格
    productID: string; // 商品id支付时使用
    reward: string;         //任务奖励，格式:1&3&1(类型&id&数量) 类型定义:1.英雄，2.物品
    rebate: number; // 折扣用于显示
    duration: number; // 持续时间，单位小时
    taskType: number; // 任务类型
    taskParam: number; // 任务参数
    condition: number; // 任务条件
    totalCount: number; //一共完成次数
    count: number; //最大可购买次数

    buyCount: number = 0;   //已经购买过次数
    beginTime: Date = null;//开始时间
    endTime: Date = null;//结束时间
    beginTimeStamp: number = 0;//开始时间
    endTimeStamp: number = 0;//结束时间

    //解析玩家开启的商店记录
    public setPlayerRecords(data: ActivityPopUpShopModelType) {
        if (!data) {
            return;
        }
        this.buyCount = data.buyCount ? data.buyCount : 0;
        this.beginTime = data.beginTime;
        this.endTime = data.endTime;
        this.beginTimeStamp = moment(data.beginTime).valueOf();
        this.endTimeStamp = moment(data.endTime).valueOf();
        this.totalCount = data.totalCount;
    }


    public initData(data: any) {
        this.type = ACTIVITY_TYPE.POP_UP_SHOP;
        this.id = data.id;
        this.reward = data.reward;
        this.consume = data.consume ? data.consume : '';
        this.price = data.price ? data.price : 0;
        this.productID = data.productID ? data.productID : '';
        this.name = data.name;
        this.rebate = data.rebate;
        this.duration = data.duration;
        this.taskType = data.taskType;
        this.taskParam = data.taskParam;
        this.condition = data.condition;
        this.buyCount = 0;
        this.beginTime = null;
        this.endTime = null;
        this.totalCount = 0;
        this.count = data.count;
    }

    constructor(activityData: any, activityId: number) {
        this.activityId = activityId;
        this.initData(activityData)
    }
}