package MsgDef

const (
	TbAcctInfo = "tb_prd_prd_inst_551"
	TbOfrDetail = "tb_prd_ofr_detail_inst_551"
	TbTariff = "tb_bil_tariff"
	TbOfrInfo = "tb_prd_ofr"
	TbPricingStrategy = "tb_bil_evt_pricing_strategy"
	TbConfigArea = "config_area"
	TbPricingArea = "tb_bil_pricing_area"
	TbRr = "ratable_history"
	TbHoliday = "tb_bil_holiday_rel"
	TbBilHoliday = "tb_bil_holiday"
	TbSmsInfo = "tb_sms_info"
	TbSyncMobile = "tb_sync_mobile"
)

type RecordChange struct {
	TableName string
	EventType string//entry.EventType

	ChgAcctInfo []ChgAcctInfo
	ChgOfrDetail []ChgOfrDetail
	ChgTariff []ChgTariff
	ChgOfrInfo []ChgOfrInfo
	ChgPricingStrategy []ChgPricingStrategy
	ChgConfigArea []ChgConfigArea
	ChgPricingArea []ChgPricingArea
	ChgRr []ChgRr
	ChgHoliday []ChgHoliday
	ChgBilHoliday []ChgBilHoliday
	ChgAlertSms []ChgAlertSms
	ChgSyncMobile []ChgSyncMobile
}

type ChgAcctInfo struct {
	PrdInstId int//string
	ServiceNbr string
	IfPrepaid string
	OldPrdInstStasId string
	NewPrdInstStasId string

	BUpdate bool
}

type ChgOfrDetail struct {
	OfrDetailInstId int//string
	OfrDetailTypeId string
	OldEffDate string
	NewEffDate string
	OldExpDate string
	NewExpDate string
	//OldCalcPriority string
	//NewCalcPriority string

	BUpdate bool
}

type ChgTariff struct {
	TariffId int//string
}

type ChgOfrInfo struct {
	OfrId int//string
	OfrTypeId string
	IfPrepaid string
	OldCalcPriority string
	NewCalcPriority string
	OldOfrState string
	NewOfrState string

	BUpdate bool
}

type ChgPricingStrategy struct {
	EventPricingStrategyId int//string
	OldEventPriority string
	NewEventPriority string
	OldCallType string
	NewCallType string

	BUpdate bool
}

type ChgConfigArea struct {
	AreaId int//string
	OldAreaCode string
	NewAreaCode string
	OldState string
	NewState string

	BUpdate bool
}

type ChgPricingArea struct {
	OldStrategyId int//string
	NewStrategyId int//string
	OldAreaId int//string
	NewAreaId int//string

	BUpdate bool
}

type ChgRr struct {
	Id int64//tring
	OldBeginTime string
	NewBeginTime string
	OldEndTime string
	NewEndTime string
	OldFreeValue int64//string
	NewFreeValue int64//string
	OldValue int64//string
	NewValue int64//string
	OldOwnId string
	NewOwnId string
	OldOfrInstId string
	NewOfrInstId string
	OldPricingSubSectionId string
	NewPricingSubSectionId string

	BUpdate bool
}

type ChgHoliday struct {
	OldState string
	NewState string
	OldTariffId int//string
	NewTariffId int//string
	OldTariffSeq int//string
	NewTariffSeq int//string

	BUpdate bool
}

type ChgBilHoliday struct {
	HolidayId int//string
	OldState string
	NewState string

	BUpdate bool
}

type ChgAlertSms struct {
	AlertId int
	ServiceNbr string
	SmsContent string
	OldState int
	NewState int

	BUpdate bool
}

type ChgSyncMobile struct {
	PreId int `redis:"preId,omitempty"`// key
	OperType int `redis:"operType"`// == 1, new; 2, replace imsi
	State int `redis:"state"`// == 1
	//Imsi string
	ServiceNbr string `redis:"serviceNbr"`
	CustId int `redis:"custId"`
	AcctId int `redis:"acctId"`
	PrdInstId int `redis:"prdInstId"`
	MobileType int `redis:"mobileType"`// == 1, mobile type
	BirthDate string `redis:"birthDate"`// date
	Balance int `redis:"balance"`
	BalanceExpDate string `redis:"balanceExpDate"`// datetime
	OfrId int `redis:"ofrId"`

	Imsi string `redis:"imsi"`
	Ki string `redis:"ki"`
	Opc string `redis:"opc"`
	VmsFlag int `redis:"vmsFlag"`
	ExpDate string `redis:"expDate"`// datetime
	CugId int `redis:"cugId"`

	OldState int// == 1
	//BUpdate bool
}
