1 /*
2  * Copyright (C) 2021 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.adservices.data.enrollment;
18 
19 import java.util.List;
20 
21 /** Container class for Enrollment table definitions and constants. */
22 public final class EnrollmentTables {
23     public static final String[] ENROLLMENT_TABLES = {
24         EnrollmentTables.EnrollmentDataContract.TABLE,
25     };
26 
27     /** Contract for Adtech enrollment data. */
28     public interface EnrollmentDataContract {
29         String TABLE = "enrollment_data";
30         String ENROLLMENT_ID = "enrollment_id";
31         String COMPANY_ID = "company_id";
32         // Following six string columns each consist of a space separated list.
33         String SDK_NAMES = "sdk_names";
34         String ATTRIBUTION_SOURCE_REGISTRATION_URL = "attribution_source_registration_url";
35         String ATTRIBUTION_TRIGGER_REGISTRATION_URL = "attribution_trigger_registration_url";
36         String ATTRIBUTION_REPORTING_URL = "attribution_reporting_url";
37         String REMARKETING_RESPONSE_BASED_REGISTRATION_URL =
38                 "remarketing_response_based_registration_url";
39         String ENCRYPTION_KEY_URL = "encryption_key_url";
40         String ENROLLED_SITE = "enrolled_site";
41         String ENROLLED_APIS = "enrolled_apis";
42     }
43 
44     public static final String CREATE_TABLE_ENROLLMENT_DATA_V1 =
45             "CREATE TABLE "
46                     + EnrollmentDataContract.TABLE
47                     + " ("
48                     + EnrollmentDataContract.ENROLLMENT_ID
49                     + " TEXT PRIMARY KEY NOT NULL, "
50                     + EnrollmentDataContract.COMPANY_ID
51                     + " TEXT, "
52                     + EnrollmentDataContract.SDK_NAMES
53                     + " TEXT, "
54                     + EnrollmentDataContract.ATTRIBUTION_SOURCE_REGISTRATION_URL
55                     + " TEXT, "
56                     + EnrollmentDataContract.ATTRIBUTION_TRIGGER_REGISTRATION_URL
57                     + " TEXT, "
58                     + EnrollmentDataContract.ATTRIBUTION_REPORTING_URL
59                     + " TEXT, "
60                     + EnrollmentDataContract.REMARKETING_RESPONSE_BASED_REGISTRATION_URL
61                     + " TEXT, "
62                     + EnrollmentDataContract.ENCRYPTION_KEY_URL
63                     + " TEXT "
64                     + ")";
65 
66     public static final String CREATE_TABLE_ENROLLMENT_DATA_V2 =
67             "CREATE TABLE "
68                     + EnrollmentDataContract.TABLE
69                     + " ("
70                     + EnrollmentDataContract.ENROLLMENT_ID
71                     + " TEXT PRIMARY KEY NOT NULL, "
72                     + EnrollmentDataContract.COMPANY_ID
73                     + " TEXT, "
74                     + EnrollmentDataContract.SDK_NAMES
75                     + " TEXT, "
76                     + EnrollmentDataContract.ATTRIBUTION_SOURCE_REGISTRATION_URL
77                     + " TEXT, "
78                     + EnrollmentDataContract.ATTRIBUTION_TRIGGER_REGISTRATION_URL
79                     + " TEXT, "
80                     + EnrollmentDataContract.ATTRIBUTION_REPORTING_URL
81                     + " TEXT, "
82                     + EnrollmentDataContract.REMARKETING_RESPONSE_BASED_REGISTRATION_URL
83                     + " TEXT, "
84                     + EnrollmentDataContract.ENCRYPTION_KEY_URL
85                     + " TEXT, "
86                     + EnrollmentDataContract.ENROLLED_SITE
87                     + " TEXT, "
88                     + EnrollmentDataContract.ENROLLED_APIS
89                     + " TEXT "
90                     + ")";
91 
92     // Consolidated list of create statements for all tables.
93     public static final List<String> CREATE_STATEMENTS = List.of(CREATE_TABLE_ENROLLMENT_DATA_V1);
94 
95     // Consolidated list of create statements for all tables.
96     public static final List<String> CREATE_STATEMENTS_V1 =
97             List.of(CREATE_TABLE_ENROLLMENT_DATA_V1);
98 
99     public static final List<String> CREATE_STATEMENTS_V2 =
100             List.of(CREATE_TABLE_ENROLLMENT_DATA_V2);
101 
102     // Private constructor to prevent instantiation.
EnrollmentTables()103     private EnrollmentTables() {}
104 }
105