package com.starry.admin.modules.clerk.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.starry.admin.modules.clerk.enums.ClerkMediaReviewState;
import com.starry.admin.modules.clerk.enums.ClerkMediaUsage;
import com.starry.admin.modules.clerk.module.entity.PlayClerkMediaAssetEntity;
import java.util.Collection;
import java.util.List;

public interface IPlayClerkMediaAssetService extends IService<PlayClerkMediaAssetEntity> {

    PlayClerkMediaAssetEntity linkDraftAsset(String tenantId, String clerkId, String mediaId, ClerkMediaUsage usage);

    void submitWithOrder(String clerkId, ClerkMediaUsage usage, List<String> mediaIds);

    void reorder(String clerkId, ClerkMediaUsage usage, List<String> mediaIds);

    void softDelete(String clerkId, String mediaId);

    List<PlayClerkMediaAssetEntity> listByState(String clerkId, ClerkMediaUsage usage, Collection<ClerkMediaReviewState> states);

    List<PlayClerkMediaAssetEntity> listActiveByUsage(String clerkId, ClerkMediaUsage usage);

    void applyReviewDecision(String clerkId, ClerkMediaUsage usage, List<String> approvedValues, String reviewRecordId, String note);
}
