### evm-brand
#### Create Announcement
```plantuml
skinparam responseMessageBelowArrow true
title Create Announcement - Proposed Interaction Diagram
participant "client" as c
participant "evm-brand" as eb
database "brand" as e
c -> eb : create \nannouncement
activate eb
eb -> e : create \nannouncement \n(insert to brand_announcement)
e -> eb : announcement id, recipient_id
eb -> e :insert to brand_announcement_recipients
e -> eb : announcement data
return announcement
```
```plantuml
title Create Announcement - Proposed Activities Diagram
start
:Check user
authorization;
if () then (authorized)
:Create Announcement;
stop
else (unauthorized)
end
endif
```
#### Delete Announcement
```plantuml
skinparam responseMessageBelowArrow true
title Delete Announcement - Proposed Interaction Diagram
participant "client" as c
participant "evm-brand" as eb
database "brand" as e
c -> eb : delete \nannouncement
activate eb
eb -> e : get \nannouncement
eb -> eb : validate announcement data
alt if announcement data invalid
eb -> c : error announcement data invalid
end
eb -> e !! : delete
return success message
```
```plantuml
title Delete Announcement - Proposed Activities Diagram
start
:Check user
authorization;
if () then (authorized)
:Get Announcement by Id;
if (Id Exist?) then (Delete announcement)
:Announcement id;
stop
else ()
end
endif
else (unauthorized)
end
endif
```
#### Edit Announcement
```plantuml
skinparam responseMessageBelowArrow true
title Edit Announcement - Proposed Interaction Diagram
participant "client" as c
participant "evm-brand" as eb
database "brand" as e
c -> eb : edit \nannouncement
activate eb
eb -> e : get \nannouncement
eb -> eb : validate announcement data active / deactive
alt if announcement data invalid or active
eb -> c : error announcement data invalid
end
eb -> eb : validate announcement data exist or not
alt if announcement data not exist
eb -> c : error announcement data invalid
end
eb -> e : update \nannouncement
e -> eb : announcement data
return announcement
```
```plantuml
title Edit Announcement - Proposed Activities Diagram
start
:Check user
authorization;
if () then (authorized)
:Get Announcement by Id;
if (Id Exist?) then (Check active or not)
if (active?) then (Edit announcement)
:Announcement;
stop
else ()
end
endif
else ()
end
endif
else (unauthorized)
end
endif
```
#### Deactivate / activate Announcement
```plantuml
skinparam responseMessageBelowArrow true
title Deactivate / activate Announcement - Proposed Interaction Diagram
participant "client" as c
participant "evm-brand" as eb
database "brand" as e
c -> eb : update \nannouncement
activate eb
eb -> e : get \nannouncement
eb -> eb : validate announcement data
alt if announcement data invalid
eb -> c : error announcement data invalid
end
eb -> e : update active/deactive \nannouncement
e -> eb : announcement data
return announcement
```
```plantuml
title Deactivate / activate Announcement - Proposed Activities Diagram
start
:Check user
authorization;
if () then (authorized)
:Get Announcement by Id;
if (Id Exist?) then (Update active/deactive announcement)
:Announcement;
stop
else ()
end
endif
else (unauthorized)
end
endif
```
#### Get List Announcement
```plantuml
skinparam responseMessageBelowArrow true
title Get List Announcement - Proposed Interaction Diagram
participant "client" as c
participant "evm-brand" as eb
database "brand" as e
c -> eb : get list \nannouncement
activate eb
eb -> e : get list \nannouncement
eb -> eb : validate announcement data
alt if announcement data invalid
eb -> c : error announcement data invalid
end
e -> eb : announcement data
return announcement
```
```plantuml
title Get List Announcement - Proposed Activities Diagram
start
:Check user
authorization;
if () then (authorized)
:Get Announcement;
if (Exist?) then (Get announcement)
:Announcement;
stop
else ()
end
endif
else (unauthorized)
end
endif
```
#### Get Detail Announcement
```plantuml
skinparam responseMessageBelowArrow true
title Get Detail Announcement - Proposed Interaction Diagram
participant "client" as c
participant "evm-brand" as eb
database "brand" as e
c -> eb : get detail \nannouncement
activate eb
eb -> e : get detail \nannouncement
eb -> eb : validate announcement data exist
alt if announcement data invalid or not exist
eb -> c : error announcement data invalid
end
e -> eb : announcement data
return announcement
```
```plantuml
title Get Detail Announcement - Proposed Activities Diagram
start
:Check user
authorization;
if () then (authorized)
:Get Detail Announcement;
if (Id Exist?) then (Get announcement)
:Announcement;
stop
else ()
end
endif
else (unauthorized)
end
endif
```
#### Search Announcement
```plantuml
skinparam responseMessageBelowArrow true
title Search Announcement - Proposed Interaction Diagram
participant "client" as c
participant "evm-brand" as eb
database "brand" as e
c -> eb : search \nannouncement by name
activate eb
eb -> e : get list \nannouncement
e -> eb : announcement list
return announcement list
```
```plantuml
title Search Announcement - Proposed Activities Diagram
start
:Check user
authorization;
if () then (authorized)
:Get Announcement List;
stop
else (unauthorized)
end
endif
```
#### Filter Announcement
```plantuml
skinparam responseMessageBelowArrow true
title Filter Announcement by Kategori - Proposed Interaction Diagram
participant "client" as c
participant "evm-brand" as eb
database "brand" as e
c -> eb : filter \nannouncement by kategori
activate eb
eb -> e : get list \nannouncement
e -> eb : announcement list
return announcement list
```
```plantuml
title Filter Announcement by Kategori - Proposed Activities Diagram
start
:Check user
authorization;
if () then (authorized)
:Get Announcement List;
stop
else (unauthorized)
end
endif
```
```plantuml
skinparam responseMessageBelowArrow true
title Filter Announcement by Status - Proposed Interaction Diagram
participant "client" as c
participant "evm-brand" as eb
database "brand" as e
c -> eb : filter \nannouncement by Status
activate eb
eb -> e : get list \nannouncement
e -> eb : announcement list
return announcement list
```
```plantuml
title Filter Announcement by Status - Proposed Activities Diagram
start
:Check user
authorization;
if () then (authorized)
:Get Announcement List;
stop
else (unauthorized)
end
endif
```
#### Create Announcement Reader
```plantuml
skinparam responseMessageBelowArrow true
title Create Announcement Reader - Proposed Interaction Diagram
participant "client" as c
participant "evm-brand" as eb
database "brand" as e
c -> eb : create \nannouncement reader
activate eb
eb -> e : create \nannouncement \n(insert to brand_announcement_reader)
e -> eb : announcement data
return announcement data
```
```plantuml
title Create Announcement Reader - Proposed Activities Diagram
start
:Check user
authorization;
if () then (authorized)
:Create Announcement Reader;
stop
else (unauthorized)
end
endif
```