tourze/credit-service-contracts

积分服务定义包,包含接口、异常和枚举类定义

Installs: 0

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 0

Open Issues: 0

pkg:composer/tourze/credit-service-contracts

0.0.1 2025-05-29 10:20 UTC

This package is auto-updated.

Last update: 2025-11-01 15:56:23 UTC


README

English | 中文

Latest Version

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\CreditAccountServiceInterface;
use Tourze\CreditServiceContracts\Service\CreditOperationServiceInterface;
use Symfony\Component\Security\Core\User\UserInterface;

// Inject the credit services
public function __construct(
    private readonly CreditAccountServiceInterface $accountService,
    private readonly CreditOperationServiceInterface $operationService
) {}

// Add credits to a user account
public function addCredits(UserInterface $user, string $creditTypeId): void
{
    // Get the user's account for this credit type
    $account = $this->accountService->getOrCreateAccount($user, $creditTypeId);
    
    // Add credits for completing a task
    $this->operationService->increaseCredits(
        $account->getId(),
        100,
        'task_complete',
        null,
        'Completed daily task'
    );
}

Components

Core Interfaces

  • CreditAccountInterface - Represents a user's credit account
  • CreditTypeInterface - Defines different types of credits/points
  • CreditTransactionInterface - Records credit transactions

Service Interfaces

  • CreditAccountServiceInterface - Manages credit accounts
  • CreditTypeServiceInterface - Manages credit types
  • CreditOperationServiceInterface - Handles credit operations (increase/decrease)
  • CreditTransactionServiceInterface - Manages credit transactions

Enums

  • CreditTransactionTypeEnum - Types of credit transactions
  • CreditTransactionStatusEnum - Status of credit transactions
  • CreditExpirationPolicyEnum - 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.