Optimal insurance contract design with "No-claim Bonus and Coverage Upper Bound" under moral hazard