package com.ruoyi.generator.util;

import com.ruoyi.common.constant.GenConstants;

import java.util.ArrayList;
import java.util.List;

public class TemplateUtils {
    /**
     * 获取模板信息
     *
     * @return 模板列表
     */
    public static List<String> getTemplateList(String tplCategory, String templatePath) {
        List<String> templates = new ArrayList<>();
        if (templatePath.equals("/vm")) {
            setVmTemplate(templates, tplCategory);
        } else if (templatePath.equals("/ssm")) {
            setSsmTemplate(templates, tplCategory);
        } else if (templatePath.equals("/qing")) {
            setQingTemplate(templates, tplCategory);
        }

        return templates;
    }

    private static void setQingTemplate(List<String> templates, String tplCategory) {
        templates.add("qing/entity.java.vm");
        templates.add("qing/mapper.java.vm");
        templates.add("qing/service.java.vm");
        templates.add("qing/serviceImpl.java.vm");
        templates.add("qing/controller.java.vm");
        templates.add("qing/mapper.xml.vm");
        templates.add("qing/index.vue.vm");
        templates.add("qing/application.yml.vm");
        templates.add("qing/pom.xml.vm");
    }

    private static void setSsmTemplate(List<String> templates, String tplCategory) {
        templates.add("ssm/java/controller.java.vm");
    }

    private static void setVmTemplate(List<String> templates, String tplCategory) {
        templates.add("vm/java/domain.java.vm");
        templates.add("vm/java/mapper.java.vm");
        templates.add("vm/java/service.java.vm");
        templates.add("vm/java/serviceImpl.java.vm");
        templates.add("vm/java/controller.java.vm");
        templates.add("vm/xml/mapper.xml.vm");
        templates.add("vm/sql/sql.vm");
        templates.add("vm/js/api.js.vm");
        if (GenConstants.TPL_CRUD.equals(tplCategory)) {
            templates.add("vm/vue/index.vue.vm");
        } else if (GenConstants.TPL_TREE.equals(tplCategory)) {
            templates.add("vm/vue/index-tree.vue.vm");
        } else if (GenConstants.TPL_SUB.equals(tplCategory)) {
            templates.add("vm/vue/index.vue.vm");
            templates.add("vm/java/sub-domain.java.vm");
        }
    }
}
