import { defineStore } from 'pinia';
import { TelsStateInfos ,TelStates,RestStates } from './interface';
/**
 * 
 * @methods telStatus 当前用户签入的状态
 */
export const useTelStatus = defineStore('telStatus', {
	state: (): TelsStateInfos => ({
		telStatusInfo: {
			isDutyOn: false, // 是否签入
			isRest:'unRest', // 是否休息  'resting'|'Inreview'|'unRest'; 休息中  审核中 其他状态
			isMute:false, //是否静音
			isMeeting:false, //是否三方会议中
			phonecontrolState: "dutyOff", //当前状态 默认签出
			telsNo: "", // 分机号
			onCallArr: [], //当前通话条数
			onHoldArr:[], //当前保持条数
		}
	}),
	actions: {
		// 设置签入签出状态
		setDutyState(data: boolean) {
			this.telStatusInfo.isDutyOn = data;
		},
		// 设置休息状态
		setRest(data: RestStates) {
			this.telStatusInfo.isRest = data;
		},
		// 设置静音状态
		setMute(data: boolean) {
			this.telStatusInfo.isMute = data;
		},
		// 设置是否在三方会议中
		setMetting(data: boolean) {
			this.telStatusInfo.isMeeting = data;
		},
		// 设置电话控件状态
		setPhonecontrolState(data: TelStates) {
			this.telStatusInfo.phonecontrolState = data;
		},
		// 设置分机号
		setTelsNo(no: string | number) {
			this.telStatusInfo.telsNo = no;
		},
		// 设置当前通话信息 
		setCallState(data: any) {
			this.telStatusInfo.onCallArr = data;
		},
		// 设置当前保持信息 
		setHoldState(data: any) {
			this.telStatusInfo.onHoldArr = data;
		},
		// 签出重置所有状态
		resetState() {
			this.telStatusInfo = {
				isDutyOn: false, // 是否签入
				isRest:'unRest', // 是否休息
				isMute:false, // 是否静音
				isMeeting:false, //是否三方会议中
				phonecontrolState: "dutyOff", //当前状态 默认签出
				telsNo: "", // 分机号
				onCallArr: [], //当前通话条数
				onHoldArr:[] //当前保持条数
			}
		}
	},
	// 开启数据缓存
	persist: {
		enabled: true,
		strategies: [
			{
				//key的名称
				key: 'telStatus',
				//更改默认存储，我更改为localStorage
				storage: localStorage,
				// 可以选择哪些进入local存储，这样就不用全部都进去存储了
				// 默认是全部进去存储
			}
		]
	}
});
