Class: Lease::InquirySerializer

Inherits:
AbstractSerializer show all
Extended by:
Site::TimeHelper
Defined in:
app/serializers/lease/inquiry_serializer.rb

Class Method Summary collapse

Methods included from Site::TimeHelper

format_date, locale_date_format, next_hour

Methods inherited from AbstractSerializer

opts, serialize

Class Method Details

.account_id(inquiry) ⇒ Object



46
47
48
# File 'app/serializers/lease/inquiry_serializer.rb', line 46

def (inquiry)
  { account_id: inquiry. }
end

.address(inquiry) ⇒ Object



90
91
92
# File 'app/serializers/lease/inquiry_serializer.rb', line 90

def address(inquiry)
  { address: inquiry.address }
end

.available_attributesObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'app/serializers/lease/inquiry_serializer.rb', line 8

def available_attributes
  i[
    
    address
    boat_types
    comments
    created_at
    created_at_full
    duration
    email
    from
    guests
    hours_per_day
    id
    is_my_price
    is_skippered
    kids
    latitude
    longitude
    manager_email
    my_price
    my_price_currency
    name
    need_transfer
    period
    period_formatted
    phone_number
    state
    to
    token
    watersports
  ].freeze
end

.boat_types(inquiry) ⇒ Object



161
162
163
164
165
166
167
168
169
170
171
172
# File 'app/serializers/lease/inquiry_serializer.rb', line 161

def boat_types(inquiry)
  boat_types = BoatType.where(id: inquiry.boat_type_ids).includes(:translations)
  {
    boat_types: boat_types.map do |bt|
      {
        id:   bt.id,
        name: bt.name,
        icon: bt.icon.url
      }
    end
  }
end

.comments(inquiry) ⇒ Object



78
79
80
# File 'app/serializers/lease/inquiry_serializer.rb', line 78

def comments(inquiry)
  { comments: inquiry.comments }
end

.created_at(inquiry) ⇒ Object



82
83
84
# File 'app/serializers/lease/inquiry_serializer.rb', line 82

def created_at(inquiry)
  { created_at: format_date(inquiry.created_at, @opts[:locale]) }
end

.created_at_full(inquiry) ⇒ Object



86
87
88
# File 'app/serializers/lease/inquiry_serializer.rb', line 86

def created_at_full(inquiry)
  { created_at_full: format_date(inquiry.created_at, @opts[:locale], true) }
end

.duration(inquiry) ⇒ Object



129
130
131
132
133
134
135
136
137
138
139
# File 'app/serializers/lease/inquiry_serializer.rb', line 129

def duration(inquiry)
  distance = (inquiry.to - inquiry.from).to_i / 24 / 60 / 60
  distance = distance.zero? ? 1 : distance + 1
  uom      = I18n.t('activerecord.labels.lease/bid.day', count: distance)
  {
    duration: {
      distance: distance,
      uom:      uom
    }
  }
end

.email(inquiry) ⇒ Object



102
103
104
# File 'app/serializers/lease/inquiry_serializer.rb', line 102

def email(inquiry)
  { email: inquiry...user.email }
end

.from(inquiry) ⇒ Object



141
142
143
# File 'app/serializers/lease/inquiry_serializer.rb', line 141

def from(inquiry)
  { from: format_date(inquiry.from, @opts[:locale]) }
end

.guests(inquiry) ⇒ Object



62
63
64
# File 'app/serializers/lease/inquiry_serializer.rb', line 62

def guests(inquiry)
  { guests: inquiry.guests }
end

.hours_per_day(inquiry) ⇒ Object



178
179
180
# File 'app/serializers/lease/inquiry_serializer.rb', line 178

def hours_per_day(inquiry)
  { hours_per_day: inquiry.hours_per_day }
end

.id(inquiry) ⇒ Object



42
43
44
# File 'app/serializers/lease/inquiry_serializer.rb', line 42

