You can start by storing your files in your application in the assets folder then add authorization that only one type of user can download unlimited that file(ex: admin can download but user can’t).
If this scenario doesn’t work, then you can create a field in the user tables
called plan. When a user pays you update the plan to paid. Then create a rule that only users with a paid plan can download files.
If you want to be even more specific then you will have to create another table with all the files structure like this:
- id
- file_name
Then create a join between the user tables with the files tables and verify each user to what file they belong
Also you will have to setup a payment system paypal stripe etc.
Also this link may provide some help Phoenix file download