package shop.alien.entity.store.dto;

import com.fasterxml.jackson.databind.PropertyNamingStrategies;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * 动态 feeds 分页接口响应体（与下游 snake_case JSON 对齐）。
 * <p>
 * 可作为 Redis 缓存载体：Key {@code dynamics:recommend:v15:{lifeUserId}}，
 * {@code lifeUserId} 为 {@code life_user.id}；服务端增量补丁由 alien-store 模块
 * {@code DynamicsRecommendCacheService} 维护。
 * </p>
 */
@Data
@NoArgsConstructor
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
@ApiModel(description = "动态 feeds 分页响应")
public class LifeDynamicsFeedApiResponse {

    @ApiModelProperty("动态列表")
    private List<LifeDynamicsFeedItemDto> list;

    @ApiModelProperty("候选总数")
    private Integer total;

    @ApiModelProperty("当前页")
    private Integer page;

    @ApiModelProperty("每页条数")
    private Integer size;

    @ApiModelProperty("总页数")
    private Integer totalPages;

    @ApiModelProperty("耗时（秒）")
    private Double responseTimeS;

    @ApiModelProperty("拉黑商户账号 ID（store_user.id）。仅用户拉黑商户时写入推荐缓存；拉黑用户不维护本字段")
    private List<Integer> blockedId;
}
