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

import com.yuchen.saas.park.api.commons.domain.DoorAccessControlConfigIssueTaskContext;
import com.yuchen.saas.park.api.commons.domain.DoorAccessControlConfigTarget;
import com.yuchen.saas.park.api.entity.door.config.DoorAccessControlConfigIssueTask;
import com.yuchen.saas.park.service.service.domain.task.TaskListContext;

import javax.validation.constraints.Positive;
import java.util.List;

public interface DoorAccessControlConfigIssueTaskComponent {
    @Positive
    long saveTaskAndDetails(DoorAccessControlConfigIssueTaskContext so);

    void saveUserSchedule(DoorAccessControlConfigTarget target, List<DoorAccessControlConfigIssueTask> exists);

    void saveCardSchedule(DoorAccessControlConfigTarget target, List<DoorAccessControlConfigIssueTask> exists);

    void saveFacialSchedule(DoorAccessControlConfigTarget target, List<DoorAccessControlConfigIssueTask> exists);

    void handleUserTask(TaskListContext context);

    void handleCardTask(TaskListContext context);

    void handleFacialTask(TaskListContext context);
}
