True when the poll can still accept votes: either it has no endsAt, or endsAt is still in the future.
bool get isActive => !hasEnded;