View Javadoc
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 }