package com.xindazhou.platform.controller.admin.service.maintenance.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

@Schema(description = "管理后台 - 维保订单 Response VO")
@Data
public class MaintenanceOrderRespVO {

    @Schema(description = "订单ID", example = "1")
    private Long id;

    @Schema(description = "订单编号", example = "MO001")
    private String orderId;

    @Schema(description = "订单号", example = "ORD001")
    private String orderNo;

    @Schema(description = "车辆ID", example = "1")
    private Long vehicleId;

    @Schema(description = "车辆信息")
    private VehicleInfo vehicleInfo;

    @Schema(description = "用户ID", example = "1")
    private Long userId;

    @Schema(description = "用户信息")
    private UserInfo userInfo;

    @Schema(description = "维保类型：maintenance-保养，repair-维修，inspection-检测", example = "maintenance")
    private String maintenanceType;

    @Schema(description = "维保内容", example = "更换机油")
    private String content;

    @Schema(description = "维保费用", example = "299.00")
    private BigDecimal cost;

    @Schema(description = "维保时间")
    private LocalDateTime maintenanceTime;

    @Schema(description = "维保门店ID", example = "1")
    private Long shopId;

    @Schema(description = "维保门店名称", example = "XX维修店")
    private String shopName;

    @Schema(description = "维保门店地址", example = "XX市XX区XX路")
    private String shopAddress;

    @Schema(description = "维保人员ID", example = "1")
    private Long handlerId;

    @Schema(description = "维保人员名称", example = "张师傅")
    private String handlerName;

    @Schema(description = "订单状态：0-待处理，1-处理中，2-已完成，3-已取消", example = "0")
    private Integer status;

    @Schema(description = "备注", example = "备注信息")
    private String remark;

    @Schema(description = "创建时间")
    private LocalDateTime createTime;

    @Schema(description = "更新时间")
    private LocalDateTime updateTime;

    @Schema(description = "车辆信息")
    @Data
    public static class VehicleInfo {
        @Schema(description = "车牌号", example = "京A12345")
        private String plateNumber;

        @Schema(description = "VIN", example = "LSGBF53M8DS123456")
        private String vin;

        @Schema(description = "车型", example = "XX型号")
        private String model;
    }

    @Schema(description = "用户信息")
    @Data
    public static class UserInfo {
        @Schema(description = "用户姓名", example = "张三")
        private String name;

        @Schema(description = "用户手机号", example = "13800138000")
        private String mobile;
    }

}

