1: | <?php |
2: | namespace Hyperwallet\Model; |
3: | |
4: | /** |
5: | * Represents a V3 Bank Card |
6: | * |
7: | * @property string $token The bank card token |
8: | * @property string $type The transfer method type |
9: | * |
10: | * @property string $status The bank card status |
11: | * @property \DateTime $createdOn The bank card creation date |
12: | * |
13: | * @property string $transferMethodCountry The bank card country |
14: | * @property string $transferMethodCurrency The bank card currency |
15: | * |
16: | * @property string $cardType The bank card type |
17: | * |
18: | * @property string $cardNumber The bank card number |
19: | * @property string $cardBrand The bank card brand |
20: | * @property string $cvv The bank card cvv |
21: | * @property \DateTime $dateOfExpiry The bank card expiry date |
22: | * @property string $processingTime The processing time |
23: | * @property bool $isDefaultTransferMethod The flag to denote default account |
24: | * |
25: | * @package Hyperwallet\Model |
26: | */ |
27: | class BankCard extends BaseModel { |
28: | |
29: | /** |
30: | * @internal |
31: | * |
32: | * Read only fields |
33: | * |
34: | * @var string[] |
35: | */ |
36: | private static $READ_ONLY_FIELDS = array('token', 'status', 'createdOn', 'cardType', 'cardBrand'); |
37: | |
38: | const TYPE_BANK_CARD = 'BANK_CARD'; |
39: | |
40: | const STATUS_ACTIVATED = 'ACTIVATED'; |
41: | const STATUS_DECLINED = 'VERIFIED'; |
42: | const STATUS_LOCKED = 'INVALID'; |
43: | const STATUS_SUSPENDED = 'DE_ACTIVATED'; |
44: | |
45: | const CARD_TYPE_DEBIT = 'DEBIT'; |
46: | |
47: | const CARD_BRAND_VISA = 'VISA'; |
48: | const CARD_BRAND_MASTERCARD = 'MASTERCARD'; |
49: | |
50: | public static function FILTERS_ARRAY() { |
51: | return array('status', 'createdBefore', 'createdAfter', 'sortBy', 'limit'); |
52: | } |
53: | |
54: | /** |
55: | * Creates a instance of BankCard |
56: | * |
57: | * @param string[] $properties The default properties |
58: | */ |
59: | public function __construct(array $properties = array()) { |
60: | parent::__construct(self::$READ_ONLY_FIELDS, $properties); |
61: | } |
62: | |
63: | /** |
64: | * Get the bank card token |
65: | * |
66: | * @return string |
67: | */ |
68: | public function getToken() { |
69: | return $this->token; |
70: | } |
71: | |
72: | /** |
73: | * Get the bank card token |
74: | * |
75: | * @param string $token |
76: | * @return BankCard |
77: | */ |
78: | public function setToken($token) { |
79: | $this->token = $token; |
80: | return $this; |
81: | } |
82: | |
83: | /** |
84: | * Get the transfer method type |
85: | * |
86: | * @return string |
87: | */ |
88: | public function getType() { |
89: | return $this->type; |
90: | } |
91: | |
92: | /** |
93: | * Set the transfer method type |
94: | * |
95: | * @param string $type |
96: | * @return BankCard |
97: | */ |
98: | public function setType($type) { |
99: | $this->type = $type; |
100: | return $this; |
101: | } |
102: | |
103: | /** |
104: | * Get the bank card status |
105: | * |
106: | * @return string |
107: | */ |
108: | public function getStatus() { |
109: | return $this->status; |
110: | } |
111: | |
112: | /** |
113: | * Get the bank card creation date |
114: | * |
115: | * @return \DateTime |
116: | */ |
117: | public function getCreatedOn() { |
118: | return $this->createdOn ? new \DateTime($this->createdOn) : null; |
119: | } |
120: | |
121: | /** |
122: | * Get the bank card country |
123: | * |
124: | * @return string |
125: | */ |
126: | public function getTransferMethodCountry() { |
127: | return $this->transferMethodCountry; |
128: | } |
129: | |
130: | |
131: | /** |
132: | * Set the bank card country |
133: | * |
134: | * @param string $transferMethodCountry |
135: | * @return BankCard |
136: | */ |
137: | public function setTransferMethodCountry($transferMethodCountry) { |
138: | $this->transferMethodCountry = $transferMethodCountry; |
139: | return $this; |
140: | } |
141: | |
142: | |
143: | /** |
144: | * Get the bank card currency |
145: | * |
146: | * @return string |
147: | */ |
148: | public function getTransferMethodCurrency() { |
149: | return $this->transferMethodCurrency; |
150: | } |
151: | |
152: | /** |
153: | * Set the bank card country |
154: | * |
155: | * @param string $transferMethodCurrency |
156: | * @return BankCard |
157: | */ |
158: | public function setTransferMethodCurrency($transferMethodCurrency) { |
159: | $this->transferMethodCurrency = $transferMethodCurrency; |
160: | return $this; |
161: | } |
162: | |
163: | |
164: | /** |
165: | * Get the bank card brand |
166: | * |
167: | * @return string |
168: | */ |
169: | public function getCardBrand() { |
170: | return $this->cardBrand; |
171: | } |
172: | |
173: | /** |
174: | * Get the bank card number |
175: | * |
176: | * @return string |
177: | */ |
178: | public function getCardNumber() { |
179: | return $this->cardNumber; |
180: | } |
181: | |
182: | /** |
183: | * Set the bank card number |
184: | * |
185: | * @param string $cardNumber |
186: | * @return BankCard |
187: | */ |
188: | public function setCardNumber($cardNumber) { |
189: | $this->cardNumber = $cardNumber; |
190: | return $this; |
191: | } |
192: | |
193: | /** |
194: | * Get the bank card cvv |
195: | * |
196: | * @return string |
197: | */ |
198: | public function getCvv() { |
199: | return $this->cvv; |
200: | } |
201: | |
202: | /** |
203: | * Set the bank card cvv |
204: | * |
205: | * @param string $cvv |
206: | * @return BankCard |
207: | */ |
208: | public function setCvv($cvv) { |
209: | $this->cvv = $cvv; |
210: | return $this; |
211: | } |
212: | |
213: | /** |
214: | * Get the bank card type |
215: | * |
216: | * @return string |
217: | */ |
218: | public function getCardType() { |
219: | return $this->cardType; |
220: | } |
221: | |
222: | /** |
223: | * Get the bank card expiry date |
224: | * |
225: | * @return \DateTime |
226: | */ |
227: | public function getDateOfExpiry() { |
228: | return $this->dateOfExpiry ? new \DateTime($this->dateOfExpiry) : null; |
229: | } |
230: | |
231: | /** |
232: | * Set the bank card expiry date |
233: | * |
234: | * @param \DateTime $dateOfExpiry |
235: | * @return BankCard |
236: | */ |
237: | public function setDateOfExpiry(\DateTime $dateOfExpiry = null) { |
238: | $this->dateOfExpiry = $dateOfExpiry == null ? null : $dateOfExpiry->format('Y-m-d'); |
239: | return $this; |
240: | } |
241: | |
242: | /** |
243: | * Get the bank card processing time |
244: | * |
245: | * @return string |
246: | */ |
247: | public function getProcessingTime() { |
248: | return $this->processingTime; |
249: | } |
250: | |
251: | /** |
252: | * Set the bank card processing time |
253: | * |
254: | * @param string $processingTime |
255: | * @return BankCard |
256: | */ |
257: | public function setProcessingTime($processingTime) { |
258: | $this->processingTime = $processingTime; |
259: | return $this; |
260: | } |
261: | |
262: | /** |
263: | * Get the is default transfer method |
264: | * |
265: | * @return bool |
266: | */ |
267: | public function getIsDefaultTransferMethod() { |
268: | return $this->isDefaultTransferMethod; |
269: | } |
270: | |
271: | /** |
272: | * Set the is default transfer method |
273: | * |
274: | * @param bool $isDefaultTransferMethod |
275: | * @return BankCard |
276: | */ |
277: | public function setIsDefaultTransferMethod($isDefaultTransferMethod) { |
278: | $this->isDefaultTransferMethod = $isDefaultTransferMethod; |
279: | return $this; |
280: | } |
281: | } |
282: |