Source code for helpscout.models.conversation

# -*- coding: utf-8 -*-
# Copyright 2017-TODAY LasLabs Inc.
# License MIT (https://opensource.org/licenses/MIT).

import properties

from .base_conversation import BaseConversation

from .mailbox_ref import MailboxRef
from .person import Person
from .source import Source
from .thread import Thread


[docs]class Conversation(BaseConversation): """This represents a full conversation result.""" type = properties.StringChoice( 'The type of conversation.', choices=['email', 'chat', 'phone', 'spam'], required=True, ) folder_id = properties.Integer( 'ID of the Mailbox Folder to which this conversation resides.', required=True, ) is_draft = properties.Bool( 'Is this a draft conversation? This property duplicates ``draft``, ' 'but both are received in API responses at the same time so neither ' 'can be considered "deprecated".', ) draft = properties.Bool( 'Is this a draft conversation? This property duplicates ' '``is_draft``, but both are received in API responses at the same ' 'time so neither can be considered "deprecated".', ) owner = properties.Instance( 'The Help Scout user who is currently assigned to this conversation.', instance_class=Person, required=True, ) mailbox = properties.Instance( 'The mailbox to which this conversation belongs.', instance_class=MailboxRef, required=True, ) customer = properties.Instance( 'The customer who this conversation is associated with.', instance_class=Person, required=True, ) created_by = properties.Instance( 'The ``Person`` who created this conversation. The ``type`` property ' 'will specify whether it was created by a ``user`` or a ``customer``.', instance_class=Person, ) created_by_type = properties.String( 'The type of user that created this conversation.', ) created_at = properties.DateTime( 'UTC time when this conversation was created.', ) closed_at = properties.DateTime( 'UTC time when this conversation was closed. Null if not closed.', ) closed_by = properties.Instance( 'The Help Scout user who closed this conversation.', instance_class=Person, ) source = properties.Instance( 'Specifies the method in which this conversation was created.', instance_class=Source, ) threads = properties.List( 'Threads associated with the conversation.', prop=Thread, ) cc = properties.List( 'Emails that are CCd.', prop=properties.String( 'Email Address', ), ) bcc = properties.List( 'Emails that are BCCd.', prop=properties.String( 'Email Address', ), ) tags = properties.List( 'Tags for the conversation', prop=properties.String('Tag Name'), ) spam = properties.Bool( 'If this conversation is marked as SPAM.', ) locked = properties.Bool( 'If this conversation is locked from editing.' ) user_modified_at = properties.DateTime( 'Last time that this conversation was edited by a user.', )