1) User will deposit/keep money with CavemanTV
a. Use CavemanTV's Merchant account to deposit money.
b. Maximum deposit is $100 at a time.
c. User must be able to see their transactions (deposits, purchases, balance) online… maybe on their Profile page.
d. Amount of money with an account needs to be SECURE (encrypted? With checksums?). Don't want people hacking the site and giving themselves $1,000,000 !
e. Transactions and money in account needs to be PRIVATE (only visisble to CavemanTV admin-panel and the user)
2) Pay to view clip
a. When uploading a video, the Star should be able to set a price for the video.
b. CavemanTV admin-panel should be able to set “recommended” price range of videos, to be displayed to Stars when they are prompted to set the price.
c. CavemanTV admin-panel should be able to set “enforced” price range, of which the Star cannot exceed.
d. A video can always have a price of ZERO (free). So if the “enforced” price range is $0.10 to $0.30, a Star cannot set it to $0.05, but they CAN set it to $0.00.
e. Star should be able to CHANGE the price of any video AT ANY TIME (within the limits of the “enforced” price range).
f. When a video is “purchased”, these things should happen immediately:
i. Price of video (at that time) deducted from user's account
ii. Purchase recorded on user's transaction log (time, video name/ID, purchase price, remaining balance)
iii. Video name/ID saved to the user's account, so that we know that person can view that video without paying in future
iv. Price of video added to the Star's account
v. Purchase recorded on the Star's transaction log (time, video name/ID, username of purchaser, purchase price, account balance)
g. A Star should NEVER be able to DELETE or REMOVE a video. Once a video has been uploaded, only Admin can remove a video.
h. CavemanTV Admin-Panel will set our Percentage (set it as 15% right now). For EVERY purchase, 15% (should be a real-time database lookup, in case we change that number on the fly) should be transferred to the CavemanTV “account”, and 85% transferred into the Star's account.
3) Authentication (vid viewable to user who paid only)
a. Videos should have prices clearly marked. The price needs to be done using a real-time database lookup, just in case the Star changes prices.
b. If a video has been previously purchased, the user should see that when they go to the video link. Something like “You've already purchased this video. Watch it as many times as you want from now on without paying!”, instead of showing how much the video is. Once they've purchased a video, they should NEVER see the video price again.
c. So, authentication is REALLY important. Videos should ONLY be viewed if the AUTHENTICATED USER has rights to it.
4) Solid accounting functions
a. The CavemanTV Admin-Panel needs comprehensive access to all database changes related to money: when videos were uploaded, when videos were purchased, when video prices are set/changed, when deposits were made into accounts, etc. All sortable by username and date.
b. The CavemanTV Admin-Panel should show how much money is in the CAvemanTV “account”. This is the 15% percentage we take on all purchases.
c. Once a month, we will pay our Stars the money that they are owed. We will pay out everything EXCEPT for $10 (which is to remain in their account). So if a Star's account has $30.45, we will pay them $20.45, so that $10 will be left in the account. We need a CavemanTV Admin-Panel module to help us do that:
i. A list showing all the Stars, and displaying how much is in their account, how much to write the check out for, and how much will be left in their account.
ii. Once we write the check, we will enter (into a text field) the check number. A transaction should be written to the database (and the Star's transaction log, so it'll be visible to them) showing that at AAA time, a check number BBB was created paying them $CCC.
iii. We obviously need to deduct $CCC from the Star's account.
d. Within the CavemanTV Admin-Panel, we need to see how much “money” is on the site at all times. That amount should only go up when users deposit money, should only go down when we pay Stars (once a month).
5) Admin review/edit function
a. Need a function to set an account as an “admin”. Such an “admin” account should be able to:
i. VIEW all videos without paying (and without recording access in Star's transaction logs).
ii. EDIT all video information (description, tags, price, etc). Such edits SHOULD appear in the Star's transaction logs, as “Admin made this change: XXX”.
b. Accounts with this “admin” setting should be HIGHLIGHTED on the CavemanTV Admin-Panel (to remind us who has this setting).