335 lines
8.5 KiB
C#
335 lines
8.5 KiB
C#
/***********************************************************************
|
||
* Project: CoreCms
|
||
* ProjectName: 核心内容管理系统
|
||
* Web: https://www.corecms.net
|
||
* Author: 大灰灰
|
||
* Email: jianweie@163.com
|
||
* CreateTime: 2025/12/06
|
||
* Description: 房间相关 DTO
|
||
***********************************************************************/
|
||
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.ComponentModel.DataAnnotations;
|
||
|
||
namespace CoreCms.Net.Model.ViewModels.SQ
|
||
{
|
||
/// <summary>
|
||
/// 房间列表响应 DTO(含时段信息)
|
||
/// </summary>
|
||
public class SQRoomListDto
|
||
{
|
||
/// <summary>
|
||
/// 房间ID
|
||
/// </summary>
|
||
public int id { get; set; }
|
||
|
||
/// <summary>
|
||
/// 房间名称
|
||
/// </summary>
|
||
public string name { get; set; }
|
||
|
||
/// <summary>
|
||
/// 房间类型
|
||
/// </summary>
|
||
public string room_type { get; set; }
|
||
|
||
/// <summary>
|
||
/// 房间图片URL
|
||
/// </summary>
|
||
public string image_url { get; set; }
|
||
|
||
/// <summary>
|
||
/// 价格/小时
|
||
/// </summary>
|
||
public decimal price_per_hour { get; set; }
|
||
|
||
/// <summary>
|
||
/// 可容纳人数
|
||
/// </summary>
|
||
public int capacity { get; set; }
|
||
|
||
/// <summary>
|
||
/// 房间描述
|
||
/// </summary>
|
||
public string description { get; set; }
|
||
|
||
/// <summary>
|
||
/// 房间状态:available-可预约, using-使用中, unavailable-不可用
|
||
/// </summary>
|
||
public string status { get; set; }
|
||
|
||
/// <summary>
|
||
/// 是否可预约
|
||
/// </summary>
|
||
public bool is_available { get; set; }
|
||
|
||
public string room_type_name { get; set; }
|
||
|
||
public bool can_reserve { get; set; }
|
||
|
||
public string standard_price_desc { get; set; }
|
||
public string member_price_desc { get; set; }
|
||
/// <summary>
|
||
/// 时段占用信息(仅当 showTimeSlots=true 时返回)
|
||
/// </summary>
|
||
public List<SQTimeSlotDto> time_slots { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 房间时段占用信息
|
||
/// </summary>
|
||
public class SQRoomTimeSlotsDto
|
||
{
|
||
/// <summary>
|
||
/// 凌晨 0:00-6:00
|
||
/// </summary>
|
||
public SQRoomTimeSlotDto dawn { get; set; }
|
||
|
||
/// <summary>
|
||
/// 上午 6:00-12:00
|
||
/// </summary>
|
||
public SQRoomTimeSlotDto morning { get; set; }
|
||
|
||
/// <summary>
|
||
/// 下午 12:00-18:00
|
||
/// </summary>
|
||
public SQRoomTimeSlotDto afternoon { get; set; }
|
||
|
||
/// <summary>
|
||
/// 晚上 18:00-24:00
|
||
/// </summary>
|
||
public SQRoomTimeSlotDto evening { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 单个时段占用信息
|
||
/// </summary>
|
||
public class SQRoomTimeSlotDto
|
||
{
|
||
/// <summary>
|
||
/// 是否被占用
|
||
/// </summary>
|
||
public bool is_occupied { get; set; }
|
||
|
||
/// <summary>
|
||
/// 预约列表
|
||
/// </summary>
|
||
public List<SQRoomTimeSlotReservationDto> reservations { get; set; }
|
||
|
||
public SQRoomTimeSlotDto()
|
||
{
|
||
reservations = new List<SQRoomTimeSlotReservationDto>();
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 时段内的预约信息
|
||
/// </summary>
|
||
public class SQRoomTimeSlotReservationDto
|
||
{
|
||
/// <summary>
|
||
/// 开始时间
|
||
/// </summary>
|
||
public string start_time { get; set; }
|
||
|
||
/// <summary>
|
||
/// 结束时间
|
||
/// </summary>
|
||
public string end_time { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 可预约房间响应 DTO(增强版)
|
||
/// </summary>
|
||
public class SQRoomAvailableDto
|
||
{
|
||
/// <summary>
|
||
/// 房间ID
|
||
/// </summary>
|
||
public int id { get; set; }
|
||
|
||
/// <summary>
|
||
/// 房间名称
|
||
/// </summary>
|
||
public string name { get; set; }
|
||
|
||
/// <summary>
|
||
/// 房间类型
|
||
/// </summary>
|
||
public string room_type { get; set; }
|
||
|
||
/// <summary>
|
||
/// 房间图片URL
|
||
/// </summary>
|
||
public string image_url { get; set; }
|
||
|
||
/// <summary>
|
||
/// 价格/小时
|
||
/// </summary>
|
||
public decimal price_per_hour { get; set; }
|
||
|
||
/// <summary>
|
||
/// 可容纳人数
|
||
/// </summary>
|
||
public int capacity { get; set; }
|
||
|
||
/// <summary>
|
||
/// 房间描述
|
||
/// </summary>
|
||
public string description { get; set; }
|
||
|
||
/// <summary>
|
||
/// 显示名称(用于前端直接显示)
|
||
/// </summary>
|
||
public string display_name { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 房间详情响应 DTO
|
||
/// </summary>
|
||
public class SQRoomDetailDto
|
||
{
|
||
/// <summary>
|
||
/// 房间ID
|
||
/// </summary>
|
||
public int id { get; set; }
|
||
|
||
/// <summary>
|
||
/// 房间名称
|
||
/// </summary>
|
||
public string name { get; set; }
|
||
|
||
/// <summary>
|
||
/// 房间类型
|
||
/// </summary>
|
||
public string room_type { get; set; }
|
||
|
||
/// <summary>
|
||
/// 房间类型名称
|
||
/// </summary>
|
||
public string room_type_name { get; set; }
|
||
|
||
/// <summary>
|
||
/// 房间主图URL
|
||
/// </summary>
|
||
public string image_url { get; set; }
|
||
|
||
/// <summary>
|
||
/// 房间多图展示
|
||
/// </summary>
|
||
public List<string> images { get; set; }
|
||
|
||
/// <summary>
|
||
/// 价格/小时
|
||
/// </summary>
|
||
public decimal price_per_hour { get; set; }
|
||
|
||
/// <summary>
|
||
/// 可容纳人数
|
||
/// </summary>
|
||
public int capacity { get; set; }
|
||
|
||
/// <summary>
|
||
/// 房间描述
|
||
/// </summary>
|
||
public string description { get; set; }
|
||
|
||
/// <summary>
|
||
/// 设施列表
|
||
/// </summary>
|
||
public List<string> amenities { get; set; }
|
||
|
||
/// <summary>
|
||
/// 房间状态:available-可预约, using-使用中, unavailable-不可用
|
||
/// </summary>
|
||
public string status { get; set; }
|
||
|
||
/// <summary>
|
||
/// 是否可预约
|
||
/// </summary>
|
||
public bool is_available { get; set; }
|
||
|
||
/// <summary>
|
||
/// 是否可以立即预约(至少有一个时段可用)
|
||
/// </summary>
|
||
public bool can_reserve { get; set; }
|
||
|
||
/// <summary>
|
||
/// 标准价格说明
|
||
/// </summary>
|
||
public string standard_price_desc { get; set; }
|
||
|
||
/// <summary>
|
||
/// 会员价格说明
|
||
/// </summary>
|
||
public string member_price_desc { get; set; }
|
||
|
||
/// <summary>
|
||
/// 时段占用信息(包含4个时段的状态和价格)
|
||
/// </summary>
|
||
public List<SQTimeSlotDto> time_slots { get; set; }
|
||
|
||
/// <summary>
|
||
/// 今日预约情况
|
||
/// </summary>
|
||
public List<SQRoomDetailReservationDto> today_reservations { get; set; }
|
||
|
||
public SQRoomDetailDto()
|
||
{
|
||
images = new List<string>();
|
||
amenities = new List<string>();
|
||
time_slots = new List<SQTimeSlotDto>();
|
||
today_reservations = new List<SQRoomDetailReservationDto>();
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 房间详情中的预约信息
|
||
/// </summary>
|
||
public class SQRoomDetailReservationDto
|
||
{
|
||
/// <summary>
|
||
/// 开始时间
|
||
/// </summary>
|
||
public string start_time { get; set; }
|
||
|
||
/// <summary>
|
||
/// 结束时间
|
||
/// </summary>
|
||
public string end_time { get; set; }
|
||
|
||
/// <summary>
|
||
/// 预约状态
|
||
/// </summary>
|
||
public int status { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 营业时间配置响应 DTO
|
||
/// </summary>
|
||
public class SQBusinessHoursDto
|
||
{
|
||
/// <summary>
|
||
/// 开始营业时间(HH:mm格式)
|
||
/// </summary>
|
||
public string open_time { get; set; }
|
||
|
||
/// <summary>
|
||
/// 结束营业时间(HH:mm格式)
|
||
/// </summary>
|
||
public string close_time { get; set; }
|
||
|
||
/// <summary>
|
||
/// 是否24小时营业
|
||
/// </summary>
|
||
public bool is_24_hours { get; set; }
|
||
|
||
/// <summary>
|
||
/// 营业时间描述文本
|
||
/// </summary>
|
||
public string description { get; set; }
|
||
}
|
||
}
|
||
|