const _ = require('lodash'); 
require('dotenv').config()
const mongoose = require("mongoose");
const { Admin } = require('../../models/admin/admin');
const { User } = require('../../models/user');
const {Fcm} = require("../../models/fcm-tokens")
const { apiResponse} = require("../../core/response/response")
const { SUCCESS, REDIRECTION, CLIENT_ERROR, SERVER_ERROR } = require("../../core/response/statusCode")
const {ERROR_MSG, SUCCESS_MSG}= require("../../core/response/messages")
export {};

exports.logoutAdmin =async (req, res) => {
    let lang = req.headers["accept-language"] || 'en'
    try {
        const { id, token } = req.body
        let adminInformation = await Admin.findOne({ _id: id},{ _id:1 })   
        
        if (!adminInformation) return  apiResponse(res, true, [], ERROR_MSG[`ACCOUNT-NOT-EXIST-${lang}`], CLIENT_ERROR.badRequest,0, [],req);
        await Admin.findOneAndUpdate({ _id: adminInformation._id }, { $pull: { auth_token: token } }, { new: true }).then(data => {
            if(data){
                return apiResponse(res, false, [], '', SUCCESS.OK, 0, [{success: 'ok'}],req);   
            }else{
                return apiResponse(res, true, [], ERROR_MSG[`SYSTEM-ERROR-${lang}`], SERVER_ERROR.internalServerError, 0, [],req) 
            }
        })
    } catch (error) {
        return apiResponse(res, true, [], ERROR_MSG[`SYSTEM-ERROR-${lang}`], SERVER_ERROR.internalServerError, 0, [],req) 
    }
}

exports.logoutUser =async (req, res) => {
    try {
        const { user_id, token } = req.body
        // let userInformation = await User.findOne({ "_id": mongoose.Types.ObjectId(user_id)},{ _id:1 })
        // if (!userInformation) return  apiResponse(res, true, [], ERROR_MSG['ACCOUNT-NOT-EXIST'], CLIENT_ERROR.badRequest,0, []);
        await Fcm.deleteMany({user_id : user_id });
        // await User.findOneAndUpdate({ _id: userInformation._id }, { $pull: { auth_token: token } }, { new: true }).then(data => {
        //     if(data){
              
                // return apiResponse(res, false, [], 'Logged out successfully.', SUCCESS.OK, 0, null, req);
                return apiResponse(res, false, [], '', SUCCESS.OK, 0, {success: 'ok'});   
            // }else{
            //     return apiResponse(res, true, [], ERROR_MSG['SYSTEM-ERROR'], SERVER_ERROR.internalServerError, 0, []) 
            // }
        // })
    } catch (error) {
        return apiResponse(res, true, [], ERROR_MSG['SYSTEM-ERROR'], SERVER_ERROR.internalServerError, 0, []) 
    }
}