1 package net.avcompris.status.dao.impl;
2
3 import static net.avcompris.commons3.dao.DbTable.Type.INTEGER;
4 import static net.avcompris.commons3.dao.DbTable.Type.TIMESTAMP_WITH_TIMEZONE;
5 import static net.avcompris.commons3.dao.DbTable.Type.VARCHAR;
6 import static net.avcompris.commons3.dao.DbTablesUtils.column;
7
8 import java.util.Arrays;
9
10 import net.avcompris.commons3.dao.DbTable;
11 import net.avcompris.commons3.dao.DbTablesUtils.Column;
12
13 public enum DbTables implements DbTable {
14
15 CORRELATIONS(
16 column("correlation_id")
17 .type(VARCHAR)
18 .size(255)
19 .notNull()
20 .regexp("[a-zA-Z]+[a-zA-Z0-9-_]*")
21 .primaryKey()
22 .build(),
23 column("created_at")
24 .type(TIMESTAMP_WITH_TIMEZONE)
25 .notNull()
26 .build()),
27
28 SERVICES(
29 column("endpoint")
30 .type(VARCHAR)
31 .size(255)
32 .notNull()
33 .primaryKey()
34 .build()),
35
36 SERVICES_CHECKS(
37 column("check_id")
38 .type(VARCHAR)
39 .size(255)
40 .notNull()
41 .primaryKey()
42 .build(),
43 column("endpoint")
44 .type(VARCHAR)
45 .size(255)
46 .notNull()
47 .refKey(SERVICES, "endpoint", true)
48 .build(),
49 column("status")
50 .type(VARCHAR)
51 .size(20)
52 .notNull()
53 .index()
54 .build(),
55 column("started_at")
56 .type(TIMESTAMP_WITH_TIMEZONE)
57 .notNull()
58 .build(),
59 column("ended_at")
60 .type(TIMESTAMP_WITH_TIMEZONE)
61 .nullable()
62 .build(),
63 column("elapsed_ms")
64 .type(INTEGER)
65 .nullable()
66 .build(),
67 column("status_code")
68 .type(INTEGER)
69 .nullable()
70 .build(),
71 column("error_message")
72 .type(VARCHAR)
73 .size(255)
74 .nullable()
75 .build()),
76
77 SERVICES_CHECKS_ERRORS(
78 column("service_id")
79 .type(VARCHAR)
80 .size(255)
81 .notNull()
82 .index()
83 .build(),
84 column("endpoint")
85 .type(VARCHAR)
86 .size(255)
87 .notNull()
88 .refKey(SERVICES, "endpoint", true)
89 .build(),
90 column("check_id")
91 .type(VARCHAR)
92 .size(255)
93 .nullable()
94 .refKey(SERVICES_CHECKS, "check_id", true)
95 .build(),
96 column("error_at")
97 .type(TIMESTAMP_WITH_TIMEZONE)
98 .notNull()
99 .build(),
100 column("error_message")
101 .type(VARCHAR)
102 .size(255)
103 .nullable()
104 .build());
105
106 private final Column[] columns;
107
108 private DbTables(final Column... columns) {
109
110 this.columns = columns;
111 }
112
113 @Override
114 public Column[] columns() {
115
116 return Arrays.copyOf(columns, columns.length);
117 }
118 }