I am writing an object-oriented program, the business process of which requires a ticket object. The ticket object operates in two ways. These are shares that will be sold, and these are shares that we ourselves either hold on the basis of a sale or return, or have committed to buy.
For this reason, a ticket in the sales process may have the status of “affordable” or “sold” (there are other states, but these are important). The ticket also as a state in relation to SOR status is either “weedy” or “acquired”.
In theory, it is possible that the ticket “sor” can be “available” or “sold”, it is also possible that the purchased ticket will be “available” or “sold”. Two sets of states have practically nothing in common with each other. It is assumed that a “sold” ticket will eventually become a “purchased” and “affordable” ticket so that it never exists. What about that.
So, would I be right to design an object with two separate and independent states? Or should it have only one state that includes all of the above? What is the practice?
ADDITIONAL: So here is the hard track, while I wait in the wings for some help on this, I went back to my analysis, and another bizarre layer appeared there. “Tickets” have subobjects called “Prices”, which means there is a ticket that can be sold to an adult at one price, a child in another and a pensioner on another.
When the ticket is in the "SOR" state, which is indicated at the ticket level, but when it enters the "Purchased" state, which is registered in relation to the price, since the ticket can have several possible prices, but when it is paid it is paid only at one level ( this is due to things like venue features).
, "" , , "" "", , , , , . , , , - , , , . ?