def id(inquiry)
  { id: inquiry.id }
end

.is_my_price(inquiry) ⇒ Object



149
150
151
# File 'app/serializers/lease/inquiry_serializer.rb', line 149

def is_my_price(inquiry)
  { is_my_price: inquiry.is_my_price }
end

.is_skippered(inquiry) ⇒ Object



58
59
60
# File 'app/serializers/lease/inquiry_serializer.rb', line 58

def is_skippered(inquiry)
  { is_skippered: inquiry.is_skippered }
end

.kids(inquiry) ⇒ Object



66
67
68
# File 'app/serializers/lease/inquiry_serializer.rb', line 66

def kids(inquiry)
  { kids: inquiry.kids }
end

.latitude(inquiry) ⇒ Object



94
95
96
# File 'app/serializers/lease/inquiry_serializer.rb', line 94

def latitude(inquiry)
  { latitude: inquiry.latitude.to_f }
end

.longitude(inquiry) ⇒ Object



98
99
100
# File 'app/serializers/lease/inquiry_serializer.rb', line 98

def longitude(inquiry)
  { longitude: inquiry.longitude.to_f }
end

.manager_email(inquiry) ⇒ Object



174
175
176
# File 'app/serializers/lease/inquiry_serializer.rb', line 174

def manager_email(inquiry)
  { manager_email: inquiry.&.user&.email }
end

.my_price(inquiry) ⇒ Object



153
154
155
# File 'app/serializers/lease/inquiry_serializer.rb', line 153

def my_price(inquiry)
  { my_price: inquiry.my_price }
end

.my_price_currency(inquiry) ⇒ Object



157
158
159
# File 'app/serializers/lease/inquiry_serializer.rb', line 157

def my_price_currency(inquiry)
  { my_price_currency: inquiry.my_price_currency }
end

.name(inquiry) ⇒ Object



106
107
108
# File 'app/serializers/lease/inquiry_serializer.rb', line 106

def name(inquiry)
  { name: inquiry.name }
end

.need_transfer(inquiry) ⇒ Object



74
75
76
# File 'app/serializers/lease/inquiry_serializer.rb', line 74

def need_transfer(inquiry)
  { need_transfer: inquiry.need_transfer }
end

.period(inquiry) ⇒ Object



114
115
116
# File 'app/serializers/lease/inquiry_serializer.rb', line 114

def period(inquiry)
  { period: '%s - %s' % [from(inquiry)[:from], to(inquiry)[:to]] }
end

.period_formatted(inquiry) ⇒ Object



118
119
120
121
122
123
124
125
126
127
# File 'app/serializers/lease/inquiry_serializer.rb', line 118

def period_formatted(inquiry)
  frm = format_date(inquiry.from, @opts[:locale], false, true)
  tto = format_date(inquiry.to, @opts[:locale], false, true)

  { period: {
      from: frm,
      to:   tto
    }
  }
end

.phone_number(inquiry) ⇒ Object



110
111
112
# File 'app/serializers/lease/inquiry_serializer.rb', line 110

def phone_number(inquiry)
  { phone_number: inquiry.phone_number }
end

.state(inquiry) ⇒ Object



50
51
52
# File 'app/serializers/lease/inquiry_serializer.rb', line 50

def state(inquiry)
  { state: inquiry.state }
end

.to(inquiry) ⇒ Object



145
146
147
# File 'app/serializers/lease/inquiry_serializer.rb', line 145

def to(inquiry)
  { to: format_date(inquiry.to, @opts[:locale]) }
end

.token(inquiry) ⇒ Object



54
55
56
# File 'app/serializers/lease/inquiry_serializer.rb', line 54

def token(inquiry)
  { token: inquiry.token }
end

.watersports(inquiry) ⇒ Object



70
71
72
# File 'app/serializers/lease/inquiry_serializer.rb', line 70

def watersports(inquiry)
  { watersports: inquiry.watersports }
end