Ejemplo n.º 1
0
func FactoryPromotion(rep promotion.IPromotionRep, saleRep sale.ISaleRep,
	v *promotion.ValuePromotion) promotion.IPromotion {
	prom := newPromotion(rep, saleRep, v)

	if prom.Type() == promotion.TypeFlagCashBack {
		pv := rep.GetValueCashBack(prom.GetAggregateRootId())
		if pv == nil {
			pv = &promotion.ValueCashBack{
				Id: prom.GetAggregateRootId(),
			}
		}
		cp := &CashBackPromotion{
			Promotion:      prom,
			_cashBackValue: pv,
		}
		return cp
	}

	//todo:
	return prom
}