<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<model type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="22522" systemVersion="23F79" minimumToolsVersion="Automatic" sourceLanguage="Swift" userDefinedModelVersionIdentifier="1.0.0">
    <entity name="PlantMO" representedClassName="PlantMO" syncable="YES">
        <attribute name="commonNames" optional="YES" attributeType="Transformable" valueTransformerName="NSSecureUnarchiveFromDataTransformer" customClassName="[String]"/>
        <attribute name="confidenceScore" optional="YES" attributeType="Double" defaultValueString="0.0" usesScalarType="NO"/>
        <attribute name="customName" optional="YES" attributeType="String"/>
        <attribute name="dateAdded" optional="YES" attributeType="Date" usesScalarType="NO"/>
        <attribute name="dateIdentified" optional="YES" attributeType="Date" defaultDateTimeInterval="0" usesScalarType="NO"/>
        <attribute name="family" optional="YES" attributeType="String" defaultValueString=""/>
        <attribute name="genus" optional="YES" attributeType="String" defaultValueString=""/>
        <attribute name="id" optional="YES" attributeType="UUID" usesScalarType="NO"/>
        <attribute name="identificationSource" optional="YES" attributeType="String" defaultValueString=""/>
        <attribute name="imageURLs" optional="YES" attributeType="Transformable" valueTransformerName="NSSecureUnarchiveFromDataTransformer" customClassName="[URL]"/>
        <attribute name="isFavorite" attributeType="Boolean" defaultValueString="NO" usesScalarType="YES"/>
        <attribute name="localImagePaths" optional="YES" attributeType="Transformable" valueTransformerName="NSSecureUnarchiveFromDataTransformer" customClassName="[String]"/>
        <attribute name="location" optional="YES" attributeType="String"/>
        <attribute name="notes" optional="YES" attributeType="String"/>
        <attribute name="scientificName" optional="YES" attributeType="String" defaultValueString=""/>
        <relationship name="careSchedule" optional="YES" maxCount="1" deletionRule="Cascade" destinationEntity="CareScheduleMO" inverseName="plant" inverseEntity="CareScheduleMO"/>
        <relationship name="identifications" optional="YES" toMany="YES" deletionRule="Cascade" destinationEntity="IdentificationMO" inverseName="plant" inverseEntity="IdentificationMO"/>
        <relationship name="plantCareInfo" optional="YES" maxCount="1" deletionRule="Cascade" destinationEntity="PlantCareInfoMO" inverseName="plant" inverseEntity="PlantCareInfoMO"/>
        <relationship name="room" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="RoomMO" inverseName="plants" inverseEntity="RoomMO"/>
        <relationship name="progressPhotos" optional="YES" toMany="YES" deletionRule="Cascade" destinationEntity="ProgressPhotoMO" inverseName="plant" inverseEntity="ProgressPhotoMO"/>
    </entity>
    <entity name="IdentificationMO" representedClassName="IdentificationMO" syncable="YES">
        <attribute name="confidenceScore" attributeType="Double" defaultValueString="0.0" usesScalarType="YES"/>
        <attribute name="date" optional="YES" attributeType="Date" defaultDateTimeInterval="0" usesScalarType="NO"/>
        <attribute name="id" optional="YES" attributeType="UUID" usesScalarType="NO"/>
        <attribute name="imageData" optional="YES" attributeType="Binary" allowsExternalBinaryDataStorage="YES"/>
        <attribute name="latitude" optional="YES" attributeType="Double" defaultValueString="0.0" usesScalarType="NO"/>
        <attribute name="longitude" optional="YES" attributeType="Double" defaultValueString="0.0" usesScalarType="NO"/>
        <attribute name="source" optional="YES" attributeType="String" defaultValueString=""/>
        <relationship name="plant" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="PlantMO" inverseName="identifications" inverseEntity="PlantMO"/>
    </entity>
    <entity name="CareScheduleMO" representedClassName="CareScheduleMO" syncable="YES">
        <attribute name="fertilizerSchedule" optional="YES" attributeType="String" defaultValueString=""/>
        <attribute name="id" optional="YES" attributeType="UUID" usesScalarType="NO"/>
        <attribute name="lightRequirement" optional="YES" attributeType="String" defaultValueString=""/>
        <attribute name="plantID" optional="YES" attributeType="UUID" usesScalarType="NO"/>
        <attribute name="temperatureMax" attributeType="Integer 32" defaultValueString="0" usesScalarType="YES"/>
        <attribute name="temperatureMin" attributeType="Integer 32" defaultValueString="0" usesScalarType="YES"/>
        <attribute name="wateringSchedule" optional="YES" attributeType="String" defaultValueString=""/>
        <relationship name="plant" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="PlantMO" inverseName="careSchedule" inverseEntity="PlantMO"/>
        <relationship name="tasks" optional="YES" toMany="YES" deletionRule="Cascade" destinationEntity="CareTaskMO" inverseName="careSchedule" inverseEntity="CareTaskMO"/>
    </entity>
    <entity name="CareTaskMO" representedClassName="CareTaskMO" syncable="YES">
        <attribute name="completedDate" optional="YES" attributeType="Date" usesScalarType="NO"/>
        <attribute name="id" optional="YES" attributeType="UUID" usesScalarType="NO"/>
        <attribute name="notes" attributeType="String" defaultValueString=""/>
        <attribute name="plantID" optional="YES" attributeType="UUID" usesScalarType="NO"/>
        <attribute name="scheduledDate" optional="YES" attributeType="Date" defaultDateTimeInterval="0" usesScalarType="NO"/>
        <attribute name="type" optional="YES" attributeType="String" defaultValueString=""/>
        <relationship name="careSchedule" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="CareScheduleMO" inverseName="tasks" inverseEntity="CareScheduleMO"/>
    </entity>
    <entity name="PlantCareInfoMO" representedClassName="PlantCareInfoMO" syncable="YES">
        <attribute name="additionalNotes" optional="YES" attributeType="String"/>
        <attribute name="bloomingSeasonData" optional="YES" attributeType="Binary"/>
        <attribute name="commonName" optional="YES" attributeType="String"/>
        <attribute name="fertilizerScheduleData" optional="YES" attributeType="Binary"/>
        <attribute name="fetchedAt" optional="YES" attributeType="Date" defaultDateTimeInterval="0" usesScalarType="NO"/>
        <attribute name="growthRate" optional="YES" attributeType="String"/>
        <attribute name="humidity" optional="YES" attributeType="String"/>
        <attribute name="id" optional="YES" attributeType="UUID" usesScalarType="NO"/>
        <attribute name="lightRequirement" optional="YES" attributeType="String" defaultValueString=""/>
        <attribute name="scientificName" optional="YES" attributeType="String" defaultValueString=""/>
        <attribute name="sourceURL" optional="YES" attributeType="URI"/>
        <attribute name="temperatureRangeData" optional="YES" attributeType="Binary"/>
        <attribute name="trefleID" optional="YES" attributeType="Integer 32" defaultValueString="0" usesScalarType="YES"/>
        <attribute name="wateringScheduleData" optional="YES" attributeType="Binary"/>
        <relationship name="plant" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="PlantMO" inverseName="plantCareInfo" inverseEntity="PlantMO"/>
    </entity>
    <entity name="RoomMO" representedClassName="RoomMO" syncable="YES">
        <attribute name="icon" optional="YES" attributeType="String" defaultValueString=""/>
        <attribute name="id" optional="YES" attributeType="UUID" usesScalarType="NO"/>
        <attribute name="isDefault" attributeType="Boolean" defaultValueString="NO" usesScalarType="YES"/>
        <attribute name="name" optional="YES" attributeType="String" defaultValueString=""/>
        <attribute name="sortOrder" attributeType="Integer 32" defaultValueString="0" usesScalarType="YES"/>
        <relationship name="plants" optional="YES" toMany="YES" deletionRule="Nullify" destinationEntity="PlantMO" inverseName="room" inverseEntity="PlantMO"/>
    </entity>
    <entity name="ProgressPhotoMO" representedClassName="ProgressPhotoMO" syncable="YES">
        <attribute name="id" optional="YES" attributeType="UUID" usesScalarType="NO"/>
        <attribute name="plantID" optional="YES" attributeType="UUID" usesScalarType="NO"/>
        <attribute name="imageData" optional="YES" attributeType="Binary" allowsExternalBinaryDataStorage="YES"/>
        <attribute name="thumbnailData" optional="YES" attributeType="Binary"/>
        <attribute name="dateTaken" optional="YES" attributeType="Date" defaultDateTimeInterval="0" usesScalarType="NO"/>
        <attribute name="notes" optional="YES" attributeType="String"/>
        <relationship name="plant" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="PlantMO" inverseName="progressPhotos" inverseEntity="PlantMO"/>
    </entity>
</model>
