001/*
002 * Stallion Core: A Modern Web Framework
003 *
004 * Copyright (C) 2015 - 2016 Stallion Software LLC.
005 *
006 * This program is free software: you can redistribute it and/or modify it under the terms of the
007 * GNU General Public License as published by the Free Software Foundation, either version 2 of
008 * the License, or (at your option) any later version. This program is distributed in the hope that
009 * it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
010 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
011 * License for more details. You should have received a copy of the GNU General Public License
012 * along with this program.  If not, see <http://www.gnu.org/licenses/gpl-2.0.html>.
013 *
014 *
015 *
016 */
017
018package io.stallion.email;
019
020/**
021 * Represents a person who can be emailed. Implemented by the User class, and the Contact class.
022 *
023 */
024public interface Contactable {
025    public Long getId();
026    public String getEmail();
027    public String getGivenName();
028    public String getFamilyName();
029    public String getDisplayName();
030    public String getHonorific();
031
032    /**
033     * Opted out of all standard, non-transactional mailings.
034     * @return
035     */
036    public boolean isOptedOut();
037
038    /**
039     * Opted out of all emails, even transactional emails, even password reset emails and such.
040     * @return
041     */
042    public boolean isTotallyOptedOut();
043    public Boolean getDeleted();
044
045    /**
046     * Is the user disabled, will by default exclude from mailings
047     *
048     * @return
049     */
050    public boolean isDisabled();
051}