class PlaceOS::Model::PendingMail

Overview

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).

Included Modules

Defined in:

placeos-models/pending_mail.cr

Constant Summary

CALLBACKS = {before_save: [do if (__temp_1543 = @authority) && __temp_1543.new_record? __temp_1543.save self.authority_id = __temp_1543.id.not_nil! end end, do if (__temp_1545 = @user) && __temp_1545.new_record? __temp_1545.save self.user_id = __temp_1545.id.not_nil! end end] of Nil, after_save: [] of Nil, before_create: [do self.created_at = self.updated_at = Time.utc end] of Nil, after_create: [] of Nil, before_update: [do self.updated_at = Time.utc end] of Nil, after_update: [] of Nil, before_destroy: [] of Nil, after_destroy: [do end, do end] of Nil}

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).

PRIMARY_KEY_TYPES = {:id => UUID} of Nil => Nil

macro level key => type

PRIMARY_KEYS = [{:id}]

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).

Constructors

Class Method Summary

Instance Method Summary

Constructor Detail

def self.from_json(string_or_io : String | IO, trusted : Bool = false) : self #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def self.from_json(string_or_io : String | IO, root : String, trusted : Bool = false) : self #

Deserializes the given JSON in string_or_io into an instance of self, assuming the JSON consists of an JSON object with key root, and whose value is the value to deserialize. Will not deserialise from fields with mass_assign: false

class User < ActiveModel::Model
  attribute name : String
  attribute google_id : UUID, mass_assign: false
end

User.from_json(%({"main": {"name": "Jason", "google_id": "f6f70bfb-c882-446d-8758-7ce47db39620"}}), root: "main") # => #<User:0x103131b20 @name="Jason">

def self.from_trusted_json(string_or_io : String | IO, root : String) : self #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def self.from_trusted_json(string_or_io : String | IO) : self #

Serialize from a trusted JSON source


def self.from_trusted_yaml(string_or_io : String | IO) : self #

Serialize from a trusted YAML source


def self.from_yaml(string_or_io : String | IO, trusted : Bool = false) : self #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def self.new(ctx : YAML::ParseContext, node : YAML::Nodes::Node) #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


[View source]
def self.new(pull : JSON::PullParser) #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


[View source]
def self.new(rs : DB::ResultSet) #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def self.new(created_at : Time | ActiveModel::Model::None = ::ActiveModel::Model::None.new, updated_at : Time | ActiveModel::Model::None = ::ActiveModel::Model::None.new, id : UUID | ActiveModel::Model::None = ::ActiveModel::Model::None.new, send_at : Time | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, expiry : Time | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, send_to : Array(String) | ActiveModel::Model::None = ::ActiveModel::Model::None.new, template : Array(String) | ActiveModel::Model::None = ::ActiveModel::Model::None.new, args : Hash(String, Bool | Float64 | Int64 | String | Nil) | ActiveModel::Model::None = ::ActiveModel::Model::None.new, resource_attachments : Array(String) | ActiveModel::Model::None = ::ActiveModel::Model::None.new, attachments : Array(String) | ActiveModel::Model::None = ::ActiveModel::Model::None.new, cc : Array(String) | ActiveModel::Model::None = ::ActiveModel::Model::None.new, bcc : Array(String) | ActiveModel::Model::None = ::ActiveModel::Model::None.new, send_from : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, reply_to : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, zones : Array(String) | ActiveModel::Model::None = ::ActiveModel::Model::None.new, sent_at : Time | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, sent_by : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, rejected_at : Time | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, rejected_reason : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, source_service : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, source_reference : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, authority_id : String | ActiveModel::Model::None = ::ActiveModel::Model::None.new, user_id : String | ActiveModel::Model::None = ::ActiveModel::Model::None.new) #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def self.new(params : HTTP::Params | Hash(String, String) | Tuple(String, String)) #

Initialize PlaceOS::Model::PendingMail from HTTP::Params.


