xiangyixiangqin/server/src/XiangYi.Application/Interfaces/IConfigService.cs
2026-01-21 19:36:36 +08:00

230 lines
5.1 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

namespace XiangYi.Application.Interfaces;
/// <summary>
/// 配置服务接口
/// </summary>
public interface IConfigService
{
/// <summary>
/// 获取小程序统一配置(包含所有配置项)
/// </summary>
/// <returns>统一配置响应</returns>
Task<AppConfigResponse> GetAppConfigAsync();
/// <summary>
/// 获取首页配置Banner列表和金刚位列表
/// </summary>
/// <returns>首页配置响应</returns>
Task<HomeConfigResponse> GetHomeConfigAsync();
/// <summary>
/// 获取Banner列表
/// </summary>
/// <returns>Banner列表</returns>
Task<List<BannerResponse>> GetBannersAsync();
/// <summary>
/// 获取金刚位列表
/// </summary>
/// <returns>金刚位列表</returns>
Task<List<KingKongResponse>> GetKingKongsAsync();
/// <summary>
/// 获取弹窗配置
/// </summary>
/// <param name="popupType">弹窗类型1每日首次 2服务号关注 3会员广告</param>
/// <returns>弹窗配置响应</returns>
Task<PopupConfigResponse?> GetPopupConfigAsync(int popupType);
/// <summary>
/// 获取所有启用的弹窗配置
/// </summary>
/// <returns>弹窗配置列表</returns>
Task<List<PopupConfigResponse>> GetAllPopupConfigsAsync();
}
/// <summary>
/// 首页配置响应
/// </summary>
public class HomeConfigResponse
{
/// <summary>
/// Banner列表
/// </summary>
public List<BannerResponse> Banners { get; set; } = new();
/// <summary>
/// 金刚位列表
/// </summary>
public List<KingKongResponse> KingKongs { get; set; } = new();
/// <summary>
/// 默认头像URL
/// </summary>
public string? DefaultAvatar { get; set; }
}
/// <summary>
/// 小程序统一配置响应
/// </summary>
public class AppConfigResponse
{
/// <summary>
/// Banner列表
/// </summary>
public List<BannerResponse> Banners { get; set; } = new();
/// <summary>
/// 金刚位列表
/// </summary>
public List<KingKongResponse> KingKongs { get; set; } = new();
/// <summary>
/// 默认头像URL
/// </summary>
public string? DefaultAvatar { get; set; }
/// <summary>
/// 搜索页Banner URL
/// </summary>
public string? SearchBanner { get; set; }
/// <summary>
/// 管家指导二维码URL
/// </summary>
public string? ButlerQrcode { get; set; }
/// <summary>
/// 每日弹窗配置
/// </summary>
public PopupConfigResponse? DailyPopup { get; set; }
/// <summary>
/// 会员广告弹窗配置
/// </summary>
public PopupConfigResponse? MemberAdPopup { get; set; }
}
/// <summary>
/// Banner响应
/// </summary>
public class BannerResponse
{
/// <summary>
/// Banner ID
/// </summary>
public long Id { get; set; }
/// <summary>
/// 标题
/// </summary>
public string Title { get; set; } = string.Empty;
/// <summary>
/// 图片URL
/// </summary>
public string ImageUrl { get; set; } = string.Empty;
/// <summary>
/// 链接类型1内部页面 2外部链接 3小程序
/// </summary>
public int LinkType { get; set; }
/// <summary>
/// 链接地址
/// </summary>
public string? LinkUrl { get; set; }
/// <summary>
/// 排序
/// </summary>
public int Sort { get; set; }
}
/// <summary>
/// 金刚位响应
/// </summary>
public class KingKongResponse
{
/// <summary>
/// 金刚位ID
/// </summary>
public long Id { get; set; }
/// <summary>
/// 标题
/// </summary>
public string Title { get; set; } = string.Empty;
/// <summary>
/// 图标URL
/// </summary>
public string IconUrl { get; set; } = string.Empty;
/// <summary>
/// 链接类型1内部页面 2外部链接 3小程序
/// </summary>
public int LinkType { get; set; }
/// <summary>
/// 链接地址
/// </summary>
public string? LinkUrl { get; set; }
/// <summary>
/// 排序
/// </summary>
public int Sort { get; set; }
}
/// <summary>
/// 弹窗配置响应
/// </summary>
public class PopupConfigResponse
{
/// <summary>
/// 弹窗ID
/// </summary>
public long Id { get; set; }
/// <summary>
/// 弹窗类型1每日首次 2服务号关注 3会员广告
/// </summary>
public int PopupType { get; set; }
/// <summary>
/// 弹窗类型名称
/// </summary>
public string PopupTypeName { get; set; } = string.Empty;
/// <summary>
/// 标题
/// </summary>
public string? Title { get; set; }
/// <summary>
/// 背景图URL
/// </summary>
public string ImageUrl { get; set; } = string.Empty;
/// <summary>
/// 跳转链接
/// </summary>
public string? LinkUrl { get; set; }
/// <summary>
/// 按钮文字
/// </summary>
public string? ButtonText { get; set; }
/// <summary>
/// 显示模式1每次进入都显示 2关闭后当天不再显示 3关闭后永不显示
/// </summary>
public int DisplayMode { get; set; }
/// <summary>
/// 状态1启用 2禁用
/// </summary>
public int Status { get; set; }
}