coupon entity, generate/use coupon