I have a similar use case.
I have presented some solutions here.
Thank you yeye_olive, your advices works.