tourze / credit-service-contracts
积分服务定义
0.0.1
2025-05-29 10:20 UTC
Requires
- php: ^8.1
- symfony/security-core: ^6.4
- tourze/enum-extra: 0.1.*
- tourze/user-id-bundle: 0.1.*
Requires (Dev)
- phpstan/phpstan: ^2.1
- phpunit/phpunit: ^10.0
This package is auto-updated.
Last update: 2025-06-03 06:45:39 UTC
README
This package provides interfaces and contracts for a comprehensive credit service system. It defines the structure and behavior for managing user credits, points, and rewards.
Features
- Credit account management
- Credit type definitions
- Credit transaction tracking
- Credit rules and rewards
- Credit exchange capabilities
- Credit transfer between users
- Comprehensive exception handling
Installation
composer require tourze/credit-service-contracts
Quick Start
<?php use Tourze\CreditServiceContracts\Service\CreditServiceInterface; use Tourze\CreditServiceContracts\Enum\CreditBusinessCodeEnum; // Inject the credit service public function __construct( private readonly CreditServiceInterface $creditService ) {} // Add credits to a user account public function addCredits(string $userId, string $creditTypeCode): void { // Get the user's account for this credit type $account = $this->creditService->account()->getAccount($userId, $creditTypeCode); // Add credits for completing a task $this->creditService->operation()->increaseCredits( $account->getId(), 100, CreditBusinessCodeEnum::TASK_COMPLETE->value, null, 'Completed daily task' ); }
Components
Core Interfaces
CreditAccountInterface
- Represents a user's credit accountCreditTypeInterface
- Defines different types of credits/pointsCreditTransactionInterface
- Records credit transactionsCreditRuleInterface
- Defines rules for earning creditsCreditExchangeInterface
- Manages credit exchanges for rewardsCreditTransferInterface
- Handles credit transfers between users
Service Interfaces
CreditServiceInterface
- Main entry point to all credit servicesCreditAccountServiceInterface
- Manages credit accountsCreditTypeServiceInterface
- Manages credit typesCreditOperationServiceInterface
- Handles credit operations (increase/decrease)CreditRuleServiceInterface
- Manages credit rulesCreditTransactionServiceInterface
- Manages credit transactionsCreditExchangeServiceInterface
- Manages credit exchangesCreditTransferServiceInterface
- Manages credit transfers
Enums
CreditBusinessCodeEnum
- Business codes for credit operationsCreditExpirationPolicyEnum
- Policies for credit expiration
Exceptions
CreditServiceException
- Base exception for credit service errors
Contributing
Please see CONTRIBUTING.md for details.
License
The MIT License (MIT). Please see License File for more information.