using System.Collections.Generic;
using SabreTools.Library.DatFiles;
using SabreTools.Library.DatItems;
namespace SabreTools.Library.Filtering
{
///
/// Represents the cleaning operations that need to be performed on a set of items, usually a DAT
///
public class Cleaner
{
///
/// Clean all names to WoD standards
///
public bool Clean { get; set; }
///
/// Deduplicate items using the given method
///
public DedupeType DedupeRoms { get; set; }
///
/// Set Machine Description from Machine Name
///
public bool DescriptionAsName { get; set; }
///
/// Dictionary of fields in machine and items to exclude from writing
///
public List ExcludeFields { get; set; } = new List();
///
/// Keep machines that don't contain any items
///
public bool KeepEmptyGames { get; set; }
///
/// Enable "One Rom, One Region (1G1R)" mode
///
public bool OneGamePerRegion { get; set; }
///
/// Ordered list of regions for "One Rom, One Region (1G1R)" mode
///
public List RegionList { get; set; }
///
/// Ensure each rom is in their own game
///
public bool OneRomPerGame { get; set; }
///
/// Remove all unicode characters
///
public bool RemoveUnicode { get; set; }
///
/// Include root directory when determing trim sizes
///
public string Root { get; set; }
///
/// Remove scene dates from the beginning of machine names
///
public bool SceneDateStrip { get; set; }
///
/// Change all machine names to "!"
///
public bool Single { get; set; }
///
/// Trim total machine and item name to not exceed NTFS limits
///
public bool Trim { get; set; }
}
}