diff --git a/src/main/resources/ch/zhaw/gartenverwaltung/io/taskdb.json b/src/main/resources/ch/zhaw/gartenverwaltung/io/taskdb.json index b3514b0..ff69563 100644 --- a/src/main/resources/ch/zhaw/gartenverwaltung/io/taskdb.json +++ b/src/main/resources/ch/zhaw/gartenverwaltung/io/taskdb.json @@ -6,7 +6,7 @@ "startDate" : "2022-05-01", "endDate" : "2022-05-01", "interval" : 0, - "cropID" : 0 + "cropId" : 0 }, { "id" : 2, @@ -15,7 +15,7 @@ "startDate" : "2022-05-01", "endDate" : "2022-09-01", "interval" : 2, - "cropID" : 0 + "cropId" : 0 }, { "id" : 3, @@ -24,7 +24,7 @@ "startDate" : "2022-06-01", "endDate" : "2022-08-01", "interval" : 28, - "cropID" : 0 + "cropId" : 0 }, { "id" : 4, @@ -33,7 +33,7 @@ "startDate" : "2022-07-01", "endDate" : "2022-07-01", "interval" : 0, - "cropID" : 0 + "cropId" : 0 }, { "id" : 5, @@ -42,7 +42,7 @@ "startDate" : "2022-05-01", "endDate" : "2022-09-01", "interval" : 5, - "cropID" : 0 + "cropId" : 0 }, { "id" : 6, @@ -51,6 +51,6 @@ "startDate" : "2022-09-01", "endDate" : "2022-09-01", "interval" : 0, - "cropID" : 0 + "cropId" : 0 } ] \ No newline at end of file diff --git a/src/test/java/ch/zhaw/gartenverwaltung/gardenplan/GardenPlanModelTest.java b/src/test/java/ch/zhaw/gartenverwaltung/gardenplan/GardenPlanModelTest.java index 1f951ea..6b30ce9 100644 --- a/src/test/java/ch/zhaw/gartenverwaltung/gardenplan/GardenPlanModelTest.java +++ b/src/test/java/ch/zhaw/gartenverwaltung/gardenplan/GardenPlanModelTest.java @@ -6,15 +6,15 @@ import ch.zhaw.gartenverwaltung.taskList.TaskListModel; import ch.zhaw.gartenverwaltung.types.*; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.mockito.internal.stubbing.answers.DoesNothing; +import java.io.File; import java.io.IOException; +import java.net.URL; +import java.nio.file.Files; import java.time.LocalDate; import java.time.MonthDay; import java.util.ArrayList; -import java.util.Collections; import java.util.List; -import java.util.Optional; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -34,6 +34,8 @@ public class GardenPlanModelTest { @BeforeEach void setUp() throws IOException { + + examplePlantOnion = new Plant( 0, "summertime onion", @@ -49,8 +51,8 @@ public class GardenPlanModelTest { new GrowthPhase(MonthDay.of(2, 8), MonthDay.of(12, 4), 0, new WateringCycle(0, 0, null), GrowthPhaseType.PLANT, HardinessZone.ZONE_8A, new ArrayList<>()), new GrowthPhase(MonthDay.of(10, 2), MonthDay.of(12, 4), 0, new WateringCycle(0, 0, null), GrowthPhaseType.PLANT, HardinessZone.ZONE_8A, new ArrayList<>()))); - exampleCropOnion = new Crop(examplePlantOnion.id(), LocalDate.now()); - exampleCropOnion.withId(13); + exampleCropOnion = new Crop(examplePlantOnion.id(), LocalDate.of(2023,3,1)); + exampleCropOnion.withId(3); examplePlantCarrot = new Plant( 1, "Early Carrot", @@ -70,9 +72,9 @@ public class GardenPlanModelTest { exampleCrop2 = new Crop(1,LocalDate.of(2023,3,1)); exampleCrop2.withId(1); exampleCrop2.withArea(0.5); - exampleCrop3 = new Crop(0,LocalDate.of(2023,3,25)); + exampleCrop3 = new Crop(0,LocalDate.of(2023,3,01)); exampleCrop3.withId(2); - exampleCrop3.withArea(1.5); + exampleCrop3.withArea(1.0); cropList = new ArrayList<>(); cropList.add(exampleCrop1); @@ -82,13 +84,18 @@ public class GardenPlanModelTest { TaskListModel taskListModel = new TaskListModel(new JsonTaskDatabase(), new JsonPlantDatabase()); model = new Gardenplanmodel(taskListModel); + +// final URL dataSource = getClass().getClassLoader().getResource("taskdb.json"); +// File src = new File(String.valueOf(getClass().getResource("originalDB/taskdb.json"))); +// File dest = new File(String.valueOf(getClass().getClassLoader().getResource("originalDB/taskdb.json"))); +// Files.copy(src.toPath(), dest.getParentFile().toPath()); } GardenPlan mockGardenPlan(List cropList) throws IOException { GardenPlan gardenPlan = mock(GardenPlan.class); when(gardenPlan.getCrops()).thenReturn(cropList); when(gardenPlan.getCropById(5)).thenReturn(java.util.Optional.ofNullable(exampleCropCarrot)); - when(gardenPlan.getCropById(13)).thenReturn(java.util.Optional.ofNullable(exampleCropOnion)); + when(gardenPlan.getCropById(3)).thenReturn(java.util.Optional.ofNullable(exampleCropOnion)); return gardenPlan; } @@ -96,7 +103,9 @@ public class GardenPlanModelTest { void plantAsCrop() throws HardinessZoneNotSetException, IOException, PlantNotFoundException { model.plantAsCrop(examplePlantOnion, LocalDate.of(2023,3,1)); - assertTrue(model.getCrops().contains(exampleCropOnion)); + exampleCropOnion = model.getCrop(2L).get(); + assertEquals(model.getCrops().get(2),exampleCropOnion); + } @Test diff --git a/src/test/resources/ch.zhaw.gartenverwaltung.gardenplan/plantdb.json b/src/test/resources/ch.zhaw.gartenverwaltung.gardenplan/plantdb.json new file mode 100644 index 0000000..5a23d09 --- /dev/null +++ b/src/test/resources/ch.zhaw.gartenverwaltung.gardenplan/plantdb.json @@ -0,0 +1,257 @@ +[ + { + "id": 0, + "name": "Potato", + "description": "The potato is a tuber, round or oval, with small white roots called 'eyes', that are growth buds. The size varies depending on the variety; the colour of the skin can be white, yellow or even purple.", + "light": 6, + "spacing": "35", + "soil": "sandy", + "image": "potato.jpg", + "pests": [ + { + "name": "Rot", + "description": "Rot, any of several plant diseases, caused by any of hundreds of species of soil-borne bacteria, fungi, and funguslike organisms (Oomycota). Rot diseases are characterized by plant decomposition and putrefaction. The decay may be hard, dry, spongy, watery, mushy, or slimy and may affect any plant part.", + "measures": "Less water." + } + ], + "lifecycle": [ + { + "startDate": "03-10", + "endDate": "04-10", + "type": "SOW", + "zone": "ZONE_8A", + "group": 0, + "wateringCycle": { + "litersPerSqM": 0, + "interval": null, + "notes": [] + }, + "taskTemplates": [ + { + "name": "Germinate", + "relativeStartDate": -14, + "relativeEndDate": null, + "description": "\"Take an egg carton and fill it with soil. Put the seedling deep enaugh so its half covered with soil. Keep it in 10-15 * Celsius with lots of light.\"", + "interval": null, + "isOptional": false + } + ] + }, + { + "startDate": "04-10", + "endDate": "07-10", + "type": "PLANT", + "zone": "ZONE_8A", + "group": 0, + "wateringCycle": { + "litersPerSqM": 25, + "interval": 7, + "notes": [] + }, + "taskTemplates": [ + { + "name": "hilling", + "relativeStartDate": 0, + "relativeEndDate": null, + "description": "\"When the plants are 20 cm tall, begin hilling the potatoes by gently mounding the soil from the center of your rows around the stems of the plant. Mound up the soil around the plant until just the top few leaves show above the soil. Two weeks later, hill up the soil again when the plants grow another 20 cm.\"", + "interval": 21, + "isOptional": false + } + ] + }, + { + "startDate": "06-10", + "endDate": "08-10", + "type": "HARVEST", + "zone": "ZONE_8A", + "group": 0, + "wateringCycle": { + "litersPerSqM": 0, + "interval": null, + "notes": [] + }, + "taskTemplates": [ + { + "name": "Harvest", + "relativeStartDate": 0, + "relativeEndDate": null, + "description": "Once the foliage has wilted and dried completely, harvest on a dry day. Store in a dark and cool location.", + "interval": null, + "isOptional": false + } + ] + } + ] + }, + { + "id": 1, + "name": "Early Carrot", + "description": "Carrot, (Daucus carota), herbaceous, generally biennial plant of the Apiaceae family that produces an edible taproot. Among common varieties root shapes range from globular to long, with lower ends blunt to pointed. Besides the orange-coloured roots, white-, yellow-, and purple-fleshed varieties are known.", + "image": "carrot.jpg", + "lifecycle": [ + { + "startDate": "02-20", + "endDate": "03-10", + "zone": "ZONE_8A", + "type": "SOW", + "wateringCycle": { + "litersPerSqM": 15, + "interval": 3, + "notes": [] + }, + "taskTemplates": [ + { + "name": "hilling", + "relativeStartDate": 0, + "relativeEndDate": 0, + "description": "Mound up the soil around the plant until just the top few leaves show above the soil. ", + "interval": null, + "isOptional": false + } + ] + }, + { + "startDate": "03-10", + "endDate": "05-10", + "zone": "ZONE_8A", + "type": "PLANT", + "wateringCycle": { + "litersPerSqM": 25, + "interval": 3, + "notes": [ + "Be careful not to pour water over the leaves, as this will lead to sunburn." + ] + }, + "taskTemplates": [ + { + "name": "hilling", + "relativeStartDate": 0, + "relativeEndDate": null, + "description": "Mound up the soil around the plant until just the top few leaves show above the soil. ", + "interval": 15, + "isOptional": true + } + ] + }, + { + "startDate": "05-10", + "endDate": "05-20", + "zone": "ZONE_8A", + "type": "HARVEST", + "wateringCycle": { + "litersPerSqM": 0, + "interval": null, + "notes": [] + }, + "taskTemplates": [ + { + "name": "Harvesting", + "relativeStartDate": 0, + "relativeEndDate": 14, + "description": "When the leaves turn to a yellowish brown. Do not harvest earlier. The plant will show when it's ready.", + "interval": null, + "isOptional": false + } + ] + } + ], + "soil": "sandy to loamy, loose soil, free of stones", + "spacing": "5,35,2.5", + "pests": [ + { + "name": "Rot", + "description": "rot, any of several plant diseases, caused by any of hundreds of species of soil-borne bacteria, fungi, and funguslike organisms (Oomycota). Rot diseases are characterized by plant decomposition and putrefaction. The decay may be hard, dry, spongy, watery, mushy, or slimy and may affect any plant part.", + "measures": "less water" + } + ] + }, + { + "id": 2, + "name": "Summertime Onion", + "description": "Onion, (Allium cepa), herbaceous biennial plant in the amaryllis family (Amaryllidaceae) grown for its edible bulb. The onion is likely native to southwestern Asia but is now grown throughout the world, chiefly in the temperate zones. Onions are low in nutrients but are valued for their flavour and are used widely in cooking. They add flavour to such dishes as stews, roasts, soups, and salads and are also served as a cooked vegetable.", + "image": "onion.jpg", + "lifecycle": [ + { + "startDate": "03-15", + "endDate": "04-10", + "type": "SOW", + "zone": "ZONE_8A", + "group": 0, + "wateringCycle": { + "litersPerSqM": 15, + "interval": 4, + "notes": [ + + ] + }, + "taskTemplates": [ + { + "name": "hilling", + "relativeStartDate": 0, + "relativeEndDate": 0, + "description": "Mound up the soil around the plant until just the top few leaves show above the soil. ", + "interval": null, + "isOptional": false + } + ] + }, + { + "startDate": "04-10", + "endDate": "07-10", + "type": "PLANT", + "zone": "ZONE_8A", + "group": 0, + "wateringCycle": { + "litersPerSqM": 25, + "interval": 3, + "notes": [ + "" + ] + }, + "taskTemplates": [ + { + "name": "hilling", + "relativeStartDate": 0, + "relativeEndDate": null, + "description": "Mound up the soil around the plant until just the top few leaves show above the soil. ", + "interval": 15, + "isOptional": true + } + ] + }, + { + "startDate": "07-10", + "endDate": "09-20", + "type": "HARVEST", + "zone": "ZONE_8A", + "group": 0, + "wateringCycle": { + "litersPerSqM": 0, + "interval": null, + "notes": [ + + ] + }, + "taskTemplates": [ + { + "name": "Harvesting", + "relativeStartDate": 0, + "relativeEndDate": 14, + "description": "When ready for harvest, the leaves on your onion plants will start to flop over. This happens at the \"neck\" of the onion and it signals that the plant has stopped growing and is ready for storage. Onions should be harvested soon thereafter", + "interval": null, + "isOptional": false + } + ] + } + ], + "soil": "sandy to loamy, loose soil, free of stones", + "spacing": "15,30,2", + "pests": [ + { + "name": "Rot", + "description": "rot, any of several plant diseases, caused by any of hundreds of species of soil-borne bacteria, fungi, and funguslike organisms (Oomycota). Rot diseases are characterized by plant decomposition and putrefaction. The decay may be hard, dry, spongy, watery, mushy, or slimy and may affect any plant part.", + "measures": "less water" + } + ] + } +] diff --git a/src/test/resources/ch.zhaw.gartenverwaltung.gardenplan/taskdb.json b/src/test/resources/ch.zhaw.gartenverwaltung.gardenplan/taskdb.json new file mode 100644 index 0000000..b3514b0 --- /dev/null +++ b/src/test/resources/ch.zhaw.gartenverwaltung.gardenplan/taskdb.json @@ -0,0 +1,56 @@ +[ + { + "id" : 1, + "name" : "sow plant", + "description": "Plant the seeds, crops in de bed.", + "startDate" : "2022-05-01", + "endDate" : "2022-05-01", + "interval" : 0, + "cropID" : 0 + }, + { + "id" : 2, + "name" : "water plant", + "description": "water the plant, so that the soil is wet around the plant.", + "startDate" : "2022-05-01", + "endDate" : "2022-09-01", + "interval" : 2, + "cropID" : 0 + }, + { + "id" : 3, + "name" : "fertilize plant", + "description": "The fertilizer has to be mixed with water. Then fertilize the plants soil with the mixture", + "startDate" : "2022-06-01", + "endDate" : "2022-08-01", + "interval" : 28, + "cropID" : 0 + }, + { + "id" : 4, + "name" : "covering plant", + "description": "Take a big enough coverage for the plants. Cover the whole plant with a bit space between the plant and the coverage", + "startDate" : "2022-07-01", + "endDate" : "2022-07-01", + "interval" : 0, + "cropID" : 0 + }, + { + "id" : 5, + "name" : "look after plant", + "description": "Look for pest or illness at the leaves of the plant. Check the soil around the plant, if the roots are enough covered with soil", + "startDate" : "2022-05-01", + "endDate" : "2022-09-01", + "interval" : 5, + "cropID" : 0 + }, + { + "id" : 6, + "name" : "harvest plant", + "description": "Pull the ripe vegetables out from the soil. Clean them with clear, fresh water. ", + "startDate" : "2022-09-01", + "endDate" : "2022-09-01", + "interval" : 0, + "cropID" : 0 + } +] \ No newline at end of file diff --git a/src/test/resources/ch/zhaw/gartenverwaltung/io/plantdb.json b/src/test/resources/ch/zhaw/gartenverwaltung/io/plantdb.json new file mode 100644 index 0000000..5a23d09 --- /dev/null +++ b/src/test/resources/ch/zhaw/gartenverwaltung/io/plantdb.json @@ -0,0 +1,257 @@ +[ + { + "id": 0, + "name": "Potato", + "description": "The potato is a tuber, round or oval, with small white roots called 'eyes', that are growth buds. The size varies depending on the variety; the colour of the skin can be white, yellow or even purple.", + "light": 6, + "spacing": "35", + "soil": "sandy", + "image": "potato.jpg", + "pests": [ + { + "name": "Rot", + "description": "Rot, any of several plant diseases, caused by any of hundreds of species of soil-borne bacteria, fungi, and funguslike organisms (Oomycota). Rot diseases are characterized by plant decomposition and putrefaction. The decay may be hard, dry, spongy, watery, mushy, or slimy and may affect any plant part.", + "measures": "Less water." + } + ], + "lifecycle": [ + { + "startDate": "03-10", + "endDate": "04-10", + "type": "SOW", + "zone": "ZONE_8A", + "group": 0, + "wateringCycle": { + "litersPerSqM": 0, + "interval": null, + "notes": [] + }, + "taskTemplates": [ + { + "name": "Germinate", + "relativeStartDate": -14, + "relativeEndDate": null, + "description": "\"Take an egg carton and fill it with soil. Put the seedling deep enaugh so its half covered with soil. Keep it in 10-15 * Celsius with lots of light.\"", + "interval": null, + "isOptional": false + } + ] + }, + { + "startDate": "04-10", + "endDate": "07-10", + "type": "PLANT", + "zone": "ZONE_8A", + "group": 0, + "wateringCycle": { + "litersPerSqM": 25, + "interval": 7, + "notes": [] + }, + "taskTemplates": [ + { + "name": "hilling", + "relativeStartDate": 0, + "relativeEndDate": null, + "description": "\"When the plants are 20 cm tall, begin hilling the potatoes by gently mounding the soil from the center of your rows around the stems of the plant. Mound up the soil around the plant until just the top few leaves show above the soil. Two weeks later, hill up the soil again when the plants grow another 20 cm.\"", + "interval": 21, + "isOptional": false + } + ] + }, + { + "startDate": "06-10", + "endDate": "08-10", + "type": "HARVEST", + "zone": "ZONE_8A", + "group": 0, + "wateringCycle": { + "litersPerSqM": 0, + "interval": null, + "notes": [] + }, + "taskTemplates": [ + { + "name": "Harvest", + "relativeStartDate": 0, + "relativeEndDate": null, + "description": "Once the foliage has wilted and dried completely, harvest on a dry day. Store in a dark and cool location.", + "interval": null, + "isOptional": false + } + ] + } + ] + }, + { + "id": 1, + "name": "Early Carrot", + "description": "Carrot, (Daucus carota), herbaceous, generally biennial plant of the Apiaceae family that produces an edible taproot. Among common varieties root shapes range from globular to long, with lower ends blunt to pointed. Besides the orange-coloured roots, white-, yellow-, and purple-fleshed varieties are known.", + "image": "carrot.jpg", + "lifecycle": [ + { + "startDate": "02-20", + "endDate": "03-10", + "zone": "ZONE_8A", + "type": "SOW", + "wateringCycle": { + "litersPerSqM": 15, + "interval": 3, + "notes": [] + }, + "taskTemplates": [ + { + "name": "hilling", + "relativeStartDate": 0, + "relativeEndDate": 0, + "description": "Mound up the soil around the plant until just the top few leaves show above the soil. ", + "interval": null, + "isOptional": false + } + ] + }, + { + "startDate": "03-10", + "endDate": "05-10", + "zone": "ZONE_8A", + "type": "PLANT", + "wateringCycle": { + "litersPerSqM": 25, + "interval": 3, + "notes": [ + "Be careful not to pour water over the leaves, as this will lead to sunburn." + ] + }, + "taskTemplates": [ + { + "name": "hilling", + "relativeStartDate": 0, + "relativeEndDate": null, + "description": "Mound up the soil around the plant until just the top few leaves show above the soil. ", + "interval": 15, + "isOptional": true + } + ] + }, + { + "startDate": "05-10", + "endDate": "05-20", + "zone": "ZONE_8A", + "type": "HARVEST", + "wateringCycle": { + "litersPerSqM": 0, + "interval": null, + "notes": [] + }, + "taskTemplates": [ + { + "name": "Harvesting", + "relativeStartDate": 0, + "relativeEndDate": 14, + "description": "When the leaves turn to a yellowish brown. Do not harvest earlier. The plant will show when it's ready.", + "interval": null, + "isOptional": false + } + ] + } + ], + "soil": "sandy to loamy, loose soil, free of stones", + "spacing": "5,35,2.5", + "pests": [ + { + "name": "Rot", + "description": "rot, any of several plant diseases, caused by any of hundreds of species of soil-borne bacteria, fungi, and funguslike organisms (Oomycota). Rot diseases are characterized by plant decomposition and putrefaction. The decay may be hard, dry, spongy, watery, mushy, or slimy and may affect any plant part.", + "measures": "less water" + } + ] + }, + { + "id": 2, + "name": "Summertime Onion", + "description": "Onion, (Allium cepa), herbaceous biennial plant in the amaryllis family (Amaryllidaceae) grown for its edible bulb. The onion is likely native to southwestern Asia but is now grown throughout the world, chiefly in the temperate zones. Onions are low in nutrients but are valued for their flavour and are used widely in cooking. They add flavour to such dishes as stews, roasts, soups, and salads and are also served as a cooked vegetable.", + "image": "onion.jpg", + "lifecycle": [ + { + "startDate": "03-15", + "endDate": "04-10", + "type": "SOW", + "zone": "ZONE_8A", + "group": 0, + "wateringCycle": { + "litersPerSqM": 15, + "interval": 4, + "notes": [ + + ] + }, + "taskTemplates": [ + { + "name": "hilling", + "relativeStartDate": 0, + "relativeEndDate": 0, + "description": "Mound up the soil around the plant until just the top few leaves show above the soil. ", + "interval": null, + "isOptional": false + } + ] + }, + { + "startDate": "04-10", + "endDate": "07-10", + "type": "PLANT", + "zone": "ZONE_8A", + "group": 0, + "wateringCycle": { + "litersPerSqM": 25, + "interval": 3, + "notes": [ + "" + ] + }, + "taskTemplates": [ + { + "name": "hilling", + "relativeStartDate": 0, + "relativeEndDate": null, + "description": "Mound up the soil around the plant until just the top few leaves show above the soil. ", + "interval": 15, + "isOptional": true + } + ] + }, + { + "startDate": "07-10", + "endDate": "09-20", + "type": "HARVEST", + "zone": "ZONE_8A", + "group": 0, + "wateringCycle": { + "litersPerSqM": 0, + "interval": null, + "notes": [ + + ] + }, + "taskTemplates": [ + { + "name": "Harvesting", + "relativeStartDate": 0, + "relativeEndDate": 14, + "description": "When ready for harvest, the leaves on your onion plants will start to flop over. This happens at the \"neck\" of the onion and it signals that the plant has stopped growing and is ready for storage. Onions should be harvested soon thereafter", + "interval": null, + "isOptional": false + } + ] + } + ], + "soil": "sandy to loamy, loose soil, free of stones", + "spacing": "15,30,2", + "pests": [ + { + "name": "Rot", + "description": "rot, any of several plant diseases, caused by any of hundreds of species of soil-borne bacteria, fungi, and funguslike organisms (Oomycota). Rot diseases are characterized by plant decomposition and putrefaction. The decay may be hard, dry, spongy, watery, mushy, or slimy and may affect any plant part.", + "measures": "less water" + } + ] + } +] diff --git a/src/test/resources/ch/zhaw/gartenverwaltung/io/taskdb.json b/src/test/resources/ch/zhaw/gartenverwaltung/io/taskdb.json deleted file mode 100644 index 1155b9a..0000000 --- a/src/test/resources/ch/zhaw/gartenverwaltung/io/taskdb.json +++ /dev/null @@ -1,50 +0,0 @@ -[ - { - "id" : "1", - "name" : "sow plant", - "description": "Plant the seeds/ crops in de bed.", - "startDate" : "01.05.2022", - "endDate" : "01.05.2022", - "interval" : "null" - }, - { - "id" : "2", - "name" : "water plant", - "description": "water the plant, so that the soil is wet around the plant.", - "startDate" : "01.05.2022", - "endDate" : "01.09.2022", - "interval" : "2" - }, - { - "id" : "3", - "name" : "fertilize plant", - "description": "The fertilizer has to be mixed with water. Then fertilize the plant's soil with the mixture", - "startDate" : "01.06.2022", - "endDate" : "01.08.2022", - "interval" : "28" - }, - { - "id" : "4", - "name" : "covering plant", - "description": "Take a big enough coverage for the plants. Cover the whole plant with a bit space between the plant and the coverage", - "startDate" : "15.07.2022", - "endDate" : "15.07.2022", - "interval" : "null" - }, - { - "id" : "5", - "name" : "look after plant", - "description": "Look for pest or illness at the leaves of the plant. Check the soil around the plant, if the roots are enough covered with soil", - "startDate" : "01.05.2022", - "endDate" : "01.09.2022", - "interval" : "5" - }, - { - "id" : "6", - "name" : "harvest plant", - "description": "Pull the ripe vegetables out from the soil. Clean them with clear, fresh water. ", - "startDate" : "01.09.2022", - "endDate" : "01.09.2022", - "interval" : "null" - } -] \ No newline at end of file