import { Injectable } from '@nestjs/common';
import type { CreateTradeDto, UpdateTradeDto } from './dto/trade.dto';
import type { CreateTradingAccountDto, UpdateTradingAccountDto } from './dto/trading-account.dto';
import { TradingRepository } from './trading.repository';

@Injectable()
export class TradingService {
  constructor(private readonly repository: TradingRepository) {}

  listAccounts(ownerId: string) {
    return this.repository.listAccounts(ownerId);
  }

  createAccount(ownerId: string, input: CreateTradingAccountDto) {
    return this.repository.createAccount(ownerId, input);
  }

  updateAccount(ownerId: string, id: string, input: UpdateTradingAccountDto) {
    return this.repository.updateAccount(ownerId, id, input);
  }

  deleteAccount(ownerId: string, id: string) {
    return this.repository.deleteAccount(ownerId, id);
  }

  listTrades(ownerId: string, accountId: string) {
    return this.repository.listTrades(ownerId, accountId);
  }

  createTrade(ownerId: string, accountId: string, input: CreateTradeDto) {
    return this.repository.createTrade(ownerId, accountId, input);
  }

  updateTrade(ownerId: string, id: string, input: UpdateTradeDto) {
    return this.repository.updateTrade(ownerId, id, input);
  }

  deleteTrade(ownerId: string, id: string) {
    return this.repository.deleteTrade(ownerId, id);
  }
}
