2 * Copyright (C) 2017 - 2024 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.jbonuscard.model.bonus_card;
19 import java.io.Serializable;
20 import java.util.Date;
21 import org.mxchange.jcontacts.model.contact.Contact;
22 import org.mxchange.jcontactsbusiness.model.basicdata.BasicData;
23 import org.mxchange.jcustomercore.model.customer.Customer;
26 * A POJI for bonus cards
28 * @author Roland Häder<roland@mxchange.org>
30 public interface BonusCard extends Comparable<BonusCard>, Serializable {
33 * Getter for bonus card's bar code
35 * @return Bonus card's bar code
37 String getBonusCardBarCode ();
40 * Setter for bonus card's bar code
42 * @param bonusCardBarCode Bonus card's bar code
44 void setBonusCardBarCode (final String bonusCardBarCode);
47 * Getter for bonus card's contact data
49 * @return Bonus card's contact data
51 Contact getBonusCardContact ();
54 * Setter for bonus card's contact data
56 * @param bonusCardContact Bonus card's contact data
58 void setBonusCardContact (final Contact bonusCardContact);
61 * Getter for bonus card's creation timestamp
63 * @return Bonus card's creation timestamp
65 Date getBonusCardEntryCreated ();
68 * Setter for bonus card's creation timestamp
70 * @param bonusCardCreated Bonus card's creation timestamp
72 void setBonusCardEntryCreated (final Date bonusCardCreated);
75 * Getter for bonus card's updated timestamp
77 * @return Bonus card's updated timestamp
79 Date getBonusCardEntryUpdated ();
82 * Setter for bonus card's updated timestamp
84 * @param bonusCardUpdated Bonus card's updated timestamp
86 void setBonusCardEntryUpdated (final Date bonusCardUpdated);
89 * Getter for bonus card's customer data
91 * @return Bonus card's customer data
93 Customer getBonusCardCustomer ();
96 * Setter for bonus card's customer data
98 * @param bonusCardCustomer Bonus card's customer data
100 void setBonusCardCustomer (final Customer bonusCardCustomer);
103 * Getter for bonus card's primary key
105 * @return Bonus card's primary key
107 Long getBonusCardId ();
110 * Setter for bonus card's primary key
112 * @param bonusCardId Bonus card's primary key
114 void setBonusCardId (final Long bonusCardId);
117 * Getter for bonus card's issuing company
119 * @return Bonus card's issuing company
121 BasicData getBonusCardIssuer ();
124 * Setter for bonus card's issuing company
126 * @param bonusCardIssuer Bonus card's issuing company
128 void setBonusCardIssuer (final BasicData bonusCardIssuer);
131 * Getter for bonus card's number (other than customer/bar code)
133 * @return Bonus card's number
135 String getBonusCardNumber ();
138 * Setter for bonus card's number (other than customer/bar code)
140 * @param bonusCardNumber Bonus card's number
142 void setBonusCardNumber (final String bonusCardNumber);
145 * Getter for bonus card's partnering/branding company
147 * @return Bonus card's partnering/branding company
149 BasicData getBonusCardPartner ();
152 * Setter for bonus card's partnering/branding company
154 * @param bonusCardPartner Bonus card's partnering/branding company
156 void setBonusCardPartner (final BasicData bonusCardPartner);
159 boolean equals (final Object object);