package org.springblade.system.util;

import org.springblade.system.pojo.entity.DataSyncRecord;
import org.springblade.system.pojo.enums.DataSync;

/**
 *  数据同步记录工具类
 * @author bfhuange
 * @date 2024/9/27
 */
public class DataSyncRecordUtils {
    private DataSyncRecordUtils() {}

    /**
     *  创建获取oa组织的数据同步记录
     * @return
     */
    public static DataSyncRecord createOAOrgFetch() {
        return DataSyncRecordUtils.createOAFetch()
                // 数据类型是组织
                .setDataType(DataSync.DataType.ORG.name());
    }

    /**
     *  创建获取oa人员的数据同步记录
     * @return
     */
    public static DataSyncRecord createOAPersonFetch() {
        return DataSyncRecordUtils.createOAFetch()
                // 数据类型是人员
                .setDataType(DataSync.DataType.PERSON.name());
    }

    /**
     *  创建推送mk组织的数据同步记录
     * @return
     */
    public static DataSyncRecord createMKOrgPush() {
        return DataSyncRecordUtils.createMKPush()
                // 数据类型是组织
                .setDataType(DataSync.DataType.ORG.name());
    }

    /**
     *  创建推送mk人员的数据同步记录
     * @return
     */
    public static DataSyncRecord createMKPersonPush() {
        return DataSyncRecordUtils.createMKPush()
                // 数据类型是人员
                .setDataType(DataSync.DataType.PERSON.name());
    }

    /**
     * 创建oa 获取数据记录
     *
     * @return
     */
    private static DataSyncRecord createOAFetch() {
        return new DataSyncRecord()
                // oa 系统
                .setSystemCode(DataSync.SystemCode.OA.name())
                // 获取数据
                .setMode(DataSync.Mode.FETCH.name())
                // 默认结果是成功
                .setResult(DataSync.Result.SUCCESS.name());
    }

    /**
     * 创建mk 推送数据记录
     *
     * @return
     */
    private static DataSyncRecord createMKPush() {
        return new DataSyncRecord()
                // mk 系统
                .setSystemCode(DataSync.SystemCode.MK.name())
                // 推送数据
                .setMode(DataSync.Mode.PUSH.name())
                // 默认结果是成功
                .setResult(DataSync.Result.SUCCESS.name());
    }
}
