Send virtual gift cards through email

have a flag for email_sent as boolean but readonly.
Here, you should send only if the email is not sent already.Its possible that a workflow state could be triggered multiple times.
had the same issue with sale.

however, do not implement it in "send_gift_card_as_email".