Class Method Detail

def self.attributes : Array(Symbol) #

Returns all attribute keys.


def self.by_authority_id(id) #

[View source]
def self.by_user_id(id) #

[View source]
def self.changes(id : UUID | Nil = nil) : ChangeFeed #

Changefeed at row (if #id passed) or whole table level. Returns a ChangeFeed instance which can be used to invoke async callbacks via on or use blocking Iterator via each method.


def self.elastic #

def self.from_rs(__temp_2618 : DB::ResultSet) #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def self.on_error(err : Exception | IO::Error) #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def self.primary_key #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


[View source]
def self.table_name #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


Instance Method Detail

def after_create #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


[View source]
def after_destroy #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


[View source]
def after_initialize(trusted : Bool) #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def after_save #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


[View source]
def after_update #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


[View source]
def apply_defaults #

Generate code to apply default values


def args : Hash(String, Bool | Float64 | Int64 | String | Nil) #

#args getter


def args=(value : Hash(String, Bool | Float64 | Int64 | String | Nil)) #

#args setter


def args? : Hash(String, Bool | Float64 | Int64 | String | Nil) | Nil #

NOTE use getter / getter! (not property / property!) so that the setter defined later in __create_initializer__ is the only setter on the field. Crystal's overload resolution silently fails to replace a property-defined setter with one of identical signature for generic types (e.g. Set(String)?, Array(String)?, String | Array(String)), although it does work for non-generic ones like String?. Defining the setter only once via __create_initializer__ ensures change tracking, sanitization, and custom setter blocks run uniformly across all types.


def args_assigned? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def args_change : Tuple(Hash(String, Bool | Float64 | Int64 | String | Nil) | Nil, Hash(String, Bool | Float64 | Int64 | String | Nil) | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def args_changed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def args_default : Hash(String, String | Int64 | Float64 | Bool | Nil) #

#args's default value


[View source]
def args_present? : Bool #

values injected into the template. Restricted to JSON scalar values; nested objects/arrays are rejected on deserialization.


def args_removed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def args_was : Hash(String, Bool | Float64 | Int64 | String | Nil) | Nil #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def args_will_change! : Nil #

Include #args in the set of changed attributes, whether it has changed or not.


def assign_attributes(created_at : Time | Missing = Missing, updated_at : Time | Missing = Missing, id : UUID | Missing = Missing, send_at : Time | Nil | Missing = Missing, expiry : Time | Nil | Missing = Missing, send_to : Array(String) | Missing = Missing, template : Array(String) | Missing = Missing, args : Hash(String, Bool | Float64 | Int64 | String | Nil) | Missing = Missing, resource_attachments : Array(String) | Missing = Missing, attachments : Array(String) | Missing = Missing, cc : Array(String) | Missing = Missing, bcc : Array(String) | Missing = Missing, send_from : String | Nil | Missing = Missing, reply_to : String | Nil | Missing = Missing, zones : Array(String) | Missing = Missing, sent_at : Time | Nil | Missing = Missing, sent_by : String | Nil | Missing = Missing, rejected_at : Time | Nil | Missing = Missing, rejected_reason : String | Nil | Missing = Missing, source_service : String | Nil | Missing = Missing, source_reference : String | Nil | Missing = Missing, authority_id : String | Missing = Missing, user_id : String | Missing = Missing) #

Assign to multiple attributes.


def assign_attributes(params : HTTP::Params | Hash(String, String) | Tuple(String, String)) #

Assign to multiple attributes via HTTP::Params.


def assign_attributes(model : PlaceOS::Model::PendingMail) #

Assign to multiple attributes from a model object


def assign_attributes_from_json(json, root : String) #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def assign_attributes_from_json(json) #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def assign_attributes_from_trusted_json(json, root : String) #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def assign_attributes_from_trusted_json(json) #

Assign each field from JSON if field exists in JSON and has changed in model


def assign_attributes_from_trusted_yaml(yaml) #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def assign_attributes_from_yaml(yaml) #

Uses the YAML parser as JSON is valid YAML


def attachments : Array(String) #

#attachments getter


def attachments=(value : Array(String)) #

#attachments setter


def attachments? : Array(String) | Nil #

NOTE use getter / getter! (not property / property!) so that the setter defined later in __create_initializer__ is the only setter on the field. Crystal's overload resolution silently fails to replace a property-defined setter with one of identical signature for generic types (e.g. Set(String)?, Array(String)?, String | Array(String)), although it does work for non-generic ones like String?. Defining the setter only once via __create_initializer__ ensures change tracking, sanitization, and custom setter blocks run uniformly across all types.


def attachments_assigned? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def attachments_change : Tuple(Array(String) | Nil, Array(String) | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def attachments_changed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def attachments_default : Array(String) #

#attachments's default value


[View source]
def attachments_present? : Bool #

def attachments_removed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def attachments_was : Array(String) | Nil #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def attachments_will_change! : Nil #

Include #attachments in the set of changed attributes, whether it has changed or not.


def attributes #

Returns a Hash of all attribute values


def attributes_tuple #

Returns a NamedTuple of all attribute values.


def authority : PlaceOS::Model::Authority #

[View source]
def authority! : PlaceOS::Model::Authority #

[View source]

[View source]
def authority? : PlaceOS::Model::Authority | Nil #

[View source]
def authority_id : String #

#authority_id getter


def authority_id=(value : String) #

#authority_id setter


def authority_id? : String | Nil #

NOTE use getter / getter! (not property / property!) so that the setter defined later in __create_initializer__ is the only setter on the field. Crystal's overload resolution silently fails to replace a property-defined setter with one of identical signature for generic types (e.g. Set(String)?, Array(String)?, String | Array(String)), although it does work for non-generic ones like String?. Defining the setter only once via __create_initializer__ ensures change tracking, sanitization, and custom setter blocks run uniformly across all types.


def authority_id_assigned? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def authority_id_change : Tuple(String | Nil, String | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def authority_id_changed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def authority_id_default : String #

#authority_id's default value


[View source]
def authority_id_present? : Bool #

def authority_id_removed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def authority_id_was : String | Nil #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def authority_id_will_change! : Nil #

Include #authority_id in the set of changed attributes, whether it has changed or not.


def bcc : Array(String) #

#bcc getter


def bcc=(value : Array(String)) #

#bcc setter


def bcc? : Array(String) | Nil #

NOTE use getter / getter! (not property / property!) so that the setter defined later in __create_initializer__ is the only setter on the field. Crystal's overload resolution silently fails to replace a property-defined setter with one of identical signature for generic types (e.g. Set(String)?, Array(String)?, String | Array(String)), although it does work for non-generic ones like String?. Defining the setter only once via __create_initializer__ ensures change tracking, sanitization, and custom setter blocks run uniformly across all types.


def bcc_assigned? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def bcc_change : Tuple(Array(String) | Nil, Array(String) | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def bcc_changed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def bcc_default : Array(String) #

#bcc's default value


[View source]
def bcc_present? : Bool #

def bcc_removed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def bcc_was : Array(String) | Nil #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def bcc_will_change! : Nil #

Include #bcc in the set of changed attributes, whether it has changed or not.


def before_create #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


[View source]
def before_destroy #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


[View source]
def before_save #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


[View source]
def before_update #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


[View source]
def build_authority(**attributes) : PlaceOS::Model::Authority #

[View source]
def build_user(**attributes) : PlaceOS::Model::User #

[View source]
def cc : Array(String) #

#cc getter


def cc=(value : Array(String)) #

#cc setter


def cc? : Array(String) | Nil #

NOTE use getter / getter! (not property / property!) so that the setter defined later in __create_initializer__ is the only setter on the field. Crystal's overload resolution silently fails to replace a property-defined setter with one of identical signature for generic types (e.g. Set(String)?, Array(String)?, String | Array(String)), although it does work for non-generic ones like String?. Defining the setter only once via __create_initializer__ ensures change tracking, sanitization, and custom setter blocks run uniformly across all types.


def cc_assigned? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def cc_change : Tuple(Array(String) | Nil, Array(String) | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def cc_changed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def cc_default : Array(String) #

#cc's default value


[View source]
def cc_present? : Bool #

def cc_removed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def cc_was : Array(String) | Nil #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def cc_will_change! : Nil #

Include #cc in the set of changed attributes, whether it has changed or not.


def changed? #

Check if any attributes have changed.


def changed_attributes #

Returns a Hash with all changed attributes.


def changed_json(io : IO) : Nil #

Serialize the set of changed attributes to JSON.


def changed_json : String #

Serialize the set of changed attributes to JSON.


def changed_persist_attributes #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def changed_yaml(io : IO) : Nil #

Serialize the set of changed attributes to YAML.


def changed_yaml : String #

Serialize the set of changed attributes to YAML.


def clear_changes_information #

Reset changes for all attributes.


def create_authority(**attributes) : PlaceOS::Model::Authority #

[View source]
def create_authority!(**attributes) : PlaceOS::Model::Authority #

[View source]
def create_user(**attributes) : PlaceOS::Model::User #

[View source]
def create_user!(**attributes) : PlaceOS::Model::User #

[View source]
def created_at : Time #

#created_at getter


def created_at=(value : Time) #

Setters #created_at setter


def created_at? : Time | Nil #

NOTE use getter / getter! (not property / property!) so that the setter defined later in __create_initializer__ is the only setter on the field. Crystal's overload resolution silently fails to replace a property-defined setter with one of identical signature for generic types (e.g. Set(String)?, Array(String)?, String | Array(String)), although it does work for non-generic ones like String?. Defining the setter only once via __create_initializer__ ensures change tracking, sanitization, and custom setter blocks run uniformly across all types.


def created_at_assigned? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def created_at_change : Tuple(Time | Nil, Time | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def created_at_changed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def created_at_default : Time #

#created_at's default value


def created_at_present? : Bool #

def created_at_removed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def created_at_was : Time | Nil #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def created_at_will_change! : Nil #

Include #created_at in the set of changed attributes, whether it has changed or not.


def expiry : Time | Nil #

#expiry getter


def expiry=(value : Time | Nil) #

#expiry setter


def expiry_assigned? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def expiry_change : Tuple(Time | Nil | Nil, Time | Nil | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def expiry_changed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def expiry_default : Time | Nil #

#expiry's default value


[View source]
def expiry_present? : Bool #

after which the email should not be sent


def expiry_removed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def expiry_was : Time | Nil | Nil #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def expiry_will_change! : Nil #

Include #expiry in the set of changed attributes, whether it has changed or not.


def id : UUID #

#id getter


def id=(value : UUID) #

#id setter


def id? #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def id_assigned? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def id_change : Tuple(UUID | Nil, UUID | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def id_changed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def id_default : UUID #

#id's default value


def id_present? : Bool #

def id_removed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def id_was : UUID | Nil #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def id_will_change! : Nil #

Include #id in the set of changed attributes, whether it has changed or not.


def invoke_props #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def persistent_attributes #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def primary_key #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


[View source]
def primary_key_hash #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def rejected_at : Time | Nil #

#rejected_at getter


def rejected_at=(value : Time | Nil) #

#rejected_at setter


def rejected_at_assigned? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def rejected_at_change : Tuple(Time | Nil | Nil, Time | Nil | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def rejected_at_changed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def rejected_at_default : Time | Nil #

#rejected_at's default value


[View source]
def rejected_at_present? : Bool #

def rejected_at_removed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def rejected_at_was : Time | Nil | Nil #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def rejected_at_will_change! : Nil #

Include #rejected_at in the set of changed attributes, whether it has changed or not.


def rejected_reason : String | Nil #

def rejected_reason=(value : String | Nil) #

def rejected_reason_assigned? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def rejected_reason_change : Tuple(String | Nil | Nil, String | Nil | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def rejected_reason_changed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def rejected_reason_default : String | Nil #

#rejected_reason's default value


[View source]
def rejected_reason_present? : Bool #

def rejected_reason_removed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def rejected_reason_was : String | Nil | Nil #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def rejected_reason_will_change! : Nil #

Include #rejected_reason in the set of changed attributes, whether it has changed or not.


def reload_authority : PlaceOS::Model::Authority #

[View source]
def reload_authority? : PlaceOS::Model::Authority | Nil #

[View source]
def reload_user : PlaceOS::Model::User #

[View source]
def reload_user? : PlaceOS::Model::User | Nil #

[View source]
def reply_to : String | Nil #

#reply_to getter


def reply_to=(value : String | Nil) #

#reply_to setter


def reply_to_assigned? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def reply_to_change : Tuple(String | Nil | Nil, String | Nil | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def reply_to_changed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def reply_to_default : String | Nil #

#reply_to's default value


[View source]
def reply_to_present? : Bool #

def reply_to_removed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def reply_to_was : String | Nil | Nil #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def reply_to_will_change! : Nil #

Include #reply_to in the set of changed attributes, whether it has changed or not.


def resource_attachments : Array(String) #

def resource_attachments=(value : Array(String)) #

def resource_attachments? : Array(String) | Nil #

NOTE use getter / getter! (not property / property!) so that the setter defined later in __create_initializer__ is the only setter on the field. Crystal's overload resolution silently fails to replace a property-defined setter with one of identical signature for generic types (e.g. Set(String)?, Array(String)?, String | Array(String)), although it does work for non-generic ones like String?. Defining the setter only once via __create_initializer__ ensures change tracking, sanitization, and custom setter blocks run uniformly across all types.


def resource_attachments_assigned? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def resource_attachments_change : Tuple(Array(String) | Nil, Array(String) | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def resource_attachments_changed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def resource_attachments_default : Array(String) #

#resource_attachments's default value


[View source]
def resource_attachments_present? : Bool #

upload id references. If an upload is deleted, its id is removed from these arrays via Upload's before_destroy callback.


def resource_attachments_removed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def resource_attachments_was : Array(String) | Nil #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def resource_attachments_will_change! : Nil #

Include #resource_attachments in the set of changed attributes, whether it has changed or not.


def restore_attributes #

Reset each attribute to their previous values and clears all changes.


def run_create_callbacks(&) #

Wrap a block with callbacks for the appropriate crud operation


[View source]
def run_destroy_callbacks(&) #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


[View source]
def run_save_callbacks(&) #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


[View source]
def run_update_callbacks(&) #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


[View source]
def send_at : Time | Nil #

#send_at getter


def send_at=(value : Time | Nil) #

#send_at setter


def send_at_assigned? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def send_at_change : Tuple(Time | Nil | Nil, Time | Nil | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def send_at_changed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def send_at_default : Time | Nil #

#send_at's default value


[View source]
def send_at_present? : Bool #

schedule a send for this time (or later); nil sends as soon as processed


def send_at_removed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def send_at_was : Time | Nil | Nil #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def send_at_will_change! : Nil #

Include #send_at in the set of changed attributes, whether it has changed or not.


def send_from : String | Nil #

#send_from getter


def send_from=(value : String | Nil) #

#send_from setter


def send_from_assigned? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def send_from_change : Tuple(String | Nil | Nil, String | Nil | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def send_from_changed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def send_from_default : String | Nil #

#send_from's default value


[View source]
def send_from_present? : Bool #

def send_from_removed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def send_from_was : String | Nil | Nil #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def send_from_will_change! : Nil #

Include #send_from in the set of changed attributes, whether it has changed or not.


def send_to : Array(String) #

#send_to getter


def send_to=(value : Array(String)) #

#send_to setter


def send_to? : Array(String) | Nil #

NOTE use getter / getter! (not property / property!) so that the setter defined later in __create_initializer__ is the only setter on the field. Crystal's overload resolution silently fails to replace a property-defined setter with one of identical signature for generic types (e.g. Set(String)?, Array(String)?, String | Array(String)), although it does work for non-generic ones like String?. Defining the setter only once via __create_initializer__ ensures change tracking, sanitization, and custom setter blocks run uniformly across all types.


def send_to_assigned? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def send_to_change : Tuple(Array(String) | Nil, Array(String) | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def send_to_changed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def send_to_default : Array(String) #

#send_to's default value


[View source]
def send_to_present? : Bool #

recipients (exact match)


def send_to_removed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def send_to_was : Array(String) | Nil #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def send_to_will_change! : Nil #

Include #send_to in the set of changed attributes, whether it has changed or not.


def sent_at : Time | Nil #

#sent_at getter


def sent_at=(value : Time | Nil) #

#sent_at setter


def sent_at_assigned? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def sent_at_change : Tuple(Time | Nil | Nil, Time | Nil | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def sent_at_changed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def sent_at_default : Time | Nil #

#sent_at's default value


[View source]
def sent_at_present? : Bool #

Monitoring: populated as the mail is processed. #sent_by and #rejected_reason are free-form text (e.g. a worker/service name or a human-readable reason).


def sent_at_removed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def sent_at_was : Time | Nil | Nil #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def sent_at_will_change! : Nil #

Include #sent_at in the set of changed attributes, whether it has changed or not.


def sent_by : String | Nil #

#sent_by getter


def sent_by=(value : String | Nil) #

#sent_by setter


def sent_by_assigned? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def sent_by_change : Tuple(String | Nil | Nil, String | Nil | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def sent_by_changed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def sent_by_default : String | Nil #

#sent_by's default value


[View source]
def sent_by_present? : Bool #

def sent_by_removed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def sent_by_was : String | Nil | Nil #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def sent_by_will_change! : Nil #

Include #sent_by in the set of changed attributes, whether it has changed or not.


def source_reference : String | Nil #

def source_reference=(value : String | Nil) #

def source_reference_assigned? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def source_reference_change : Tuple(String | Nil | Nil, String | Nil | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def source_reference_changed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def source_reference_default : String | Nil #

#source_reference's default value


[View source]
def source_reference_present? : Bool #

def source_reference_removed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def source_reference_was : String | Nil | Nil #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def source_reference_will_change! : Nil #

Include #source_reference in the set of changed attributes, whether it has changed or not.


def source_service : String | Nil #

def source_service=(value : String | Nil) #

def source_service_assigned? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def source_service_change : Tuple(String | Nil | Nil, String | Nil | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def source_service_changed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def source_service_default : String | Nil #

#source_service's default value


[View source]
def source_service_present? : Bool #

Free-form provenance, indexed for filtering (e.g. which service queued the mail and an external reference/correlation id).


def source_service_removed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def source_service_was : String | Nil | Nil #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def source_service_will_change! : Nil #

Include #source_service in the set of changed attributes, whether it has changed or not.


def table_name #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def template : Array(String) #

#template getter


def template=(value : Array(String)) #

#template setter


def template? : Array(String) | Nil #

NOTE use getter / getter! (not property / property!) so that the setter defined later in __create_initializer__ is the only setter on the field. Crystal's overload resolution silently fails to replace a property-defined setter with one of identical signature for generic types (e.g. Set(String)?, Array(String)?, String | Array(String)), although it does work for non-generic ones like String?. Defining the setter only once via __create_initializer__ ensures change tracking, sanitization, and custom setter blocks run uniformly across all types.


def template_assigned? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def template_change : Tuple(Array(String) | Nil, Array(String) | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def template_changed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def template_default : Array(String) #

#template's default value


[View source]
def template_present? : Bool #

names which resolve to the template to be sent


def template_removed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def template_was : Array(String) | Nil #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def template_will_change! : Nil #

Include #template in the set of changed attributes, whether it has changed or not.


def updated_at : Time #

#updated_at getter


def updated_at=(value : Time) #

#updated_at setter


def updated_at? : Time | Nil #

NOTE use getter / getter! (not property / property!) so that the setter defined later in __create_initializer__ is the only setter on the field. Crystal's overload resolution silently fails to replace a property-defined setter with one of identical signature for generic types (e.g. Set(String)?, Array(String)?, String | Array(String)), although it does work for non-generic ones like String?. Defining the setter only once via __create_initializer__ ensures change tracking, sanitization, and custom setter blocks run uniformly across all types.


def updated_at_assigned? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def updated_at_change : Tuple(Time | Nil, Time | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def updated_at_changed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def updated_at_default : Time #

#updated_at's default value


def updated_at_present? : Bool #

def updated_at_removed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def updated_at_was : Time | Nil #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def updated_at_will_change! : Nil #

Include #updated_at in the set of changed attributes, whether it has changed or not.


def user : PlaceOS::Model::User #

[View source]
def user! : PlaceOS::Model::User #

[View source]

[View source]
def user? : PlaceOS::Model::User | Nil #

[View source]
def user_id : String #

#user_id getter


def user_id=(value : String) #

#user_id setter


def user_id? : String | Nil #

NOTE use getter / getter! (not property / property!) so that the setter defined later in __create_initializer__ is the only setter on the field. Crystal's overload resolution silently fails to replace a property-defined setter with one of identical signature for generic types (e.g. Set(String)?, Array(String)?, String | Array(String)), although it does work for non-generic ones like String?. Defining the setter only once via __create_initializer__ ensures change tracking, sanitization, and custom setter blocks run uniformly across all types.


def user_id_assigned? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def user_id_change : Tuple(String | Nil, String | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def user_id_changed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def user_id_default : String #

#user_id's default value


[View source]
def user_id_present? : Bool #

def user_id_removed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def user_id_was : String | Nil #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def user_id_will_change! : Nil #

Include #user_id in the set of changed attributes, whether it has changed or not.


def validate_nilability #

Validate that all non-nillable fields have values.


def zones : Array(String) #

#zones getter


def zones=(value : Array(String)) #

#zones setter


def zones? : Array(String) | Nil #

NOTE use getter / getter! (not property / property!) so that the setter defined later in __create_initializer__ is the only setter on the field. Crystal's overload resolution silently fails to replace a property-defined setter with one of identical signature for generic types (e.g. Set(String)?, Array(String)?, String | Array(String)), although it does work for non-generic ones like String?. Defining the setter only once via __create_initializer__ ensures change tracking, sanitization, and custom setter blocks run uniformly across all types.


def zones_assigned? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def zones_change : Tuple(Array(String) | Nil, Array(String) | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def zones_changed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def zones_default : Array(String) #

#zones's default value


[View source]
def zones_present? : Bool #

zone id references. If a zone is deleted, its id is removed from this array via Zone's before_destroy callback.


def zones_removed? : Bool #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def zones_was : Array(String) | Nil #

An email queued for later processing/sending. Each row belongs to an authority and to the user who triggered it. The actual content is described by a #template (a list of names resolving to a template) plus #args injected into it. #attachments/#resource_attachments reference Upload ids; those ids are pruned automatically when an upload is deleted (see Upload#remove_from_pending_mail). #zones references zone ids and is pruned when a zone is deleted (see Zone#remove_array_references).


def zones_will_change! : Nil #

Include #zones in the set of changed attributes, whether it has changed or not.