syntax = "proto3";

package resources;

//文件
service Resources_File{
    //文件-验证md5是否存在
    rpc ResourcesFileVerifyMd5 (ResourcesFileVerifyMd5Parameter) returns (ResourcesFileVerifyMd5Result){
    }
    //文件-获取文件详细信息（单个）
    rpc ResourcesFileDetailed (ResourcesFileDetailedParameter) returns (ResourcesFileDetailedResult){
    }
    //文件-获取文件基本信息（单个）
    rpc ResourcesFileBaseInfor (ResourcesFileBaseInforParameter) returns (ResourcesFileBaseInforResult){
    }
    //文件-获取文件基本信息（多个）
    rpc ResourcesFileBaseList (ResourcesFileBaseListParameter) returns (ResourcesFileBaseListResult){
    }
}

message ResourcesFileVerifyMd5Parameter{
    //md5值
    string md5 = 1;
}

message ResourcesFileVerifyMd5Result{
    //资源编号
    string resources_id = 1;
    //是否存在
    bool is_exist = 2;
}

message ResourcesFileDetailedParameter{
    //文件编号
    string id = 1;
}

message ResourcesFileDetailedResult{
    message ConvertFile{
        //转换后的文件
        string file_url = 1;
        //扩展信息
        map<string,string> extension = 2;
    }
    //状态  1=上传中 2=文件上传完成 3=转码中 4=转码完成 5=转码失败
    int32 status = 1;
    //预览图
    string preview_url = 2;
    //转码文件
    repeated ConvertFile convert_file = 3;
    //视频时长（秒）
    float media_duration = 4;
    //转码文件数量
    int32 child_number = 5;
    //资源类型
    string type = 6;
}

message ResourcesFileBaseInforParameter{
    //文件编号
    string id = 1;
}

message ResourcesFileBaseInforResult{
    //状态  1=上传中 2=文件上传完成 3=转码中 4=转码完成 5=转码失败
    int32 status = 1;
    //预览图
    string preview_url = 2;
    //视频时长（秒）
    float media_duration = 3;
    //转码文件数量
    int32 child_number = 4;
    //资源类型
    string type = 5;
}

message ResourcesFileBaseListParameter{
    //文件编号数组
    repeated string ids = 1;
}

message ResourcesFileBaseListResult{
    message Result{
        //状态  1=上传中 2=文件上传完成 3=转码中 4=转码完成 5=转码失败
        int32 status = 1;
        //预览图
        string preview_url = 2;
        //视频时长（秒）
        float media_duration = 3;
        //转码文件数量
        int32 child_number = 4;
        //资源类型
        string type = 5;
    }
    map<string,Result> result = 1;
}