2 * Copyright (C) 2016 - 2022 Free Software Foundation
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 package org.mxchange.jcustomercore.model.customer;
19 import java.io.Serializable;
20 import java.util.Date;
21 import org.mxchange.jcontacts.model.contact.Contact;
22 import org.mxchange.jcustomercore.model.customer.status.CustomerAccountStatus;
27 * @author Roland Häder<roland@mxchange.org>
29 public interface Customer extends Comparable<Customer>, Serializable {
32 * Getter for contact instance
34 * @return Contact id number
36 Contact getCustomerContact ();
39 * Setter for contact instance
41 * @param customerContact Contact instance
43 void setCustomerContact (final Contact customerContact);
46 * Getter for confirmation key
48 * @return Confirmation key
50 String getCustomerConfirmKey ();
53 * Setter for confirmation key
55 * @param customerConfirmKey Confirmation key
57 void setCustomerConfirmKey (final String customerConfirmKey);
60 * Getter for "created" timestamp
62 * @return "created" timestamp
64 Date getCustomerEntryCreated ();
67 * Setter for "created" timestamp
69 * @param customerEntryCreated "created" timestamp
71 void setCustomerEntryCreated (final Date customerEntryCreated);
74 * Getter for "updated" timestamp
76 * @return "updated" timestamp
78 Date getCustomerEntryUpdated ();
81 * Setter for "updated" timestamp
83 * @param customerEntryUpdated "updated" timestamp
85 void setCustomerEntryUpdated (final Date customerEntryUpdated);
88 * Getter for customer id number
90 * @return Customer id number
92 Long getCustomerId ();
95 * Settte for customer id number
97 * @param customerId Customer id number
99 void setCustomerId (final Long customerId);
102 * Getter for "locked" timestamp
104 * @return "locked" timestamp
106 Date getCustomerLastLocked ();
109 * Getter for "locked" timestamp
111 * @param customerLocked "locked" timestamp
113 void setCustomerLastLocked (final Date customerLocked);
116 * Getter for reason of last locked
118 * @return Reason of last locked
120 String getCustomerLastLockedReason ();
123 * Setter for reason of last locked
125 * @param lastLockedReason Reason of last locked
127 void setCustomerLastLockedReason (final String lastLockedReason);
130 * Getter for customer number
132 * @return Customer number
134 String getCustomerNumber ();
137 * Setter for customer number
139 * @param customerNumber Customer number
141 void setCustomerNumber (final String customerNumber);
144 * Getter for password hash
146 * @return Password hash
148 String getCustomerPasswordHash ();
151 * Setter for password hash
153 * @param customerPasswordHash Password hash
155 void setCustomerPasswordHash (final String customerPasswordHash);
158 * Getter for account status
160 * @return Account status
162 CustomerAccountStatus getCustomerAccountStatus ();
165 * Setter for account status
167 * @param customerStatus Account status
169 void setCustomerAccountStatus (final CustomerAccountStatus customerStatus);
172 boolean equals (final Object object);