package cn.iocoder.yudao.module.system.enums;

import java.util.Dictionary;

/**
 * System 操作日志枚举
 * 目的：统一管理，也减少 Service 里各种“复杂”字符串
 *
 * @author 芋道源码
 */
public interface LogRecordConstants {

    // ======================= SYSTEM_USER 用户 =======================

    String SYSTEM_USER_TYPE = "SYSTEM 用户";
    String SYSTEM_USER_CREATE_SUB_TYPE = "创建用户";
    String SYSTEM_USER_CREATE_SUCCESS = "创建了用户【{{#user.nickname}}】";
    String SYSTEM_USER_UPDATE_SUB_TYPE = "更新用户";
    String SYSTEM_USER_UPDATE_SUCCESS = "更新了用户【{{#user.nickname}}】: {_DIFF{#updateReqVO}}";
    String SYSTEM_USER_DELETE_SUB_TYPE = "删除用户";
    String SYSTEM_USER_DELETE_SUCCESS = "删除了用户【{{#user.nickname}}】";
    String SYSTEM_USER_UPDATE_PASSWORD_SUB_TYPE = "重置用户密码";
    String SYSTEM_USER_UPDATE_PASSWORD_SUCCESS = "将用户【{{#user.nickname}}】的密码从【{{#user.password}}】重置为【{{#newPassword}}】";

    // ======================= SYSTEM_ROLE 角色 =======================

    String SYSTEM_ROLE_TYPE = "SYSTEM 角色";
    String SYSTEM_ROLE_CREATE_SUB_TYPE = "创建角色";
    String SYSTEM_ROLE_CREATE_SUCCESS = "创建了角色【{{#role.name}}】";
    String SYSTEM_ROLE_UPDATE_SUB_TYPE = "更新角色";
    String SYSTEM_ROLE_UPDATE_SUCCESS = "更新了角色【{{#role.name}}】: {_DIFF{#updateReqVO}}";
    String SYSTEM_ROLE_DELETE_SUB_TYPE = "删除角色";
    String SYSTEM_ROLE_DELETE_SUCCESS = "删除了角色【{{#role.name}}】";


    String UPLOAD_FILE_TYPE = "文件上传";

    String UPLOAD_FILE = "上传文件";

    String UPLOAD_FILE_SUCCESS = "【{{#uploadReqVO.operation}}】上传了【{{#uploadReqVO.elderName}}】文件【{{#file.originalFilename}}】";


    // ======================= 长者入住相关 =======================

    String ELDERLY_CHECK_IN_TYPE = "入住办理";

    String ELDERLY_CHECK_IN_CREATE_SUB_TYPE = "新增入住办理";


    String ELDERLY_CHECK_IN_CREATE_SUCCESS = "长者【{{#elderName}}】入住成功,创建了费用账单";

    String ELDERLY_ASK_LEAVE_TYPE = "外出管理";

    String ELDERLY_ASK_LEAVE_CREATE_SUB_TYPE = "新增外出管理";

    String ELDERLY_ASK_LEAVE_CREATE_SUCCESS = "长者【{{#createReqVO.elderId}}】新增外出";


    // ======================= 费用相关 =======================

    String EXPENSE_SETTLEMENT_TYPE = "退住结算单";

    String EXPENSE_SETTLEMENT_TYPE_SUB_TYPE = "新增退住结算单";

    String EXPENSE_SETTLEMENT_INSERT_SUCCESS = "长者【{{#elderlyInfo.elderName}}】新增退住结算单";


    String EXPENSE_ORDER_PAY_TYPE = "账单缴费";

    String EXPENSE_ORDER_PAY_CREATE_SUB_TYPE = "新增账单缴费";

    String EXPENSE_ORDER_PAY_CREATE_SUCCESS = "长者【{{#expenseOrder.elderId}}】账单缴费";

    String EXPENSE_ORDER_CANCEL_PAYMENT_TYPE = "撤销账单缴费";

    String EXPENSE_ORDER_CANCEL_PAYMENT_SUB_TYPE = "撤销账单缴费";

    String EXPENSE_ORDER_CANCEL_PAYMENT_SUCCESS = "操作人【{{#operator}}】撤销了长者【{{#elderName}}】在【{{#billingMonth}}】的账单缴费";

    String ELDERLY_DAILY_EXPENSES_TYPE = "日常费用";

