the coupon table would need a column for end date.
the recordset that is used to lookup the coupon amount would need to be edited to also return the end date column
When setting the amount and code session variables, another set session variable would be needed to store the end date value.
In the coupon rule, you could add another trigger for Today is before a certain day and use the session for comparison.
to track how many times the coupon is redeemed, the order table would need a column to store the coupon code.
you would need to update the store order summary behavior to bind the coupon code column to the coupon code session variable.
in the admin section you would need to create d a recordset using the COUNT() function to count the number of times the coupon was used, for example:
SELECT COUNT(OrderID) as timesRedeemed FROM orders WHERE couponCode = "your Coupon"