restriction to send gift

If a user already has the gift, restrict it to send it again. some more
scenarios needs to be incorporated