application {
    config {
        baseName <%= baseName %>-system
        applicationType microservice
        serverPort 8081
        builtInServices [sms, idm<%= useCommonTable ? ', metadata' : ''%>]
        languages [<%= languages %>]
        ormTool <%= ormTool %>
        useLombok <%= useLombok %>
        packageName <%= packageName %>
        databaseType <%= databaseType %>
        prodDatabaseType <%= prodDatabaseType %>
        devDatabaseType <%= devDatabaseType %>
        authenticationType <%= authenticationType %>
        serviceDiscoveryType <%= serviceDiscoveryType %>
        enableTranslation <%= enableTranslation %>
        languages [<%= languages %>]
        nativeLanguage <%= nativeLanguage %>
        multiModule <%= multiModule %>
        smsProvider <%= smsProvider %>
        javaVersion <%= javaVersion %>
        skipUserManagement false
        jwtSecretKey "<%= jwtSecretKey %>"
        useCommonTable <%= useCommonTable %>
        clientOptions "<%= clientFramework %>"
        cacheProvider <%= cacheProvider %>
        useMultiTenant <%= useMultiTenant %>
        softDelete <%= softDelete %>
    }
    <%_
    const entityList = [];
    if (jobScheduler === 'quartz') {
        entityList.push('TaskJobConfig');
    }
    if (useMultiTenant) {
        entityList.push('Tenant');
    }
    _%>
    entities AbstractAuditingEntity, User, Authority, ApiPermission, ViewPermission, Department, BusinessType, Position, Dictionary, SysFillRule, FillRuleItem, RegionCode, SmsMessage, SmsTemplate, Announcement, AnnouncementRecord, SmsConfig<% if (entityList.length > 0) { %>, <%= entityList.join(', ') %><% } %><%_ if (useCommonTable) { %>, CommonTable, CommonTableField, CommonTableRelationship<%_ if (ormTool === 'hibernate') { _%>,CommonBigDecimal, CommonLocalDate, CommonTextBlob, CommonDouble, CommonFloat, CommonZonedDateTime, CommonString, CommonBoolean, CommonLong, CommonInteger, CommonExtData<%_ } _%><%_ } %>
}
application {
    config {
        baseName <%= baseName %>-resource
        applicationType microservice
        serverPort 8082
        builtInServices [oss<%= useCommonTable ? ', metadata' : ''%>]
        ormTool <%= ormTool %>
        useLombok <%= useLombok %>
        packageName <%= packageName %>
        databaseType <%= databaseType %>
        prodDatabaseType <%= prodDatabaseType %>
        devDatabaseType <%= devDatabaseType %>
        authenticationType <%= authenticationType %>
        multiModule <%= multiModule %>
        enableTranslation <%= enableTranslation %>
        languages [<%= languages %>]
        nativeLanguage <%= nativeLanguage %>
        ossProvider <%= ossProvider %>
        javaVersion <%= javaVersion %>
        useCommonTable <%= useCommonTable %>
        serviceDiscoveryType <%= serviceDiscoveryType %>
        jwtSecretKey "<%= jwtSecretKey %>"
        skipUserManagement true
        cacheProvider <%= cacheProvider %>
        useMultiTenant <%= useMultiTenant %>
        softDelete <%= softDelete %>
    }
    entities AbstractAuditingEntity, ResourceCategory, UploadFile, UploadImage, OssConfig<%_ if (useCommonTable) { %>, CommonTable, CommonTableField, CommonTableRelationship<%_ if (ormTool === 'hibernate') { _%>,CommonBigDecimal, CommonLocalDate, CommonTextBlob, CommonDouble, CommonFloat, CommonZonedDateTime, CommonString, CommonBoolean, CommonLong, CommonInteger, CommonExtData<%_ } _%><%_ } %>
}

application {
    config {
        baseName <%= baseName %>-report
        applicationType microservice
        serverPort 8084
        builtInServices [report<%= useCommonTable ? ', metadata' : ''%>]
        ormTool <%= ormTool %>
        useLombok <%= useLombok %>
        packageName <%= packageName %>
        databaseType <%= databaseType %>
        prodDatabaseType <%= prodDatabaseType %>
        devDatabaseType <%= devDatabaseType %>
        authenticationType <%= authenticationType %>
        enableTranslation <%= enableTranslation %>
        languages [<%= languages %>]
        nativeLanguage <%= nativeLanguage %>
        multiModule <%= multiModule %>
        javaVersion <%= javaVersion %>
        useCommonTable <%= useCommonTable %>
        serviceDiscoveryType <%= serviceDiscoveryType %>
        jwtSecretKey "<%= jwtSecretKey %>"
        skipUserManagement true
        cacheProvider <%= cacheProvider %>
        useMultiTenant <%= useMultiTenant %>
        softDelete <%= softDelete %>
    }
    entities AbstractAuditingEntity<%_ if (useCommonTable) { %>, CommonTable, CommonTableField, CommonTableRelationship<%_ if (ormTool === 'hibernate') { _%>,CommonBigDecimal, CommonLocalDate, CommonTextBlob, CommonDouble, CommonFloat, CommonZonedDateTime, CommonString, CommonBoolean, CommonLong, CommonInteger, CommonExtData<%_ } _%><%_ } %>
}
application {
    config {
        baseName <%= baseName %>-log
        applicationType microservice
        serverPort 8085
        useLombok <%= useLombok %>
        ormTool <%= ormTool %>
        javaVersion <%= javaVersion %>
        packageName <%= packageName %>
        databaseType <%= databaseType %>
        prodDatabaseType <%= prodDatabaseType %>
        devDatabaseType <%= devDatabaseType %>
        authenticationType <%= authenticationType %>
        builtInServices [log<%= useCommonTable ? ', metadata' : ''%>]
        enableTranslation <%= enableTranslation %>
        languages [<%= languages %>]
        nativeLanguage <%= nativeLanguage %>
        multiModule <%= multiModule %>
        useCommonTable <%= useCommonTable %>
        serviceDiscoveryType <%= serviceDiscoveryType %>
        jwtSecretKey "<%= jwtSecretKey %>"
        skipUserManagement true
        cacheProvider <%= cacheProvider %>
        useMultiTenant <%= useMultiTenant %>
        softDelete <%= softDelete %>
    }
    entities SysLog, AbstractAuditingEntity<%_ if (useCommonTable) { %>, CommonTable, CommonTableField, CommonTableRelationship<%_ if (ormTool === 'hibernate') { _%>,CommonBigDecimal, CommonLocalDate, CommonTextBlob, CommonDouble, CommonFloat, CommonZonedDateTime, CommonString, CommonBoolean, CommonLong, CommonInteger, CommonExtData<%_ } _%><%_ } %>
}
