Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 5 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
[![Release and Deploy](https://github.com/dynamiatools/module-saas/actions/workflows/release.yml/badge.svg)](https://github.com/dynamiatools/module-saas/actions/workflows/release.yml)

# SaaS Module

This [DynamiaTools](https://www.dynamia.tools) extension allow you to create modules with multi tenant support por SaaS applications. Its manage accounts,
payments, account status, data isolation by account and more

Expand All @@ -26,24 +25,24 @@ Add the following dependencies to project classpath
<dependency>
<groupId>tools.dynamia.modules</groupId>
<artifactId>tools.dynamia.modules.saas</artifactId>
<version>3.1.3</version>
<version>3.2.2</version>
</dependency>
```

```xml
<dependency>
<groupId>tools.dynamia.modules</groupId>
<artifactId>tools.dynamia.modules.saas.ui</artifactId>
<version>3.1.3</version>
<version>3.2.2</version>
</dependency>

```

**Gradle**

```groovy
compile 'tools.dynamia.modules:tools.dynamia.modules.saas:3.1.3'
compile 'tools.dynamia.modules:tools.dynamia.modules.saas.ui:3.1.3'
compile 'tools.dynamia.modules:tools.dynamia.modules.saas:3.2.2'
compile 'tools.dynamia.modules:tools.dynamia.modules.saas.ui:3.2.2'
```

## Usage
Expand Down Expand Up @@ -82,7 +81,7 @@ For your modules you only require the API dependency
<dependency>
<groupId>tools.dynamia.modules</groupId>
<artifactId>tools.dynamia.modules.saas.api</artifactId>
<version>3.1.3</version>
<version>3.2.2</version>
</dependency>
```

Expand Down
4 changes: 2 additions & 2 deletions sources/api/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,13 @@
<parent>
<groupId>tools.dynamia.modules</groupId>
<artifactId>tools.dynamia.modules.saas.parent</artifactId>
<version>3.2.1</version>
<version>3.2.2</version>
</parent>
<artifactId>tools.dynamia.modules.saas.api</artifactId>

<name>DynamiaModules - SaaS API</name>
<url>https://www.dynamia.tools/modules/saas</url>
<version>3.2.1</version>
<version>3.2.2</version>

<build>
<plugins>
Expand Down
8 changes: 4 additions & 4 deletions sources/core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@
<parent>
<groupId>tools.dynamia.modules</groupId>
<artifactId>tools.dynamia.modules.saas.parent</artifactId>
<version>3.2.1</version>
<version>3.2.2</version>
</parent>
<artifactId>tools.dynamia.modules.saas</artifactId>
<version>3.2.1</version>
<version>3.2.2</version>
<name>DynamiaModules - SaaS Core</name>
<url>https://www.dynamia.tools/modules/saas</url>

Expand All @@ -49,12 +49,12 @@
<dependency>
<groupId>tools.dynamia.modules</groupId>
<artifactId>tools.dynamia.modules.saas.api</artifactId>
<version>3.2.1</version>
<version>3.2.2</version>
</dependency>
<dependency>
<groupId>tools.dynamia.modules</groupId>
<artifactId>tools.dynamia.modules.saas.jpa</artifactId>
<version>3.2.1</version>
<version>3.2.2</version>
</dependency>
<dependency>
<groupId>junit</groupId>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
package tools.dynamia.modules.saas.domain;

import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import jakarta.persistence.*;
import jakarta.validation.constraints.NotNull;
import tools.dynamia.domain.jpa.SimpleEntity;
import tools.dynamia.domain.query.QueryConditions;
import tools.dynamia.domain.query.QueryParameters;
import tools.dynamia.domain.util.DomainUtils;

import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.TimeZone;

Expand All @@ -28,6 +30,10 @@ public class AccountRegion extends SimpleEntity {
private String currency;
private String timeZone = TimeZone.getDefault().getDisplayName();
private String locale = Locale.getDefault().getDisplayName();
private String invoiceType;

@OneToMany(mappedBy = "region", cascade = CascadeType.ALL, orphanRemoval = true)
private List<AccountRegionParameter> parameters = new ArrayList<>();

public String getName() {
return name;
Expand Down Expand Up @@ -106,4 +112,28 @@ public String toString() {
return name;
}

public String getInvoiceType() {
return invoiceType;
}

public void setInvoiceType(String invoiceType) {
this.invoiceType = invoiceType;
}

public List<AccountRegionParameter> getParameters() {
return parameters;
}

public void setParameters(List<AccountRegionParameter> parameters) {
this.parameters = parameters;
}

public AccountRegionParameter findParameter(String name) {
if (getId() == null) {
return parameters.stream().filter(p -> p.getName().equals(name)).findFirst().orElse(null);
} else {
return DomainUtils.lookupCrudService().findSingle(AccountRegionParameter.class, QueryParameters.with("region", this)
.add("name", QueryConditions.eq(name)));
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package tools.dynamia.modules.saas.domain;

import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import jakarta.validation.constraints.NotNull;
import tools.dynamia.domain.Descriptor;
import tools.dynamia.domain.jpa.SimpleEntity;

@Entity
@Table(name = "saas_regions_parameters")
@Descriptor(fields = {"name", "value"}, viewParams = "columns: 1")
public class AccountRegionParameter extends SimpleEntity {

@ManyToOne
private AccountRegion region;
@NotNull
private String name;
@Column(length = 2000)
@NotNull
@Descriptor(params = {"multiline: true", "height: 100px"})
private String value;

public AccountRegion getRegion() {
return region;
}

public void setRegion(AccountRegion region) {
this.region = region;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getValue() {
return value;
}

public void setValue(String value) {
this.value = value;
}
}
4 changes: 2 additions & 2 deletions sources/jpa/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
<parent>
<artifactId>tools.dynamia.modules.saas.parent</artifactId>
<groupId>tools.dynamia.modules</groupId>
<version>3.2.1</version>
<version>3.2.2</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<name>DynamiaModules - SaaS JPA</name>
Expand All @@ -33,7 +33,7 @@
<dependency>
<groupId>tools.dynamia.modules</groupId>
<artifactId>tools.dynamia.modules.saas.api</artifactId>
<version>3.2.1</version>
<version>3.2.2</version>
</dependency>
<dependency>
<groupId>tools.dynamia</groupId>
Expand Down
2 changes: 1 addition & 1 deletion sources/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>tools.dynamia.modules</groupId>
<artifactId>tools.dynamia.modules.saas.parent</artifactId>
<version>3.2.1</version>
<version>3.2.2</version>
<packaging>pom</packaging>
<name>DynamiaModules - SaaS</name>
<description>DynamiaTools extension to create SaaS applications with accounts control and multi tenants in same
Expand Down
4 changes: 2 additions & 2 deletions sources/remote/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
<parent>
<artifactId>tools.dynamia.modules.saas.parent</artifactId>
<groupId>tools.dynamia.modules</groupId>
<version>3.2.1</version>
<version>3.2.2</version>
</parent>
<modelVersion>4.0.0</modelVersion>

Expand All @@ -35,7 +35,7 @@
<dependency>
<groupId>tools.dynamia.modules</groupId>
<artifactId>tools.dynamia.modules.saas.jpa</artifactId>
<version>3.2.1</version>
<version>3.2.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.annotation/javax.annotation-api -->
<dependency>
Expand Down
4 changes: 2 additions & 2 deletions sources/ui/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@
<parent>
<groupId>tools.dynamia.modules</groupId>
<artifactId>tools.dynamia.modules.saas.parent</artifactId>
<version>3.2.1</version>
<version>3.2.2</version>
</parent>
<artifactId>tools.dynamia.modules.saas.ui</artifactId>
<version>3.2.1</version>
<version>3.2.2</version>
<name>DynamiaModules - SaaS UI</name>
<url>https://www.dynamia.tools/modules/saas</url>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,10 @@ fields:
paymentProvider:
mainAccount:
currency:
invoiceType:
timeZone:
component: timezonebox
locale:
component: localebox
component: localebox
parameters:
component: crudview