From 05d3decbd82d88628833ef8271784aaab85ba5cf Mon Sep 17 00:00:00 2001 From: chrisbell Date: Thu, 5 Feb 2026 22:52:33 -0600 Subject: [PATCH] Remove UUID and change the way versions work --- .gitignore | 4 +++ SzCli/Program.cs | 31 ++++++++++++---------- SzCore/DataObjects/ISzTemplate.cs | 1 - SzCore/DataObjects/SzDataObjectTemplate.cs | 1 - SzCore/DataObjects/SzDataset.cs | 2 -- SzCore/SzDataHandler.cs | 19 +++++++------ 6 files changed, 32 insertions(+), 26 deletions(-) diff --git a/.gitignore b/.gitignore index b51038c..55b082d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,9 @@ .idea/ .vscode/ + +.envrc +.direnv/ + SzCli/bin/ SzCli/obj/ SzCore/bin/ diff --git a/SzCli/Program.cs b/SzCli/Program.cs index fcbc7c5..31c511f 100644 --- a/SzCli/Program.cs +++ b/SzCli/Program.cs @@ -13,15 +13,18 @@ public class Program private static readonly Logger Logger = new(FileManager); private static readonly DefaultDatabaseHandler DbHandler = new(); private static readonly SzEvaluator Evaluator = new(); - private static SzDataHandler _dataHandler; + private static SzDataHandler? _dataHandler; - public static async Task Main(string[] args) + public static async Task Main() { SZ.Init(FileManager, Logger, DbHandler); _dataHandler = SZ.DataHandler; Logger.Log("// -- SZ CLI -- //"); + var result = await _dataHandler.GetFieldValueFromPath("npcs@1_0.bobbert.race"); + Logger.Log(result.Value + result.Error); + bool running = true; while (running) { @@ -75,15 +78,15 @@ public class Program choice = 0; } - var fieldResult = _dataHandler.CreateTemplateField(fId, types[choice]); - if (fieldResult.IsSuccess) + var fieldResult = _dataHandler!.CreateTemplateField(fId, types[choice]); + if (fieldResult.IsSuccess && fieldResult.Value is not null) { fields.Add(fieldResult.Value); } } - var result = _dataHandler.CreateDataObjectTemplate(name, type, fields: fields); - if (result.IsSuccess) + var result = _dataHandler!.CreateDataObjectTemplate(name, type, fields: fields); + if (result.IsSuccess && result.Value is not null) { await _dataHandler.SaveTemplateAsync(result.Value); Console.WriteLine($"\nTemplate '{result.Value.Id}' saved!"); @@ -94,7 +97,7 @@ public class Program { Console.Write("Enter Template ID to delete: "); string id = Console.ReadLine() ?? ""; - var result = await _dataHandler.DeleteTemplateAsync(id); + var result = await _dataHandler!.DeleteTemplateAsync(id); Console.WriteLine(result.IsSuccess ? "Deleted." : $"Error: {result.Error}"); } @@ -105,7 +108,7 @@ public class Program Console.Write("Enter Template ID to use: "); string tId = Console.ReadLine() ?? ""; - var templateResult = await _dataHandler.LoadTemplateAsync(tId); + var templateResult = await _dataHandler!.LoadTemplateAsync(tId); if (!templateResult.IsSuccess) { Console.WriteLine($"Error: {templateResult.Error}"); @@ -125,20 +128,20 @@ public class Program Console.Write(" Object Name: "); string objName = Console.ReadLine() ?? ""; - var objResult = _dataHandler.CreateDataObject(templateResult.Value, objName); + var objResult = _dataHandler.CreateDataObject(templateResult.Value!, objName); if (objResult.IsSuccess) { - foreach (var field in objResult.Value.Fields.Values) + foreach (var field in objResult.Value!.Fields.Values) { Console.Write($" Value for {field.Id} ({field.FieldType}): "); field.Value = Console.ReadLine() ?? ""; } - dataset.DataObjects.Add(objResult.Value.Id, objResult.Value); + dataset!.DataObjects.Add(objResult.Value.Id, objResult.Value); } } Console.WriteLine("\nValidating dataset..."); - var evalResult = await Evaluator.EvaluateDatasetAsync(dataset); + var evalResult = await Evaluator.EvaluateDatasetAsync(dataset!); if (!evalResult.IsSuccess) { @@ -148,7 +151,7 @@ public class Program if (Console.ReadLine()?.ToLower() != "y") return; } - await _dataHandler.SaveDatasetAsync(dataset); + await _dataHandler.SaveDatasetAsync(dataset!); Console.WriteLine("Dataset saved!"); } @@ -156,7 +159,7 @@ public class Program { Console.Write("Enter Dataset ID to delete: "); string id = Console.ReadLine() ?? ""; - var result = await _dataHandler.DeleteDatasetAsync(id); + var result = await _dataHandler!.DeleteDatasetAsync(id); Console.WriteLine(result.IsSuccess ? "Deleted." : $"Error: {result.Error}"); } } \ No newline at end of file diff --git a/SzCore/DataObjects/ISzTemplate.cs b/SzCore/DataObjects/ISzTemplate.cs index ee19494..5bc6263 100644 --- a/SzCore/DataObjects/ISzTemplate.cs +++ b/SzCore/DataObjects/ISzTemplate.cs @@ -4,7 +4,6 @@ public interface ISzTemplate { public string Name { get; set; } public string Id { get; set; } - public Guid Uuid { get; set; } public string Description { get; set; } public Dictionary TemplateFields { get; set; } } \ No newline at end of file diff --git a/SzCore/DataObjects/SzDataObjectTemplate.cs b/SzCore/DataObjects/SzDataObjectTemplate.cs index 200a03f..1cdeadb 100644 --- a/SzCore/DataObjects/SzDataObjectTemplate.cs +++ b/SzCore/DataObjects/SzDataObjectTemplate.cs @@ -4,7 +4,6 @@ public class SzDataObjectTemplate : ISzTemplate { public required string Name {get; set;} public required string Id {get; set;} - public Guid Uuid {get; set;} public string Description { get; set; } = ""; public Dictionary TemplateFields {get; set;} = []; diff --git a/SzCore/DataObjects/SzDataset.cs b/SzCore/DataObjects/SzDataset.cs index cbbdb85..39693d5 100644 --- a/SzCore/DataObjects/SzDataset.cs +++ b/SzCore/DataObjects/SzDataset.cs @@ -4,10 +4,8 @@ public class SzDataset { public required string Name {get; set;} public required string Id {get; set;} - public Guid? Uuid {get; set;} public required string DataObjectType {get; set;} public required string DataObjectTemplateId {get; set;} - public Guid? DataObjectTemplateUuid {get; set;} public Dictionary DataObjects {get; set;} = []; } diff --git a/SzCore/SzDataHandler.cs b/SzCore/SzDataHandler.cs index a3c6aa9..50bc11c 100644 --- a/SzCore/SzDataHandler.cs +++ b/SzCore/SzDataHandler.cs @@ -68,7 +68,7 @@ public class SzDataHandler }); } - public async Task> CreateDatasetAsync(string name, string templateId, string? id = null, Guid? templateUuid = null) + public async Task> CreateDatasetAsync(string name, string templateId, string version = "1_0", string? id = null) { if (string.IsNullOrEmpty(name)) return SzResult.Failure("Name empty."); @@ -79,11 +79,9 @@ public class SzDataHandler var newDataset = new SzDataset() { Name = name, - Id = id ?? name.ToLower().Replace(" ", "-").Trim(), + Id = id ?? name.ToLower().Replace(" ", "-").Trim() + "@" + version, DataObjectTemplateId = templateResult.Value.Id, - DataObjectTemplateUuid = templateUuid, DataObjectType = templateResult.Value.DataObjectType, - Uuid = Guid.NewGuid() }; return SzResult.Success(newDataset); @@ -99,6 +97,12 @@ public class SzDataHandler var dataObjectId = parts[1]; var fieldPath = string.Join(".", parts.Skip(2)); + if (!datasetId.Contains('@')) + { + SZ.Logger.LogWarning($"Trying to get a field value from dataset `{datasetId}` but no dataset version was specified. Attempting to fallback to version 1.0"); + datasetId += "@1_0"; + } + var datasetResult = await LoadDatasetAsync(datasetId); if (!datasetResult.IsSuccess) return SzResult.Failure($"Could not get field value, dataset with id '{datasetId}' could not be loaded: {datasetResult.Error}"); @@ -184,14 +188,13 @@ public class SzDataHandler }); } - public SzResult CreateDataObjectTemplate(string name, string dataObjectType, string? id = null, string? description = null, List? fields = null) + public SzResult CreateDataObjectTemplate(string name, string dataObjectType, string version = "1_0", string? id = null, string? description = null, List? fields = null) { var newTemplate = new SzDataObjectTemplate() { Name = name, - Id = id ?? name.ToLower().Replace(" ", "-").Trim(), + Id = id ?? name.ToLower().Replace(" ", "-").Trim() + "@" + version, DataObjectType = dataObjectType, - Uuid = Guid.NewGuid(), Description = description ?? "" }; @@ -212,7 +215,7 @@ public class SzDataHandler }; var fieldsResult = CreateFieldsFromTemplate(template); - if (!fieldsResult.IsSuccess) return SzResult.Failure(fieldsResult.Error); + if (!fieldsResult.IsSuccess) return SzResult.Failure(fieldsResult.Error!); dataObject.Fields = fieldsResult.Value!; return SzResult.Success(dataObject);