    String ELDERLY_DAILY_EXPENSES_CREATE_SUB_TYPE = "新增日常费用";

    String ELDERLY_DAILY_EXPENSES_CREATE_SUCCESS = "长者【{{#elder.elderName}}】新增日常费用";

    String ELDERLY_DAILY_EXPENSES_INSERT_SUB_TYPE = "补录日常费用";

    String ELDERLY_DAILY_EXPENSES_INSERT_SUCCESS = "长者【{{#elderId}}】补录日常费用";

    String ELDERLY_DAILY_EXPENSES_IMPORT_SUB_TYPE = "导入日常费用";

    String ELDERLY_DAILY_EXPENSES_IMPORT_SUCCESS = "导入长者日常费用";


    String ELDERLY_DAILY_EXPENSES_DELETE_SUB_TYPE = "删除日常费用";

    String ELDERLY_DAILY_EXPENSES_DELETE_SUCCESS = "删除长者【{{#dailyExpenses.elderId}}】的日常费用【{{#dailyExpenses.itemName}}】";




    String ELDERLY_BALANCE_TYPE = "余额预存";

    String ELDERLY_BALANCE_CREATE_SUB_TYPE = "余额充值";

    String ELDERLY_BALANCE_CREATE_SUCCESS = "长者【{{#balance.elderId}}】余额充值";

    String ELDERLY_BALANCE_REFUND_SUB_TYPE = "余额退款";

    String ELDERLY_BALANCE_REFUND_SUCCESS = "长者【{{#balance.elderId}}】余额退款";


    String ELDERLY_DEPOSIT_TYPE = "押金管理";

    String ELDERLY_DEPOSIT_CREATE_SUB_TYPE = "缴纳押金";

    String ELDERLY_DEPOSIT_CREATE_SUCCESS = "长者【{{#bdbDeposit.elderId}}】缴纳押金";

    String ELDERLY_DEPOSIT_CONSUMPTION_SUB_TYPE = "消费押金";

    String ELDERLY_DEPOSIT_CONSUMPTION_SUCCESS = "长者【{{#dbDeposit.elderId}}】消费押金";

    String ELDERLY_DEPOSIT_REFUND_SUB_TYPE = "押金退款";

    String ELDERLY_DEPOSIT_REFUND_SUCCESS = "长者【{{#dbDeposit.elderId}}】押金退款";


    String ELDERLY_DEPOSIT_EXPORT_SUB_TYPE = "导出押金";

    String ELDERLY_DEPOSIT_EXPORT_SUCCESS = "导出长者押金";

   // ======================= 药品字典 =======================
   String DRUG_DICTIONARY_TYPE = "药品字典";

    String DRUG_DICTIONARY_CREATE_SUB_TYPE = "新增药品字典";

    String DRUG_DICTIONARY_CREATE_SUCCESS = "创建名称【{{#drug.drugName}}】的药品字典";

    String DRUG_DICTIONARY_UPDATE_SUB_TYPE = "编辑药品字典";

    String DRUG_DICTIONARY_UPDATE_SUCCESS = "编辑名称【{{#drug.drugName}}】的药品字典";


    String DRUG_DICTIONARY_DELETE_SUB_TYPE = "删除药品字典";

    String DRUG_DICTIONARY_DELETE_SUCCESS = "删除了药品字典【{{#removeDrugName}}】";

    String DRUG_DICTIONARY_QUERY_SUB_TYPE = "查询药品字典";

    String DRUG_DICTIONARY_QUERY_SUCCESS = "查询药品字典【{{#drug.drugName}}】";


    // ======================= 餐品相关 =======================
     String DISHES_TYPE = "菜品维护";

     String DISHES_CREATE_SUB_TYPE = "新增菜品";

     String DISHES_CREATE_SUCCESS = "创建菜品【{{#name}}】";


    String DISHES_UPDATE_SUB_TYPE = "编辑菜品";

    String DISHES_UPDATE_SUCCESS = "编辑菜品【{{#name}}】";

//    String DISHES_DELETE_SUB_TYPE = "删除菜品";
//
//    String DISHES_DELETE_SUCCESS = "删除菜品【{{#name}}】";



