import { IEntityWithVersion } from "./entity_with_version";
import { IUser } from "./user";
import { ITextMessageContentType } from "./text_message_content_type";
import { IDevice } from "./device";
/**
* A message to send or received from a device. When working with text messages it
* is important to make the distinction between a "Reply" and a "Response". Reply:
* A reply is a Text Message that is a Reply to another text message.
For example:
* A text message is sent to a device and the device replies with a text message of
* it's own.
Response: A response is a predefined ("canned") response within a
* text message.
For example: A text message is sent to a device with a number
* of canned responses to reply with (Yes,
No, Maybe).
One of those responses
* is selected by the driver and is the message of the Reply from the device.
*/
export interface ITextMessage extends IEntityWithVersion {
/** Gets or sets the date and time the text message is active from. */
activeFrom?: Date;
/** Gets or sets the date and time the text message is active to. */
activeTo?: Date;
/** Gets or sets the date and time the message was delivered. Default [MaxDate]. */
delivered?: Date;
/** Gets or sets the {@link IDevice} the message was sent to. Default [Null]. */
device: IDevice;
/** Gets or sets if message is going to or from vehicle. */
isDirectionToVehicle?: boolean;
/**
* Gets or sets the {@link IUser} who read the message or null if the message has not
* been read.
*/
markedReadBy: IUser;
/**
* Gets or sets the message content. A basic message can be sent via a {@link ITextContent}
* or a message with predefined ("canned") responses by a {@link ICannedResponseContent}
* or a series of {@link ILocationContent} comprising a route.
*/
messageContent: ITextMessageContentType;
/**
* Gets or sets the text message that this is the reply to. Only a reply message will
* have a parent.
*/
parentMessage: ITextMessage;
/**
* Gets or sets the date and time the message was read or null if the message has not
* been read.
*/
read?: Date;
/** Gets or sets the {@link IUser} the message was sent to. Default [Null]. */
recipient: IUser;
/**
* Gets or sets the text message reply to this message. A text message should only
* have one reply. (Should not reply to a reply). Default [Null]
*/
replyMessage: ITextMessage;
/** Gets or sets the date and time the message was sent. Default [MaxDate]. */
sent?: Date;
/**
* Gets or sets the {@link IUser} that the message was sent from or null. If the message
* was sent from a device or was generated by the system the user property will be
* null. Default [Null].
*/
user: IUser;
}
//# sourceMappingURL=text_message.d.ts.map