
// databaseJobs provides functions to perform database jobs
// These are jobs that must be performed in the background
// An example is pruning the database of content we no longer need to store
// These functions are called by backgroundJobs

package databaseJobs

//TODO: Build this package
// We need to add more jobs:
// -Update inbox messages lists
// -Update reviews/reports lists
// -Delete all of a Mate user's profiles if their newest profile does not fulfill our desires/criteria (and they are not an outlier/in our host range/in our moderation range)
//		-This is needed, because we will not attempt to retrieve the viewable statuses of profiles whose author's newest profile does not fulfill our desires/criteria
//		-Without this job, we will continue to show a user Mate profiles as matches for users whose newest profiles do not fulfill our desires,
//			because those newer profiles cannot be shown to the user due to not having their viewable status downloaded
//		-The decision to use our desires/criteria depends on if we are in desires pruning mode or not.

func UpdateDatabaseIdentityProfilesLists(identityType string)error{

	//TODO: Will update the identityProfileHashes lists within badgerDatabase

	return nil
}

func PruneProfileMetadata(profileType string)error{

	// TODO
	// Delete all metadata for...
	//	-Profiles whose author's identity is expired
	//	-profiles with no reviews that are not downloaded

	// If one identity has more than X profile metadatas which cannot be deleted due to above rules
	// Delete the profiles with the least reviews first? deal with canonical profiles as well

	return nil
}

func PruneMessageMetadata()error{

	// TODO
	//	Delete all metadata for...
	//	-Messages that are expired 
	//	-Messages with neither reviews nor reports that are not downloaded

	return nil
}


