@Nullable
    protected DateRange getCreationDateRange(
            @Nullable DateRange creationDateRange,
            @Nullable DateRange expirationDateRange) {
        if (expirationDateRange == null) {
            return creationDateRange;
        }
        int expireAfterSeconds = getEntityExpireAfterSeconds();
        DateRange creationDateRangeFromExpiration = expireAfterSeconds > 0
                ? expirationDateRange.move(-expireAfterSeconds * 1000L)
                : null;
        if (creationDateRange == null) {
            return creationDateRangeFromExpiration;
        }
        if (creationDateRangeFromExpiration == null) {
            return creationDateRange;
        }
        return creationDateRange.intersect(creationDateRangeFromExpiration);
    }
@param options Note that the projection must specify the creation date field to return. The
               method does not specify the creation date field here for better performance.
turms-service/src/main/java/im/turms/service/domain/common/repository/ExpirableEntityRepository.java