Open igneus opened 2 years ago
At least for the particular use case mentioned above a sufficient alternative solution (not requiring a new entity "on day D let there be nothing" in Sanctorale
internal data structure) would be, when a given Celebration
symbol appears on another date, to delete the appearance inherited from the parent instance. But this could easily result in silent unexpected behaviour.
Also it could be argued that we need more versatile tools for calendar layering, like changing a celebration's date or modifying some of its properties (rank/colour/title) in the child calendar without having to repeat the whole day's entry. But I would prefer not to go down this path. The current data file layering logic is certainly not the DRYest one, but it's dead simple.
When layering sanctorale data files there are occasionally cases where we need to just delete contents of a day inherited from a parent file without replacing them with other celebrations.
Real-life example: in the General Roman Calendar on 14th February there is the memorial of Sts. Cyril and Methodius, but in Czech Republic and some other countries they are celebrated on another date and there is no sanctorale celebration on 14th February. When modelling the Czech calendar as a layer over the General Roman Calendar, we need to be able to specify on 14th February delete all content copied from the parent instance.
In the data file it will be written as a date entry with no content:
Internal representation in
Sanctorale
data structure and related changes to the behaviour of the public interface need to be thoroughly considered.