def METHOD_NAME(
    cls,
    target,
    artifact_version=None,
    kwargs=None,
    queue=False, delay=0,
    uuid=None,
):
    if not cls.verify_target(target):
        raise ValueError("Incompatible channel or device")
    # DB command
    db_command_model, db_command_kwargs = target.get_db_command_model_and_kwargs()
    db_command = db_command_model(**db_command_kwargs)
    db_command.artifact_version = artifact_version
    db_command.kwargs = kwargs or {}
    # DB command scheduling
    if not queue:
        if delay:
            raise ValueError("Cannot have a not-queued command with delay")
        db_command.not_before = None
        db_command.time = timezone.now()
    else:
        db_command.time = None
        if not delay:
            db_command.not_before = None
        else:
            db_command.not_before = timezone.now() + timedelta(seconds=delay)
    return cls(target.channel, db_command, uuid)