/**
 * Copyright (c) 2023 ListBird. All Rights Reserved.
 *
 * This software product includes software or other works developed by RESO,
 * subject to the RESO End User License published at www.reso.org.
 *
 * Any modifications, derivative works, or redistributions of this source must
 * maintain this copyright notice. See the RESO EULA for more information.
 */
import { ContactListingPreference } from './ContactListingPreference';
import { Property } from './Property';
import { ResourceName } from './ResourceName';
import { ClassName } from './ClassName';
import { Contacts } from './Contacts';
export interface ContactListings {
  /**
   * {@link https://ddwiki.reso.org/display/DDW17/AgentNotesUnreadYN+Field}
   *
   * When True, one or more of the agent notes are unread.
   */
  AgentNotesUnreadYN?: boolean;

  /**
   * The name of the class where the listing record is located.
   */
  ClassName?: ClassName;

  /**
   * {@link https://ddwiki.reso.org/display/DDW17/ContactKey+%28ContactListings%29+Field}
   *
   * This is the foreign key relating to the Contact resource. A unique identifier for this record from the
   * immediate source. This is a string that can include URI or other forms. Alternatively use the
   * ContactKeyNumeric for a numeric only key field. This is the local key of the system. When records are
   * received from other systems, a local key is commonly applied. If conveying the original keys from the
   * source or originating systems, see SourceSystemKey and OriginatingSystemKey variants.
   */
  ContactKey?: string;

  /**
   * {@link https://ddwiki.reso.org/display/DDW17/ContactKeyNumeric+%28ContactListings%29+Field}
   *
   * This is the foreign key relating to the Contact resource. A unique identifier for this record from the
   * immediate source. This is the numeric only key and used as an alternative to the ContactKey fields. This
   * is the local key of the system. When records are received from other systems, a local key is commonly
   * applied. If conveying the original keys from the source or originating systems, see
   * SourceSystemKeyNumeric and OriginatingSystemKeyNumeric variants.
   */
  ContactKeyNumeric?: number;

  /**
   * {@link https://ddwiki.reso.org/display/DDW17/ContactListingPreference+Field}
   *
   * The contacts preference selection on the given listing. Favorite, Possibility or Discard.
   */
  ContactListingPreference?: ContactListingPreference;

  /**
   * {@link https://ddwiki.reso.org/display/DDW17/ContactListingsKey+Field}
   *
   * A system unique identifier. Specifically, in aggregation systems, the Key is the system unique identifier
   * from the system that the record was just retrieved. This may be identical to the related xxxId
   * identifier, but the key is guaranteed unique for this record set..
   */
  ContactListingsKey?: string;

  /**
   * {@link https://ddwiki.reso.org/display/DDW17/ContactListingsKeyNumeric+Field}
   *
   * A unique identifier for this record from the immediate source. This may be a number, or string that can
   * include URI or other forms. This is the system you are connecting to and not necessarily the original
   * source of the record. This is the numeric only key and used as an alternative to the ContactListingsKey
   * field.
   */
  ContactListingsKeyNumeric?: number;

  /**
   * {@link https://ddwiki.reso.org/display/DDW17/ContactLoginId+%28ContactListings%29+Field}
   *
   * This is a foreign key refering to the Contact Resource's local, well-known identifier for the contact.
   * This value may not be unique, specifically in the case of aggregation systems, this value should be the
   * identifier from the original system and is used by the Contact to logon to a client portal in that
   * system.
   */
  ContactLoginId?: string;

  /**
   * {@link https://ddwiki.reso.org/display/DDW17/ContactNotesUnreadYN+Field}
   *
   * When True, one or more of the contacts notes are unread.
   */
  ContactNotesUnreadYN?: boolean;

  /**
   * {@link https://ddwiki.reso.org/display/DDW17/DirectEmailYN+Field}
   *
   * If True, the email was a direct email sent to the client by the member. If False the email was an auto
   * email.
   */
  DirectEmailYN?: boolean;

  /**
   * {@link https://ddwiki.reso.org/display/DDW17/LastAgentNoteTimestamp+Field}
   *
   * The Date/Time the Member last added or updated a ListingNote.
   */
  LastAgentNoteTimestamp?: Date;

  /**
   * {@link https://ddwiki.reso.org/display/DDW17/LastContactNoteTimestamp+Field}
   *
   * The Date/Time the Contact last added or updated a ListingNote.
   */
  LastContactNoteTimestamp?: Date;

  /**
   * {@link https://ddwiki.reso.org/display/DDW17/ListingId+%28ContactListings%29+Field}
   *
   * The well known identifier for the listing. The value may be identical to that of the Listing Key, but the
   * Listing ID is intended to be the value used by a human to retrieve the information about a specific
   * listing. In a multiple originating system or a merged system, this value may not be unique and may
   * require the use of the provider system to create a synthetic unique value.
   */
  ListingId?: string;

  /**
   * {@link https://ddwiki.reso.org/display/DDW17/ListingKey+%28ContactListings%29+Field}
   *
   * This is the foreign key related to the Property Resource's unique identifier for this record from the
   * immediate source. This is a string that can include URI or other forms. Alternatively use the
   * ListingKeyNumeric for a numeric only key field. This is the local key of the system. When records are
   * received from other systems, a local key is commonly applied. If conveying the original keys from the
   * source or originating systems, see SourceSystemKey and OriginatingSystemKey.
   */
  ListingKey?: string;

  /**
   * {@link https://ddwiki.reso.org/display/DDW17/ListingKeyNumeric+%28ContactListings%29+Field}
   *
   * This is the foreign key related to the Property Resource's unique identifier for this record from the
   * immediate source. This is the numeric only key and used as an alternative to the ListingKey fields. This
   * is the local key of the system. When records are received from other systems, a local key is commonly
   * applied. If conveying the original keys from the source or originating systems, see SourceSystemKey and
   * OriginatingSystemKey.
   */
  ListingKeyNumeric?: number;

  /**
   * {@link https://ddwiki.reso.org/display/DDW17/ListingModificationTimestamp+Field}
   *
   * The last time the listing was updated. This does not refer to the ContactListing record, but changes to
   * the referenced listing.
   */
  ListingModificationTimestamp?: Date;

  /**
   * {@link https://ddwiki.reso.org/display/DDW17/ListingSentTimestamp+Field}
   *
   * The Date/Time the listing was sent to the contact.
   */
  ListingSentTimestamp?: Date;

  /**
   * {@link https://ddwiki.reso.org/display/DDW17/ListingViewedYN+Field}
   *
   * When True, the Client has viewed the listing. This is typically when the client clicks to view a
   * detailed report, rather than seen in a one line or thumbnail display.
   */
  ListingViewedYN?: boolean;

  /**
   * {@link https://ddwiki.reso.org/display/DDW17/ModificationTimestamp+%28ContactListings%29+Field}
   *
   * The Date/Time that the ContactListing record was last modified.
   */
  ModificationTimestamp?: Date;

  /**
   * {@link https://ddwiki.reso.org/display/DDW17/PortalLastVisitedTimestamp+Field}
   *
   * The Date/Time the listing was last viewed by the Contact.
   */
  PortalLastVisitedTimestamp?: Date;

  /**
   * {@link https://ddwiki.reso.org/display/DDW17/ResourceName+%28ContactListings%29+Field}
   *
   * The name of the resource where the listing record is located.
   */
  ResourceName?: ResourceName;

  Contact?: Contacts;
  Listing?: Property;
}
