mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-21 23:26:42 +02:00
add mana core
This commit is contained in:
parent
ce71db2fc0
commit
754e87ebc0
112 changed files with 34765 additions and 548 deletions
35
packages/shared-errors/src/errors/credit-error.ts
Normal file
35
packages/shared-errors/src/errors/credit-error.ts
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
import { ErrorCode } from '../types/error-codes';
|
||||
import { AppError } from './app-error';
|
||||
|
||||
/**
|
||||
* Error for insufficient credits/mana.
|
||||
* HTTP Status: 402 Payment Required
|
||||
*
|
||||
* @example
|
||||
* ```typescript
|
||||
* return err(new CreditError(100, 50, 'story_generation'));
|
||||
* // Message: "Insufficient credits. Required: 100, Available: 50"
|
||||
* ```
|
||||
*/
|
||||
export class CreditError extends AppError {
|
||||
/** Credits required for the operation */
|
||||
readonly requiredCredits: number;
|
||||
|
||||
/** Credits currently available */
|
||||
readonly availableCredits: number;
|
||||
|
||||
constructor(
|
||||
requiredCredits: number,
|
||||
availableCredits: number,
|
||||
operation?: string
|
||||
) {
|
||||
super({
|
||||
code: ErrorCode.INSUFFICIENT_CREDITS,
|
||||
message: `Insufficient credits. Required: ${requiredCredits}, Available: ${availableCredits}`,
|
||||
context: { requiredCredits, availableCredits, operation },
|
||||
});
|
||||
this.name = 'CreditError';
|
||||
this.requiredCredits = requiredCredits;
|
||||
this.availableCredits = availableCredits;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue