Last active
September 20, 2021 09:20
-
-
Save deepu105/8e568eb7b5b5e3c00af0fdf3d2cf71ba to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
application { | |
config { | |
baseName store | |
applicationType gateway | |
packageName com.jhipster.demo.store | |
serviceDiscoveryType no | |
authenticationType jwt | |
prodDatabaseType mysql | |
cacheProvider hazelcast | |
buildTool gradle | |
clientFramework react | |
} | |
entities * | |
} | |
application { | |
config { | |
baseName product | |
applicationType microservice | |
packageName com.jhipster.demo.product | |
serviceDiscoveryType no | |
authenticationType jwt | |
prodDatabaseType mysql | |
cacheProvider hazelcast | |
buildTool gradle | |
serverPort 8081 | |
} | |
entities Product, ProductCategory, ProductOrder, OrderItem | |
} | |
application { | |
config { | |
baseName invoice | |
applicationType microservice | |
packageName com.jhipster.demo.invoice | |
serviceDiscoveryType no | |
authenticationType jwt | |
prodDatabaseType mysql | |
buildTool gradle | |
serverPort 8082 | |
} | |
entities Invoice, Shipment | |
} | |
application { | |
config { | |
baseName notification | |
applicationType microservice | |
packageName com.jhipster.demo.notification | |
serviceDiscoveryType no | |
authenticationType jwt | |
databaseType mongodb | |
cacheProvider no | |
enableHibernateCache false | |
buildTool gradle | |
serverPort 8083 | |
} | |
entities Notification | |
} | |
/** | |
* Entities for Store Gateway | |
*/ | |
// Customer for the store | |
entity Customer { | |
firstName String required | |
lastName String required | |
gender Gender required | |
email String required pattern(/^[^@\s]+@[^@\s]+\.[^@\s]+$/) | |
phone String required | |
addressLine1 String required | |
addressLine2 String | |
city String required | |
country String required | |
} | |
enum Gender { | |
MALE, FEMALE, OTHER | |
} | |
relationship OneToOne { | |
Customer{user(login) required} to User | |
} | |
service Customer with serviceClass | |
paginate Customer with pagination | |
/** | |
* Entities for product microservice | |
*/ | |
// Product sold by the Online store | |
entity Product { | |
name String required | |
description String | |
price BigDecimal required min(0) | |
size Size required | |
image ImageBlob | |
} | |
enum Size { | |
S, M, L, XL, XXL | |
} | |
entity ProductCategory { | |
name String required | |
description String | |
} | |
entity ProductOrder { | |
placedDate Instant required | |
status OrderStatus required | |
code String required | |
invoiceId Long | |
customer String required | |
} | |
enum OrderStatus { | |
COMPLETED, PENDING, CANCELLED | |
} | |
entity OrderItem { | |
quantity Integer required min(0) | |
totalPrice BigDecimal required min(0) | |
status OrderItemStatus required | |
} | |
enum OrderItemStatus { | |
AVAILABLE, OUT_OF_STOCK, BACK_ORDER | |
} | |
relationship ManyToOne { | |
OrderItem{product(name) required} to Product | |
} | |
relationship OneToMany { | |
ProductOrder{orderItem} to OrderItem{order(code) required} , | |
ProductCategory{product} to Product{productCategory(name)} | |
} | |
service Product, ProductCategory, ProductOrder, OrderItem with serviceClass | |
paginate Product, ProductOrder, OrderItem with pagination | |
microservice Product, ProductOrder, ProductCategory, OrderItem with product | |
/** | |
* Entities for Invoice microservice | |
*/ | |
// Invoice for sales | |
entity Invoice { | |
code String required | |
date Instant required | |
details String | |
status InvoiceStatus required | |
paymentMethod PaymentMethod required | |
paymentDate Instant required | |
paymentAmount BigDecimal required | |
} | |
enum InvoiceStatus { | |
PAID, ISSUED, CANCELLED | |
} | |
entity Shipment { | |
trackingCode String | |
date Instant required | |
details String | |
} | |
enum PaymentMethod { | |
CREDIT_CARD, CASH_ON_DELIVERY, PAYPAL | |
} | |
relationship OneToMany { | |
Invoice{shipment} to Shipment{invoice(code) required} | |
} | |
service Invoice, Shipment with serviceClass | |
paginate Invoice, Shipment with pagination | |
microservice Invoice, Shipment with invoice | |
/** | |
* Entities for notification microservice | |
*/ | |
entity Notification { | |
date Instant required | |
details String | |
sentDate Instant required | |
format NotificationType required | |
userId Long required | |
productId Long required | |
} | |
enum NotificationType { | |
EMAIL, SMS, PARCEL | |
} | |
microservice Notification with notification | |
/** | |
* Deployments | |
*/ | |
deployment { | |
deploymentType kubernetes | |
appsFolders [store, invoice, notification, product] | |
dockerRepositoryName "deepu105" | |
serviceDiscoveryType no | |
istio true | |
kubernetesServiceType Ingress | |
kubernetesNamespace jhipster | |
ingressDomain "146.148.30.85.nip.io" | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment