package com.ruoyi.domain;

import com.baomidou.mybatisplus.annotation.*;

import java.io.Serializable;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 测试用例
 * @TableName t_test_usecase
 */
@TableName(value ="t_test_usecase")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class TestUseCase implements Serializable {
    /**
     * 主键
     */
    @ApiModelProperty("主键")
    @TableId(type = IdType.ASSIGN_ID)
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long id;

    /**
     * 测试场景id
     */
    @ApiModelProperty("测试场景id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long testScenarioId;

    /**
     * 测试类型id
     */
    @ApiModelProperty("测试类型id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long testTypeId;

    /**
     * 用例编号
     */
    @ApiModelProperty("用例编号")
    private String usecaseNo;

    /**
     * 用例名称
     */
    @ApiModelProperty("用例名称")
    private String name;

    /**
     * 工具
     */
    @ApiModelProperty("工具")
    private String tools;

    /**
     * 对应输入
     */
    @ApiModelProperty("对应输入")
    private String input;

    /**
     * 用例描述
     */
    @ApiModelProperty("用例描述")
    private String description;

    /** 更新者 */
    @ApiModelProperty("更新者")
    private String updateBy;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("更新时间")
    private Date updateTime;

    /** 测试场景 */
    @ApiModelProperty("测试场景")
    @TableField(exist = false)
    private String testScenario;

    /** 测试类型*/
    @ApiModelProperty("测试类型")
    @TableField(exist = false)
    private String testType;

    @ApiModelProperty("用例ID")
    private String caseId;

    @ApiModelProperty("标准条款ID")
    private Long reviewStandardId;

    /**
     * 返回用例在矩阵中的坐标
     * @return
     */
    public String getCoordinates() {
        return String.valueOf(testScenarioId) + String.valueOf(testTypeId);
    }

}