package com.genersoft.iot.vmp.storager.dao;
import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem;
import org.apache.ibatis.annotations.*;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@Mapper
@Repository
public interface MediaServerMapper {
    @Insert("INSERT INTO wvp_media_server (" +
            "id,"+
            "ip,"+
            "hook_ip,"+
            "sdp_ip,"+
            "stream_ip,"+
            "http_port,"+
            "http_ssl_port,"+
            "rtmp_port,"+
            "rtmp_ssl_port,"+
            "rtp_proxy_port,"+
            "rtsp_port,"+
            "rtsp_ssl_port,"+
            "auto_config,"+
            "secret,"+
            "rtp_enable,"+
            "rtp_port_range,"+
            "send_rtp_port_range,"+
            "record_assist_port,"+
            "default_server,"+
            "create_time,"+
            "update_time,"+
            "hook_alive_interval"+
            ") VALUES " +
            "(" +
            "#{id}, " +
            "#{ip}, " +
            "#{hookIp}, " +
            "#{sdpIp}, " +
            "#{streamIp}, " +
            "#{httpPort}, " +
            "#{httpSSlPort}, " +
            "#{rtmpPort}, " +
            "#{rtmpSSlPort}, " +
            "#{rtpProxyPort}, " +
            "#{rtspPort}, " +
            "#{rtspSSLPort}, " +
            "#{autoConfig}, " +
            "#{secret}, " +
            "#{rtpEnable}, " +
            "#{rtpPortRange}, " +
            "#{sendRtpPortRange}, " +
            "#{recordAssistPort}, " +
            "#{defaultServer}, " +
            "#{createTime}, " +
            "#{updateTime}, " +
            "#{hookAliveInterval})")
    int add(MediaServerItem mediaServerItem);
    @Update(value = {" "})
    int update(MediaServerItem mediaServerItem);
    @Update(value = {" "})
    int updateByHostAndPort(MediaServerItem mediaServerItem);
    @Select("SELECT * FROM wvp_media_server WHERE id=#{id}")
    MediaServerItem queryOne(String id);
    @Select("SELECT * FROM wvp_media_server")
    List queryAll();
    @Delete("DELETE FROM wvp_media_server WHERE id=#{id}")
    void delOne(String id);
    @Select("DELETE FROM wvp_media_server WHERE ip=#{host} and http_port=#{port}")
    void delOneByIPAndPort(@Param("host") String host, @Param("port") int port);
    @Delete("DELETE FROM wvp_media_server WHERE default_server=true")
    int delDefault();
    @Select("SELECT * FROM wvp_media_server WHERE ip=#{host} and http_port=#{port}")
    MediaServerItem queryOneByHostAndPort(@Param("host") String host, @Param("port") int port);
    @Select("SELECT * FROM wvp_media_server WHERE default_server=true")
    MediaServerItem queryDefault();
}