using Scalar.AspNetCore; namespace OnlyPrompt.Backend.Utils { public struct Identifier { public string Slug { get; init; } public Guid? Id { get; init; } public Identifier(string slug) { this.Slug = slug; this.Id = null; } public Identifier(Guid guid) { this.Id = guid; this.Slug = string.Empty; } public static implicit operator Identifier(string slug) => new Identifier(slug); public static implicit operator Identifier(Guid guid) => new Identifier(guid); public static bool TryParse(string input, out Identifier identifier) { identifier= new Identifier(input); if (Guid.TryParse(input, out var guid)) identifier = new Identifier(guid); return true; } } }