Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • Comunicacao HSL Wiki Comunicacao HSL Wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Comunicacao HSL
  • Comunicacao HSL WikiComunicacao HSL Wiki
  • Wiki
  • banco_dados

banco_dados · Changes

Page history
Schemas do banco de dados adicionado authored Oct 27, 2021 by Lucas Abruzzi da Rosa's avatar Lucas Abruzzi da Rosa
Show whitespace changes
Inline Side-by-side
banco_dados.md
View page @ 168b2189
......@@ -32,20 +32,176 @@ Para o desenvolvimento do projeto, a tecnologia de banco de dados escolhida foi
<img src="https://tools.ages.pucrs.br/comunicacao-hsl/comunicacao-hsl-wiki/raw/master/Images/db_diagrams/ModeloLogicoRelacional.png">
TBD
## Implementação
TBD
### Knex
TBD
### Schemas
TBD
#### Postgrees
TBD
**Announcements**
```java
@Entity
@Table(name = "announcements")
@Data
@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
@Proxy(lazy = false)
public class Announcement {
@Id
@Column(nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "idDepartment", referencedColumnName="id")
private Department department;
@Column(nullable = false)
private String title;
@Column(nullable = false)
private String content;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinColumn(name = "idAttachment")
private List<Attachment> attachments;
@Column(nullable = false)
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm", iso = DateTimeFormat.ISO.DATE_TIME)
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime date;
@Transient
private boolean viewed;
}
```
**Attachments**
```java
@Entity
@Table(name = "attachments")
@Data
@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
@Proxy(lazy = false)
public class Attachment {
@Id
@Column
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column
private String fileName;
@Transient
private String contentAsBase64;
}
```
**Departments**
```java
@Entity
@Table(name = "departments")
@Data
@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
@Proxy(lazy = false)
public class Department {
@Id
@Column(nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false)
private String name;
@Column(nullable = false)
private String branchLine;
@Column(nullable = false)
private String email;
}
```
**Users**
```java
@Entity
@Table(name = "users")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
@Proxy(lazy = false)
public class User {
@Id
@Column(nullable = false)
private Long registry;
@Column(nullable = false)
private String name;
@Column(nullable = false)
private boolean isAdmin;
@Column(nullable = false)
private int day;
@Column(nullable = false)
private int month;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "idDepartment", referencedColumnName = "id")
private Department department;
@Column
private boolean active;
@Column
private String email;
@Column
private String phone;
@Column
@JsonIgnore
private String mobileEndpointArn;
@Column
@JsonIgnore
private String mobileEndpointSubscriptionArn;
@Column(nullable = false)
private String occupation;
}
```
**UserAnnouncementViews**
```java
@Entity
@Table(name = "users_announcements_view")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class UserAnnouncementView {
@Id
@Column(nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ManyToOne(cascade = CascadeType.MERGE, fetch = FetchType.EAGER)
@JoinColumn(name = "idUser", referencedColumnName = "registry")
private User user;
@ManyToOne(cascade = CascadeType.REFRESH, fetch = FetchType.EAGER)
@JoinColumn(name = "idAnnouncement", referencedColumnName = "id")
private Announcement announcement;
@Column
private boolean viewed;
}
```
\ No newline at end of file
Clone repository
  • Utilizando a wiki
    • adicionando imagens
    • escrevendo em markdown
    • wiki no editor de texto
  • arquitetura
  • banco_dados
  • codigo
  • configuracao
  • design_mockups
  • escopo
  • Home
  • instrucoes
  • instrucoesAws
  • processo
  • qualidade
  • utilizacao