package com.hepl.tunefortwo.repository;

import java.util.List;

import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.data.mongodb.repository.Query;
import org.springframework.stereotype.Repository;

import com.hepl.tunefortwo.entity.Mood;
import com.mongodb.client.result.UpdateResult;

@Repository
public interface MoodRepository extends MongoRepository<Mood, String> {
	
	static final String COLLECTION_NAME = "mood_master";

	Mood findByName(String name);

	default UpdateResult updateAccessControlStatus(String id, String status, MongoTemplate mongoTemplate) {
		org.springframework.data.mongodb.core.query.Query query = new org.springframework.data.mongodb.core.query.Query()
				.addCriteria(Criteria.where("_id").is(id));
		org.springframework.data.mongodb.core.query.Update update = new org.springframework.data.mongodb.core.query.Update();
		update.set("status", status);

		return mongoTemplate.updateFirst(query, update, COLLECTION_NAME);
	}

	@Query("{ 'status': 'ACTIVE' }")
	List<Mood> findActiveMood();

}
