package com.starry.admin.modules.media.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import java.util.Date;
import java.util.Map;
import lombok.Data;

/**
 * 媒资表 play_media
 *
 * <p>存储各类业务（店员、顾客等）的图片/视频。</p>
 */
@Data
@TableName(value = "play_media", autoResultMap = true)
public class PlayMediaEntity {

    @TableId
    private String id;

    /**
     * 租户ID
     */
    private String tenantId;

    /**
     * 归属业务类型，例如 clerk/custom/order
     */
    private String ownerType;

    /**
     * 归属业务主键，例如店员ID
     */
    private String ownerId;

    /**
     * 媒资类型 image / video
     */
    private String kind;

    /**
     * 媒资状态 uploaded / processing / ready / approved / rejected
     */
    private String status;

    /**
     * 资源地址
     */
    private String url;

    /**
     * 视频封面地址
     */
    private String coverUrl;

    /**
     * 时长（毫秒）
     */
    private Long durationMs;

    /**
     * 媒资宽度
     */
    private Integer width;

    /**
     * 媒资高度
     */
    private Integer height;

    /**
     * 文件大小（字节）
     */
    private Long sizeBytes;

    /**
     * 排序序号，从 0 开始
     */
    private Integer orderIndex;

    /**
     * 扩展字段
     */
    @TableField(typeHandler = JacksonTypeHandler.class)
    private Map<String, Object> metadata;

    private Date createdTime;

    private Date updatedTime;
}
