uddf 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/main.yml +9 -9
- data/.rubocop.yml +15 -0
- data/Gemfile +0 -5
- data/Gemfile.lock +84 -0
- data/README.md +51 -18
- data/dive_files/BaMQZdEhp3djeDxQ5HyCreOntBm1-1753908953.uddf +6060 -0
- data/dive_files/Peregrine TX[93CBB2BB]#140_2025-03-21.uddf +4735 -0
- data/dive_files/Peregrine TX[93CBB2BB]#148_2025-06-26.uddf +2414 -0
- data/lib/uddf/base/models.rb +39 -0
- data/lib/uddf/v300/schema.xsd +1645 -0
- data/lib/uddf/v301/schema.xsd +1645 -0
- data/lib/uddf/v310/schema.xsd +1798 -0
- data/lib/uddf/v320/schema.xsd +1834 -0
- data/lib/uddf/v321/schema.xsd +1834 -0
- data/lib/uddf/v322/schema.xsd +1883 -0
- data/lib/uddf/v323/models.rb +1629 -0
- data/lib/uddf/v323/schema.xsd +1890 -0
- data/lib/uddf/v330/schema.xsd +2126 -0
- data/lib/uddf/v331/schema.xsd +2161 -0
- data/lib/uddf/version.rb +2 -2
- data/lib/uddf.rb +67 -4
- data/test_files/v330/diver_data.uddf +311 -0
- data/uddf.gemspec +7 -5
- metadata +90 -3
@@ -0,0 +1,1629 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "happymapper"
|
4
|
+
require "uddf/base/models"
|
5
|
+
|
6
|
+
module UDDF
|
7
|
+
module V323
|
8
|
+
module Models
|
9
|
+
class Manufacturer
|
10
|
+
include HappyMapper
|
11
|
+
|
12
|
+
tag "manufacturer"
|
13
|
+
|
14
|
+
attribute :id, String
|
15
|
+
has_one :address, Base::Models::Address
|
16
|
+
has_one :alias_name, String
|
17
|
+
has_one :contact, Base::Models::Contact
|
18
|
+
has_one :name, String
|
19
|
+
end
|
20
|
+
|
21
|
+
class Link
|
22
|
+
include HappyMapper
|
23
|
+
|
24
|
+
tag "link"
|
25
|
+
|
26
|
+
attribute :ref, String
|
27
|
+
end
|
28
|
+
|
29
|
+
class Generator
|
30
|
+
include HappyMapper
|
31
|
+
|
32
|
+
tag "generator"
|
33
|
+
|
34
|
+
has_one :alias_name, String
|
35
|
+
has_one :datetime, DateTime
|
36
|
+
has_many :links, Link, tag: "link"
|
37
|
+
has_one :name, String
|
38
|
+
has_one :type, String
|
39
|
+
has_one :version, String
|
40
|
+
end
|
41
|
+
|
42
|
+
class Notes
|
43
|
+
include HappyMapper
|
44
|
+
|
45
|
+
tag "notes"
|
46
|
+
|
47
|
+
has_many :paras, String, tag: "para"
|
48
|
+
has_many :links, Link, tag: "link"
|
49
|
+
end
|
50
|
+
|
51
|
+
class Price
|
52
|
+
include HappyMapper
|
53
|
+
|
54
|
+
tag "price"
|
55
|
+
|
56
|
+
attribute :currency, String
|
57
|
+
attribute :value, Float
|
58
|
+
end
|
59
|
+
|
60
|
+
class Tissue
|
61
|
+
include HappyMapper
|
62
|
+
|
63
|
+
tag "tissue"
|
64
|
+
|
65
|
+
attribute :gas, String
|
66
|
+
attribute :half_life, Float
|
67
|
+
attribute :number, Integer
|
68
|
+
attribute :a, Float
|
69
|
+
attribute :b, Float
|
70
|
+
end
|
71
|
+
|
72
|
+
class VPM
|
73
|
+
include HappyMapper
|
74
|
+
|
75
|
+
tag "vpm"
|
76
|
+
|
77
|
+
attribute :id, String
|
78
|
+
has_one :conservatism, Float
|
79
|
+
has_one :gamma, Float
|
80
|
+
has_one :gc, Float
|
81
|
+
has_one :lambda, Float
|
82
|
+
has_one :r0, Float
|
83
|
+
has_many :tissues, Tissue, tag: "tissue"
|
84
|
+
end
|
85
|
+
|
86
|
+
class RGBM
|
87
|
+
include HappyMapper
|
88
|
+
|
89
|
+
tag "rgbm"
|
90
|
+
|
91
|
+
attribute :id, String
|
92
|
+
has_many :tissues, Tissue, tag: "tissue"
|
93
|
+
end
|
94
|
+
|
95
|
+
class Buehlmann
|
96
|
+
include HappyMapper
|
97
|
+
|
98
|
+
tag "buehlmann"
|
99
|
+
|
100
|
+
attribute :id, String
|
101
|
+
has_one :gradient_factor_high, Float
|
102
|
+
has_one :gradient_factor_low, Float
|
103
|
+
has_many :tissues, Tissue, tag: "tissue"
|
104
|
+
end
|
105
|
+
|
106
|
+
class DecoModel
|
107
|
+
include HappyMapper
|
108
|
+
|
109
|
+
tag "decomodel"
|
110
|
+
|
111
|
+
has_many :buehlmanns, Buehlmann, tag: "buehlmann"
|
112
|
+
has_many :rgbms, RGBM, tag: "rbgm"
|
113
|
+
has_many :vpms, VPM, tag: "vpm"
|
114
|
+
end
|
115
|
+
|
116
|
+
class Mix
|
117
|
+
include HappyMapper
|
118
|
+
|
119
|
+
tag "mix"
|
120
|
+
|
121
|
+
attribute :id, String
|
122
|
+
has_one :alias_name, String
|
123
|
+
has_one :ar, Float
|
124
|
+
has_one :equivalent_air_depth, Float
|
125
|
+
has_one :h2, Float
|
126
|
+
has_one :he, Float
|
127
|
+
has_one :maximum_operation_depth, Float
|
128
|
+
has_one :maximum_po2, Float
|
129
|
+
has_one :n2, Float
|
130
|
+
has_one :name, String
|
131
|
+
has_one :o2, Float
|
132
|
+
has_one :price_per_litre, Price
|
133
|
+
end
|
134
|
+
|
135
|
+
class GasDefinitions
|
136
|
+
include HappyMapper
|
137
|
+
|
138
|
+
tag "gasdefinitions"
|
139
|
+
|
140
|
+
has_many :mixes, Mix, tag: "mix"
|
141
|
+
end
|
142
|
+
|
143
|
+
class WayAltitude
|
144
|
+
include HappyMapper
|
145
|
+
|
146
|
+
tag "wayaltitude"
|
147
|
+
|
148
|
+
attribute :way_time, Float
|
149
|
+
attribute :value, Float
|
150
|
+
end
|
151
|
+
|
152
|
+
class ExposureToAltitude
|
153
|
+
include HappyMapper
|
154
|
+
|
155
|
+
tag "exposuretoaltitude"
|
156
|
+
|
157
|
+
has_one :altitude_of_exposure, Float
|
158
|
+
has_one :date_of_flight, Date
|
159
|
+
has_one :surface_interval_before_altitude_exposure, Float
|
160
|
+
has_one :total_length_of_exposure, Float
|
161
|
+
has_one :transportation, String
|
162
|
+
end
|
163
|
+
|
164
|
+
class SurfaceIntervalBeforeDive
|
165
|
+
include HappyMapper
|
166
|
+
|
167
|
+
tag "surfaceintervalbeforedive"
|
168
|
+
|
169
|
+
has_one :exposure_to_altitude, ExposureToAltitude
|
170
|
+
has_one :infinity, String
|
171
|
+
has_one :passed_time, Float
|
172
|
+
has_many :way_altitudes, WayAltitude, tag: "wayaltitude"
|
173
|
+
end
|
174
|
+
|
175
|
+
class SurfaceIntervalAfterDive
|
176
|
+
include HappyMapper
|
177
|
+
|
178
|
+
tag "surfaceintervalafterdive"
|
179
|
+
|
180
|
+
has_one :exposure_to_altitude, ExposureToAltitude
|
181
|
+
has_one :infinity, String
|
182
|
+
has_one :passed_time, Float
|
183
|
+
has_many :way_altitudes, WayAltitude, tag: "wayaltitude"
|
184
|
+
end
|
185
|
+
|
186
|
+
class TankPressure
|
187
|
+
include HappyMapper
|
188
|
+
|
189
|
+
tag "tankpressure"
|
190
|
+
|
191
|
+
attribute :ref, String
|
192
|
+
attribute :value, Float
|
193
|
+
end
|
194
|
+
|
195
|
+
class SwitchMix
|
196
|
+
include HappyMapper
|
197
|
+
|
198
|
+
tag "switchmix"
|
199
|
+
|
200
|
+
attribute :ref, String
|
201
|
+
end
|
202
|
+
|
203
|
+
class SetPo2
|
204
|
+
include HappyMapper
|
205
|
+
|
206
|
+
tag "setpo2"
|
207
|
+
|
208
|
+
attribute :set_by, String
|
209
|
+
attribute :value, Float
|
210
|
+
end
|
211
|
+
|
212
|
+
class MeasuredPo2
|
213
|
+
include HappyMapper
|
214
|
+
|
215
|
+
tag "measuredpo2"
|
216
|
+
|
217
|
+
attribute :ref, String
|
218
|
+
attribute :value, Float
|
219
|
+
end
|
220
|
+
|
221
|
+
class GradientFactor
|
222
|
+
include HappyMapper
|
223
|
+
|
224
|
+
tag "gradientfactor"
|
225
|
+
|
226
|
+
attribute :tissue, Integer
|
227
|
+
attribute :value, Float
|
228
|
+
end
|
229
|
+
|
230
|
+
class DiveMode
|
231
|
+
include HappyMapper
|
232
|
+
|
233
|
+
tag "divemode"
|
234
|
+
|
235
|
+
attribute :type, String
|
236
|
+
end
|
237
|
+
|
238
|
+
class Decostop
|
239
|
+
include HappyMapper
|
240
|
+
|
241
|
+
tag "decostop"
|
242
|
+
|
243
|
+
attribute :kind, String
|
244
|
+
attribute :deco_depth, Float
|
245
|
+
attribute :duration, Float
|
246
|
+
end
|
247
|
+
|
248
|
+
class BatteryChargeCondition
|
249
|
+
include HappyMapper
|
250
|
+
|
251
|
+
tag "batterychargecondition"
|
252
|
+
|
253
|
+
attribute :device_ref, String
|
254
|
+
attribute :tank_ref, String
|
255
|
+
attribute :value, Float
|
256
|
+
end
|
257
|
+
|
258
|
+
class Alarm
|
259
|
+
include HappyMapper
|
260
|
+
|
261
|
+
tag "alarm"
|
262
|
+
|
263
|
+
attribute :level, Float
|
264
|
+
attribute :tank_ref, String
|
265
|
+
attribute :value, String
|
266
|
+
end
|
267
|
+
|
268
|
+
class Waypoint
|
269
|
+
include HappyMapper
|
270
|
+
|
271
|
+
tag "waypoint"
|
272
|
+
|
273
|
+
has_many :alarms, Alarm, tag: "alarm"
|
274
|
+
has_many :battery_charge_conditions, BatteryChargeCondition, tag: "batterychargecondition"
|
275
|
+
has_one :calculated_po2, Float
|
276
|
+
has_one :cns, Float
|
277
|
+
has_many :deco_stops, Decostop, tag: "decostop"
|
278
|
+
has_one :depth, Float
|
279
|
+
has_one :dive_mode, DiveMode
|
280
|
+
has_one :dive_time, Float
|
281
|
+
has_one :gradient_factor, GradientFactor
|
282
|
+
has_one :heading, Float
|
283
|
+
has_many :measured_po2s, MeasuredPo2, tag: "measuredpo2"
|
284
|
+
has_one :no_deco_time, Float
|
285
|
+
has_one :otu, Float
|
286
|
+
has_one :remaining_bottom_time, Float
|
287
|
+
has_one :remaining_o2_time, Float
|
288
|
+
has_many :set_po2s, SetPo2, tag: "setpo2"
|
289
|
+
has_one :switch_mix, SwitchMix
|
290
|
+
has_many :tank_pressures, TankPressure, tag: "tankpressure"
|
291
|
+
has_one :temperature, Float
|
292
|
+
end
|
293
|
+
|
294
|
+
class Medicine
|
295
|
+
include HappyMapper
|
296
|
+
|
297
|
+
tag "medicine"
|
298
|
+
|
299
|
+
has_one :alias_name, String
|
300
|
+
has_one :name, String
|
301
|
+
has_one :notes, Notes
|
302
|
+
has_one :periodically_taken, String
|
303
|
+
has_one :timespan_before_dive, Float
|
304
|
+
end
|
305
|
+
|
306
|
+
class MedicationBeforeDive
|
307
|
+
include HappyMapper
|
308
|
+
|
309
|
+
tag "medicationbeforedive"
|
310
|
+
|
311
|
+
has_many :medicines, Medicine, tag: "medicine"
|
312
|
+
end
|
313
|
+
|
314
|
+
class PlannedProfile
|
315
|
+
include HappyMapper
|
316
|
+
|
317
|
+
tag "plannedprofile"
|
318
|
+
|
319
|
+
attribute :start_dive_mode, String
|
320
|
+
attribute :start_mix, String
|
321
|
+
has_many :waypoints, Waypoint, tag: "waypoint"
|
322
|
+
end
|
323
|
+
|
324
|
+
class Drink
|
325
|
+
include HappyMapper
|
326
|
+
|
327
|
+
tag "drink"
|
328
|
+
|
329
|
+
has_one :alias_name, String
|
330
|
+
has_one :name, String
|
331
|
+
has_one :notes, Notes
|
332
|
+
has_one :periodically_taken, String
|
333
|
+
has_one :timespan_before_dive, Float
|
334
|
+
end
|
335
|
+
|
336
|
+
class AlcoholBeforeDive
|
337
|
+
include HappyMapper
|
338
|
+
|
339
|
+
tag "alcoholbeforedive"
|
340
|
+
|
341
|
+
has_many :drinks, Drink, tag: "drink"
|
342
|
+
end
|
343
|
+
|
344
|
+
class InformationBeforeDive
|
345
|
+
include HappyMapper
|
346
|
+
|
347
|
+
tag "informationbeforedive"
|
348
|
+
|
349
|
+
has_one :air_temperature, Float
|
350
|
+
has_one :alcohol_before_dive, AlcoholBeforeDive
|
351
|
+
has_one :altitude, Float
|
352
|
+
has_one :apparatus, String
|
353
|
+
has_one :datetime, DateTime
|
354
|
+
has_one :dive_number, Integer
|
355
|
+
has_one :dive_number_of_day, Integer
|
356
|
+
has_one :internal_dive_number, Integer
|
357
|
+
has_many :links, Link, tag: "link"
|
358
|
+
has_one :medication_before_dive, MedicationBeforeDive
|
359
|
+
has_one :no_suit, String
|
360
|
+
has_one :planned_profile, PlannedProfile
|
361
|
+
has_one :platform, String
|
362
|
+
has_one :price, Price
|
363
|
+
has_one :purpose, String
|
364
|
+
has_one :state_of_rest_before_dive, String
|
365
|
+
has_one :surface_interval_before_dive, SurfaceIntervalBeforeDive
|
366
|
+
has_one :surface_pressure, Float
|
367
|
+
has_one :trip_membership, String
|
368
|
+
end
|
369
|
+
|
370
|
+
class Rating
|
371
|
+
include HappyMapper
|
372
|
+
|
373
|
+
tag "rating"
|
374
|
+
|
375
|
+
has_one :datetime, DateTime
|
376
|
+
has_one :rating_value, Integer
|
377
|
+
end
|
378
|
+
|
379
|
+
class GlobalAlarmsGiven
|
380
|
+
include HappyMapper
|
381
|
+
|
382
|
+
tag "globalalarmsgiven"
|
383
|
+
|
384
|
+
has_many :global_alarms, String, tag: "globalalarm"
|
385
|
+
end
|
386
|
+
|
387
|
+
class EquipmentUsed
|
388
|
+
include HappyMapper
|
389
|
+
|
390
|
+
tag "equipmentused"
|
391
|
+
|
392
|
+
has_one :lead_quantity, Float
|
393
|
+
has_many :links, Link, tag: "link"
|
394
|
+
end
|
395
|
+
|
396
|
+
class AnySymptoms
|
397
|
+
include HappyMapper
|
398
|
+
|
399
|
+
tag "anysymptoms"
|
400
|
+
|
401
|
+
has_one :notes, Notes
|
402
|
+
end
|
403
|
+
|
404
|
+
class Species
|
405
|
+
include HappyMapper
|
406
|
+
|
407
|
+
tag "species"
|
408
|
+
|
409
|
+
attribute :id, String
|
410
|
+
has_one :abundance, "Abundance"
|
411
|
+
has_one :age, Integer
|
412
|
+
has_one :dominance, String
|
413
|
+
has_one :life_stage, String
|
414
|
+
has_one :notes, Notes
|
415
|
+
has_one :scientific_name, String
|
416
|
+
has_one :sex, String
|
417
|
+
has_one :size, Float
|
418
|
+
has_one :trivial_name, String
|
419
|
+
end
|
420
|
+
|
421
|
+
class Abundance
|
422
|
+
include HappyMapper
|
423
|
+
|
424
|
+
tag "abundance"
|
425
|
+
|
426
|
+
attribute :quality, String
|
427
|
+
attribute :occurrence, String
|
428
|
+
attribute :value, Integer
|
429
|
+
end
|
430
|
+
|
431
|
+
class WithSpecies
|
432
|
+
include HappyMapper
|
433
|
+
|
434
|
+
has_many :species, Species, tag: "species"
|
435
|
+
end
|
436
|
+
|
437
|
+
class Invertebrata
|
438
|
+
include HappyMapper
|
439
|
+
|
440
|
+
tag "invertebrata"
|
441
|
+
|
442
|
+
has_one :ascidiacea, WithSpecies
|
443
|
+
has_one :bryozoan, WithSpecies
|
444
|
+
has_one :cnidaria, WithSpecies
|
445
|
+
has_one :coelenterata, WithSpecies
|
446
|
+
has_one :crustacea, WithSpecies
|
447
|
+
has_one :ctenophora, WithSpecies
|
448
|
+
has_one :echinodermata, WithSpecies
|
449
|
+
has_one :invertebrata_various, WithSpecies
|
450
|
+
has_one :mollusca, WithSpecies
|
451
|
+
has_one :phoronidea, WithSpecies
|
452
|
+
has_one :plathelminthes, WithSpecies
|
453
|
+
has_one :porifera, WithSpecies
|
454
|
+
end
|
455
|
+
|
456
|
+
class Vertebrata
|
457
|
+
include HappyMapper
|
458
|
+
|
459
|
+
tag "vertebrata"
|
460
|
+
|
461
|
+
has_one :amphibia, WithSpecies
|
462
|
+
has_one :chondrichthyes, WithSpecies
|
463
|
+
has_one :mammalia, WithSpecies
|
464
|
+
has_one :osteichthyes, WithSpecies
|
465
|
+
has_one :reptilia, WithSpecies
|
466
|
+
has_one :vertebrata_various, WithSpecies
|
467
|
+
end
|
468
|
+
|
469
|
+
class Fauna
|
470
|
+
include HappyMapper
|
471
|
+
|
472
|
+
tag "fauna"
|
473
|
+
|
474
|
+
has_one :invertebrata, Invertebrata
|
475
|
+
has_one :notes, Notes
|
476
|
+
has_one :vertebrata, Vertebrata
|
477
|
+
end
|
478
|
+
|
479
|
+
class Flora
|
480
|
+
include HappyMapper
|
481
|
+
|
482
|
+
tag "flora"
|
483
|
+
|
484
|
+
has_one :chlorophyceae, WithSpecies
|
485
|
+
has_one :flora_various, WithSpecies
|
486
|
+
has_one :notes, Notes
|
487
|
+
has_one :phaeophyceae, WithSpecies
|
488
|
+
has_one :rhodophyceae, WithSpecies
|
489
|
+
has_one :spermatophyta, WithSpecies
|
490
|
+
end
|
491
|
+
|
492
|
+
class Observations
|
493
|
+
include HappyMapper
|
494
|
+
|
495
|
+
tag "observations"
|
496
|
+
|
497
|
+
has_one :fauna, Fauna
|
498
|
+
has_one :flora, Flora
|
499
|
+
has_one :notes, Notes
|
500
|
+
end
|
501
|
+
|
502
|
+
class InformationAfterDive
|
503
|
+
include HappyMapper
|
504
|
+
|
505
|
+
tag "informationafterdive"
|
506
|
+
|
507
|
+
has_one :any_symptoms, AnySymptoms
|
508
|
+
has_one :average_depth, Float
|
509
|
+
has_one :current, String
|
510
|
+
has_one :desaturation_time, Float
|
511
|
+
has_one :dive_duration, Float
|
512
|
+
has_one :dive_plan, String
|
513
|
+
has_one :dive_table, String
|
514
|
+
has_one :equipment_malfunction, String
|
515
|
+
has_one :equipment_used, EquipmentUsed
|
516
|
+
has_one :global_alarms_given, GlobalAlarmsGiven
|
517
|
+
has_one :greatest_depth, Float
|
518
|
+
has_one :highest_po2, Float
|
519
|
+
has_one :lowest_temperature, Float
|
520
|
+
has_one :no_flight_time, Float
|
521
|
+
has_one :notes, Notes
|
522
|
+
has_one :observations, Observations
|
523
|
+
has_one :pressure_drop, Float
|
524
|
+
has_many :problems, String, tag: "problems"
|
525
|
+
has_one :program, String
|
526
|
+
has_many :ratings, Rating, tag: "rating"
|
527
|
+
has_one :surface_interval_after_dive, SurfaceIntervalAfterDive
|
528
|
+
has_one :thermal_comfort, String
|
529
|
+
has_one :visibility, Float
|
530
|
+
has_one :workload, String
|
531
|
+
end
|
532
|
+
|
533
|
+
class Samples
|
534
|
+
include HappyMapper
|
535
|
+
|
536
|
+
tag "samples"
|
537
|
+
|
538
|
+
has_many :waypoints, Waypoint, tag: "waypoint"
|
539
|
+
end
|
540
|
+
|
541
|
+
class TankData
|
542
|
+
include HappyMapper
|
543
|
+
|
544
|
+
tag "tankdata"
|
545
|
+
|
546
|
+
attribute :id, String
|
547
|
+
has_one :breathing_consumption_volume, Float
|
548
|
+
has_many :links, Link, tag: "link"
|
549
|
+
has_one :tank_pressure_begin, Float
|
550
|
+
has_one :tank_pressure_end, Float
|
551
|
+
has_one :tank_volume, Float
|
552
|
+
end
|
553
|
+
|
554
|
+
class Hargikas
|
555
|
+
include HappyMapper
|
556
|
+
|
557
|
+
tag "hargikas"
|
558
|
+
|
559
|
+
has_one :ambient, Float
|
560
|
+
has_many :tissues, Tissue, tag: "tissue"
|
561
|
+
has_one :arterial_micro_bubble_level, Integer
|
562
|
+
has_one :intrapulmonary_right_left_shunt, Float
|
563
|
+
has_one :estimated_skin_cool_level, Integer
|
564
|
+
end
|
565
|
+
|
566
|
+
class ApplicationData
|
567
|
+
include HappyMapper
|
568
|
+
|
569
|
+
tag "applicationdata"
|
570
|
+
|
571
|
+
has_one :deco_trainer, String
|
572
|
+
has_one :hargikas, Hargikas
|
573
|
+
end
|
574
|
+
|
575
|
+
class Dive
|
576
|
+
include HappyMapper
|
577
|
+
|
578
|
+
tag "dive"
|
579
|
+
|
580
|
+
attribute :id, String
|
581
|
+
has_one :information_after_dive, InformationAfterDive
|
582
|
+
has_one :information_before_dive, InformationBeforeDive
|
583
|
+
has_one :application_data, ApplicationData
|
584
|
+
has_one :samples, Samples
|
585
|
+
has_many :tank_data, TankData, tag: "tankdata"
|
586
|
+
end
|
587
|
+
|
588
|
+
class RepetitionGroup
|
589
|
+
include HappyMapper
|
590
|
+
|
591
|
+
tag "repetitiongroup"
|
592
|
+
|
593
|
+
attribute :id, String
|
594
|
+
has_many :dives, Dive, tag: "dive"
|
595
|
+
end
|
596
|
+
|
597
|
+
class ProfileData
|
598
|
+
include HappyMapper
|
599
|
+
|
600
|
+
tag "profiledata"
|
601
|
+
|
602
|
+
has_many :repetition_groups, RepetitionGroup, tag: "repetitiongroup"
|
603
|
+
end
|
604
|
+
|
605
|
+
class Descent
|
606
|
+
include HappyMapper
|
607
|
+
|
608
|
+
tag "descent"
|
609
|
+
|
610
|
+
has_many :waypoints, Waypoint, tag: "waypoint"
|
611
|
+
end
|
612
|
+
|
613
|
+
class Ascent
|
614
|
+
include HappyMapper
|
615
|
+
|
616
|
+
tag "ascent"
|
617
|
+
|
618
|
+
has_many :waypoints, Waypoint, tag: "waypoint"
|
619
|
+
end
|
620
|
+
|
621
|
+
class MixChange
|
622
|
+
include HappyMapper
|
623
|
+
|
624
|
+
tag "mixchange"
|
625
|
+
|
626
|
+
has_one :ascent, Ascent
|
627
|
+
has_one :descent, Descent
|
628
|
+
end
|
629
|
+
|
630
|
+
class InputProfile
|
631
|
+
include HappyMapper
|
632
|
+
|
633
|
+
tag "inputprofile"
|
634
|
+
|
635
|
+
has_many :links, Link, tag: "link"
|
636
|
+
has_many :waypoints, Waypoint, tag: "waypoint"
|
637
|
+
end
|
638
|
+
|
639
|
+
class Output
|
640
|
+
include HappyMapper
|
641
|
+
|
642
|
+
tag "output"
|
643
|
+
|
644
|
+
has_one :lingo, String
|
645
|
+
has_one :file_format, String
|
646
|
+
has_one :file_name, String
|
647
|
+
has_one :headline, String
|
648
|
+
has_one :remark, String
|
649
|
+
end
|
650
|
+
|
651
|
+
class Profile
|
652
|
+
include HappyMapper
|
653
|
+
|
654
|
+
tag "profile"
|
655
|
+
|
656
|
+
has_one :application_data, ApplicationData
|
657
|
+
has_one :deco_model, DecoModel
|
658
|
+
has_one :deep_stop_time, Float
|
659
|
+
has_one :density, Float
|
660
|
+
has_one :input_profile, InputProfile
|
661
|
+
has_many :links, Link, tag: "link"
|
662
|
+
has_one :maximum_ascending_rate, Float
|
663
|
+
has_one :mix_change, MixChange
|
664
|
+
has_one :output, Output
|
665
|
+
has_one :surface_interval_after_dive, SurfaceIntervalAfterDive
|
666
|
+
has_one :surface_interval_before_dive, SurfaceIntervalBeforeDive
|
667
|
+
has_one :title, String
|
668
|
+
end
|
669
|
+
|
670
|
+
class TableScope
|
671
|
+
include HappyMapper
|
672
|
+
|
673
|
+
tag "tablescope"
|
674
|
+
|
675
|
+
has_one :altitude, Float
|
676
|
+
has_one :bottom_time_maximum, Float
|
677
|
+
has_one :bottom_time_minimum, Float
|
678
|
+
has_one :bottom_time_step_begin, Float
|
679
|
+
has_one :bottom_time_step_end, Float
|
680
|
+
has_one :dive_depth_begin, Float
|
681
|
+
has_one :dive_depth_end, Float
|
682
|
+
has_one :dive_depth_step, Float
|
683
|
+
end
|
684
|
+
|
685
|
+
class Table
|
686
|
+
include HappyMapper
|
687
|
+
|
688
|
+
tag "table"
|
689
|
+
|
690
|
+
has_one :table_scope, TableScope
|
691
|
+
end
|
692
|
+
|
693
|
+
class CalculateProfile
|
694
|
+
include HappyMapper
|
695
|
+
|
696
|
+
tag "calculateprofile"
|
697
|
+
|
698
|
+
has_many :profiles, Profile, tag: "profile"
|
699
|
+
end
|
700
|
+
|
701
|
+
class CalculateTable
|
702
|
+
include HappyMapper
|
703
|
+
|
704
|
+
tag "calculatetable"
|
705
|
+
|
706
|
+
has_many :tables, Table, tag: "table"
|
707
|
+
end
|
708
|
+
|
709
|
+
class BottomTimeTableScope
|
710
|
+
include HappyMapper
|
711
|
+
|
712
|
+
tag "bottomtimetablescope"
|
713
|
+
|
714
|
+
has_one :breathing_consumption_volume_begin, Float
|
715
|
+
has_one :breathing_consumption_volume_end, Float
|
716
|
+
has_one :breathing_consumption_volume_step, Float
|
717
|
+
has_one :dive_depth_begin, Float
|
718
|
+
has_one :dive_depth_end, Float
|
719
|
+
has_one :dive_depth_step, Float
|
720
|
+
has_one :tank_pressure_begin, Float
|
721
|
+
has_one :tank_pressure_reserve, Float
|
722
|
+
has_one :tank_volume_begin, Float
|
723
|
+
has_one :tank_volume_end, Float
|
724
|
+
end
|
725
|
+
|
726
|
+
class BottomTimeTable
|
727
|
+
include HappyMapper
|
728
|
+
|
729
|
+
tag "bottomtimetable"
|
730
|
+
|
731
|
+
attribute :id, String
|
732
|
+
has_one :application_data, ApplicationData
|
733
|
+
has_one :bottom_time_table_scope, BottomTimeTableScope
|
734
|
+
has_many :links, Link, tag: "link"
|
735
|
+
has_one :output, Output
|
736
|
+
has_one :title, String
|
737
|
+
end
|
738
|
+
|
739
|
+
class CalculateBottomTimeTable
|
740
|
+
include HappyMapper
|
741
|
+
|
742
|
+
tag "calculatebottomtimetable"
|
743
|
+
|
744
|
+
has_many :bottom_time_tables, BottomTimeTable, tag: "bottomtimetable"
|
745
|
+
end
|
746
|
+
|
747
|
+
class TableGeneration
|
748
|
+
include HappyMapper
|
749
|
+
|
750
|
+
tag "tablegeneration"
|
751
|
+
|
752
|
+
has_one :calculate_bottom_time_table, CalculateBottomTimeTable
|
753
|
+
has_one :calculate_profile, CalculateProfile
|
754
|
+
has_one :calculate_table, CalculateTable
|
755
|
+
end
|
756
|
+
|
757
|
+
class ImageData
|
758
|
+
include HappyMapper
|
759
|
+
|
760
|
+
tag "imagedata"
|
761
|
+
|
762
|
+
has_one :aperture, Float
|
763
|
+
has_one :datetime, DateTime
|
764
|
+
has_one :exposure_compensation, Float
|
765
|
+
has_one :film_speed, Integer
|
766
|
+
has_one :focal_length, Float
|
767
|
+
has_one :focusing_distance, Float
|
768
|
+
has_one :metering_method, String
|
769
|
+
has_one :shutter_speed, Float
|
770
|
+
end
|
771
|
+
|
772
|
+
class Image
|
773
|
+
include HappyMapper
|
774
|
+
|
775
|
+
tag "image"
|
776
|
+
|
777
|
+
attribute :id, String
|
778
|
+
attribute :height, Integer
|
779
|
+
attribute :width, Integer
|
780
|
+
attribute :format, String
|
781
|
+
has_one :image_data, ImageData
|
782
|
+
has_one :object_name, String
|
783
|
+
has_one :title, String
|
784
|
+
end
|
785
|
+
|
786
|
+
class Video
|
787
|
+
include HappyMapper
|
788
|
+
|
789
|
+
tag "video"
|
790
|
+
|
791
|
+
attribute :id, String
|
792
|
+
has_one :object_name, String
|
793
|
+
has_one :title, String
|
794
|
+
end
|
795
|
+
|
796
|
+
class Audio
|
797
|
+
include HappyMapper
|
798
|
+
|
799
|
+
tag "audio"
|
800
|
+
|
801
|
+
attribute :id, String
|
802
|
+
has_one :object_name, String
|
803
|
+
has_one :title, String
|
804
|
+
end
|
805
|
+
|
806
|
+
class MediaData
|
807
|
+
include HappyMapper
|
808
|
+
|
809
|
+
tag "mediadata"
|
810
|
+
|
811
|
+
has_many :audio_files, Audio, tag: "audio"
|
812
|
+
has_many :image_files, Image, tag: "image"
|
813
|
+
has_many :video_files, Video, tag: "video"
|
814
|
+
end
|
815
|
+
|
816
|
+
class Maker
|
817
|
+
include HappyMapper
|
818
|
+
|
819
|
+
tag "maker"
|
820
|
+
|
821
|
+
has_many :manufacturers, Manufacturer, tag: "manufacturer"
|
822
|
+
end
|
823
|
+
|
824
|
+
class PriceDivePackage
|
825
|
+
include HappyMapper
|
826
|
+
|
827
|
+
tag "pricedivepackage"
|
828
|
+
|
829
|
+
attribute :currency, String
|
830
|
+
attribute :no_of_dives, Integer
|
831
|
+
attribute :value, Float
|
832
|
+
end
|
833
|
+
|
834
|
+
class RelatedDives
|
835
|
+
include HappyMapper
|
836
|
+
|
837
|
+
tag "relateddives"
|
838
|
+
|
839
|
+
has_many :links, Link, tag: "link"
|
840
|
+
end
|
841
|
+
|
842
|
+
class ShipDimension
|
843
|
+
include HappyMapper
|
844
|
+
|
845
|
+
tag "shipdimension"
|
846
|
+
|
847
|
+
has_one :beam, Float
|
848
|
+
has_one :displacement, Float
|
849
|
+
has_one :draught, Float
|
850
|
+
has_one :length, Float
|
851
|
+
has_one :tonnage, Float
|
852
|
+
end
|
853
|
+
|
854
|
+
class Vessel
|
855
|
+
include HappyMapper
|
856
|
+
|
857
|
+
tag "vessel"
|
858
|
+
|
859
|
+
has_one :address, Base::Models::Address
|
860
|
+
has_one :alias_name, String
|
861
|
+
has_one :contact, Base::Models::Contact
|
862
|
+
has_one :marina, String
|
863
|
+
has_one :name, String
|
864
|
+
has_one :notes, Notes
|
865
|
+
has_many :ratings, Rating, tag: "rating"
|
866
|
+
has_one :ship_dimension, ShipDimension
|
867
|
+
has_one :ship_type, String
|
868
|
+
end
|
869
|
+
|
870
|
+
class Operator
|
871
|
+
include HappyMapper
|
872
|
+
|
873
|
+
tag "operator"
|
874
|
+
|
875
|
+
has_one :alias_name, String
|
876
|
+
has_one :address, Base::Models::Address
|
877
|
+
has_one :contact, Base::Models::Contact
|
878
|
+
has_one :name, String
|
879
|
+
has_one :notes, Notes
|
880
|
+
has_many :ratings, Rating, tag: "rating"
|
881
|
+
end
|
882
|
+
|
883
|
+
class DateOfTrip
|
884
|
+
include HappyMapper
|
885
|
+
|
886
|
+
tag "dateoftrip"
|
887
|
+
|
888
|
+
attribute :start_date, DateTime
|
889
|
+
attribute :end_date, DateTime
|
890
|
+
end
|
891
|
+
|
892
|
+
class Accommodation
|
893
|
+
include HappyMapper
|
894
|
+
|
895
|
+
tag "accommodation"
|
896
|
+
|
897
|
+
has_one :address, Base::Models::Address
|
898
|
+
has_one :alias_name, String
|
899
|
+
has_one :category, String
|
900
|
+
has_one :contact, Base::Models::Contact
|
901
|
+
has_one :name, String
|
902
|
+
has_one :notes, Notes
|
903
|
+
has_many :ratings, Rating, tag: "rating"
|
904
|
+
end
|
905
|
+
|
906
|
+
class Geography
|
907
|
+
include HappyMapper
|
908
|
+
|
909
|
+
tag "geography"
|
910
|
+
|
911
|
+
has_one :address, Base::Models::Address
|
912
|
+
has_one :altitude, Float
|
913
|
+
has_one :latitude, Float
|
914
|
+
has_one :location, String
|
915
|
+
has_one :longitude, Float
|
916
|
+
has_one :time_zone, Float
|
917
|
+
end
|
918
|
+
|
919
|
+
class TripPart
|
920
|
+
include HappyMapper
|
921
|
+
|
922
|
+
tag "trippart"
|
923
|
+
|
924
|
+
attribute :type, String
|
925
|
+
has_one :accommodation, Accommodation
|
926
|
+
has_one :date_of_trip, DateOfTrip
|
927
|
+
has_one :geography, Geography
|
928
|
+
has_many :links, Link, tag: "link"
|
929
|
+
has_one :name, String
|
930
|
+
has_one :notes, Notes
|
931
|
+
has_one :operator, Operator
|
932
|
+
has_one :price_dive_package, PriceDivePackage
|
933
|
+
has_one :price_per_dive, Price
|
934
|
+
has_one :related_dives, RelatedDives
|
935
|
+
has_one :vessel, Vessel
|
936
|
+
end
|
937
|
+
|
938
|
+
class Trip
|
939
|
+
include HappyMapper
|
940
|
+
|
941
|
+
tag "trip"
|
942
|
+
|
943
|
+
attribute :id, String
|
944
|
+
has_one :alias_name, String
|
945
|
+
has_one :name, String
|
946
|
+
has_many :ratings, Rating, tag: "rating"
|
947
|
+
has_many :trip_parts, TripPart, tag: "trippart"
|
948
|
+
end
|
949
|
+
|
950
|
+
class DiveTrip
|
951
|
+
include HappyMapper
|
952
|
+
|
953
|
+
tag "divetrip"
|
954
|
+
|
955
|
+
has_many :trips, Trip, tag: "trip"
|
956
|
+
end
|
957
|
+
|
958
|
+
class Ecology
|
959
|
+
include HappyMapper
|
960
|
+
|
961
|
+
tag "ecology"
|
962
|
+
|
963
|
+
has_one :fauna, Fauna
|
964
|
+
has_one :flora, Flora
|
965
|
+
end
|
966
|
+
|
967
|
+
class Built
|
968
|
+
include HappyMapper
|
969
|
+
|
970
|
+
tag "built"
|
971
|
+
|
972
|
+
has_one :launching_date, Date
|
973
|
+
has_one :ship_yard, String
|
974
|
+
end
|
975
|
+
|
976
|
+
class Wreck
|
977
|
+
include HappyMapper
|
978
|
+
|
979
|
+
tag "wreck"
|
980
|
+
|
981
|
+
has_one :alias_name, String
|
982
|
+
has_one :built, Built
|
983
|
+
has_one :name, String
|
984
|
+
has_one :nationality, String
|
985
|
+
has_one :ship_dimension, ShipDimension
|
986
|
+
has_one :ship_type, String
|
987
|
+
has_one :sunk, Date
|
988
|
+
end
|
989
|
+
|
990
|
+
class Shore
|
991
|
+
include HappyMapper
|
992
|
+
|
993
|
+
tag "shore"
|
994
|
+
|
995
|
+
attribute :id, String
|
996
|
+
has_one :alias_name, String
|
997
|
+
has_one :name, String
|
998
|
+
has_one :notes, Notes
|
999
|
+
end
|
1000
|
+
|
1001
|
+
class River
|
1002
|
+
include HappyMapper
|
1003
|
+
|
1004
|
+
tag "river"
|
1005
|
+
|
1006
|
+
attribute :id, String
|
1007
|
+
has_one :alias_name, String
|
1008
|
+
has_one :name, String
|
1009
|
+
has_one :notes, Notes
|
1010
|
+
end
|
1011
|
+
|
1012
|
+
class Lake
|
1013
|
+
include HappyMapper
|
1014
|
+
|
1015
|
+
tag "lake"
|
1016
|
+
|
1017
|
+
attribute :id, String
|
1018
|
+
has_one :alias_name, String
|
1019
|
+
has_one :name, String
|
1020
|
+
has_one :notes, Notes
|
1021
|
+
end
|
1022
|
+
|
1023
|
+
class Indoor
|
1024
|
+
include HappyMapper
|
1025
|
+
|
1026
|
+
tag "indoor"
|
1027
|
+
|
1028
|
+
has_one :address, Base::Models::Address
|
1029
|
+
has_one :alias_name, String
|
1030
|
+
has_one :contact, Base::Models::Contact
|
1031
|
+
has_one :name, String
|
1032
|
+
has_one :notes, Notes
|
1033
|
+
end
|
1034
|
+
|
1035
|
+
class Cave
|
1036
|
+
include HappyMapper
|
1037
|
+
|
1038
|
+
tag "cave"
|
1039
|
+
|
1040
|
+
attribute :id, String
|
1041
|
+
has_one :alias_name, String
|
1042
|
+
has_one :name, String
|
1043
|
+
has_one :notes, Notes
|
1044
|
+
end
|
1045
|
+
|
1046
|
+
class SiteData
|
1047
|
+
include HappyMapper
|
1048
|
+
|
1049
|
+
tag "sidedata"
|
1050
|
+
|
1051
|
+
has_one :area_length, Float
|
1052
|
+
has_one :area_width, Float
|
1053
|
+
has_one :average_visibility, Float
|
1054
|
+
has_one :bottom, String
|
1055
|
+
has_one :cave, Cave
|
1056
|
+
has_one :density, Float
|
1057
|
+
has_one :difficulty, Integer
|
1058
|
+
has_one :global_light_intensity, String
|
1059
|
+
has_one :indoor, Indoor
|
1060
|
+
has_one :maximum_depth, Float
|
1061
|
+
has_one :maximum_visibility, Float
|
1062
|
+
has_one :minimum_depth, Float
|
1063
|
+
has_one :minimum_visibility, Float
|
1064
|
+
has_one :river, River
|
1065
|
+
has_one :shore, Shore
|
1066
|
+
has_one :terrain, String
|
1067
|
+
has_one :wreck, Wreck
|
1068
|
+
end
|
1069
|
+
|
1070
|
+
class Site
|
1071
|
+
include HappyMapper
|
1072
|
+
|
1073
|
+
tag "site"
|
1074
|
+
|
1075
|
+
attribute :id, String
|
1076
|
+
has_one :alias_name, String
|
1077
|
+
has_one :ecology, Ecology
|
1078
|
+
has_one :environment, String
|
1079
|
+
has_one :geography, Geography
|
1080
|
+
has_many :links, Link, tag: "link"
|
1081
|
+
has_one :name, String
|
1082
|
+
has_one :notes, Notes
|
1083
|
+
has_many :ratings, Rating, tag: "rating"
|
1084
|
+
has_one :side_data, SiteData
|
1085
|
+
end
|
1086
|
+
|
1087
|
+
class Guide
|
1088
|
+
include HappyMapper
|
1089
|
+
|
1090
|
+
tag "guide"
|
1091
|
+
|
1092
|
+
has_many :links, Link, tag: "link"
|
1093
|
+
end
|
1094
|
+
|
1095
|
+
class DiveBase
|
1096
|
+
include HappyMapper
|
1097
|
+
|
1098
|
+
tag "divebase"
|
1099
|
+
|
1100
|
+
attribute :id, String
|
1101
|
+
has_one :address, Base::Models::Address
|
1102
|
+
has_one :alias_name, String
|
1103
|
+
has_one :contact, Base::Models::Contact
|
1104
|
+
has_many :guides, Guide, tag: "guide"
|
1105
|
+
has_many :links, Link, tag: "link"
|
1106
|
+
has_one :name, String
|
1107
|
+
has_one :notes, Notes
|
1108
|
+
has_one :price_dive_package, PriceDivePackage
|
1109
|
+
has_one :price_per_dive, Price
|
1110
|
+
has_many :ratings, Rating, tag: "rating"
|
1111
|
+
end
|
1112
|
+
|
1113
|
+
class DiveSite
|
1114
|
+
include HappyMapper
|
1115
|
+
|
1116
|
+
tag "divesite"
|
1117
|
+
|
1118
|
+
has_many :dive_bases, DiveBase, tag: "divebase"
|
1119
|
+
has_many :sites, Site, tag: "site"
|
1120
|
+
end
|
1121
|
+
|
1122
|
+
class Shop
|
1123
|
+
include HappyMapper
|
1124
|
+
|
1125
|
+
tag "shop"
|
1126
|
+
|
1127
|
+
has_one :alias_name, String
|
1128
|
+
has_one :address, Base::Models::Address
|
1129
|
+
has_one :contact, Base::Models::Contact
|
1130
|
+
has_one :name, String
|
1131
|
+
has_one :notes, Notes
|
1132
|
+
end
|
1133
|
+
|
1134
|
+
class Business
|
1135
|
+
include HappyMapper
|
1136
|
+
|
1137
|
+
tag "business"
|
1138
|
+
|
1139
|
+
has_one :shop, Shop
|
1140
|
+
end
|
1141
|
+
|
1142
|
+
class Membership
|
1143
|
+
include HappyMapper
|
1144
|
+
|
1145
|
+
tag "membership"
|
1146
|
+
|
1147
|
+
attribute :organisation, String
|
1148
|
+
attribute :member_id, String
|
1149
|
+
end
|
1150
|
+
|
1151
|
+
class NumberOfDives
|
1152
|
+
include HappyMapper
|
1153
|
+
|
1154
|
+
tag "numberofdives"
|
1155
|
+
|
1156
|
+
has_one :start_date, Date
|
1157
|
+
has_one :end_date, Date
|
1158
|
+
has_one :dives, Integer
|
1159
|
+
end
|
1160
|
+
|
1161
|
+
class Personal
|
1162
|
+
include HappyMapper
|
1163
|
+
|
1164
|
+
tag "personal"
|
1165
|
+
|
1166
|
+
has_one :birth_date, Date
|
1167
|
+
has_one :birth_name, String
|
1168
|
+
has_one :blood_group, String
|
1169
|
+
has_one :first_name, String
|
1170
|
+
has_one :height, Float
|
1171
|
+
has_one :honorific, String
|
1172
|
+
has_one :last_name, String
|
1173
|
+
has_one :membership, Membership
|
1174
|
+
has_one :middle_name, String
|
1175
|
+
has_one :number_of_dives, NumberOfDives
|
1176
|
+
has_one :sex, String
|
1177
|
+
has_one :smoking, String
|
1178
|
+
has_one :weight, Float
|
1179
|
+
end
|
1180
|
+
|
1181
|
+
class Instructor
|
1182
|
+
include HappyMapper
|
1183
|
+
|
1184
|
+
tag "instructor"
|
1185
|
+
|
1186
|
+
has_one :address, Base::Models::Address
|
1187
|
+
has_one :contact, Base::Models::Contact
|
1188
|
+
has_one :personal, Personal
|
1189
|
+
end
|
1190
|
+
|
1191
|
+
class Certification
|
1192
|
+
include HappyMapper
|
1193
|
+
|
1194
|
+
tag "certification"
|
1195
|
+
|
1196
|
+
has_one :certificate_number, String
|
1197
|
+
has_one :instructor, Instructor
|
1198
|
+
has_one :issue_date, Date
|
1199
|
+
has_one :level, String
|
1200
|
+
has_one :link, Link
|
1201
|
+
has_one :organization, String
|
1202
|
+
has_one :specialty, String
|
1203
|
+
has_one :valid_date, Date
|
1204
|
+
end
|
1205
|
+
|
1206
|
+
class Education
|
1207
|
+
include HappyMapper
|
1208
|
+
|
1209
|
+
tag "education"
|
1210
|
+
|
1211
|
+
has_many :certifications, Certification, tag: "certification"
|
1212
|
+
end
|
1213
|
+
|
1214
|
+
class Insurance
|
1215
|
+
include HappyMapper
|
1216
|
+
|
1217
|
+
tag "insurance"
|
1218
|
+
|
1219
|
+
has_one :alias_name, String
|
1220
|
+
has_one :issue_date, Date
|
1221
|
+
has_one :name, String
|
1222
|
+
has_one :notes, Notes
|
1223
|
+
has_one :valid_date, Date
|
1224
|
+
end
|
1225
|
+
|
1226
|
+
class DiveInsurances
|
1227
|
+
include HappyMapper
|
1228
|
+
|
1229
|
+
tag "diveinsurances"
|
1230
|
+
|
1231
|
+
has_many :insurances, Insurance, tag: "insurance"
|
1232
|
+
end
|
1233
|
+
|
1234
|
+
class Permit
|
1235
|
+
include HappyMapper
|
1236
|
+
|
1237
|
+
tag "permit"
|
1238
|
+
|
1239
|
+
has_one :alias_name, String
|
1240
|
+
has_one :issue_date, Date
|
1241
|
+
has_one :name, String
|
1242
|
+
has_one :notes, Notes
|
1243
|
+
has_one :region, String
|
1244
|
+
has_one :valid_date, Date
|
1245
|
+
end
|
1246
|
+
|
1247
|
+
class DivePermissions
|
1248
|
+
include HappyMapper
|
1249
|
+
|
1250
|
+
tag "divepermissions"
|
1251
|
+
|
1252
|
+
has_many :permits, Permit, tag: "permit"
|
1253
|
+
end
|
1254
|
+
|
1255
|
+
class Purchase
|
1256
|
+
include HappyMapper
|
1257
|
+
|
1258
|
+
tag "purchase"
|
1259
|
+
|
1260
|
+
has_one :datetime, DateTime
|
1261
|
+
has_one :link, Link
|
1262
|
+
has_one :price, Price
|
1263
|
+
has_one :shop, Shop
|
1264
|
+
end
|
1265
|
+
|
1266
|
+
class EquipmentPart
|
1267
|
+
include HappyMapper
|
1268
|
+
|
1269
|
+
tag "equipmentpart"
|
1270
|
+
|
1271
|
+
attribute :id, String
|
1272
|
+
has_one :alias_name, String
|
1273
|
+
has_many :links, Link, tag: "link"
|
1274
|
+
has_one :manufacturer, Manufacturer
|
1275
|
+
has_one :model, String
|
1276
|
+
has_one :name, String
|
1277
|
+
has_one :next_service_date, Date
|
1278
|
+
has_one :notes, Notes
|
1279
|
+
has_one :purchase, Purchase
|
1280
|
+
has_one :serial_number, String
|
1281
|
+
has_one :service_interval, Integer
|
1282
|
+
end
|
1283
|
+
|
1284
|
+
class Lead
|
1285
|
+
include HappyMapper
|
1286
|
+
|
1287
|
+
tag "lead"
|
1288
|
+
|
1289
|
+
has_one :equipment_part, EquipmentPart
|
1290
|
+
has_one :lead_quantity, Integer
|
1291
|
+
end
|
1292
|
+
|
1293
|
+
class Rebreather
|
1294
|
+
include HappyMapper
|
1295
|
+
|
1296
|
+
tag "rebreather"
|
1297
|
+
|
1298
|
+
has_one :equipment_part, EquipmentPart
|
1299
|
+
has_many :o2_sensors, EquipmentPart, tag: "o2sensor"
|
1300
|
+
end
|
1301
|
+
|
1302
|
+
class Suit
|
1303
|
+
include HappyMapper
|
1304
|
+
|
1305
|
+
tag "suit"
|
1306
|
+
|
1307
|
+
has_one :equipment_part, EquipmentPart
|
1308
|
+
has_one :suit_type, String
|
1309
|
+
end
|
1310
|
+
|
1311
|
+
class Tank
|
1312
|
+
include HappyMapper
|
1313
|
+
|
1314
|
+
tag "tank"
|
1315
|
+
|
1316
|
+
has_one :equipment_part, EquipmentPart
|
1317
|
+
has_one :tank_material, String
|
1318
|
+
has_one :tank_volume, Float
|
1319
|
+
end
|
1320
|
+
|
1321
|
+
class Camera
|
1322
|
+
include HappyMapper
|
1323
|
+
|
1324
|
+
tag "camera"
|
1325
|
+
|
1326
|
+
has_one :body, EquipmentPart
|
1327
|
+
has_many :flashes, EquipmentPart, tag: "flash"
|
1328
|
+
has_one :housing, EquipmentPart
|
1329
|
+
has_one :lens, EquipmentPart
|
1330
|
+
end
|
1331
|
+
|
1332
|
+
class EquipmentConfiguration
|
1333
|
+
include HappyMapper
|
1334
|
+
|
1335
|
+
tag "equipmentconfiguration"
|
1336
|
+
|
1337
|
+
has_one :alias_name, String
|
1338
|
+
has_many :links, Link, tag: "link"
|
1339
|
+
has_one :name, String
|
1340
|
+
has_one :notes, Notes
|
1341
|
+
has_many :boots, EquipmentPart, tag: "boots"
|
1342
|
+
has_many :buoyancy_control_devices, EquipmentPart, tag: "buoyancycontroldevice"
|
1343
|
+
has_many :cameras, Camera, tag: "camera"
|
1344
|
+
has_many :compasses, EquipmentPart, tag: "compass"
|
1345
|
+
has_many :dive_computers, EquipmentPart, tag: "divecomputer"
|
1346
|
+
has_many :fins, EquipmentPart, tag: "fins"
|
1347
|
+
has_many :gloves, EquipmentPart, tag: "gloves"
|
1348
|
+
has_many :knives, EquipmentPart, tag: "knife"
|
1349
|
+
has_many :leads, Lead, tag: "lead"
|
1350
|
+
has_many :lights, EquipmentPart, tag: "light"
|
1351
|
+
has_many :masks, EquipmentPart, tag: "mask"
|
1352
|
+
has_many :rebreathers, Rebreather, tag: "rebreather"
|
1353
|
+
has_many :regulators, EquipmentPart, tag: "regulator"
|
1354
|
+
has_many :scooters, EquipmentPart, tag: "scooter"
|
1355
|
+
has_many :suits, Suit, tag: "suit"
|
1356
|
+
has_many :tanks, Tank, tag: "tank"
|
1357
|
+
has_many :various_pieces, EquipmentPart, tag: "variouspieces"
|
1358
|
+
has_many :video_cameras, EquipmentPart, tag: "videocamera"
|
1359
|
+
has_many :watches, EquipmentPart, tag: "watch"
|
1360
|
+
end
|
1361
|
+
|
1362
|
+
class Equipment
|
1363
|
+
include HappyMapper
|
1364
|
+
|
1365
|
+
tag "equipment"
|
1366
|
+
|
1367
|
+
has_many :compressors, EquipmentPart, tag: "compressor"
|
1368
|
+
has_one :equipment_configuration, EquipmentConfiguration
|
1369
|
+
has_many :boots, EquipmentPart, tag: "boots"
|
1370
|
+
has_many :buoyancy_control_devices, EquipmentPart, tag: "buoyancycontroldevice"
|
1371
|
+
has_many :cameras, Camera, tag: "camera"
|
1372
|
+
has_many :compasses, EquipmentPart, tag: "compass"
|
1373
|
+
has_many :dive_computers, EquipmentPart, tag: "divecomputer"
|
1374
|
+
has_many :fins, EquipmentPart, tag: "fins"
|
1375
|
+
has_many :gloves, EquipmentPart, tag: "gloves"
|
1376
|
+
has_many :knives, EquipmentPart, tag: "knife"
|
1377
|
+
has_many :leads, Lead, tag: "lead"
|
1378
|
+
has_many :lights, EquipmentPart, tag: "light"
|
1379
|
+
has_many :masks, EquipmentPart, tag: "mask"
|
1380
|
+
has_many :rebreathers, Rebreather, tag: "rebreather"
|
1381
|
+
has_many :regulators, EquipmentPart, tag: "regulator"
|
1382
|
+
has_many :scooters, EquipmentPart, tag: "scooter"
|
1383
|
+
has_many :suits, Suit, tag: "suit"
|
1384
|
+
has_many :tanks, Tank, tag: "tank"
|
1385
|
+
has_many :various_pieces, EquipmentPart, tag: "variouspieces"
|
1386
|
+
has_many :video_cameras, EquipmentPart, tag: "videocamera"
|
1387
|
+
has_many :watches, EquipmentPart, tag: "watch"
|
1388
|
+
end
|
1389
|
+
|
1390
|
+
class Doctor
|
1391
|
+
include HappyMapper
|
1392
|
+
|
1393
|
+
tag "doctor"
|
1394
|
+
|
1395
|
+
attribute :id, String
|
1396
|
+
has_one :address, Base::Models::Address
|
1397
|
+
has_one :contact, Base::Models::Contact
|
1398
|
+
has_one :personal, Personal
|
1399
|
+
end
|
1400
|
+
|
1401
|
+
class Examination
|
1402
|
+
include HappyMapper
|
1403
|
+
|
1404
|
+
tag "examination"
|
1405
|
+
|
1406
|
+
has_one :datetime, DateTime
|
1407
|
+
has_one :doctor, Doctor
|
1408
|
+
has_one :examination_result, String
|
1409
|
+
has_many :links, Link, tag: "link"
|
1410
|
+
has_one :notes, Notes
|
1411
|
+
has_one :total_lung_capacity, Float
|
1412
|
+
has_one :vital_capacity, Float
|
1413
|
+
end
|
1414
|
+
|
1415
|
+
class Medical
|
1416
|
+
include HappyMapper
|
1417
|
+
|
1418
|
+
tag "medical"
|
1419
|
+
|
1420
|
+
has_one :examination, Examination
|
1421
|
+
end
|
1422
|
+
|
1423
|
+
class BuddyOwnerShared
|
1424
|
+
include HappyMapper
|
1425
|
+
|
1426
|
+
attribute :id, String
|
1427
|
+
has_one :address, Base::Models::Address
|
1428
|
+
has_one :contact, Base::Models::Contact
|
1429
|
+
has_one :dive_insurances, DiveInsurances
|
1430
|
+
has_one :dive_permissions, DivePermissions
|
1431
|
+
has_one :equipment, Equipment
|
1432
|
+
has_one :medical, Medical
|
1433
|
+
has_one :notes, Notes
|
1434
|
+
has_one :personal, Personal
|
1435
|
+
end
|
1436
|
+
|
1437
|
+
class Buddy
|
1438
|
+
include HappyMapper
|
1439
|
+
|
1440
|
+
tag "buddy"
|
1441
|
+
|
1442
|
+
attribute :id, String
|
1443
|
+
has_one :address, Base::Models::Address
|
1444
|
+
has_one :contact, Base::Models::Contact
|
1445
|
+
has_one :dive_insurances, DiveInsurances
|
1446
|
+
has_one :dive_permissions, DivePermissions
|
1447
|
+
has_one :equipment, Equipment
|
1448
|
+
has_one :medical, Medical
|
1449
|
+
has_one :notes, Notes
|
1450
|
+
has_one :personal, Personal
|
1451
|
+
has_one :certification, Certification
|
1452
|
+
has_one :student, String
|
1453
|
+
end
|
1454
|
+
|
1455
|
+
class Owner
|
1456
|
+
include HappyMapper
|
1457
|
+
|
1458
|
+
tag "owner"
|
1459
|
+
|
1460
|
+
attribute :id, String
|
1461
|
+
has_one :address, Base::Models::Address
|
1462
|
+
has_one :contact, Base::Models::Contact
|
1463
|
+
has_one :dive_insurances, DiveInsurances
|
1464
|
+
has_one :dive_permissions, DivePermissions
|
1465
|
+
has_one :equipment, Equipment
|
1466
|
+
has_one :medical, Medical
|
1467
|
+
has_one :notes, Notes
|
1468
|
+
has_one :personal, Personal
|
1469
|
+
has_one :education, Education
|
1470
|
+
end
|
1471
|
+
|
1472
|
+
class Diver
|
1473
|
+
include HappyMapper
|
1474
|
+
|
1475
|
+
tag "diver"
|
1476
|
+
|
1477
|
+
has_many :buddies, Buddy, tag: "buddy"
|
1478
|
+
has_one :owner, Owner
|
1479
|
+
end
|
1480
|
+
|
1481
|
+
class DCAlarm
|
1482
|
+
include HappyMapper
|
1483
|
+
|
1484
|
+
tag "dcalarm"
|
1485
|
+
|
1486
|
+
has_one :acknowledge, String
|
1487
|
+
has_one :alarm_type, Integer
|
1488
|
+
has_one :period, Float
|
1489
|
+
end
|
1490
|
+
|
1491
|
+
class SetDCDiveDepthAlarm
|
1492
|
+
include HappyMapper
|
1493
|
+
|
1494
|
+
tag "setdcdivedethalarm"
|
1495
|
+
|
1496
|
+
has_one :dc_alarm, DCAlarm
|
1497
|
+
has_one :dc_alarm_depth, Float
|
1498
|
+
end
|
1499
|
+
|
1500
|
+
class SetDCDivePo2Alarm
|
1501
|
+
include HappyMapper
|
1502
|
+
|
1503
|
+
tag "setdcdivepo2alarm"
|
1504
|
+
|
1505
|
+
has_one :dc_alarm, DCAlarm
|
1506
|
+
has_one :maximum_po2, Float
|
1507
|
+
end
|
1508
|
+
|
1509
|
+
class SetDCDiveSiteData
|
1510
|
+
include HappyMapper
|
1511
|
+
|
1512
|
+
tag "setdcdivesitedata"
|
1513
|
+
|
1514
|
+
attribute :dive_site, String
|
1515
|
+
end
|
1516
|
+
|
1517
|
+
class SetDCDiveTimeAlarm
|
1518
|
+
include HappyMapper
|
1519
|
+
|
1520
|
+
tag "setdcdivetimealarm"
|
1521
|
+
|
1522
|
+
has_one :dc_alarm, DCAlarm
|
1523
|
+
has_one :timespan, Float
|
1524
|
+
end
|
1525
|
+
|
1526
|
+
class SetDCEndNDTAlarm
|
1527
|
+
include HappyMapper
|
1528
|
+
|
1529
|
+
tag "setdcendndtalarm"
|
1530
|
+
|
1531
|
+
has_one :dc_alarm, DCAlarm
|
1532
|
+
end
|
1533
|
+
|
1534
|
+
class SetDCDecoModel
|
1535
|
+
include HappyMapper
|
1536
|
+
|
1537
|
+
tag "setdcdecomodel"
|
1538
|
+
|
1539
|
+
has_one :alias_name, String
|
1540
|
+
has_one :application_data, ApplicationData
|
1541
|
+
has_one :name, String
|
1542
|
+
end
|
1543
|
+
|
1544
|
+
class SetDCBuddyData
|
1545
|
+
include HappyMapper
|
1546
|
+
|
1547
|
+
tag "setdcbuddydata"
|
1548
|
+
|
1549
|
+
attribute :buddy, String
|
1550
|
+
end
|
1551
|
+
|
1552
|
+
class SetDCData
|
1553
|
+
include HappyMapper
|
1554
|
+
|
1555
|
+
tag "setdcdata"
|
1556
|
+
|
1557
|
+
has_one :set_dc_alarm_time, DateTime
|
1558
|
+
has_one :set_dc_altitude, Float
|
1559
|
+
has_one :set_dc_buddy_data, SetDCBuddyData
|
1560
|
+
has_one :set_dc_date_time, DateTime
|
1561
|
+
has_one :set_dc_deco_model, SetDCDecoModel
|
1562
|
+
has_one :set_dc_dive_depth_alarm, SetDCDiveDepthAlarm
|
1563
|
+
has_one :set_dc_dive_po2_alarm, SetDCDivePo2Alarm
|
1564
|
+
has_many :set_dc_dive_site_data, SetDCDiveSiteData, tag: "setdcdivesitedata"
|
1565
|
+
has_one :set_dc_dive_time_alarm, SetDCDiveTimeAlarm
|
1566
|
+
has_one :set_dc_end_ndt_alarm, SetDCEndNDTAlarm
|
1567
|
+
has_one :set_dc_gas_definitions_data, String
|
1568
|
+
has_one :set_dc_owner_data, String
|
1569
|
+
has_one :set_dc_password, String
|
1570
|
+
has_one :set_dc_generator_data, String
|
1571
|
+
end
|
1572
|
+
|
1573
|
+
class GetDCData
|
1574
|
+
include HappyMapper
|
1575
|
+
|
1576
|
+
tag "getdcdata"
|
1577
|
+
|
1578
|
+
has_one :get_dc_all_data, String
|
1579
|
+
has_one :get_dc_generator_data, String
|
1580
|
+
has_one :get_dc_owner_data, String
|
1581
|
+
has_one :get_dc_buddy_data, String
|
1582
|
+
has_one :get_dc_gas_definitions_data, String
|
1583
|
+
has_one :get_dc_dive_site_data, String
|
1584
|
+
has_one :get_dc_dive_trip_data, String
|
1585
|
+
has_one :get_dc_profile_data, String
|
1586
|
+
end
|
1587
|
+
|
1588
|
+
class DiveComputerDump
|
1589
|
+
include HappyMapper
|
1590
|
+
|
1591
|
+
tag "divecomputerdump"
|
1592
|
+
|
1593
|
+
has_one :datetime, DateTime
|
1594
|
+
has_one :dc_dump, String
|
1595
|
+
has_one :link, Link
|
1596
|
+
end
|
1597
|
+
|
1598
|
+
class DiveComputerControl
|
1599
|
+
include HappyMapper
|
1600
|
+
|
1601
|
+
tag "divecomputercontrol"
|
1602
|
+
|
1603
|
+
has_many :dive_computer_dumps, DiveComputerDump, tag: "divecomputerdump"
|
1604
|
+
has_one :get_dc_data, GetDCData
|
1605
|
+
has_one :set_dc_data, SetDCData
|
1606
|
+
end
|
1607
|
+
|
1608
|
+
class Uddf
|
1609
|
+
include HappyMapper
|
1610
|
+
|
1611
|
+
tag "uddf"
|
1612
|
+
|
1613
|
+
attribute :version, String
|
1614
|
+
has_one :business, Business
|
1615
|
+
has_one :deco_model, DecoModel
|
1616
|
+
has_one :dive_computer_control, DiveComputerControl
|
1617
|
+
has_one :diver, Diver
|
1618
|
+
has_one :dive_site, DiveSite
|
1619
|
+
has_one :dive_trip, DiveTrip
|
1620
|
+
has_one :gas_definitions, GasDefinitions
|
1621
|
+
has_one :generator, Generator
|
1622
|
+
has_one :maker, Maker
|
1623
|
+
has_one :media_data, MediaData
|
1624
|
+
has_one :profile_data, ProfileData
|
1625
|
+
has_one :table_generation, TableGeneration
|
1626
|
+
end
|
1627
|
+
end
|
1628
|
+
end
|
1629
|
+
end
|