{"id":20137240,"url":"https://github.com/sashagm/money","last_synced_at":"2025-04-09T17:50:43.762Z","repository":{"id":180492552,"uuid":"665229221","full_name":"sashagm/money","owner":"sashagm","description":"Laravel Transfer Package для Laravel +10.x","archived":false,"fork":false,"pushed_at":"2024-09-11T18:41:53.000Z","size":38,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-09-12T04:57:30.194Z","etag":null,"topics":["auth","laravel","laravel-middleware","laravel-package","money","pay","payment","payment-processing","php","phpunit","user","user-balance","user-balance-bonus","user-bonus"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sashagm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-07-11T18:22:10.000Z","updated_at":"2024-09-11T18:41:34.000Z","dependencies_parsed_at":null,"dependency_job_id":"33130316-297b-4a75-a371-6bc2fec4154c","html_url":"https://github.com/sashagm/money","commit_stats":null,"previous_names":["sashagm/money"],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sashagm%2Fmoney","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sashagm%2Fmoney/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sashagm%2Fmoney/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sashagm%2Fmoney/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sashagm","download_url":"https://codeload.github.com/sashagm/money/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224526996,"owners_count":17326082,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["auth","laravel","laravel-middleware","laravel-package","money","pay","payment","payment-processing","php","phpunit","user","user-balance","user-balance-bonus","user-bonus"],"created_at":"2024-11-13T21:26:18.853Z","updated_at":"2024-11-13T21:26:19.374Z","avatar_url":"https://github.com/sashagm.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\u003ca href=\"https://laravel.com\" target=\"_blank\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/laravel/art/master/logo-lockup/5%20SVG/2%20CMYK/1%20Full%20Color/laravel-logolockup-cmyk-red.svg\" width=\"400\" alt=\"Laravel Logo\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\n\u003ca href=\"https://packagist.org/packages/sashagm/money\"\u003e\u003cimg src=\"https://img.shields.io/packagist/dt/sashagm/money\" alt=\"Total Downloads\"\u003e\u003c/a\u003e\n\u003ca href=\"https://packagist.org/packages/sashagm/money\"\u003e\u003cimg src=\"https://img.shields.io/packagist/v/sashagm/money\" alt=\"Latest Stable Version\"\u003e\u003c/a\u003e\n\u003ca href=\"https://packagist.org/packages/sashagm/money\"\u003e\u003cimg src=\"https://img.shields.io/packagist/l/sashagm/money\" alt=\"License\"\u003e\u003c/a\u003e\n\u003ca href=\"https://packagist.org/packages/sashagm/money\"\u003e\u003cimg src=\"https://img.shields.io/github/languages/code-size/sashagm/money\" alt=\"Code size\"\u003e\u003c/a\u003e\n\u003ca href=\"https://packagist.org/packages/sashagm/money\"\u003e\u003cimg src=\"https://img.shields.io/packagist/stars/sashagm/money\" alt=\"Code size\"\u003e\u003c/a\u003e\n\n[![PHP Version](https://img.shields.io/badge/PHP-%2B8-blue)](https://www.php.net/)\n[![Laravel Version](https://img.shields.io/badge/Laravel-%2B10-red)](https://laravel.com/)\n\n\u003c/p\u003e\n\n## Laravel Transfer Package\n\nНаш пакет предоставляет много функциональный компонент для вашего Laravel приложения. Который может быть полезным для приложений где необходимо добавить возможность использования валютного баланса пользователя.\n\nОсновной функционал:\n\n- `Баланс пользователя`\n- `Переводы между пользователями`\n- `Ежедневный бонус`\n- `Кастомные бонусы`\n\n### Оглавление:\n\n- [Требования](#требования)\n- [Установка](#установка)\n- [Использование](#использование)\n  - [Конфигурация](#конфигурация)\n  - [Ролевая зависимость](#ролевая-зависимость)\n  - [Получение бонуса](#получение-бонуса)\n  - [Кастомные бонусы](#кастомные-бонусы)\n- [Дополнительные возможности](#дополнительные-возможности)\n- [Тестирование](#тестирование)\n- [Лицензия](#лицензия)\n\n#### Требования\n\nОсновные требования для установки и корректной работы:\n\n- `PHP` \u003e= 8.0\n- `Laravel` \u003e= 10.x || 11.x\n- `Composer` \u003e= 2.4.x\n\n#### Установка\n\nДля установки пакета необходимо выполнить команды:\n\n- composer require sashagm/money\n- php artisan money:install\n\n#### Использование\n\n#### Конфигурация\n\nВы можете изменить таблицы и модели, используемые для хранения пользователей и переводов, в конфигурационном файле `config/money.php`.\nЗдесь показаны все настройки и описание параметров.\n\n```php\n\n    'admin_prefix'              =\u003e '',          // Префикс маршрутов\n    'user_table'                =\u003e 'users',     // Пользовательская таблица\n    'money_colum'               =\u003e 'money',     // Поле монет в пользовательской таблице\n    'after_colum'               =\u003e 'password',  // После какого поля добавить поле валюты в пользовательской таблице\n\n    'wallet'                    =\u003e [\n        'code'                  =\u003e 'RUB',       // Код валюты\n        'name'                  =\u003e 'руб',       // Имя валютиы\n        'icon'                  =\u003e 'icon',      // Иконка валюты ( можно ввести html, svg, icons )\n    ],\n\n    'transfer'                  =\u003e [\n        'active_send'           =\u003e  true,  // Разрешить переводы\n        'active_abort'          =\u003e  true,  // Разрешить отмену\n        'free_transfer'         =\u003e  0.1,   // Коммиссия при переводе\n        'min_trade'             =\u003e  0.01,   // Минимальная сумма на перевод\n        'abort_limit'           =\u003e  false,  // Разрешить или Отменить ограничение отмены перевода\n        'abort_time'            =\u003e  24,     // Время (в часах) после которого нельзя отменить перевод\n        'abort_clock'           =\u003e 'часов',  //\n        'free_abort'            =\u003e  true,   // Разрешить или Отменить комииссию для отмены\n        'free_abort_transfer'   =\u003e  0.1,    // Коммиссия при отмене переводе\n    ],\n\n    'check'                     =\u003e [\n        'active'                =\u003e true, // Включить или отключить проверку прав\n        'guard'                 =\u003e 'web',  // Под каким гардам будем работать\n        'save_colum'            =\u003e 'id',   // По какому полю будем искать для группы/роли\n        'save_value'            =\u003e [\n            2, 3\n        ],                              // Укажите массив с данными\n        'abort_value'           =\u003e [\n            3\n        ],                              // Укажите массив с данными\n        'bonus_value'           =\u003e [\n            3\n        ],                              // Укажите массив с данными\n    ],\n\n    'bonus'                     =\u003e [\n\n        'active'                =\u003e true,   // Разрешить или Отменить получение бонуса\n        'min'                   =\u003e 100,    // Минимальная сумма (100 = 1.00)\n        'max'                   =\u003e 10099,  // Максимальная сумма (10099 = 100.99)\n        'nullable'              =\u003e true,   // Разрешать начисление бонуса в нулевое значение с шансом 50% (0.00)\n        'chance'                =\u003e 50,\n    ],\n\n    'custom'                    =\u003e [\n\n        1                       =\u003e 'offline',\n\n    ],\n\n\n```\n\n#### Ролевая зависимость\n\nВ конфигурационном файле `config/money.php` отвечает раздел `check`. Здесь вы можете настроить права доступа.\n\n```php\n\n    'check'                     =\u003e [\n        'active'                =\u003e true, // Включить или отключить проверку прав\n        'guard'                 =\u003e 'web',  // Под каким гардам будем работать\n        'save_colum'            =\u003e 'roles',   // По какому полю будем искать для группы/роли\n        'save_value'            =\u003e [\n            2, 3\n        ],                              // Укажите массив с данными для перевода\n        'abort_value'           =\u003e [\n            3\n        ],                              // Укажите массив с данными для отмены перевода\n        'bonus_value'           =\u003e [\n            2, 3\n        ],                              // Укажите массив с данными для получения бонуса\n\n    ],\n\n```\n\nВ данном примере настроено так что `активна` проверка прав доступа. Искать пользователя будем через гард `web`.\n\nПользовательское поле по которому будем проверять `roles`.\n\nДля переводов могут только пользователи с ролями `2,3` ( условно `ВИП, Премиум` )\n\nДля отмены переводов могут только пользователи с ролями `3 `( условно `Премиум` )\n\nДля получения бонуса могут только пользователи с ролями `2,3` ( условно `ВИП, Премиум `)\n\nВиды прав доступа:\n\n- `Переводы и возвраты` Для переводов есть ролевая зависимость, вы можете назначить группу/роль для доступа к данному модулю.\n- `Получение бонуса` Для получения бонусов есть ролевая зависимость, вы можете назначить группу/роль для доступа к данному модулю.\n\n#### Получение бонуса\n\nМы добавили возможность выдавать нашим пользователям ежедневный бонус в ввиде рандомного баланса.\n\nВ конфигурационном файле `config/money.php` отвечает раздел `bonus`. Здесь вы можете настроить получение бонуса.\n\n```php\n\n    'bonus'                     =\u003e [\n\n        'active'                =\u003e true,   // Разрешить или Отменить получение бонуса\n        'min'                   =\u003e 100,    // Минимальная сумма (100 = 1.00)\n        'max'                   =\u003e 10099,  // Максимальная сумма (10099 = 100.99)\n        'nullable'              =\u003e true,   // Разрешать начисление бонуса в нулевое значение с шансом 50% (0.00)\n        'chance'                =\u003e 50,\n    ],\n\n```\n\n#### Кастомные бонусы\n\n#### Дополнительные возможности\n\nНаш пакет предоставляет ряд дополнительных возможностей, которые могут быть полезны при работе с темами:\n\n- `php artisan money:install` - Данная команда установит все необходимые компоненты пакета.\n- `php artisan money:give {--u= : User ID or name} {--m= : Amount of money}` - Данная команда выполнит пополнение счёта пользователя.\n- `php artisan money:pay  {--u= : User ID or email to deduct from} {--t= : User ID or email to transfer to} {--m= : Amount of money}` - Данная команда выполнит простой перевод счёта пользователя на другой аккаунт пользователя.\n- `php artisan money:transfer {--i= : Transfer ID to display} {--u= : Field name for user search (name, nickname, email)}` - Данная команда выведет информацию о переводе.\n- `php artisan money:send {--u= : User ID to send money from} {--t= : User ID to send money to} {--m= : Amount of money to send}` - Данная команда отправит деньги от одного пользователя другому с учётом коммиссиями.\n- `php artisan money:abort {--i= : Transfer ID to abort}` - Данная команда отменит перевод и верните валюту обратно отправителю.\n- `php artisan money:status {--i= : Transfer ID} {--s= : Status (0 or 1)}` - Данная команда изменит статус перевода.\n\n#### Тестирование\n\nДля проверки работоспособности можно выполнить специальную команду:\n\n- ./vendor/bin/phpunit --configuration phpunit.xml\n\n#### Лицензия\n\nLaravel Transfer Package - это программное обеспечение с открытым исходным кодом, лицензированное по [MIT license](LICENSE.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsashagm%2Fmoney","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsashagm%2Fmoney","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsashagm%2Fmoney/lists"}