All checks were successful
CI / Get Changed Files (pull_request) Successful in 8s
Pull Request Labeler / labeler (pull_request_target) Successful in 5s
CI / Backend Tests (pull_request) Has been skipped
CI / Checkstyle Main (pull_request) Has been skipped
Label PRs based on size / Check PR size (pull_request) Successful in 14s
CI / Docker backend validation (pull_request) Has been skipped
CI / oxlint (pull_request) Successful in 23s
CI / eslint (pull_request) Successful in 27s
CI / prettier (pull_request) Successful in 26s
CI / Docker frontend validation (pull_request) Successful in 46s
CI / test-build (pull_request) Successful in 52s
Claude PR Review / claude-code (pull_request) Successful in 1m14s
CI / Playwright (pull_request) Successful in 2m10s
31 lines
860 B
TypeScript
31 lines
860 B
TypeScript
import { Injectable, inject } from '@angular/core';
|
|
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
|
|
|
|
@Injectable({
|
|
providedIn: 'root',
|
|
})
|
|
export class BettingService {
|
|
private fb = inject(FormBuilder);
|
|
|
|
createBetForm(): FormGroup {
|
|
return this.fb.group({
|
|
bet: ['', [Validators.required, Validators.min(1)]],
|
|
});
|
|
}
|
|
|
|
updateBetFormValidators(form: FormGroup, balance: number): void {
|
|
form.reset();
|
|
form
|
|
.get('bet')
|
|
?.setValidators([Validators.required, Validators.min(1), Validators.max(balance)]);
|
|
form.get('bet')?.updateValueAndValidity();
|
|
}
|
|
|
|
calculateBetAmount(balance: number, percentage: number): number {
|
|
return Math.floor(balance * percentage * 100) / 100;
|
|
}
|
|
|
|
isValidBet(betAmount: number, balance: number): boolean {
|
|
return betAmount >= 1 && betAmount <= balance;
|
|
}
|
|
}
|