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