    String FOOD_CATEGORY = "菜品分类";
    String FOOD_CATEGORY_CREATE_SUB_TYPE = "新增菜品分类";
    String FOOD_CATEGORY_CREATE_SUCCESS = "新增菜品分类【{{#name}}】";
    String FOOD_CATEGORY_UPDATE_SUB_TYPE = "编辑菜品分类";
    String FOOD_CATEGORY_UPDATE_SUCCESS = "编辑菜品分类【{{#name}}】";



    // ======================= 出入院办理 =======================

    String DMISSION_DISCHARGE_TYPE = "申请入住";
    String DMISSION_ELDER_INSERT_SUB_TYPE = "新增长者入住信息";
    String DMISSION_ELDER_INSERT_SUCCESS = "新增入住信息【{{#elderlyInfoReqVO.elderName}}】";
    String DMISSION_ELDER_UPDATE_SUB_TYPE = "编辑长者入住信息";
    String DMISSION_ELDER_UPDATE_SUCCESS = "编辑入住信息【{{#elderlyInfoReqVO.elderName}}】";
    String DMISSION_ELDER_DELETE_SUB_TYPE = "删除长者入住信息";
    String DMISSION_ELDER_DELETE_SUCCESS = "删除长者入住信息";
    String DMISSION_ELDER_APPLY_SUB_TYPE = "发起申请入住";
    String DMISSION_ELDER_APPLY_SUCCESS = "用户【{{#nickname}}】{{#createReqVO.id == null ? '发起' : '重新发起'}}长者【{{#createReqVO.elderName}}】的入住申请";


    // ======================= 退住审批流 =======================
    String DMISSION_RETREAT_TYPE = "退住申请";
    String DMISSION_ELDER_RETREAT_SUB_TYPE = "发起退住申请";
    String DMISSION_ELDER_RETREAT_SUCCESS = "用户【{{#nickname}}】{{#createReqVO.id == null ? '发起' : '重新发起'}}长者【{{#elderName}}】的退住申请";


    // ======================= 变更 =======================

    String ELDER_ChHANGE_TYPE = "长者变更";

    String ELDER_BED_CHANGE_TYPE = "床位变更";
    String ELDER_BED_CHANGE_SUB_TYPE = "发起床位变更";
    String ELDER_BED_CHANGE_SUCCESS = "用户【{{#nickname}}】{{#createReqVO.id == null ? '发起' : '重新发起'}}长者【{{#elderName}}】的床位变更";

    String ELDER_NURSE_CHANGE_TYPE = "护理变更";
    String ELDER_NURSE_CHANGE_SUB_TYPE = "发起护理变更";
    String ELDER_NURSE_CHANGE_SUCCESS = "用户【{{#nickname}}】{{#createReqVO.id == null ? '发起' : '重新发起'}}长者【{{#elderName}}】的护理变更";


    String ELDER_CATERING_CHANGE_TYPE = "餐饮变更";
    String ELDER_CATERING_CHANGE_SUB_TYPE = "发起餐饮变更";
    String ELDER_CATERING_CHANGE_SUCCESS = "用户【{{#nickname}}】{{#createReqVO.id == null ? '发起' : '重新发起'}}长者【{{#elderName}}】的餐饮变更";


    String ELDER_PRICE_CHANGE_TYPE = "价格变更";
    String ELDER_PRICE_CHANGE_SUB_TYPE = "发起价格变更";
    String ELDER_PRICE_CHANGE_SUCCESS = "用户【{{#nickname}}】{{#createReqVO.id == null ? '发起' : '重新发起'}}长者【{{#elderName}}】的价格变更";


    String ELDER_TRANSFER_CHANGE_TYPE = "转院变更";
    String ELDER_TRANSFER_CHANGE_SUB_TYPE = "发起转院变更";

    String ELDER_TRANSFER_CHANGE_SUCCESS = "用户【{{#nickname}}】{{#createReqVO.id == null ? '发起' : '重新发起'}}长者【{{#elderName}}】的转院变更";

    String ELDER_TRANSFER_CHANGE_SYNC_DATA_SUB_TYPE = "同步数据";
    String ELDER_TRANSFER_CHANGE_SYNC_DATA_SUCCESS = "转院变更，用户【{{#nickname}}】从{{#originalName}}同步长者【{{#elderName}}】" +
            "的{{#createReqVO.transferType == 0 ? '基本信息' : '其它'}}到{{#expectName}}";


