Managing loaner chromebooks for students and teachers in the HUUSD school district.
1# This file is auto-generated from the current state of the database. Instead
2# of editing this file, please use the migrations feature of Active Record to
3# incrementally modify your database, and then regenerate this schema definition.
4#
5# This file is the source Rails uses to define your schema when running `bin/rails
6# db:schema:load`. When creating a new database, `bin/rails db:schema:load` tends to
7# be faster and is potentially less error prone than running all of your
8# migrations from scratch. Old migrations may fail to apply correctly if those
9# migrations use external dependencies or application code.
10#
11# It's strongly recommended that you check this file into your version control system.
12
13ActiveRecord::Schema[7.1].define(version: 2024_08_05_191855) do
14 create_table "active_storage_attachments", force: :cascade do |t|
15 t.string "name", null: false
16 t.string "record_type", null: false
17 t.bigint "record_id", null: false
18 t.bigint "blob_id", null: false
19 t.datetime "created_at", null: false
20 t.index ["blob_id"], name: "index_active_storage_attachments_on_blob_id"
21 t.index ["record_type", "record_id", "name", "blob_id"], name: "index_active_storage_attachments_uniqueness", unique: true
22 end
23
24 create_table "active_storage_blobs", force: :cascade do |t|
25 t.string "key", null: false
26 t.string "filename", null: false
27 t.string "content_type"
28 t.text "metadata"
29 t.string "service_name", null: false
30 t.bigint "byte_size", null: false
31 t.string "checksum"
32 t.datetime "created_at", null: false
33 t.index ["key"], name: "index_active_storage_blobs_on_key", unique: true
34 end
35
36 create_table "active_storage_variant_records", force: :cascade do |t|
37 t.bigint "blob_id", null: false
38 t.string "variation_digest", null: false
39 t.index ["blob_id", "variation_digest"], name: "index_active_storage_variant_records_uniqueness", unique: true
40 end
41
42 create_table "ahoy_clicks", force: :cascade do |t|
43 t.string "campaign"
44 t.string "token"
45 t.index ["campaign"], name: "index_ahoy_clicks_on_campaign"
46 end
47
48 create_table "ahoy_messages", force: :cascade do |t|
49 t.string "user_type"
50 t.integer "user_id"
51 t.string "to"
52 t.string "mailer"
53 t.text "subject"
54 t.datetime "sent_at"
55 t.string "campaign"
56 t.index ["campaign"], name: "index_ahoy_messages_on_campaign"
57 t.index ["to"], name: "index_ahoy_messages_on_to"
58 t.index ["user_type", "user_id"], name: "index_ahoy_messages_on_user"
59 end
60
61 create_table "audits1984_audits", force: :cascade do |t|
62 t.integer "status", default: 0, null: false
63 t.text "notes"
64 t.integer "session_id", null: false
65 t.integer "auditor_id", null: false
66 t.datetime "created_at", null: false
67 t.datetime "updated_at", null: false
68 t.index ["auditor_id"], name: "index_audits1984_audits_on_auditor_id"
69 t.index ["session_id"], name: "index_audits1984_audits_on_session_id"
70 end
71
72 create_table "authentications", force: :cascade do |t|
73 t.datetime "created_at", null: false
74 t.datetime "updated_at", null: false
75 end
76
77 create_table "borrowers", force: :cascade do |t|
78 t.string "first_name"
79 t.string "last_name"
80 t.string "email"
81 t.integer "graduation_year"
82 t.datetime "created_at", null: false
83 t.datetime "updated_at", null: false
84 t.boolean "flagged"
85 end
86
87 create_table "console1984_commands", force: :cascade do |t|
88 t.text "statements"
89 t.integer "sensitive_access_id"
90 t.integer "session_id", null: false
91 t.datetime "created_at", null: false
92 t.datetime "updated_at", null: false
93 t.index ["sensitive_access_id"], name: "index_console1984_commands_on_sensitive_access_id"
94 t.index ["session_id", "created_at", "sensitive_access_id"], name: "on_session_and_sensitive_chronologically"
95 end
96
97 create_table "console1984_sensitive_accesses", force: :cascade do |t|
98 t.text "justification"
99 t.integer "session_id", null: false
100 t.datetime "created_at", null: false
101 t.datetime "updated_at", null: false
102 t.index ["session_id"], name: "index_console1984_sensitive_accesses_on_session_id"
103 end
104
105 create_table "console1984_sessions", force: :cascade do |t|
106 t.text "reason"
107 t.integer "user_id", null: false
108 t.datetime "created_at", null: false
109 t.datetime "updated_at", null: false
110 t.index ["created_at"], name: "index_console1984_sessions_on_created_at"
111 t.index ["user_id", "created_at"], name: "index_console1984_sessions_on_user_id_and_created_at"
112 end
113
114 create_table "console1984_users", force: :cascade do |t|
115 t.string "username", null: false
116 t.datetime "created_at", null: false
117 t.datetime "updated_at", null: false
118 t.index ["username"], name: "index_console1984_users_on_username"
119 end
120
121 create_table "loaners", force: :cascade do |t|
122 t.string "asset_tag"
123 t.integer "loaner_id"
124 t.string "serial_number"
125 t.string "status"
126 t.datetime "created_at", null: false
127 t.datetime "updated_at", null: false
128 t.integer "current_loan_id"
129 t.integer "freindly_id"
130 t.boolean "active"
131 t.index ["asset_tag"], name: "index_loaners_on_asset_tag"
132 t.index ["current_loan_id"], name: "index_loaners_on_current_loan_id"
133 t.index ["loaner_id"], name: "index_loaners_on_loaner_id"
134 t.index ["status"], name: "index_loaners_on_status"
135 end
136
137 create_table "loaners_borrowers", id: false, force: :cascade do |t|
138 t.integer "loaner_id"
139 t.integer "borrower_id"
140 t.index ["borrower_id"], name: "index_loaners_borrowers_on_borrower_id"
141 t.index ["loaner_id", "borrower_id"], name: "index_loaners_borrowers_on_loaner_id_and_borrower_id", unique: true
142 t.index ["loaner_id"], name: "index_loaners_borrowers_on_loaner_id"
143 end
144
145 create_table "loans", force: :cascade do |t|
146 t.integer "reason", limit: 3
147 t.integer "borrower_id", null: false
148 t.datetime "loaned_at"
149 t.datetime "returned_at"
150 t.string "status"
151 t.datetime "created_at", null: false
152 t.datetime "updated_at", null: false
153 t.integer "loaner_id"
154 t.date "due_date"
155 t.boolean "borrowed_device_repaired"
156 t.index ["borrower_id"], name: "index_loans_on_borrower_id"
157 t.index ["loaner_id"], name: "index_loans_on_loaner_id"
158 t.index ["status"], name: "index_loans_on_status"
159 end
160
161 create_table "solid_queue_blocked_executions", force: :cascade do |t|
162 t.integer "job_id", null: false
163 t.string "queue_name", null: false
164 t.integer "priority", default: 0, null: false
165 t.string "concurrency_key", null: false
166 t.datetime "expires_at", null: false
167 t.datetime "created_at", null: false
168 t.index ["concurrency_key", "priority", "job_id"], name: "index_solid_queue_blocked_executions_for_release"
169 t.index ["expires_at", "concurrency_key"], name: "index_solid_queue_blocked_executions_for_maintenance"
170 t.index ["job_id"], name: "index_solid_queue_blocked_executions_on_job_id", unique: true
171 end
172
173 create_table "solid_queue_claimed_executions", force: :cascade do |t|
174 t.integer "job_id", null: false
175 t.bigint "process_id"
176 t.datetime "created_at", null: false
177 t.index ["job_id"], name: "index_solid_queue_claimed_executions_on_job_id", unique: true
178 t.index ["process_id", "job_id"], name: "index_solid_queue_claimed_executions_on_process_id_and_job_id"
179 end
180
181 create_table "solid_queue_failed_executions", force: :cascade do |t|
182 t.integer "job_id", null: false
183 t.text "error"
184 t.datetime "created_at", null: false
185 t.index ["job_id"], name: "index_solid_queue_failed_executions_on_job_id", unique: true
186 end
187
188 create_table "solid_queue_jobs", force: :cascade do |t|
189 t.string "queue_name", null: false
190 t.string "class_name", null: false
191 t.text "arguments"
192 t.integer "priority", default: 0, null: false
193 t.string "active_job_id"
194 t.datetime "scheduled_at"
195 t.datetime "finished_at"
196 t.string "concurrency_key"
197 t.datetime "created_at", null: false
198 t.datetime "updated_at", null: false
199 t.index ["active_job_id"], name: "index_solid_queue_jobs_on_active_job_id"
200 t.index ["class_name"], name: "index_solid_queue_jobs_on_class_name"
201 t.index ["finished_at"], name: "index_solid_queue_jobs_on_finished_at"
202 t.index ["queue_name", "finished_at"], name: "index_solid_queue_jobs_for_filtering"
203 t.index ["scheduled_at", "finished_at"], name: "index_solid_queue_jobs_for_alerting"
204 end
205
206 create_table "solid_queue_pauses", force: :cascade do |t|
207 t.string "queue_name", null: false
208 t.datetime "created_at", null: false
209 t.index ["queue_name"], name: "index_solid_queue_pauses_on_queue_name", unique: true
210 end
211
212 create_table "solid_queue_processes", force: :cascade do |t|
213 t.string "kind", null: false
214 t.datetime "last_heartbeat_at", null: false
215 t.bigint "supervisor_id"
216 t.integer "pid", null: false
217 t.string "hostname"
218 t.text "metadata"
219 t.datetime "created_at", null: false
220 t.index ["last_heartbeat_at"], name: "index_solid_queue_processes_on_last_heartbeat_at"
221 t.index ["supervisor_id"], name: "index_solid_queue_processes_on_supervisor_id"
222 end
223
224 create_table "solid_queue_ready_executions", force: :cascade do |t|
225 t.integer "job_id", null: false
226 t.string "queue_name", null: false
227 t.integer "priority", default: 0, null: false
228 t.datetime "created_at", null: false
229 t.index ["job_id"], name: "index_solid_queue_ready_executions_on_job_id", unique: true
230 t.index ["priority", "job_id"], name: "index_solid_queue_poll_all"
231 t.index ["queue_name", "priority", "job_id"], name: "index_solid_queue_poll_by_queue"
232 end
233
234 create_table "solid_queue_recurring_executions", force: :cascade do |t|
235 t.integer "job_id", null: false
236 t.string "task_key", null: false
237 t.datetime "run_at", null: false
238 t.datetime "created_at", null: false
239 t.index ["job_id"], name: "index_solid_queue_recurring_executions_on_job_id", unique: true
240 t.index ["task_key", "run_at"], name: "index_solid_queue_recurring_executions_on_task_key_and_run_at", unique: true
241 end
242
243 create_table "solid_queue_scheduled_executions", force: :cascade do |t|
244 t.integer "job_id", null: false
245 t.string "queue_name", null: false
246 t.integer "priority", default: 0, null: false
247 t.datetime "scheduled_at", null: false
248 t.datetime "created_at", null: false
249 t.index ["job_id"], name: "index_solid_queue_scheduled_executions_on_job_id", unique: true
250 t.index ["scheduled_at", "priority", "job_id"], name: "index_solid_queue_dispatch_all"
251 end
252
253 create_table "solid_queue_semaphores", force: :cascade do |t|
254 t.string "key", null: false
255 t.integer "value", default: 1, null: false
256 t.datetime "expires_at", null: false
257 t.datetime "created_at", null: false
258 t.datetime "updated_at", null: false
259 t.index ["expires_at"], name: "index_solid_queue_semaphores_on_expires_at"
260 t.index ["key", "value"], name: "index_solid_queue_semaphores_on_key_and_value"
261 t.index ["key"], name: "index_solid_queue_semaphores_on_key", unique: true
262 end
263
264 create_table "users", force: :cascade do |t|
265 t.string "f_name"
266 t.string "l_name"
267 t.string "email"
268 t.string "password_digest"
269 t.integer "role", limit: 3, default: 0, null: false
270 t.datetime "created_at", null: false
271 t.datetime "updated_at", null: false
272 end
273
274 add_foreign_key "active_storage_attachments", "active_storage_blobs", column: "blob_id"
275 add_foreign_key "active_storage_variant_records", "active_storage_blobs", column: "blob_id"
276 add_foreign_key "loaners", "loans", column: "current_loan_id"
277 add_foreign_key "loans", "borrowers"
278 add_foreign_key "loans", "loaners"
279 add_foreign_key "solid_queue_blocked_executions", "solid_queue_jobs", column: "job_id", on_delete: :cascade
280 add_foreign_key "solid_queue_claimed_executions", "solid_queue_jobs", column: "job_id", on_delete: :cascade
281 add_foreign_key "solid_queue_failed_executions", "solid_queue_jobs", column: "job_id", on_delete: :cascade
282 add_foreign_key "solid_queue_ready_executions", "solid_queue_jobs", column: "job_id", on_delete: :cascade
283 add_foreign_key "solid_queue_recurring_executions", "solid_queue_jobs", column: "job_id", on_delete: :cascade
284 add_foreign_key "solid_queue_scheduled_executions", "solid_queue_jobs", column: "job_id", on_delete: :cascade
285end