package com.social.media.domain.socialaccount.valueobjects;

import com.social.media.domain.shared.valueobjects.EntityId;

import java.util.UUID;

/**
 * Type-safe identifier for SocialAccount entities.
 * 
 * @author Social Media Manager Team
 * @since 2.0.0
 */
public class SocialAccountId extends EntityId {
    
    protected SocialAccountId() {
        super();
    }
    
    private SocialAccountId(UUID value) {
        super(value);
    }
    
    private SocialAccountId(String value) {
        super(value);
    }
    
    /**
     * Generate a new random SocialAccountId
     */
    public static SocialAccountId newSocialAccountId() {
        return new SocialAccountId(EntityId.newId());
    }
    
    /**
     * Create SocialAccountId from UUID
     */
    public static SocialAccountId of(UUID value) {
        return new SocialAccountId(value);
    }
    
    /**
     * Create SocialAccountId from String
     */
    public static SocialAccountId of(String value) {
        return new SocialAccountId(value);
    }
}