    String ELDER_CHECK_IN_TYPE = "办理入住";
    String ELDER_CHECK_IN_CREATE_SUB_TYPE = "发起办理入住";

    String ELDER_CHECK_IN_CREATE_SUCCESS = "用户【{{#nickname}}】{{#createReqVO.id == null ? '发起' : '重新发起'}}长者【{{#elderName}}】的办理入住";


    // ======================= 流程实例 =======================
    String BPM_PROCESS_INSTANCE_TYPE = "{{#instanceName}}";

    String BPM_PROCESS_INSTANCE_CANCEL_SUB_TYPE = "撤销流程";
    String BPM_PROCESS_INSTANCE_CANCEL_SUCCESS = "用户【{{#nickname}}】撤销长者【{{#elderName}}】的【{{#instanceName}}】,原因：{{#cancelReqVO.reason}}";

    String BPM_PROCESS_INSTANCE_APPROVE_SUB_TYPE = "同意审批流程";

    String BPM_PROCESS_INSTANCE_APPROVE_SUCCESS = "用户【{{#nickname}}】同意长者【{{#elderName}}】的【{{#instanceName}}】,审批意见：{{#reqVO.reason}}";

    String BPM_PROCESS_INSTANCE_REJECT_SUB_TYPE = "不同意审批流程";
    String BPM_PROCESS_INSTANCE_REJECT_SUCCESS = "用户【{{#nickname}}】不同意长者【{{#elderName}}】的【{{#instanceName}}】,审批意见：{{#reqVO.reason}}";



    // ======================= 消息 =======================
    String NOTIFY_MESSAGE_TYPE = "系统消息";

    String NOTIFY_MESSAGE_UPDATE_READ_TYPE = "已读消息";
    String NOTIFY_MESSAGE_UPDATE_READ_SUCCESS = "用户【{{#nickname}}】已读：{{#templateContent}}";


    // ======================= 供应商 =======================
    String SUPPLIER_INFO_TYPE = "供应商信息";

    String SUPPLIER_INFO_CREATE_SUB_TYPE = "创建供应商";
    String SUPPLIER_INFO_CREATE_SUCCESS = "创建供应商：{{#createReqVO.supplierName}}";

    String SUPPLIER_INFO_UPDATE_SUB_TYPE = "修改供应商";
    String SUPPLIER_INFO_UPDATE_SUCCESS = "修改供应商：{{#updateReqVO.supplierName}}";

    String SUPPLIER_INFO_IMPORT_SUB_TYPE = "导入供应商";

    String SUPPLIER_INFO_IMPORT_SUCCESS = "导入新增或修改 {{#size}} 条供应商信息";


    // ======================= 设备 =======================
    String DEVICE_PRODUCT_TYPE = "设备管理";

    String DEVICE_PRODUCT_CREATE_SUB_TYPE = "创建设备";
    String DEVICE_PRODUCT_CREATE_SUCCESS = "创建设备：{{#createReqVO.deviceName}}";

    String DEVICE_PRODUCT_UPDATE_SUB_TYPE = "编辑设备";
    String DEVICE_PRODUCT_UPDATE_SUCCESS = "编辑设备：{{#updateReqVO.deviceName}}";

    String DEVICE_PRODUCT_DELETE_SUB_TYPE = "删除设备";
    String DEVICE_PRODUCT_DELETE_SUCCESS = "删除设备：{{#deviceName}}";
    String DEVICE_PRODUCT_BATCH_DELETE_SUCCESS = "批量删除设备：{{#updateReqVO.ids}}";
    String DEVICE_PRODUCT_BIND_SUB_TYPE = "绑定设备";
    String DEVICE_PRODUCT_BIND_SUCCESS = "绑定设备：{{#deviceName}}";
    String DEVICE_PRODUCT_BATCH_BIND_SUCCESS = "批量绑定设备：{{#updateReqVO.ids}}";
    String DEVICE_PRODUCT_UNBIND_SUB_TYPE = "解绑设备设备";
    String DEVICE_PRODUCT_UNBIND_SUCCESS = "解绑设备：{{#deviceName}}";
    String DEVICE_PRODUCT_BATCH_UNBIND_SUCCESS = "批量绑定设备：{{#updateReqVO.ids}}";
    String DEVICE_PRODUCT_UPDATE_WARN_SUB_TYPE = "修改告警人";
    String DEVICE_PRODUCT_UPDATE_WARN_SUCCESS = "修改告警人，用户id：{{#userIds}}，部门id：{{#deptIds}}";
    String DEVICE_PRODUCT_DELETE_WARN_SUB_TYPE = "删除告警人";
    String DEVICE_PRODUCT_DELETE_WARN_SUCCESS = "删除告警人：{{#id}}";

