556 lines
14 KiB
C#
556 lines
14 KiB
C#
using AutoMapper;
|
||
|
||
using CoreCms.Net.Model.Entities;
|
||
|
||
using SqlSugar;
|
||
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.ComponentModel.DataAnnotations;
|
||
using System.Linq;
|
||
using System.Runtime.InteropServices;
|
||
using System.Text;
|
||
using System.Threading.Tasks;
|
||
|
||
namespace CoreCms.Net.Model.ViewModels.SQ
|
||
{
|
||
[AutoMap(typeof(SQReservations))]
|
||
public class SQReservationsDto : SQReservations
|
||
{
|
||
|
||
public List<SQReservationParticipantsDto> Participants { get; set; }
|
||
}
|
||
|
||
[AutoMap(typeof(SQReservations))]
|
||
public class SQReservationsApiDto : SQReservationsBaseDto
|
||
{
|
||
/// <summary>
|
||
/// 所属角色 0 参与者 1 发起者
|
||
/// </summary>
|
||
public int Role { get; set; }
|
||
|
||
/// <summary>
|
||
/// 是否 赴约 0 默认,1赴约,2未赴约
|
||
/// </summary>
|
||
public int is_arrive { get; set; }
|
||
|
||
}
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
[AutoMap(typeof(SQReservations))]
|
||
public class SQReservationsMyDto : SQReservationsBaseDto
|
||
{
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public int pid { get; set; }
|
||
/// <summary>
|
||
/// 加入时间
|
||
/// </summary>
|
||
|
||
|
||
public System.DateTime join_time { get; set; }
|
||
|
||
|
||
/// <summary>
|
||
/// 退出时间
|
||
/// </summary>
|
||
|
||
public System.DateTime? quit_time { get; set; }
|
||
|
||
|
||
/// <summary>
|
||
/// 状态,0正常,1已退出
|
||
/// </summary>
|
||
[Display(Name = "状态,0正常,1已退出")]
|
||
|
||
[Required(ErrorMessage = "请输入{0}")]
|
||
|
||
|
||
|
||
public System.Int32 pstatus { get; set; }
|
||
|
||
}
|
||
|
||
/// <summary>
|
||
/// 基类
|
||
/// </summary>
|
||
public class SQReservationsBaseDto : SQReservations
|
||
{
|
||
/// <summary>
|
||
/// 参与人员
|
||
/// </summary>
|
||
|
||
public List<SQReservationParticipantsApiDto> Participants { get; set; }
|
||
}
|
||
|
||
|
||
public class SQReservationsAddDto : SQReservations
|
||
{
|
||
|
||
/// <summary>
|
||
/// 最晚到店时间
|
||
/// </summary>
|
||
public long? LatestDateTime { get; set; }
|
||
|
||
/// <summary>
|
||
/// 开始时间
|
||
/// </summary>
|
||
[Display(Name = "开始时间")]
|
||
|
||
[Required(ErrorMessage = "请输入{0}")]
|
||
|
||
|
||
|
||
public new long start_time { get; set; }
|
||
|
||
|
||
/// <summary>
|
||
/// 结束时间
|
||
/// </summary>
|
||
[Display(Name = "结束时间")]
|
||
|
||
[Required(ErrorMessage = "请输入{0}")]
|
||
|
||
public new long end_time { get; set; }
|
||
|
||
/// <summary>
|
||
/// 预约ID
|
||
/// </summary>
|
||
|
||
public new System.Int32 id { get; set; }
|
||
|
||
/// <summary>
|
||
/// 创建时间
|
||
/// </summary>
|
||
public new System.DateTime created_at { get; set; }
|
||
|
||
|
||
/// <summary>
|
||
/// 更新时间
|
||
/// </summary>
|
||
public new System.DateTime updated_at { get; set; }
|
||
|
||
|
||
/// <summary>
|
||
/// 备注
|
||
/// </summary>
|
||
[Display(Name = "备注")]
|
||
|
||
[StringLength(maximumLength: 255, ErrorMessage = "{0}不能超过{1}字")]
|
||
public new System.String remarks { get; set; }
|
||
|
||
/// <summary>
|
||
/// 重要信息
|
||
/// </summary>
|
||
public string important_data { get; set; }
|
||
}
|
||
public class SQReservationParticipantsAddDto
|
||
{
|
||
|
||
/// <summary>
|
||
/// 预约ID
|
||
/// </summary>
|
||
|
||
public new System.Int32 ReservationsId { get; set; }
|
||
|
||
|
||
/// <summary>
|
||
/// 重要信息
|
||
/// </summary>
|
||
public string important_data { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 取消预约DTO
|
||
/// </summary>
|
||
public class SQReservationCancelDto
|
||
{
|
||
/// <summary>
|
||
/// 预约ID
|
||
/// </summary>
|
||
[Required(ErrorMessage = "请输入预约ID")]
|
||
public int reservation_id { get; set; }
|
||
|
||
/// <summary>
|
||
/// 取消原因
|
||
/// </summary>
|
||
[StringLength(maximumLength: 255, ErrorMessage = "取消原因不能超过{1}字")]
|
||
public string cancel_reason { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 签到参与人项(不包含发起者)
|
||
/// </summary>
|
||
public class SQReservationCheckInAttendeeDto
|
||
{
|
||
/// <summary>
|
||
/// 用户ID
|
||
/// </summary>
|
||
public int user_id { get; set; }
|
||
/// <summary>
|
||
/// 是否出席(true=赴约,false=未赴约)
|
||
/// </summary>
|
||
public bool isAttended { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 预约签到 DTO(仅发起者可调用)
|
||
/// </summary>
|
||
public class SQReservationCheckInDto
|
||
{
|
||
[Required(ErrorMessage = "请输入预约ID")]
|
||
public int reservation_id { get; set; }
|
||
public List<SQReservationCheckInAttendeeDto> attendeds { get; set; }
|
||
}
|
||
|
||
|
||
public class SQPaymentRecordDto
|
||
{
|
||
/// <summary>
|
||
/// 预约标题
|
||
/// </summary>
|
||
public string title { get; set; }
|
||
/// <summary>
|
||
/// 订单号
|
||
/// </summary>
|
||
public string paymentId { get; set; }
|
||
/// <summary>
|
||
/// 订单状态 1. 待支付 2. 已支付 3. 待退款 4. 已退款
|
||
/// </summary>
|
||
public int is_refund { get; set; }
|
||
/// <summary>
|
||
/// 加入时间
|
||
/// </summary>
|
||
public DateTime? join_time { get; set; }
|
||
/// <summary>
|
||
/// 预约状态 0 正常 ,1已退出
|
||
/// </summary>
|
||
public int status { get; set; }
|
||
/// <summary>
|
||
/// 订单状态 文字 如:待支付,已支付等
|
||
/// </summary>
|
||
public string is_refund_text { get; set; }
|
||
}
|
||
|
||
#region 按时段预约相关DTO
|
||
|
||
/// <summary>
|
||
/// 按时段创建预约请求DTO
|
||
/// </summary>
|
||
public class SQReservationsAddBySlotDto
|
||
{
|
||
/// <summary>
|
||
/// 房间ID
|
||
/// </summary>
|
||
[Required(ErrorMessage = "请选择房间")]
|
||
public int room_id { get; set; }
|
||
|
||
/// <summary>
|
||
/// 预约日期(Unix时间戳-秒级)
|
||
/// </summary>
|
||
[Required(ErrorMessage = "请选择预约日期")]
|
||
public long date { get; set; }
|
||
|
||
/// <summary>
|
||
/// 时段类型:0=凌晨,1=上午,2=下午,3=晚上
|
||
/// </summary>
|
||
[Required(ErrorMessage = "请选择预约时段")]
|
||
[Range(0, 3, ErrorMessage = "时段类型必须在0-3之间")]
|
||
public int time_slot_type { get; set; }
|
||
|
||
/// <summary>
|
||
/// 最晚到店时间(Unix时间戳-秒级)
|
||
/// </summary>
|
||
public long? latest_arrival_time { get; set; }
|
||
|
||
/// <summary>
|
||
/// 是否为"无需组局"模式
|
||
/// </summary>
|
||
public bool is_solo_mode { get; set; }
|
||
|
||
/// <summary>
|
||
/// 人数(is_solo_mode=true时固定为1)
|
||
/// </summary>
|
||
[Required(ErrorMessage = "请输入人数")]
|
||
[Range(1, 20, ErrorMessage = "人数必须在1-20之间")]
|
||
public int player_count { get; set; }
|
||
|
||
/// <summary>
|
||
/// 鸽子费(保证金),0-50整数
|
||
/// </summary>
|
||
[Range(0, 50, ErrorMessage = "鸽子费必须在0-50元之间")]
|
||
public int deposit_fee { get; set; }
|
||
|
||
/// <summary>
|
||
/// 组局名称
|
||
/// </summary>
|
||
[Required(ErrorMessage = "请输入组局名称")]
|
||
[StringLength(100, ErrorMessage = "组局名称不能超过100字")]
|
||
public string title { get; set; }
|
||
|
||
/// <summary>
|
||
/// 玩法类型(如:补克)
|
||
/// </summary>
|
||
[Required(ErrorMessage = "请选择玩法类型")]
|
||
[StringLength(50, ErrorMessage = "玩法类型不能超过50字")]
|
||
public string game_type { get; set; }
|
||
|
||
/// <summary>
|
||
/// 具体规则(如:斗地主)
|
||
/// </summary>
|
||
[StringLength(50, ErrorMessage = "具体规则不能超过50字")]
|
||
public string game_rule { get; set; }
|
||
|
||
/// <summary>
|
||
/// 其他补充
|
||
/// </summary>
|
||
[StringLength(255, ErrorMessage = "其他补充不能超过255字")]
|
||
public string extra_info { get; set; }
|
||
|
||
/// <summary>
|
||
/// 是否禁烟:0=不限制,1=禁烟,2=不禁烟
|
||
/// </summary>
|
||
public int is_smoking { get; set; }
|
||
|
||
/// <summary>
|
||
/// 性别限制:0=不限,1=男,2=女
|
||
/// </summary>
|
||
public int gender_limit { get; set; }
|
||
|
||
/// <summary>
|
||
/// 最低信誉分
|
||
/// </summary>
|
||
public decimal? credit_limit { get; set; }
|
||
|
||
/// <summary>
|
||
/// 最小年龄限制
|
||
/// </summary>
|
||
public int? min_age { get; set; }
|
||
|
||
/// <summary>
|
||
/// 最大年龄限制,0=不限
|
||
/// </summary>
|
||
public int? max_age { get; set; }
|
||
|
||
/// <summary>
|
||
/// 重要数据(支付相关)
|
||
/// </summary>
|
||
public string important_data { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 时段信息DTO
|
||
/// </summary>
|
||
public class SQTimeSlotDto
|
||
{
|
||
/// <summary>
|
||
/// 时段类型:0=凌晨,1=上午,2=下午,3=晚上
|
||
/// </summary>
|
||
public int slot_type { get; set; }
|
||
|
||
/// <summary>
|
||
/// 时段名称
|
||
/// </summary>
|
||
public string slot_name { get; set; }
|
||
|
||
/// <summary>
|
||
/// 时段状态:available=可预约, reserved=已预约, unavailable=不可用, using=使用中
|
||
/// </summary>
|
||
public string status { get; set; }
|
||
|
||
/// <summary>
|
||
/// 标准价格
|
||
/// </summary>
|
||
public decimal standard_price { get; set; }
|
||
|
||
/// <summary>
|
||
/// 会员价格
|
||
/// </summary>
|
||
public decimal member_price { get; set; }
|
||
|
||
/// <summary>
|
||
/// 标准价格说明
|
||
/// </summary>
|
||
public string price_desc_standard { get; set; }
|
||
|
||
/// <summary>
|
||
/// 会员价格说明
|
||
/// </summary>
|
||
public string price_desc_member { get; set; }
|
||
|
||
/// <summary>
|
||
/// 不可用类型(当status为unavailable时有效):1=禁用/维护,2=后台预约,3=线下预约
|
||
/// </summary>
|
||
public int? unavailable_type { get; set; }
|
||
|
||
/// <summary>
|
||
/// 该时段内的预约列表(仅详情接口返回)
|
||
/// </summary>
|
||
public List<SQTimeSlotReservationDto> reservations { get; set; }
|
||
|
||
public SQTimeSlotDto()
|
||
{
|
||
reservations = new List<SQTimeSlotReservationDto>();
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 时段内的预约信息DTO
|
||
/// </summary>
|
||
public class SQTimeSlotReservationDto
|
||
{
|
||
/// <summary>
|
||
/// 预约ID
|
||
/// </summary>
|
||
public int reservation_id { get; set; }
|
||
|
||
/// <summary>
|
||
/// 开始时间(格式:yyyy-MM-dd HH:mm:ss)
|
||
/// </summary>
|
||
public string start_time { get; set; }
|
||
|
||
/// <summary>
|
||
/// 结束时间(格式:yyyy-MM-dd HH:mm:ss)
|
||
/// </summary>
|
||
public string end_time { get; set; }
|
||
|
||
/// <summary>
|
||
/// 预约状态:0=待开始,1=进行中,2=已结束,3=已取消
|
||
/// </summary>
|
||
public int status { get; set; }
|
||
|
||
/// <summary>
|
||
/// 组局名称
|
||
/// </summary>
|
||
public string title { get; set; }
|
||
|
||
/// <summary>
|
||
/// 玩法类型
|
||
/// </summary>
|
||
public string game_type { get; set; }
|
||
}
|
||
|
||
|
||
|
||
|
||
/// <summary>
|
||
/// 可选日期信息DTO
|
||
/// </summary>
|
||
public class SQAvailableDateDto
|
||
{
|
||
/// <summary>
|
||
/// 日期(Unix时间戳-秒级)
|
||
/// </summary>
|
||
public long date { get; set; }
|
||
|
||
/// <summary>
|
||
/// 日期文本(今天、明天、后天、日期)
|
||
/// </summary>
|
||
public string dateText { get; set; }
|
||
|
||
/// <summary>
|
||
/// 日期展示(如:12月06日 周五)
|
||
/// </summary>
|
||
public string dateDisplay { get; set; }
|
||
}
|
||
|
||
#endregion
|
||
|
||
#region 鸽子费审核相关DTO
|
||
|
||
/// <summary>
|
||
/// 鸽子费审核列表项 DTO
|
||
/// </summary>
|
||
public class PigeonFeeAuditListDto
|
||
{
|
||
/// <summary>
|
||
/// 参与者ID
|
||
/// </summary>
|
||
public int participant_id { get; set; }
|
||
|
||
/// <summary>
|
||
/// 预约ID
|
||
/// </summary>
|
||
public int reservation_id { get; set; }
|
||
|
||
/// <summary>
|
||
/// 预约标题
|
||
/// </summary>
|
||
public string reservation_title { get; set; }
|
||
|
||
/// <summary>
|
||
/// 用户ID
|
||
/// </summary>
|
||
public int user_id { get; set; }
|
||
|
||
/// <summary>
|
||
/// 用户昵称
|
||
/// </summary>
|
||
public string nick_name { get; set; }
|
||
|
||
/// <summary>
|
||
/// 手机号
|
||
/// </summary>
|
||
public string mobile { get; set; }
|
||
|
||
/// <summary>
|
||
/// 鸽子费金额
|
||
/// </summary>
|
||
public decimal deposit_fee { get; set; }
|
||
|
||
/// <summary>
|
||
/// 预约开始时间
|
||
/// </summary>
|
||
public DateTime start_time { get; set; }
|
||
|
||
/// <summary>
|
||
/// 预约结束时间
|
||
/// </summary>
|
||
public DateTime end_time { get; set; }
|
||
|
||
/// <summary>
|
||
/// 标记时间(发起者签到时间)
|
||
/// </summary>
|
||
public DateTime? mark_time { get; set; }
|
||
|
||
/// <summary>
|
||
/// 赴约状态:0=未处理,1=已赴约,2=未赴约待审核,3=未赴约已审核
|
||
/// </summary>
|
||
public int is_arrive { get; set; }
|
||
|
||
/// <summary>
|
||
/// 房间名称
|
||
/// </summary>
|
||
public string room_name { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 鸽子费审核请求 DTO
|
||
/// </summary>
|
||
public class PigeonFeeAuditRequestDto
|
||
{
|
||
/// <summary>
|
||
/// 参与者ID
|
||
/// </summary>
|
||
[Required(ErrorMessage = "请输入参与者ID")]
|
||
public int participant_id { get; set; }
|
||
|
||
/// <summary>
|
||
/// 预约ID
|
||
/// </summary>
|
||
[Required(ErrorMessage = "请输入预约ID")]
|
||
public int reservation_id { get; set; }
|
||
|
||
/// <summary>
|
||
/// 原因(审核未通过时使用)
|
||
/// </summary>
|
||
[StringLength(255, ErrorMessage = "原因不能超过255字")]
|
||
public string reason { get; set; }
|
||
}
|
||
|
||
#endregion
|
||
|
||
}
|