Plan Records

A Plan Record in farmOS is a special record that is used to represent a relationship between a Plan and another record in farmOS (eg: an Asset or Log). They provide a place to store additional metadata about this relationship, and are typically used behind the scenes by modules that provide Plan types and associated UI features.

Type

Each Plan Record must have a type. All Plan Record types have a common set of attributes and relationships. Specific Plan Record types (also called "bundles") may also add additional attributes and relationships (collectively referred to as "fields"). Plan Record types are defined by modules, and are only available if their module is enabled.

farmOS core does not currently provide any Plan Record types.

ID

Each Plan Record will be assigned two unique IDs in the database: a universally unique identifier (UUID), and an internal numeric ID.

The UUID will be unique across farmOS databases. The internal ID will only be unique to a single farmOS database. Therefore, the farmOS API uses UUIDs to ensure that IDs pulled from multiple farmOS databases do not conflict. Internally, farmOS modules use the internal IDs to perform CRUD operations.

Attributes

Plan Records may have attributes that serve to store information about the relationship between the Plan and the record being referenced.

Plan Records do not have any standard attributes. Modules can add additional attributes.

Relationships

All Plan Records have the same standard set of relationships. It is assumed that modules will add at least one additional relationship to another record (eg: Asset or Log).

Standard relationships

Relationships that are common to all Plan Record types include:

  • Plan

Plan

Every Plan Record must specify a single Plan that it is associated with.