package com.schisandra.system.domain.service.impl;


import com.schisandra.system.common.enums.IsDeletedFlagEnum;
import com.schisandra.system.domain.bo.SchisandraSysOauthBO;
import com.schisandra.system.domain.convert.SchisandraSysOauthBOConverter;
import com.schisandra.system.domain.service.SchisandraSysOauthDomainService;
import com.schisandra.system.infra.basic.entity.SchisandraSysOauth;
import com.schisandra.system.infra.basic.service.SchisandraSysOauthService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

/**
 *  领域service实现了
 *
 * @author landaiqing
 * @since 2024-05-25 23:08:26
 */
@Service
@Slf4j
public class SchisandraSysOauthDomainServiceImpl implements SchisandraSysOauthDomainService {

    @Resource
    private SchisandraSysOauthService schisandraSysOauthService;

    @Override
    public Boolean add(SchisandraSysOauthBO schisandraSysOauthBO) {
        SchisandraSysOauth schisandraSysOauth = SchisandraSysOauthBOConverter.INSTANCE.convertBOToEntity(schisandraSysOauthBO);
        schisandraSysOauth.setIsDeleted(IsDeletedFlagEnum.UN_DELETED.getCode());
        return schisandraSysOauthService.insert(schisandraSysOauth) > 0;
    }

    @Override
    public Boolean update(SchisandraSysOauthBO schisandraSysOauthBO) {
        SchisandraSysOauth schisandraSysOauth = SchisandraSysOauthBOConverter.INSTANCE.convertBOToEntity(schisandraSysOauthBO);
        return schisandraSysOauthService.update(schisandraSysOauth) > 0;
    }

    @Override
    public Boolean delete(SchisandraSysOauthBO schisandraSysOauthBO) {
        SchisandraSysOauth schisandraSysOauth = new SchisandraSysOauth();
        schisandraSysOauth.setId(schisandraSysOauthBO.getId());
        schisandraSysOauth.setIsDeleted(IsDeletedFlagEnum.DELETED.getCode());
        return schisandraSysOauthService.update(schisandraSysOauth) > 0;
    }

    @Override
    public SchisandraSysOauthBO getOauthConfigByType(String type) {
       SchisandraSysOauth schisandraSysOauth= schisandraSysOauthService.getOauthConfigByType(type);
        SchisandraSysOauthBO schisandraSysOauthBO = SchisandraSysOauthBOConverter.INSTANCE.convertEntityToBO(schisandraSysOauth);
        return schisandraSysOauthBO;
    }

}
