The data structure should be something as follows;
Checklist entity
This is the default configuration of the checklist. Checklist instances are spawned from this.
[x] Id
[x] Deleted
[x] Created
[x] Is Property Mandatory (Determines if the checklist must be tied to a specific property)
[x] Is Available Downstream (Determines if downstream users have access to this list. i.e. Agency > Landlord)
[x] Image (File name + extension)
Checklist item entity
This is each item on the checklist (the master version)
[x] Id
[x] Deleted
[x] Checklist Id
[x] Display text
[x] Key
[x] Created
[x] Is Expanded (it should be possible to have an item [the first one maybe] expanded by default)
[x] Template name
Checklist instance entity
When the user creates an instance of the checklist from a master template, it goes here. Edits are made against the instance and not the master.
[x] Id
[x] Created
[x] Deleted
[x] Archived
[x] Is available downstream
[x] Image
[x] User Id
[x] Master checklist id?
Checklist instance item entity
Copied originally from the master checklist item. Allows the user to make edits
The data structure should be something as follows;
Checklist entity This is the default configuration of the checklist. Checklist instances are spawned from this.
Checklist item entity This is each item on the checklist (the master version)
Checklist instance entity When the user creates an instance of the checklist from a master template, it goes here. Edits are made against the instance and not the master.
Checklist instance item entity Copied originally from the master checklist item. Allows the user to make edits