mahjong_group/server/CoreCms.Net.Model/ViewModels/SQ/SQRoomsDto.cs
2026-01-01 14:35:52 +08:00

335 lines
8.5 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.

/***********************************************************************
* 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; }
}
}