    // ======================= 设备模型 =======================
    String DEVICE_MODEL_TYPE = "设备模型";

    String DEVICE_MODEL_CREATE_UPDATE_SUB_TYPE = "{{#operate}}设备模型";
    String DEVICE_MODEL_CREATE_UPDATE_SUCCESS = "{{#operate}}设备模型：{{#createReqVO.deviceName}}";
    String DEVICE_MODEL_DELETE_SUB_TYPE = "删除设备模型";
    String DEVICE_MODEL_DELETE_SUCCESS = "删除设备模型：{{#createReqVO.deviceName}}";

    // ======================= 设备分类 =======================
    String DEVICE_CATEGORY_TYPE = "设备分类";

    String DEVICE_CATEGORY_CREATE_SUB_TYPE = "创建设备分类";
    String DEVICE_CATEGORY_CREATE_SUCCESS = "创建设备分类：{{#createReqVO.name}}";

    String DEVICE_CATEGORY_UPDATE_SUB_TYPE = "编辑设备分类";
    String DEVICE_CATEGORY_UPDATE_SUCCESS = "编辑设备分类：{{#updateReqVO.name}}";

    String DEVICE_CATEGORY_DELETE_SUB_TYPE = "删除设备分类";
    String DEVICE_CATEGORY_DELETE_SUCCESS = "删除设备分类：{{#name}}";

    // ======================= 设备厂商 =======================
    String DEVICE_MANUFACTURER_TYPE = "设备厂商";

    String DEVICE_MANUFACTURER_CREATE_SUB_TYPE = "创建设备厂商";
    String DEVICE_MANUFACTURER_CREATE_SUCCESS = "创建设备厂商：{{#createReqVO.name}}";

    String DEVICE_MANUFACTURER_UPDATE_SUB_TYPE = "编辑设备厂商";
    String DEVICE_MANUFACTURER_UPDATE_SUCCESS = "编辑设备厂商：{{#updateReqVO.name}}";

    String DEVICE_MANUFACTURER_DELETE_SUB_TYPE = "删除设备厂商";
    String DEVICE_MANUFACTURER_DELETE_SUCCESS = "删除设备厂商：{{#name}}";



    // ======================= 会员开卡 =======================

    String MEMBER_CARD_TYPE = "会员开卡";

    String MEMBER_CARD_CREATE_SUB_TYPE = "会员开建新卡";

    String MEMBER_CARD_CREATE_SUCCESS = "【{{#name}}】会员开建新卡成功";



    // ======================= 志愿者 =======================

    String VOLUNTEER_TEAM_TYPE = "志愿者团队";

    String VOLUNTEER_TEAM_CREATE_SUB_TYPE = "创建志愿者团队";
    String VOLUNTEER_TEAM_CREATE_SUCCESS = "创建志愿者团队：{{#createReqVO.teamName}}";

    String VOLUNTEER_TEAM_UPDATE_SUB_TYPE = "修改志愿者团队";
    String VOLUNTEER_TEAM_UPDATE_SUCCESS = "修改志愿者团队：{{#updateReqVO.teamName}}";

    String VOLUNTEER_TEAM_DELETE_SUB_TYPE = "删除志愿者团队";
    String VOLUNTEER_TEAM_DELETE_SUCCESS = "删除志愿者团队：{{#teamName}}";


    String VOLUNTEER_TYPE = "志愿者";

    String VOLUNTEER_CREATE_SUB_TYPE = "创建志愿者";
    String VOLUNTEER_CREATE_SUCCESS = "创建志愿者：{{#createReqVO.name}}";

    String VOLUNTEER_UPDATE_SUB_TYPE = "修改志愿者";
    String VOLUNTEER_UPDATE_SUCCESS = "修改志愿者：{{#updateReqVO.name}}";


    String VOLUNTEER_DELETE_SUB_TYPE = "删除志愿者";
    String VOLUNTEER_DELETE_SUCCESS = "删除志愿者：{{#name}}";


}
