JuyeoungJun / cron-monitoring

for cron-monitoring
0 stars 0 forks source link

엔티티 다이어그램 설계 #39

Closed JuyeoungJun closed 3 years ago

JuyeoungJun commented 3 years ago

In GitLab by @gm2202981 on Jun 10, 2021, 09:13

개요

DB 테이블과 매핑되는 엔티티 클래스 설계

구현 목표

작업자

작업일정

1. 세부 설계: 2021-06-10 (진행중)
JuyeoungJun commented 3 years ago

In GitLab by @gm2202981 on Jun 10, 2021, 09:13

changed due date to June 14, 2021

JuyeoungJun commented 3 years ago

In GitLab by @gm2202981 on Jun 10, 2021, 09:14

assigned to @gm2202981

JuyeoungJun commented 3 years ago

In GitLab by @gm2202981 on Jun 10, 2021, 09:14

assigned to @gm2202983 and unassigned @gm2202981

JuyeoungJun commented 3 years ago

In GitLab by @gm2202981 on Jun 10, 2021, 09:14

unassigned @gm2202983

JuyeoungJun commented 3 years ago

In GitLab by @gm2202985 on Jun 10, 2021, 09:29

assigned to @gm2202985

JuyeoungJun commented 3 years ago

In GitLab by @gm2202985 on Jun 10, 2021, 09:29

assigned to @gm2202981 and unassigned @gm2202985

JuyeoungJun commented 3 years ago

In GitLab by @gm2202985 on Jun 10, 2021, 09:29

assigned to @gm2202985 and unassigned @gm2202981

JuyeoungJun commented 3 years ago

In GitLab by @gm2202985 on Jun 10, 2021, 09:29

unassigned @gm2202985

JuyeoungJun commented 3 years ago

In GitLab by @gm2202981 on Jun 10, 2021, 10:02

skinparam monochrome true
skinparam ranksep 50
skinparam dpi 150
skinparam arrowThickness 0.7
skinparam packageTitleAlignment left
skinparam usecaseBorderThickness 0.4
skinparam defaultFontSize 10
skinparam rectangleBorderThickness 1

class CronServer {
    Long id;
    String serverIp;
}

class CronJob {
    UUID id;
    String cronName;
    String cronExpr;
    Timestamp minStartTime;
    Timestamp maxEndTime;
    CronServer server;
}

class CronProcess {
    Long id;
    String pid;
    Timestamp startTime;
    Timestamp endTime;
    CronJob cronJob;
}

class CronLog {
    Instant time;
    Long cronJobId;
    String pid;
    String log;
}
' Spring Data InfluxDB (https://github.com/miwurster/spring-data-influxdb)

class Team {
    Long id;
    String teamId;
    String name;
}

class TeamUser{
    Long id;
    Team team;
    User user;
    String authority;
}

class User {
    Long id;
    String userId;
    String name;
    String email;
    String password;
}

class TeamCronJob {
    Long id;
    Team team;
    CronJob cronJob;
}

class UserCronJob {
    Long id;
    User user;
    CronJob cronJob;
}

class Notice {
    Long id;
    String type;
    String message;
    Timestamp createTime;
    Timestamp readTime;
    User receiveUser;
    User createUser;
    CronJob cronJob;
}

class Webhook {
    Long id;
    Notice notice;
    String url;
}

CronServer "1" - "*" CronJob
CronJob "1" -- "*" CronProcess
CronProcess "1" -- "*" CronLog
Team "1" - "*" TeamUser
Team "1" -- "*" TeamCronJob
TeamUser "*" - "1" User
User "1" -- "*" UserCronJob
Notice "1" - "*" Webhook
CronJob "1" -- "*" TeamCronJob
CronJob "1" -- "*" UserCronJob
Notice "*"--"1" User
JuyeoungJun commented 3 years ago

In GitLab by @gm2202981 on Jul 14, 2021, 13:40

skinparam monochrome true
skinparam ranksep 50
skinparam dpi 150
skinparam arrowThickness 0.7
skinparam packageTitleAlignment left
skinparam usecaseBorderThickness 0.4
skinparam defaultFontSize 10
skinparam rectangleBorderThickness 1

class CronServer {
    Long id;
    String serverIp;
}

class CronJob {
    UUID id;
    String cronName;
    String cronExpr;
    Timestamp minStartTime;
    Timestamp maxEndTime;
    CronServer server;
}

class CronProcess {
    Long id;
    String pid;
    Timestamp startTime;
    Timestamp endTime;
    CronJob cronJob;
}

class CronLog {
    Instant logTime;
    String cronProcess;
    Instant start;
    Instant end;
    String value;
}

class Team {
    Long id;
    String account;
    String name;
}

class TeamUser{
    Long id;
    Team team;
    User user;
    String authority;
}

class User {
    Long id;
    String account;
    String name;
    String email;
    String password;
    String role;
    boolean activated;
}

class TeamCronJob {
    Long id;
    Team team;
    CronJob cronJob;
}

class UserCronJob {
    Long id;
    User user;
    CronJob cronJob;
}

class Notice {
    Long id;
    CronJob cronJob;
    String type;
    String message;
    Timestamp createTime;
}

class NoticeStatus {
    Long id;
    Notice notice;
    String rcvUserId;
    Timestamp readDate;
}

class NoticeSubscription {
    Long id;
    User rcvUser;
    User createUser;
    CronJob cronJob;
}

class WebhookSubscription {
    Long id;
    NoticeSubscription noticeSubscription;
    String endpoint;
    String url;
}

class RefreshToken {
    String id;
    String token;
}

CronServer "1" - "*" CronJob
CronJob "1" -- "*" CronProcess
CronProcess "1" -- "*" CronLog
Team "1" - "*" TeamUser
Team "1" -- "*" TeamCronJob
TeamUser "*" - "1" User
User "1" -- "*" UserCronJob
NoticeSubscription "1" - "*" WebhookSubscription
CronJob "1" -- "*" TeamCronJob
CronJob "1" -- "*" UserCronJob
NoticeSubscription "*"--"1" User
Notice "*"--"1" CronJob
NoticeStatus "*"--"1" Notice