package com.bcxin.tenant.domain.services.commands.externalMembers;

import com.bcxin.Infrastructures.commands.CommandAbstract;
import com.bcxin.Infrastructures.enums.ResourceReferenceType;
import com.bcxin.api.interfaces.enums.ExternalMemberInviteType;
import lombok.Getter;

import java.util.Collection;

@Getter
public class CreateExternalMemberCommand extends CommandAbstract {

    private final ResourceReferenceType referenceType;

    private final String referenceNumber;

    private final String groupId;

    private final String tenantUserId;

    private final String inviteCode;
    private final ExternalMemberInviteType inviteType;
    private final String invitorId;

    public CreateExternalMemberCommand(ResourceReferenceType referenceType, String referenceNumber, String groupId,
                                       String tenantUserId, ExternalMemberInviteType inviteType,String inviteCode,
                                        String invitorId) {
        this.referenceType = referenceType;
        this.referenceNumber = referenceNumber;
        this.groupId = groupId;
        this.tenantUserId = tenantUserId;
        this.inviteCode = inviteCode;
        this.inviteType = inviteType;
        this.invitorId = invitorId;
    }

    public static CreateExternalMemberCommand create(ResourceReferenceType referenceType, String referenceNumber, String groupId,
                                                     String tenantUserId,ExternalMemberInviteType inviteType,  String inviteCode,
                                                     String invitorId)
    {
        return new CreateExternalMemberCommand(referenceType,referenceNumber,groupId,tenantUserId,inviteType,inviteCode,invitorId);
    }
}
