# Wille - Will ###### tags: `wille` ## Domenski model ```plantuml WillDocument "*" --> "1" NaturalPerson: testator WillDocument "*" --> "1" Institution: createdByInstitution WillDocument "*" --> "0..1" Institution: proclaimedByInstitution WillDocument "*" --> "0..1" Attachment: cancellationFile ProclamationDocument "1" --> "*" NaturalPersonEntity: testators ProclamationDocument "*" --> "1" Institution: institution ProclamationDocument "*" --> "0..1" Attachment: determination ProclamationDocument "1" -up-> "*" WillDocument: wills class WillDocument << SearchableAndAuditable >> { number: String sentDate: DateTime depositedDate: DateTime source: WillDocumentSource state: WillState type: WillType officialActionType: WillOfficialActionType compilationDate: DateTime proclamationDate: DateTime storagePlace: String note: String proclamationNumber: String cancellationNote: String details: Map } class ProclamationDocument << SearchableAndAuditable >> { number: String proclamationDate: DateTime source: ProclamationDocumentSource state: ProclamationState caseNumber: String } enum WillDocumentSource { SYSTEM, NOTARIO } enum WillDocumentSource { NEW, SUBMITTED, CHANGE_REQUEST_SUBMITTED, PENDING, IN_PROCLAMATION,a CANCELLED, PROCLAIMED, UNKNOWN; } enum WilleType { HOLOGRAPHIC, ALLOGRAPHIC, COURT, INTERNATIONAL, NOTARY, UNKNOWN } enum WillOfficialActionType { DEPOSIT, VERIFICATION, CANCELLATION, RETURNED, NOTARIO_PROCLAIMED, UNKNOWN; } enum ProclamationDocumentSource { SYSTEM, NOTARIO } enum ProclamationState { NEW, IN_PROGRESS, CLOSED, ARCHIVED } ``` ## Kreiranje patch-eva i changelog-ova 1. Potrebno je da postoji kreiran **will** psql user ```sql= psql postgres -U postgres -c "create USER will with PASSWORD 'will'"; ``` 2. Kreiramo **will_prod_schema** bazu podataka u kojoj će biti kreirana šema sa produkcije ```sql= psql postgres -U postgres -c "select pg_terminate_backend(pid) from pg_stat_activity where datname = 'will_prod_schema'" psql postgres -U postgres -c "drop database if exists will_prod_schema" psql postgres -U postgres -c "create database will_prod_schema" psql postgres -U postgres -c "grant all privileges on database will_prod_schema to will" ``` 3. Kreiramo tabele (šemu) sa produkcije **Na willpriv**: - docker exec -it will_db_1 /bin/bash - pg_dump -U will -s > will_prod_schema.sql - exit - docker cp will_db_1:will_prod_schema.sql will_prod_schema.sql - exit - rsync -avc willpriv:will_prod_schema.sql . ```sql= psql will_prod_schema -U will < will_prod_schema.sql ``` 4. Kreiramo **will_dev_schema** bazu podataka u kojoj će biti kreirana trenutna šema podataka ```sql= psql postgres -U postgres -c "select pg_terminate_backend(pid) from pg_stat_activity where datname = 'will_dev_schema'" psql postgres -U postgres -c "drop database if exists will_dev_schema" psql postgres -U postgres -c "create database will_dev_schema" psql postgres -U postgres -c "grant all privileges on database will_dev_schema to will" ``` 5. Postavljamo prod konfiguraciju tako da kreira celokupnu šemu podataka u will_dev_schema bazi podataka kako bi napravili **diff** trenutne i šeme sa produkcije ```java= spring.jpa.hibernate.ddl-auto = create spring.datasource.url=jdbc:postgresql://localhost:5432/will_dev_schema spring.liquibase.enabled=false ``` **cd wille-will mvn spring-boot:run -Dspring-boot.run.profiles=prod** 6. Krairamo diff trenutne i šeme sa produkcije u fajlu db.changelog-diff.postgresql.sql ```shell= mvn liquibase:diff \ -Dliquibase.username=will \ -Dliquibase.url=jdbc:postgresql://localhost:5432/will_prod_schema \ -Dliquibase.referenceUsername=will \ -Dliquibase.referenceUrl=jdbc:postgresql://localhost:5432/will_dev_schema \ -Dliquibase.changeLogFile=src/main/resources/db/changelog/db.changelog-master.yaml \ -Dliquibase.diffChangeLogFile=src/main/resources/db/changelog/db.changelog-diff.postgresql.sql \ -Dliquibase.logging=DEBUG \ -Dliquibase.verbose=true ``` 7. Obrisati sve act_ i jv_ changeset-ove iz db.changelog-diff.postgresql.sql 8. Napraviti patch-eve i changelog fajlove pa ih zatim ukljuciti i u changelog-master (ostaviti db.changelog-diff.postgresql.sql cistim) 9. Vratiti prod konfiguraciju u prethodno stanje 10. Kreiramo will bazu podataka u koju će biti spušten prod will_prod.sql dump ```sql= psql postgres -U postgres -c "select pg_terminate_backend(pid) from pg_stat_activity where datname = 'will'" psql postgres -U postgres -c "drop database if exists will" psql postgres -U postgres -c "create database will" psql postgres -U postgres -c "grant all privileges on database will to will" ``` 11. Kreiramo tabele (šemu ukljucujuci i podatke) sa produkcije **Na willpriv:** - docker exec -it will_db_1 /bin/bash - pg_dump -U will > will_prod.sql - exit - docker cp will_db_1:will_prod.sql will_prod.sql - exit - rsync -avc willpriv:will_prod.sql . ```sql= psql will -U will < will_prod.sql ``` 12. Pokrenemo aplikaciju i proverimo da li se changelog-ovi kreiraju uspešno, u suprotnom ponoviti postupak dok se ne kreira željena šema **cd wille-will mvn spring-boot:run -Dspring-boot.run.profiles=prod** ## Testni korisnici | Sud | username | password | |:------------------------- |:------------- |:---------- | | OSNOVNI SUD U PANCEVU | prituzbetest1 | Pravda2022 | | VISI SUD U PANCEVU | prituzbetest2 | Pravda2022 | | APELACIONI SUD U BEOGRADU | prituzbetest3 | Pravda2022 | | VRHOVNI KASACIONI SUD | prituzbetest4 | Pravda2022 | | MINISTARSTVO PRAVDE | prituzbetest5 | Pravda2022 | | VISOKI SAVET SUDSTVA | prituzbetest6 | Pravda2022 | ## Spisak veb notifikacija i email obaveštenja #### Prihvaćen zahtev za izmenu zaveštanja | | Naslov | Opis | | ---------------- |:------------------------------------- |:------------------------------------------------------------------------------------------------------- | | **notifikacija** | Prihvaćen zahtev za izmenu zaveštanja | Javno-beležnička komora je prihvatila zahtev za izmenu zaveštanja {link}. Rok za izmenu je do: {datum}. | | **email** | | | #### Pristigao zahtev za izmenu zaveštanja | | Naslov | Opis | |:---------------- |:------------------------------------- |:---------------------------------------------------------------------------------------------- | | **notifikacija** | Pristigao zahtev za izmenu zaveštanja | Pristigao Vam je zahtev za izmenu zaveštanja {link} od notara {link}. Razlog izmene: {razlog}. | | **email** | | | #### Poslat zahtev za izmenu zaveštanja | | Naslov | Opis | |:---------------- |:---------------------------------- |:------------------------------------------------------------ | | **notifikacija** | Poslat zahtev za izmenu zaveštanja | Poslat zahtev za izmenu zaveštanja {link} zaveštaoca {link}. | | **email** | | | #### Odbijen zahtev za izmenu zaveštanja | | Naslov | Opis | |:---------------- |:----------------------------------- |:----------------------------------------------------------------------- | | **notifikacija** | Odbijen zahtev za izmenu zaveštanja | Odbijen zahtev za izmenu zaveštanja {link}. Razlog odbijanja: {razlog}. | | **email** | | | #### Uspešno zavedeno zaveštanje | | Naslov | Opis | |:---------------- |:--------------------------- |:------------------------------------------------------------------ | | **notifikacija** | Uspešno zavedeno zaveštanje | Uspešno ste zaveli zaveštanje zaveštaoca {link} pod brojem {broj}. | | **email** | | | #### Opozvano zaveštanje | | Naslov | Opis | |:---------------- |:------------------- |:------------------------------------------------------------------------------------- | | **notifikacija** | Opozvano zaveštanje | Opozvano zaveštanje zaveštaoca {link} pod brojem {broj}. Razlog opozivanja: {razlog}. | | **email** | | | #### Pristigao zahtev za proglašenje zaveštanja | | Naslov | Opis | |:---------------- |:------------------------------------------ |:----------------------------------------------------------------------------------------------------------------------------- | | **notifikacija** | Pristigao zahtev za proglašenje zaveštanja | Institucija {link} je pokrenula proces proglašenja zaveštanja zaveštaoca {link}. Proglasite dokumenta koja se čuvaju kod Vas. | | **email** | | | #### Pristigao zahtev za proglašenje zaveštanja | | Naslov | Opis | |:---------------- |:----------------------------------------- |:------------------------------------------------------------------------------------------------- | | **notifikacija** | Pristigao zahtev za proglašenje zaveštanja | Pristigao Vam je zahtev za kreiranje konačnog zapisnika proglašenja zaveštanja zaveštaoca {link}. | | **email** | | |