Remove UUID and change the way versions work

This commit is contained in:
2026-02-05 22:52:33 -06:00
parent 2a016dad89
commit 05d3decbd8
6 changed files with 32 additions and 26 deletions

4
.gitignore vendored
View File

@@ -1,5 +1,9 @@
.idea/ .idea/
.vscode/ .vscode/
.envrc
.direnv/
SzCli/bin/ SzCli/bin/
SzCli/obj/ SzCli/obj/
SzCore/bin/ SzCore/bin/

View File

@@ -13,15 +13,18 @@ public class Program
private static readonly Logger Logger = new(FileManager); private static readonly Logger Logger = new(FileManager);
private static readonly DefaultDatabaseHandler DbHandler = new(); private static readonly DefaultDatabaseHandler DbHandler = new();
private static readonly SzEvaluator Evaluator = 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); SZ.Init(FileManager, Logger, DbHandler);
_dataHandler = SZ.DataHandler; _dataHandler = SZ.DataHandler;
Logger.Log("// -- SZ CLI -- //"); Logger.Log("// -- SZ CLI -- //");
var result = await _dataHandler.GetFieldValueFromPath("npcs@1_0.bobbert.race");
Logger.Log(result.Value + result.Error);
bool running = true; bool running = true;
while (running) while (running)
{ {
@@ -75,15 +78,15 @@ public class Program
choice = 0; choice = 0;
} }
var fieldResult = _dataHandler.CreateTemplateField(fId, types[choice]); var fieldResult = _dataHandler!.CreateTemplateField(fId, types[choice]);
if (fieldResult.IsSuccess) if (fieldResult.IsSuccess && fieldResult.Value is not null)
{ {
fields.Add(fieldResult.Value); fields.Add(fieldResult.Value);
} }
} }
var result = _dataHandler.CreateDataObjectTemplate(name, type, fields: fields); var result = _dataHandler!.CreateDataObjectTemplate(name, type, fields: fields);
if (result.IsSuccess) if (result.IsSuccess && result.Value is not null)
{ {
await _dataHandler.SaveTemplateAsync(result.Value); await _dataHandler.SaveTemplateAsync(result.Value);
Console.WriteLine($"\nTemplate '{result.Value.Id}' saved!"); Console.WriteLine($"\nTemplate '{result.Value.Id}' saved!");
@@ -94,7 +97,7 @@ public class Program
{ {
Console.Write("Enter Template ID to delete: "); Console.Write("Enter Template ID to delete: ");
string id = Console.ReadLine() ?? ""; string id = Console.ReadLine() ?? "";
var result = await _dataHandler.DeleteTemplateAsync(id); var result = await _dataHandler!.DeleteTemplateAsync(id);
Console.WriteLine(result.IsSuccess ? "Deleted." : $"Error: {result.Error}"); Console.WriteLine(result.IsSuccess ? "Deleted." : $"Error: {result.Error}");
} }
@@ -105,7 +108,7 @@ public class Program
Console.Write("Enter Template ID to use: "); Console.Write("Enter Template ID to use: ");
string tId = Console.ReadLine() ?? ""; string tId = Console.ReadLine() ?? "";
var templateResult = await _dataHandler.LoadTemplateAsync<SzDataObjectTemplate>(tId); var templateResult = await _dataHandler!.LoadTemplateAsync<SzDataObjectTemplate>(tId);
if (!templateResult.IsSuccess) if (!templateResult.IsSuccess)
{ {
Console.WriteLine($"Error: {templateResult.Error}"); Console.WriteLine($"Error: {templateResult.Error}");
@@ -125,20 +128,20 @@ public class Program
Console.Write(" Object Name: "); Console.Write(" Object Name: ");
string objName = Console.ReadLine() ?? ""; string objName = Console.ReadLine() ?? "";
var objResult = _dataHandler.CreateDataObject(templateResult.Value, objName); var objResult = _dataHandler.CreateDataObject(templateResult.Value!, objName);
if (objResult.IsSuccess) 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}): "); Console.Write($" Value for {field.Id} ({field.FieldType}): ");
field.Value = Console.ReadLine() ?? ""; field.Value = Console.ReadLine() ?? "";
} }
dataset.DataObjects.Add(objResult.Value.Id, objResult.Value); dataset!.DataObjects.Add(objResult.Value.Id, objResult.Value);
} }
} }
Console.WriteLine("\nValidating dataset..."); Console.WriteLine("\nValidating dataset...");
var evalResult = await Evaluator.EvaluateDatasetAsync(dataset); var evalResult = await Evaluator.EvaluateDatasetAsync(dataset!);
if (!evalResult.IsSuccess) if (!evalResult.IsSuccess)
{ {
@@ -148,7 +151,7 @@ public class Program
if (Console.ReadLine()?.ToLower() != "y") return; if (Console.ReadLine()?.ToLower() != "y") return;
} }
await _dataHandler.SaveDatasetAsync(dataset); await _dataHandler.SaveDatasetAsync(dataset!);
Console.WriteLine("Dataset saved!"); Console.WriteLine("Dataset saved!");
} }
@@ -156,7 +159,7 @@ public class Program
{ {
Console.Write("Enter Dataset ID to delete: "); Console.Write("Enter Dataset ID to delete: ");
string id = Console.ReadLine() ?? ""; string id = Console.ReadLine() ?? "";
var result = await _dataHandler.DeleteDatasetAsync(id); var result = await _dataHandler!.DeleteDatasetAsync(id);
Console.WriteLine(result.IsSuccess ? "Deleted." : $"Error: {result.Error}"); Console.WriteLine(result.IsSuccess ? "Deleted." : $"Error: {result.Error}");
} }
} }

View File

@@ -4,7 +4,6 @@ public interface ISzTemplate
{ {
public string Name { get; set; } public string Name { get; set; }
public string Id { get; set; } public string Id { get; set; }
public Guid Uuid { get; set; }
public string Description { get; set; } public string Description { get; set; }
public Dictionary<string, SzTemplateField> TemplateFields { get; set; } public Dictionary<string, SzTemplateField> TemplateFields { get; set; }
} }

View File

@@ -4,7 +4,6 @@ public class SzDataObjectTemplate : ISzTemplate
{ {
public required string Name {get; set;} public required string Name {get; set;}
public required string Id {get; set;} public required string Id {get; set;}
public Guid Uuid {get; set;}
public string Description { get; set; } = ""; public string Description { get; set; } = "";
public Dictionary<string, SzTemplateField> TemplateFields {get; set;} = []; public Dictionary<string, SzTemplateField> TemplateFields {get; set;} = [];

View File

@@ -4,10 +4,8 @@ public class SzDataset
{ {
public required string Name {get; set;} public required string Name {get; set;}
public required string Id {get; set;} public required string Id {get; set;}
public Guid? Uuid {get; set;}
public required string DataObjectType {get; set;} public required string DataObjectType {get; set;}
public required string DataObjectTemplateId {get; set;} public required string DataObjectTemplateId {get; set;}
public Guid? DataObjectTemplateUuid {get; set;}
public Dictionary<string, SzDataObject> DataObjects {get; set;} = []; public Dictionary<string, SzDataObject> DataObjects {get; set;} = [];
} }

View File

@@ -68,7 +68,7 @@ public class SzDataHandler
}); });
} }
public async Task<SzResult<SzDataset>> CreateDatasetAsync(string name, string templateId, string? id = null, Guid? templateUuid = null) public async Task<SzResult<SzDataset>> CreateDatasetAsync(string name, string templateId, string version = "1_0", string? id = null)
{ {
if (string.IsNullOrEmpty(name)) return SzResult<SzDataset>.Failure("Name empty."); if (string.IsNullOrEmpty(name)) return SzResult<SzDataset>.Failure("Name empty.");
@@ -79,11 +79,9 @@ public class SzDataHandler
var newDataset = new SzDataset() var newDataset = new SzDataset()
{ {
Name = name, Name = name,
Id = id ?? name.ToLower().Replace(" ", "-").Trim(), Id = id ?? name.ToLower().Replace(" ", "-").Trim() + "@" + version,
DataObjectTemplateId = templateResult.Value.Id, DataObjectTemplateId = templateResult.Value.Id,
DataObjectTemplateUuid = templateUuid,
DataObjectType = templateResult.Value.DataObjectType, DataObjectType = templateResult.Value.DataObjectType,
Uuid = Guid.NewGuid()
}; };
return SzResult<SzDataset>.Success(newDataset); return SzResult<SzDataset>.Success(newDataset);
@@ -99,6 +97,12 @@ public class SzDataHandler
var dataObjectId = parts[1]; var dataObjectId = parts[1];
var fieldPath = string.Join(".", parts.Skip(2)); 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); var datasetResult = await LoadDatasetAsync(datasetId);
if (!datasetResult.IsSuccess) if (!datasetResult.IsSuccess)
return SzResult<string>.Failure($"Could not get field value, dataset with id '{datasetId}' could not be loaded: {datasetResult.Error}"); return SzResult<string>.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<SzDataObjectTemplate> CreateDataObjectTemplate(string name, string dataObjectType, string? id = null, string? description = null, List<SzTemplateField>? fields = null) public SzResult<SzDataObjectTemplate> CreateDataObjectTemplate(string name, string dataObjectType, string version = "1_0", string? id = null, string? description = null, List<SzTemplateField>? fields = null)
{ {
var newTemplate = new SzDataObjectTemplate() var newTemplate = new SzDataObjectTemplate()
{ {
Name = name, Name = name,
Id = id ?? name.ToLower().Replace(" ", "-").Trim(), Id = id ?? name.ToLower().Replace(" ", "-").Trim() + "@" + version,
DataObjectType = dataObjectType, DataObjectType = dataObjectType,
Uuid = Guid.NewGuid(),
Description = description ?? "" Description = description ?? ""
}; };
@@ -212,7 +215,7 @@ public class SzDataHandler
}; };
var fieldsResult = CreateFieldsFromTemplate(template); var fieldsResult = CreateFieldsFromTemplate(template);
if (!fieldsResult.IsSuccess) return SzResult<SzDataObject>.Failure(fieldsResult.Error); if (!fieldsResult.IsSuccess) return SzResult<SzDataObject>.Failure(fieldsResult.Error!);
dataObject.Fields = fieldsResult.Value!; dataObject.Fields = fieldsResult.Value!;
return SzResult<SzDataObject>.Success(dataObject); return SzResult<SzDataObject>.Success(dataObject);