Per-plan lite period
Don't send end-of-trial notifications if free_months != 1
Looks good to me.
Why are we doing this? A comment would be helpful.
This does not seem problematic to me, we're just bumping updated_at to the first point in time where we have to check it again, no?
Below we calculate the price using updated_at timestamp.
$apply=false is dry-run.