package cn.estsh.i3plus.pojo.screen.model;

import cn.estsh.i3plus.pojo.screen.bean.ScrAction;
import cn.estsh.i3plus.pojo.screen.bean.ScrDataObject;
import cn.estsh.i3plus.pojo.screen.bean.ScrDataObjectIndex;
import cn.estsh.i3plus.pojo.screen.bean.ScrDatasource;
import cn.estsh.i3plus.pojo.screen.bean.ScrModel;
import cn.estsh.i3plus.pojo.screen.bean.ScrModelField;
import cn.estsh.i3plus.pojo.screen.bean.ScrModelFieldIndex;
import cn.estsh.i3plus.pojo.screen.bean.ScrModelFieldVirtual;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.List;

/**
 * @author Wynne.Lu
 * @date 2021/4/9 13:41
 * @desc
 */
@Data
@Builder
@AllArgsConstructor
@ApiModel("model，modelFields与数据对象，数据源的关系")
public class ScrExecuteModel implements Serializable {
    private static final long serialVersionUID = -7305897999888994870L;

    @ApiModelProperty("动作")
    private ScrAction action;

    @ApiModelProperty("模型")
    private ScrModel model;

    @ApiModelProperty("数据源")
    private ScrDatasource datasource;

    @ApiModelProperty("model对应的数据对象")
    private List<ScrDataObject> dataObjects;

    @ApiModelProperty("model对应的数据对象索引")
    private List<ScrDataObjectIndex> dataObjectIndices;

    @ApiModelProperty("model字段")
    private List<ScrModelField> modelFields;

    @ApiModelProperty("model字段索引")
    private List<ScrModelFieldIndex> modelFieldIndices;

    @ApiModelProperty("model虚拟字段")
    private List<ScrModelFieldVirtual> modelFieldVirtuals;

    private List<ScrModelField> insertCondition;

    private List<ScrModelField> queryCondition;

    private List<ScrModelField> updateCondition;

    private List<ScrModelField> deleteCondition;

}
