diff --git a/src/Fengling.Activity.Domain/ValueObjects/CampaignId.cs b/src/Fengling.Activity.Domain/ValueObjects/CampaignId.cs index 8672838..51c8648 100644 --- a/src/Fengling.Activity.Domain/ValueObjects/CampaignId.cs +++ b/src/Fengling.Activity.Domain/ValueObjects/CampaignId.cs @@ -1,18 +1,9 @@ namespace Fengling.Activity.Domain.ValueObjects; -public class CampaignId : IEquatable +public partial record CampaignId : IGuidStronglyTypedId { - public Guid Value { get; } - - private CampaignId(Guid value) => Value = value; - - public static CampaignId New() => new(Guid.NewGuid()); - public static CampaignId FromGuid(Guid value) => new(value); - public static CampaignId Parse(string value) => new(Guid.Parse(value)); - - public bool Equals(CampaignId? other) => other?.Value == Value; - public override bool Equals(object? obj) => obj is CampaignId other && Equals(other); - public override int GetHashCode() => Value.GetHashCode(); + public static CampaignId New() => new CampaignId(Guid.NewGuid()); + public Guid Value => this; public static implicit operator Guid(CampaignId id) => id.Value; - public override string ToString() => Value.ToString(); + public static implicit operator CampaignId(Guid value) => new CampaignId(value); }