package com.yuchen.saas.park.service.service.door.communication;

import com.yuchen.saas.park.service.service.door.communication.domain.CallResult;
import com.yuchen.saas.park.service.service.door.communication.domain.CommandAction;
import com.yuchen.saas.park.service.service.door.communication.domain.CommandParameter;
import com.yuchen.saas.park.service.service.door.communication.domain.CommonsParameter;
import com.yuchen.saas.park.service.service.door.communication.domain.card.AddCardParameter;
import com.yuchen.saas.park.service.service.door.communication.domain.card.DeleteCardParameter;
import com.yuchen.saas.park.service.service.door.communication.domain.card.QueryCardParameter;
import com.yuchen.saas.park.service.service.door.communication.domain.card.UpdateCardParameter;
import com.yuchen.saas.park.service.service.door.communication.domain.user.AddUserFacialParameter;
import com.yuchen.saas.park.service.service.door.communication.domain.user.AddUserParameter;
import com.yuchen.saas.park.service.service.door.communication.domain.user.DeleteUserParameter;

@SuppressWarnings({"UnusedReturnValue", "unused"})
public interface DoorAccessControlCommunicationComponent {
    CallResult call(CommonsParameter commonsParameter, CommandAction action, CommandParameter commandParameter);

    CallResult call(CommonsParameter commonsParameter, CommandParameter commandParameter);

    CallResult addCard(CommonsParameter commonsParameter, AddCardParameter o);

    CallResult updateCard(CommonsParameter commonsParameter, UpdateCardParameter o);

    CallResult deleteCard(CommonsParameter commonsParameter, DeleteCardParameter o);

    CallResult queryCard(CommonsParameter commonsParameter, QueryCardParameter o);

    CallResult addUser(CommonsParameter commonsParameter, AddUserParameter o);

    CallResult deleteUser(CommonsParameter commonsParameter, DeleteUserParameter o);

    CallResult addUserFacial(CommonsParameter commonsParameter, AddUserFacialParameter o);
}
