All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
10.0.1 - 2023-09-30
- Bump semver from 7.3.8 to 7.5.4 by @dependabot in bavix#726
- Bump webpack from 5.76.3 to 5.88.1 by @dependabot in bavix#724
- Bump webpack from 5.88.1 to 5.88.2 by @dependabot in bavix#730
- Update symplify/easy-coding-standard requirement from ^11.5 to ^12.0 by @rez1dent3 in bavix#732
- Updated laravel rector set by @rez1dent3 in bavix#733
- Update driftingly/rector-laravel requirement from ^0.21 to ^0.22 by @dependabot in bavix#735
- Create npm workflow by @rez1dent3 in bavix#736
- Update docs.yaml by @rez1dent3 in bavix#737
- Update docs.yaml by @rez1dent3 in bavix#739
- Update docs.yaml by @rez1dent3 in bavix#740
- Update docs.yaml by @rez1dent3 in bavix#741
- Lumen documentation update by @rez1dent3 in bavix#743
- [Snyk] Upgrade webpack-cli from 5.0.0 to 5.1.4 by @rez1dent3 in bavix#747
- [Snyk] Upgrade axios from 1.3.4 to 1.4.0 by @rez1dent3 in bavix#748
- [Snyk] Upgrade size-limit from 8.2.4 to 8.2.6 by @rez1dent3 in bavix#750
- [Snyk] Upgrade mini-css-extract-plugin from 2.7.5 to 2.7.6 by @rez1dent3 in bavix#751
- [Snyk] Upgrade docsify from 4.13.0 to 4.13.1 by @rez1dent3 in bavix#752
- Update driftingly/rector-laravel requirement from ^0.22 to ^0.24 by @dependabot in bavix#753
- Bump axios from 1.4.0 to 1.5.0 by @dependabot in bavix#756
- Bump bavix/.github from 0.0.4 to 0.0.5 by @dependabot in bavix#759
- Bump size-limit from 8.2.6 to 9.0.0 by @dependabot in bavix#762
- Bump actions/stale from 6 to 8 by @dependabot in bavix#761
- Bump actions/checkout from 3 to 4 by @dependabot in bavix#760
- docs: update wording to sound grammatically correct by @justinkekeocha in bavix#766
- docs: customize name and slug of default wallet by @justinkekeocha in bavix#765
- docs: fixed grammatical error by @justinkekeocha in bavix#764
- Bump uuid from 9.0.0 to 9.0.1 by @dependabot in bavix#768
- checking the Wallet class extensibility by @rez1dent3 in bavix#769
- docs: Create configuration.md by @justinkekeocha in bavix#771
- docs: add configuration file to sidebar by @justinkekeocha in bavix#772
- docs: move configuration details to separate file by @justinkekeocha in bavix#773
- docs: update for clarity by @justinkekeocha in bavix#774
- Update driftingly/rector-laravel requirement from ^0.24 to ^0.25 by @dependabot in bavix#779
- Update driftingly/rector-laravel requirement from ^0.25 to ^0.26 by @dependabot in bavix#780
- Bump axios from 1.5.0 to 1.5.1 by @dependabot in bavix#781
- Add semgrep by @rez1dent3 in bavix#783
10.0.0 - 2023-07-08
- Added environment variables for cache and locks (WALLET_CACHE_DRIVER, WALLET_CACHE_TTL, WALLET_LOCK_DRIVER, WALLET_LOCK_TTL).
- Transaction/transfer uuids added to External API.
- Improved support for custom types with phpstan. Now you will find more errors.
- Added the ability to buy for any wallet through the basket (receiving wallet).
- Method deprecated
BookkeeperServiceInterface::missing
. UseBookkeeperServiceInterface::forget
.
- Removed
LockProviderNotFoundException
.
- Fixed empty state bug.
- Fixed return types in phpdoc, added strong typing.
- Viewing a balance no longer creates a wallet. Solves problems with laravel nova. #658. Thank you @myounis97
- Contract changed
EagerLoaderServiceInterface
. Added customer. - The
to_type
andfrom_type
columns in the translation table are no longer used. Will be removed in 11.x. - For all transfers, the relationship type has been changed from
MorphMany
toHasMany
. - Minimum php version 8.1.
- Minimum laravel version 10.0.
- Minimum doctrine/dbal version 3.5.
- Minimum brick/math version 0.10.
9.6.2 - 2023-03-15
-
- Fixed WalletService::create() without db::transaction()
9.6.1 - 2023-01-30
- Add support laravel 10.x
9.6.0 - 2022-10-27
- Full support for standard transactions and laravel nova #589
9.5.0 - 2022-10-06
- Improved performance api handles #576
- Cache query optimize. v2 #580
- Optimize StateServiceInterface #582
- Memory leak. StateServiceInterface #583
9.4.0 - 2022-09-29
- Add support Model::preventSilentlyDiscardingAttributes() #574 #572
- Add partial support octane #573 #570
9.3.0 - 2022-09-06
- StorageServiceLockDecorator by @rez1dent3 in #563
- StateServiceInterface by @rez1dent3 in #564
- Add atomic-service.md by @rez1dent3 in #561
- Bump uuid from 8.3.2 to 9.0.0 by @dependabot in #566
9.2.0 - 2022-09-04
- upgrade actions by @rez1dent3 in #541
- Bump size-limit from 8.0.0 to 8.0.1 by @dependabot in #543
- Update rector/rector requirement from ^0.13 to ^0.14 by @dependabot in #544
- Update laravel/cashier requirement from ^13.11 to ^14.0 by @dependabot in #545
- Update linters and rules by @rez1dent3 in #547
- Bump prismjs from 1.28.0 to 1.29.0 by @dependabot in #549
- Contract phpdoc fix by @rez1dent3 in #551
- fix TestCase by @rez1dent3 in #555
- Add telegram link by @rez1dent3 in #553
- Ability to dynamically create a wallet by @rez1dent3 in #550
- Quality tests by @rez1dent3 in #554
- Allow to use atomic service by @rez1dent3 in #548
- docs by @rez1dent3 in #557
- refactoring with new phpstan by @rez1dent3 in #556
9.1.0 - 2022-08-08
- TransactionCreatedEvent #538
- Fixed a bug with sending multiple events inside the queue. Extra events were sent.
9.0.4 - 2022-07-28
- Add allow plugin infection by @rez1dent3 in #528
- Fix transaction amount_float mutator by @keatliang2005 in #533 #534
- Bump terser from 5.13.0 to 5.14.2 by @dependabot in #527
- Bump webpack from 5.73.0 to 5.74.0 by @dependabot in #529
9.0.3 - 2022-06-22
- Fixed lumen. Change CacheManager to CacheFactory for compatibility. #520 #521 @Beagon
9.0.2 - 2022-06-18
- Fix laravel-ide-helper generate:model #517 @keatliang2005
9.0.1 - 2022-05-19
- Fixed a bug that prevented items from being returned via
Cart::withItem
- ExtraDtoInterface #479
- Product custom price #485
- Changing the logic of funds transfers #483
- Split Product interface #474
- PHP 8+ Union types #482
- Eager loading #480
- method
Cart::addItems
- method
Cart::addItem
- method
Cart::setMeta
- Performance just got a little better
- Public contracts have become stricter
- Inside is now strongly typed
- interface
Product
- method
CartPay::paid
8.4.3 - 2023-02-05
- Fixed infinite lock
8.4.2 - 2022-12-29
- fix withdraw/transfer
8.4.1 - 2022-04-26
- Cart::getUniqueItems
8.4.0 - 2022-04-20
- MaximalTaxable
- Added strictness in internal classes
8.3.0 - 2022-04-15
- Added the ability to create custom events
- UnknownEventException
- Reduced the amount of memory consumed in the cart
- Improved product returns performance
8.2.1 - 2022-04-14
- Error in force transaction float #469 @EdX9
8.2.0 - 2022-04-03
- Add exception
TransactionStartException
8.1.1 - 2022-03-18
- Expanding the error description. Helps to reduce the number of issue.
8.1.0 - 2022-03-13
- Method
getAvailableBalance
.
- Methods
withItems
,withItem
,withMeta
on Cart-object.
- Method
addItems
,addItem
,setMeta
on Cart-Object.
8.0.6 - 2022-02-26
- Replaced an object with an interface (Events) #444 @ysfkaya
8.0.5 - 2022-02-21
- Spanish language #443 @EdX9
8.0.4 - 2022-02-19
- Added validation when resetting confirmation. Caused unexpected system behavior.
8.0.3 - 2022-02-19
- Fixed "UUID Duplicate entry" bug on eager loading. #438 @DanielSpravtsev
- Use predefined PHP float epsilon (phpunit) sebastianbergmann/phpunit#4874
8.0.2 - 2022-02-12
- Added keys to service provider
8.0.1 - 2022-02-12
- Fixed bug preventing redis from being used #429 @mattvb91
8.0.0 - 2022-02-08
- Add support laravel ^9.0
- Added support for owner string identifiers #423 @adesege
- Removed php 7.4 support
7.3.6 - 2023-02-05
- Fixed infinite lock
7.3.5 - 2022-12-29
- fix withdraw/transfer
7.3.4 - 2022-08-08
- Fixed a bug with sending multiple events inside the queue. Extra events were sent.
7.3.3 - 2022-02-26
- Replaced an object with an interface (Events) #444 @ysfkaya
7.3.2 - 2022-02-12
- Added keys to service provider
7.3.1 - 2022-02-12
- Fixed bug preventing redis from being used #429 @mattvb91
7.3.0 - 2021-12-10
- Credit Limits
- WalletCreatedEvent
- Optimization of check for withdrawals;
7.2.0 - 2021-12-07
- Added balance update event
7.1.0 - 2021-12-05
- Transaction support.
- Now, within the transaction, the wallet has its own balance state.
- Fixed unit tests with checking for transaction level (mariadb).
- Due to the state within transactions, I was able to speed up the computation up to 25 times for complex transfers.
- class
WalletServiceLegacy
- method
CommonServiceLegacy::addBalance
7.0.0 - 2021-11-25
- Optimization of the
payFreeCart
andpayFree
request. Now the package does not update the repository. But there is no point in updating it, because the client does not pay anything. - Now everything is in contracts. It became easier for you to modify the package to suit your needs.
- Updated package core. If you are tied to the kernel, then you will have to rewrite some code.
- Optimized the algorithm for transfers and purchases. When paying for a large basket, the productivity increase at the peak is up to 24 times.
- If a batch of transactions does not change the balance, then the accounting service will not update the wallet balance.
- Fixed issues with postgres. There was a bug when working with currencies, for some reason the request sometimes dropped and went into a deadlock.
- Added
uuid
column to the wallet table. - Added
phpstan
,psalm
,deptrac
,rector
. The package update should now be smoother and with fewer bugs.
- rename
CommonService
toCommonServiceLegacy
- rename
MetaService
toMetaServiceLegacy
- rename
WalletService
toWalletServiceLegacy
- class
CommonServiceLegacy
- class
WalletServiceLegacy
- command
RefreshBalance
. Now you need to write this class yourself. - class
Storable
- class
Rateable
- interface
Mathable
- class
Bring
- method
Cart::alreadyBuy
- method
Cart::canBuy
- class
EmptyLock
- class
Operation
- method
CommonService::verifyWithdraw
- method
CommonService::multiOperation
- method
CommonService::assemble
- method
CommonService::multiBrings
- class
DbService
- class
ExchangeService
- class
LockService
- method
WalletService::discount
- method
WalletService::decimalPlacesValue
- method
WalletService::decimalPlaces
- method
WalletService::checkAmount
- method
WalletService::adjustment
- class
BrickMath
- class
Rate
- class
Store
6.2.4 - 2021-11-13
- Fixed error LockProviderNotFoundException
6.2.3 - 2021-11-08
- Fixed a bug with
migrate:refresh
6.2.2 - 2021-11-02
- Update key from cache
6.2.1 - 2021-11-02
- Fix looping for old configs. #387 @AbdullahFaqeir, #391 @Hussam3bd @alexstewartja
6.2.0 - 2021-10-29
- ECS
- Added new exception
UnconfirmedInvalid
- Raised the minimum php version
7.4+
- Merged migrations
- class
Storable
- class
Rateable
- interface
Mathable
- class
Bring
- method
Cart::alreadyBuy
- method
Cart::canBuy
- class
EmptyLock
- class
Operation
- method
CommonService::verifyWithdraw
- method
CommonService::multiOperation
- method
CommonService::assemble
- method
CommonService::multiBrings
- method
CommonService::addBalance
- class
DbService
- class
ExchangeService
- class
LockService
- class
MetaService
- method
WalletService::discount
- method
WalletService::decimalPlacesValue
- method
WalletService::decimalPlaces
- method
WalletService::checkAmount
- method
WalletService::refresh
- method
WalletService::adjustment
- class
BrickMath
- class
Rate
- class
Store
6.1.0 - 2021-04-18
- Added Github Actions
- Add farsi locale; #317 #320 @hsharghi
- Added the ability to add meta data from the cart #318
- Added exceptions to phpdoc
- Reworked unit tests
- Unit tests work faster
- Fixed a bug in the calculation of the commission
6.0.4 - 2021-04-07
- Updated key
confirmed_invalid
in Arabic; #316 @omarhen
6.0.3 - 2021-01-31
- Add arabic locale; #302 @akhedrane
6.0.2 - 2020-11-28
- Added
getWalletOrFail
method.
6.0.1 - 2020-11-18
- Fixed a bug when updating the balance, refund and full write-off. #279 @vaibhavpandeyvpz
- Fixed bugs in unit tests.
6.0.0 - 2020-11-13
- Bigger and safer. There are never many tests. As always, new test cases have been added.
- Package
brick/math
is now required. - Added examples of integrations with the
cknow/laravel-money
package in unit tests. - The
Storable
interface has an additional methodfresh
to clean up all data. - Added psalm, but not used yet.
- Added phpmetrics, thanks to which it was possible to remove a lot of loops in the code.
- Added meta column in wallet, now the package is more extensible. I moved currency from the config to the meta.
- Added an icon to the documentation.
- Added full support for php 8. We are waiting for the release.
- Added
adjustment
method, it deals with balance adjustment. In automatic mode, it calculates the difference between the current amount on the balance sheet and for transactions, and if the balance does not converge, then finishes with a transaction. - Added the ability to initialize the default wallet with the required meta parameters (needed to work with currencies).
- Added method
negative
toMathable
interface.
- Now the package works exclusively with strings, there are fewer problems when working with large numbers.
- Now, to work with cryptocurrencies, it is not necessary to install
bcmath
. - JS documentation is no longer dependent on CDN, everything is collected in one bundle.
- Updated the command to refresh the balance, now without a transaction for all wallets. Use carefully.
- Currencies are now in "wallets.meta.currency", please do not use the config for these cases.
- English documentation has been slightly improved.
- Updated phpunit to support php 8.
- Removed php 7.2 support.
- Drop package
laravel/legacy-factories
. - Remove
BCMath
andMath
classes.
- Fixed a bug when withdrawing large funds from the wallet. Sometimes the number went beyond int64 and the exception fell on "negative number".
- The key in the currencies config will be removed in 7.x. Use "wallet.meta.currency".
5.5.1 - 2020-10-18
- Fixed a bug when updating the balance, refund and full write-off. #279 @vaibhavpandeyvpz
- Fixed bugs in unit tests.
5.5.0 - 2020-10-01
- Added brick/math dependency (Optional in version 5.x. If you already have a package installed, the library will switch to it automatically)
- Added more php annotations, now it's easier to work with the library.
- Updated travis. Now we check not only SQLite, but also mysql & postgres.
- Fixed memory leak in models.
- class
BCMath
. - class
Math
.
5.4.0 - 2020-09-30
- Temporarily added package (to develop) laravel/legacy-factories.
- PHP 7.3+ support, 7.2 is no longer supported.
- Formatted code using StyleCI.
- The mysql/postgres balance refresh command no longer performs a single request update.
- If you use standard laravel transactions and open it, the library will not open a new transaction. This removes a lot of errors that were sent to my email.
- Removed automatic creation of the default wallet when calling
createWallet
. #218
- Fixed migrations for unit tests (your app should not be affected).
- Fixed nested transactions in databases. This is now one transaction.
- Fixed risk in unit tests for the postgres database.
5.3.2 - 2020-08-31
- Add support laravel ~8.0
- Dependency Allowed
illuminate/database
^8.0 - Dependency Allowed
doctrine/dbal
^3.0 - Dependency Allowed
infection/infection
0.17.* - Added new unit tests
5.3.1 - 2020-08-18
- Fixed migration issue with db table prefix #195 @reedknight @cispl-shaswatad
5.3.0 - 2020-08-10
- Add
resetConfirm
,safeResetConfirm
methods (unconfirmed). - Allow default migrations to be ignored. #189 @driangonzales
5.2.1 - 2020-06-10
- Added support
laravel/cashier ^12.0
5.2.0 - 2020-04-15
- Added support
laravel/cashier ^11.0
5.1.0 - 2020-03-26
- Added support
ramsey/uuid ^4.0
- pg12 support
5.0.2 - 2020-03-22
- fix
bindTo
method (v4.1)
5.0.1 - 2020-03-19
- Added a patch from version 4.2.1 #150
5.0.0 - 2020-03-13
- add support "Arbitrary Precision Mathematics" (
ext-bcmath
) #139 #146 - add
Mathable
service (helps switch quickly from bcmath to php computing)
- add unit cases
- upgrade composer packages
- Now all casts are in the config, not in the model. If you use bcmath, then all values are reduced to a string.
- Strong typing (models, interfaces, etc.)
- all deprecated methods are removed
nesbot/carbon
is no longer needed for the library to work
4.2.2 - 2020-03-22
- fix
bindTo
method (v4.1)
4.2.1 - 2020-03-19
- Fixed wallet recalculate command #150
4.2.0 - 2020-03-08
- Add laravel 7 support
4.1.4 - 2020-03-22
- fix
bindTo
method
4.1.3 - 2020-03-20
- Added a patch from version 4.2.1 #150
4.1.2 - 2020-01-20
- add
$amountFloat
to Transaction model
4.1.1 - 2020-01-16
- upgrade composer packages
- add unit cases
4.1.0 - 2019-12-15
- Added ability to override type
4.0.1 - 2019-11-30
- Encountered error: "You are not the owner of the wallet" #129 @arjayosma
4.0.0 - 2019-10-04
- Added interface
Storeable
for creating your own wallet balance repositories. #103 - Added support for pcov, now coated unit tests work in a few seconds, not minutes.
- Allow developers to inherit classes:
Operation
,Bring
, etc.. #106 - Added personal product discounts (see
Discount
interface). - Added a separate service for working with the connection. It’s not possible to configure flexibly at the moment, wait for new releases.
- The minimum version of php 7.2.
- Old versions of the
laravel/cashier
package have been removed, now support begins with the seventh version. - New argument
Customer $customer
added togetAmountProduct
method. #117 @jlstandout - Now for
LockService
you can choose your own (separate) cache. - Personal discount information has been added to the
transfers
table. Data is not used in the library, but will be needed for the future. - New argument
Customer $customer
added togetTotal
method. #117
- Giving a gift (Santa) no longer goes into minus due to taxes. #111
- Upon receipt, the configuration is marked with default values. #117
- Fixed a bug due to which the wallet could go negative when transferring (exchanging) money, tax. #117
- A more correct balance change, a bug with a successful update in the database and an unsuccessful update of the balance (race condition) field was fixed.
- Fixed a bug with a purchase without funds and tax. When trying to pay, an exception was thrown.
- Reworked and fixed unit tests, fixed bugs.
ProxyService
is deprecated and is no longer used.WalletService::getBalance
method is deprecated, useStoreable::getBalance
.
3.3.0 - 2019-09-10
- Added the ability to easily overload the main classes #106
3.2.1 - 2019-09-10
- Fixed calculation of commission for exchange #101 @haojingliu
- Update docs #99 @abishekrsrikaanth
3.2.0 - 2019-08-16
- Race condition problem resolved #82 @kak2z7702 #22 @sidor555
- Add Code Climate service
- Add support lumen (update docs)
- Optimize code
- More unit tests, test fixes
3.1.6 - 2019-08-08
- Add support laravel cashier #87 @imhuso
3.1.5 - 2019-08-07
- Fixed math rounding (mantissa) #85 @anthoz69
3.1.4 - 2019-08-03
- Add support
barryvdh/laravel-ide-helper
- Fixed receiving
wallets.transfers
relationship @imhuso
3.1.3 - 2019-07-31
- Add support SQLite on command
RefreshBalance
- Add support laravel 6.0
- Add support php 7.4
- Add unit-test's
3.1.2 - 2019-07-30
- Allow to free buy with a negative balance
- Add parameter
$allowZero
to methodcanWithdraw
- method canWithdraw, with a negative price, almost always true
3.1.1 - 2019-07-29
- Add getCurrencyAttribute
- New unit-test's
- Add docker for php7.4 (need to develop)
- Travis CI
- Update README.md
- Deprecated interface Taxing
3.1.0 - 2019-07-27
- Add exchange method's.
- Add confirm method's.
- Add method
hasWallet
, sometimes required to verify wallet existence. - Add currency service (create usd, eur,...).
- Add
MinimalTaxable
. - Add
Taxable
. - New exception's.
- Add decimal places (replacement ratio).
317
318
- method
calculateBalance
.
- Updated dependencies (composer.json).
- New status
exchange
.
- Wallet is not always created. #63 #51
- Migration mariadb, pgsql, mysql.
- Fix documentation.
- Optimize code, fasted 1.1x.
- class
Taxing
.
- The ability to change the ratio
coefficient
. - Removed private and protected methods, the traits turned out to be more clean.
3.0.4 - 2019-07-22
- fixed PostgresSQL 11
3.0.3 - 2019-07-06
- Fixed creating a wallet with default slug. #57 @kak2z7702
3.0.2 - 2019-06-18
- Add support laravel 5.9 (new name 6.0)
- Add support mariadb: 5.5, 10.0+
- Add support percona: 5.6
- Add support mysql: 5.6
3.0.1 - 2019-06-17
- The shortened syntax for getting the balance did not work.
3.0.0 - 2019-05-25
- Add service
CommonService
- Add service
ProxyService
- Add service
WalletService
- Add object Bring (simple transfer)
- Add object Operation (simple transaction)
- Add feature Cart (multi pay + quantity)
- Add method
payFreeCart
- Add method
safePayCart
- Add method
payCart
- Add method
forcePayCart
- Add method
safeRefundCart
- Add method
refundCart
- Add method
forceRefundCart
- Add method
safeRefundGiftCart
- Add method
refundGiftCart
- Add method
forceRefundGiftCart
- Add method
getUniqueId
to InterfaceProduct
- applied fixes from cs-fixer
- change singleton path
bavix.wallet::transaction
toBavix\Wallet\Models\Transaction::class
- change singleton path
bavix.wallet::transfer
toBavix\Wallet\Models\Transfer::class
- change singleton path
bavix.wallet::wallet
toBavix\Wallet\Models\Wallet::class
- change method
canBuy
. Added parameter$quantity
- method
calculateBalance
. - method
holderTransfers
. - attribute
$status
from Interfaces/Wallet::transfer - attribute
$status
from Interfaces/Wallet::safeTransfer - attribute
$status
from Interfaces/Wallet::forceTransfer - attribute
$status
from Interfaces/WalletFloat::transfer - attribute
$status
from Interfaces/WalletFloat::safeTransfer - attribute
$status
from Interfaces/WalletFloat::forceTransfer - class
Tax
- class
WalletProxy
- protected method
checkAmount
- protected method
assemble
- protected method
change
- protected method
holderTransfers
- protected method
addBalance
2.4.1 - 2019-05-17
- Readme.md
- lumen framework
- new tests have been added.
- method
refreshBalance
.
- method
calculateBalance
. - method
holderTransfers
.
2.4.0 - 2019-05-14
- Add zh-CN trans. @MoeCasts
- Add ru trans
- Add method
holderTransfers
- optimize
getWallet
method - optimize relations wallets
- fixed getting a default wallet @MoeCasts
- trait CanBePaid (deprecated ^2.2)
- trait CanBePaidFloat (deprecated ^2.2)
2.3.2 - 2019-05-13
- patch migrations
2.3.1 - 2019-05-13
- Added require dependency doctrine/dbal in composer.json
2.3.0 - 2019-05-13
- Add support Themosis Framework
- In all the methods of translations have added the status of the transfer.
- correction of errors during installation is not correct status.
2.2.2 - 2019-05-12
- fixed fee counting. see issue #25
2.2.1 - 2019-02-17
- Add support Laravel 5.8.
2.2.0 - 2018-12-25
- Add trait
CanPay
. - Add trait
CanPayFloat
.
- Trait
CanBePaid
. - Trait
CanBePaidFloat
.
2.1.0 - 2018-11-22
- File changelog.
- Add
HasGift
trait. - Added status column to the
transfers
table. - Added status_last column to the
transfers
table. - Added methods: refundGift, safeRefundGift, forceRefundGift
- A new argument is added to the "old
refund
" methods$gifts
.
- Due to the addition of new functionality
gifts
there are possible problems that need to be addressed. Namely, when returning the goods, the funds would not be returned to the person who paid for it. Which would raise a lot of questions.
- Composer.json: add new keywords.
- the $gifts argument (Boolean type) is added to the paid, refund, safeRefund, forceRefund method's.
- Removed column
refund
fromtransfers
table. Now it has been replaced by the status column.
2.0.1 - 2018-11-21
- add method getAvailableBalance. public getAvailableBalance(): int.
2.0.0 - 2018-11-21
- table
wallets
. - add
wallet_id
to tabletransactions
and foreign key's. - add
fee
to tabletransfers
. - add localization's.
- add Taxing interface.
- add WalletFloat interface.
- add const TYPE_DEPOSIT, TYPE_WITHDRAW.
- add Wallet model.
- add working with fractional (float) numbers.
- add method calculateBalance.
- add method payFree. public payFree(Product $product): Transfer.
- add CanBePaidFloat trait.
- Added the ability to collect Commission when withdrawing funds in transfers.
- Added the ability to work with multiple wallets.
- Added a class that stores user balance. To avoid any problems.
- add HasWalletFloat trait.
- add HasWallets trait.
- Add $type argument before $amount. protected change(string $type, int $amount, ?array $meta, bool $confirmed): Transaction.
- Due to the addition of the ability to buy for free, there was a bug in which we returned the full cost.
- Due to the addition of the ability to work with many wallets, there were bugs with payments. When the user bought the goods and the goods were assigned to the wallet, not to the user. This change of method: change, transactions, transfers, wallet, etc.
1.2.3 - 2018-11-11
- readme: Added new features.
- Composer.json: add new keywords.
1.2.2 - 2018-11-10
- method public forcePay(Product $product): Transfer.
- method public forceRefund(Product $product): bool.
- the
$force
parameter was added to thepay
method. public pay(Product $product, bool $force = false): Transfer. - the
$force
parameter was added to thesafePay
method. public safePay(Product $product, bool $force = false): ?Transfer. - the
$force
parameter was added to thecanBuy
method. public canBuy(Customer $customer, bool $force = false): bool. - the
$force
parameter was added to therefund
method. public refund(Product $product, bool $force = false): bool. - the
$force
parameter was added to thesafeRefund
method. public safeRefund(Product $product, bool $force = false): bool.
- Fixed magic method. He accounted for unconfirmed transactions.
1.2.1 - 2018-11-09
- check for php 7.3
- support for laravel 5.5.
1.2.0 - 2018-11-09
- phpunit to the project.
1.1.2 - 2018-11-08
- Fixed "balance" method. He counted the amount along with the unconfirmed transactions.
1.1.1 - 2018-11-08
- Update readme.
- New indexes have names for quick removal.
- Fixed
down
migration methodtransfers
.
1.1.0 - 2018-11-08
- Added index for fields in "transfers" table: ['from_type', 'from_id', 'refund'].
- Added index for fields in "transfers" table: ['to_type', 'to_id', 'refund'].
- In the table "transactions" added to the type index.
- Exception ProductEnded
- Method public paid(Product $product): ?Transfer.
- Method public canBuy(Customer $customer): bool.
- Static balance caching. Also the description for what it is necessary.
- In the table "transactions" is deleted the index of the field "uuid" and added a unique index.
- In the table "transfers" is deleted the index of the field "uuid" and added a unique index.
- Method
pay
began to check the possibility of buying.
- public resetBalance(): void
1.0.0 - 2018-11-07
- Added
refund
field totransfers
table.
- Updated the
refund
method. The operation is now executed in the transaction and updates the newrefund
field.
- public resetBalance(): void
0.0.1 - 2018-11-07
- written README.
- Project configuration file created.
- Migration 2018_11_06_222923_create_transactions_table.
- Migration 2018_11_07_192923_create_transfers_table.
HasWallet
trait andWallet
interface.- methods:
- private checkAmount(int $amount): void
- public forceWithdraw(int $amount, ?array $meta = null, bool $confirmed = true): Transaction
- public deposit(int $amount, ?array $meta = null, bool $confirmed = true): Transaction
- public withdraw(int $amount, ?array $meta = null, bool $confirmed = true): Transaction
- public canWithdraw(int $amount): bool
- public transfer(Wallet $wallet, int $amount, ?array $meta = null): Transfer
- public safeTransfer(Wallet $wallet, int $amount, ?array $meta = null): ?Transfer
- public forceTransfer(Wallet $wallet, int $amount, ?array $meta = null): Transfer
- protected assemble(Wallet $wallet, Transaction $withdraw, Transaction $deposit): Transfer
- protected change(int $amount, ?array $meta, bool $confirmed): Transaction
- public resetBalance(): void
- relations:
- public transactions(): MorphMany
- public transfers(): MorphMany
- magic property
- public getBalanceAttribute(): int
- methods:
CanBePaid
trait andProduct
,Costomer
interface's- methods:
- public pay(Product $product): Transfer
- public safePay(Product $product): ?Transfer
- public refund(Product $product): bool
- public safeRefund(Product $product): bool
- methods:
- Exceptions: AmountInvalid, BalanceIsEmpty.
- Models: Transfer, Transaction.