package com.hpay.hpay_mobile_api.services;

import com.hpay.hpay_mobile_api.entities.ParrainCode;
import com.hpay.hpay_mobile_api.repositories.ParrainCodeRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Optional;

@Service
public class ParrainCodeService {

    private final ParrainCodeRepository parrainCodeRepository;

    @Autowired
    public ParrainCodeService(ParrainCodeRepository parrainCodeRepository) {
        this.parrainCodeRepository = parrainCodeRepository;
    }

    // Get all ParrainCodes
    public List<ParrainCode> getAllParrainCodes() {
        return parrainCodeRepository.findAll();
    }

    // Get a ParrainCode by ID
    public Optional<ParrainCode> getParrainCodeById(Long id) {
        return parrainCodeRepository.findById(id);
    }

    // Create a new ParrainCode
    public ParrainCode createParrainCode(ParrainCode parrainCode) {
        return parrainCodeRepository.save(parrainCode);
    }

    // Update an existing ParrainCode
    public ParrainCode updateParrainCode(Long id, ParrainCode parrainCode) {
        if (parrainCodeRepository.existsById(id)) {
            parrainCode.setIdCode(id);  // Ensure the ID is maintained for update
            return parrainCodeRepository.save(parrainCode);
        }
        return null; // or throw an exception if the entity is not found
    }

    // Delete a ParrainCode by ID
    public boolean deleteParrainCode(Long id) {
        if (parrainCodeRepository.existsById(id)) {
            parrainCodeRepository.deleteById(id);
            return true;
        }
        return false;
    }

    public ParrainCode getParrainCodeByCodeParrainage(String codeParrainage) {
        return parrainCodeRepository.findByCodeParrainage(codeParrainage);
    }


}