Plan - "This is how we will manage part/all of our crop this season"

AttributeTypeMultiplicityDescription

Id

CompoundIdentifier

 1
ContextItemsContextItem0..*

CropIds

Integer

 0..*The n multiplicity is relevant for intercropping situations and horticultural scenarios where 1 field may have multiple blocks with different crops. Relevant primarily for validation / regulatory purposes.
CropZoneIdsInteger0..*

CropSeasonId

Integer

 0..1 Providing a range of date/time of validity for the corresponding document. Integer reference to a TimeScope object.

Description

String

 1

 Same meaning throughout: an informative name for the document: "High-input soybeans," or "Fungicide spray rec for river bottom cornfields," or "Spraying Back 40")

Inherited from Document

EstimatedArea

NumericRepresentationValue

 0..1

CreatedDateTime

DateTime

 1

ModifiedDateTime

DateTime

 1

ApprovalDate

DateTime

 0..1
FarmIdsInteger0..*
FieldIdsInteger0..*
GrowerIdInteger0..1

Notes

Note

 0..*

PersonRoleIds

Integer

 0..* A list of IDs of PeopleRole objects that describe "who" is involved and what their role is in the collection of data.
TimeScopesTimeScope0..*

WorkItems


 (not attribute, resolved by helper method)IF we are to follow the pattern here that is used elsewhere in the model, this should not be an attribute but instead an helper method that queries based on the "parent" attribute in the WorkItem. Management of the multiplicity via business rules would allow support for the variety of approaches FMIS applications take.
VersionInteger0..1
WorkItemIdsInteger0..*

DocumentCorrelations


  (not attribute, resolved by helper method)IF we are to follow the pattern here that is used elsewhere in the model, this should not be an attribute but instead an helper method that queries based on the "parent" attribute in the Attachment.

Recommendation - "This is what I think we should do now/soon"

AttributeTypeMultiplicityDescription

Id

CompoundIdentifier

 1
ContextItemsContextItem0..*

CropIds

Integer

 0..*The n multiplicity is relevant for intercropping situations and horticultural scenarios where 1 field may have multiple blocks with different crops. Relevant primarily for validation / regulatory purposes.
CropZoneIdsInteger0..*

CropSeasonId

Integer

 0..1
DescriptionString1
EstimatedAreaNumericRepresentationValue0..1

Name

String

 1

CreatedDateTime

DateTime

 1

ModifiedDateTime

DateTime

 1

ProposedDate

DateTime

 0..1

ExpirationDate

DateTime

 0..1
FarmIdsInteger0..*
FieldIdsInteger0..*
GrowerIdInteger0..1

Notes

Note

 0..*

PersonRoleIds

Integer

 0..* A list of IDs of PeopleRole objects that describe "who" is involved and what their role is in the collection of data.
TimeScopesTimeScope0..*
VersionInteger0..1
WorkItemIdsInteger0..*

Fields

List<Field>


Is this an attribute here, or pulled up from the "child" WorkItem(s) via helper method?

CropZones

List<CropZone>


Is this an attribute here, or pulled up from the "child" WorkItem(s) via helper method?

WorkItem[]

List <WorkItem>


IF we are to follow the pattern here that is used elsewhere in the model, this should not be an attribute but instead an helper method that queries based on the "parent" attribute in the WorkItem.

Attachments

List<Attachment>


IF we are to follow the pattern here that is used elsewhere in the model, this should not be an attribute but instead an helper method that queries based on the "parent" attribute in the Attachment.


WorkOrder - "This is what we will do now/soon"

AttributeTypeMultiplicityDescription

Id

CompoundIdentifier

 1
ContextItemsContextItem0..*

CropIds

Integer

 0..*The n multiplicity is relevant for intercropping situations and horticultural scenarios where 1 field may have multiple blocks with different crops. Relevant primarily for validation / regulatory purposes.
CropZoneIdsInteger0..*

CropSeasonId

Integer

 1
DescriptionString1
EstimatedAreaNumericRepresentationValue0..1

Name

String

 1

CreatedDateTime

DateTime

 1

ModifiedDateTime

DateTime

 1

StartDateTime

DateTime

 0..1
FarmIdsInteger0..*
FieldIdsInteger0..*
GrowerIdInteger0..1

Notes

Note

 0..*

PersonRoleIds

Integer

 0..* A list of IDs of PeopleRole objects that describe "who" is involved and what their role is in the collection of data.
TimeScopesTimeScope0..*
VersionInteger0..1
WorkItemIdsInteger0..*

Fields

List<Field>



CropZones

List<CropZone>



WorkItem[]

List <WorkItem>



Attachments

List<Attachment>




DocumentCorrelation

This objects purpose is to describe the relationship between documents, not to describe one document WITHIN another. 

AttributeTypeMultiplicityDescription

Id

CompoundIdentifier

1
RelationshipTypeDocRelationshipTypeEnum
DocumentIdInteger 1 "Self"
OriginatingDocumentIdInteger 1 "Other"
TimeScopesTimeScope0..n
TimeStampDateTime  We may need to generalize our multiple uses of "time" into an external object that will also encapsulate the meaning. This would be similar to the approach we tool with People and Role.
PersonRoleIds Integer 0..n