2 * Copyright (C) 2017 - 2022 Free Software Foundation
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 3 of the License, or
6 * (at your option) any later version.
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 package org.mxchange.jbonuscard.model.bonus_card;
18 import java.io.Serializable;
19 import java.util.Date;
20 import org.mxchange.jcontacts.model.contact.Contact;
21 import org.mxchange.jcontactsbusiness.model.basicdata.BasicData;
22 import org.mxchange.jcustomercore.model.customer.Customer;
25 * A POJI for bonus cards
27 * @author Roland Häder<roland@mxchange.org>
29 public interface BonusCard extends Comparable<BonusCard>, Serializable {
32 * Getter for bonus card's bar code
34 * @return Bonus card's bar code
36 String getBonusCardBarCode ();
39 * Setter for bonus card's bar code
41 * @param bonusCardBarCode Bonus card's bar code
43 void setBonusCardBarCode (final String bonusCardBarCode);
46 * Getter for bonus card's contact data
48 * @return Bonus card's contact data
50 Contact getBonusCardContact ();
53 * Setter for bonus card's contact data
55 * @param bonusCardContact Bonus card's contact data
57 void setBonusCardContact (final Contact bonusCardContact);
60 * Getter for bonus card's creation timestamp
62 * @return Bonus card's creation timestamp
64 Date getBonusCardEntryCreated ();
67 * Setter for bonus card's creation timestamp
69 * @param bonusCardCreated Bonus card's creation timestamp
71 void setBonusCardEntryCreated (final Date bonusCardCreated);
74 * Getter for bonus card's updated timestamp
76 * @return Bonus card's updated timestamp
78 Date getBonusCardEntryUpdated ();
81 * Setter for bonus card's updated timestamp
83 * @param bonusCardUpdated Bonus card's updated timestamp
85 void setBonusCardEntryUpdated (final Date bonusCardUpdated);
88 * Getter for bonus card's customer data
90 * @return Bonus card's customer data
92 Customer getBonusCardCustomer ();
95 * Setter for bonus card's customer data
97 * @param bonusCardCustomer Bonus card's customer data
99 void setBonusCardCustomer (final Customer bonusCardCustomer);
102 * Getter for bonus card's primary key
104 * @return Bonus card's primary key
106 Long getBonusCardId ();
109 * Setter for bonus card's primary key
111 * @param bonusCardId Bonus card's primary key
113 void setBonusCardId (final Long bonusCardId);
116 * Getter for bonus card's issuing company
118 * @return Bonus card's issuing company
120 BasicData getBonusCardIssuer ();
123 * Setter for bonus card's issuing company
125 * @param bonusCardIssuer Bonus card's issuing company
127 void setBonusCardIssuer (final BasicData bonusCardIssuer);
130 * Getter for bonus card's number (other than customer/bar code)
132 * @return Bonus card's number
134 String getBonusCardNumber ();
137 * Setter for bonus card's number (other than customer/bar code)
139 * @param bonusCardNumber Bonus card's number
141 void setBonusCardNumber (final String bonusCardNumber);
144 * Getter for bonus card's partnering/branding company
146 * @return Bonus card's partnering/branding company
148 BasicData getBonusCardPartner ();
151 * Setter for bonus card's partnering/branding company
153 * @param bonusCardPartner Bonus card's partnering/branding company
155 void setBonusCardPartner (final BasicData bonusCardPartner);
158 boolean equals (final Object object);