auctify 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (115) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +229 -0
  4. data/Rakefile +34 -0
  5. data/app/assets/config/auctify_manifest.js +1 -0
  6. data/app/assets/javascripts/folio/console/main_app.coffee +1 -0
  7. data/app/assets/stylesheets/auctify/application.css +15 -0
  8. data/app/assets/stylesheets/auctify/bidder_registrations.css +4 -0
  9. data/app/assets/stylesheets/auctify/bids.css +4 -0
  10. data/app/assets/stylesheets/auctify/sales.css +4 -0
  11. data/app/assets/stylesheets/auctify/sales_packs.css +4 -0
  12. data/app/assets/stylesheets/folio/console/_main_app.sass +1 -0
  13. data/app/assets/stylesheets/scaffold.css +80 -0
  14. data/app/cells/folio/console/atoms/previews/main_app.coffee +1 -0
  15. data/app/concerns/auctify/behavior/base.rb +20 -0
  16. data/app/concerns/auctify/behavior/buyer.rb +16 -0
  17. data/app/concerns/auctify/behavior/item.rb +27 -0
  18. data/app/concerns/auctify/behavior/seller.rb +36 -0
  19. data/app/concerns/auctify/sale/auction_callbacks.rb +44 -0
  20. data/app/controllers/auctify/api/v1/auctions_controller.rb +61 -0
  21. data/app/controllers/auctify/api/v1/base_controller.rb +22 -0
  22. data/app/controllers/auctify/api/v1/console/bids_controller.rb +37 -0
  23. data/app/controllers/auctify/application_controller.rb +8 -0
  24. data/app/controllers/auctify/bidder_registrations_controller.rb +65 -0
  25. data/app/controllers/auctify/bids_controller.rb +64 -0
  26. data/app/controllers/auctify/sales_controller.rb +75 -0
  27. data/app/controllers/auctify/sales_packs_controller.rb +75 -0
  28. data/app/helpers/auctify/application_helper.rb +10 -0
  29. data/app/helpers/auctify/bidder_registrations_helper.rb +6 -0
  30. data/app/helpers/auctify/bids_helper.rb +6 -0
  31. data/app/helpers/auctify/sales_helper.rb +15 -0
  32. data/app/helpers/auctify/sales_packs_helper.rb +6 -0
  33. data/app/jobs/auctify/application_job.rb +6 -0
  34. data/app/jobs/auctify/bidding_closer_job.rb +23 -0
  35. data/app/jobs/auctify/bidding_is_close_to_end_notifier_job.rb +29 -0
  36. data/app/mailers/auctify/application_mailer.rb +8 -0
  37. data/app/models/auctify/application_record.rb +14 -0
  38. data/app/models/auctify/behaviors.rb +27 -0
  39. data/app/models/auctify/bid.rb +72 -0
  40. data/app/models/auctify/bidder_registration.rb +84 -0
  41. data/app/models/auctify/sale/auction.rb +404 -0
  42. data/app/models/auctify/sale/base.rb +210 -0
  43. data/app/models/auctify/sale/retail.rb +97 -0
  44. data/app/models/auctify/sales_pack.rb +101 -0
  45. data/app/serializers/auctify/sale/auction_serializer.rb +46 -0
  46. data/app/services/auctify/bids_appender.rb +241 -0
  47. data/app/services/auctify/service_base.rb +78 -0
  48. data/app/types/auctify/minimal_bids_ladder_type.rb +77 -0
  49. data/app/views/auctify/api/v1/console/bids/index.html.erb +1 -0
  50. data/app/views/auctify/api/v1/console/bids/show.html.erb +1 -0
  51. data/app/views/auctify/bidder_registrations/_form.html.erb +27 -0
  52. data/app/views/auctify/bidder_registrations/edit.html.erb +6 -0
  53. data/app/views/auctify/bidder_registrations/index.html.erb +33 -0
  54. data/app/views/auctify/bidder_registrations/new.html.erb +5 -0
  55. data/app/views/auctify/bidder_registrations/show.html.erb +24 -0
  56. data/app/views/auctify/bids/_form.html.erb +32 -0
  57. data/app/views/auctify/bids/edit.html.erb +6 -0
  58. data/app/views/auctify/bids/index.html.erb +31 -0
  59. data/app/views/auctify/bids/new.html.erb +5 -0
  60. data/app/views/auctify/bids/show.html.erb +19 -0
  61. data/app/views/auctify/sales/_form.html.erb +32 -0
  62. data/app/views/auctify/sales/edit.html.erb +6 -0
  63. data/app/views/auctify/sales/index.html.erb +36 -0
  64. data/app/views/auctify/sales/new.html.erb +5 -0
  65. data/app/views/auctify/sales/show.html.erb +19 -0
  66. data/app/views/auctify/sales_packs/_form.html.erb +57 -0
  67. data/app/views/auctify/sales_packs/edit.html.erb +6 -0
  68. data/app/views/auctify/sales_packs/index.html.erb +40 -0
  69. data/app/views/auctify/sales_packs/new.html.erb +5 -0
  70. data/app/views/auctify/sales_packs/show.html.erb +44 -0
  71. data/app/views/layouts/auctify/application.html.erb +15 -0
  72. data/config/locales/auctify.cs.yml +121 -0
  73. data/config/locales/default.cs.yml +220 -0
  74. data/config/locales/default.en.yml +215 -0
  75. data/config/routes.rb +23 -0
  76. data/db/migrate/20210212163000_create_auctify_sales.rb +16 -0
  77. data/db/migrate/20210216151350_add_type_to_auctify_sales.rb +7 -0
  78. data/db/migrate/20210217101246_add_state_to_auctify_sales.rb +7 -0
  79. data/db/migrate/20210217110819_add_prices_to_auctify_sales.rb +9 -0
  80. data/db/migrate/20210222103031_add_published_at_to_auctify_sale.rb +7 -0
  81. data/db/migrate/20210223090240_create_auctify_bidder_registrations.rb +15 -0
  82. data/db/migrate/20210223152139_create_auctify_bids.rb +13 -0
  83. data/db/migrate/20210225103227_add_bid_steps_ladder_to_auctify_sales.rb +7 -0
  84. data/db/migrate/20210412114319_add_reserve_price_to_auctify_sales.rb +7 -0
  85. data/db/migrate/20210416140603_create_auctify_sales_packs.rb +17 -0
  86. data/db/migrate/20210416141111_add_pack_reference_to_auctify_sales.rb +7 -0
  87. data/db/migrate/20210419075003_add_ends_at_to_auctify_sales.rb +7 -0
  88. data/db/migrate/20210419082800_add_position_to_auctify_sales.rb +8 -0
  89. data/db/migrate/20210419083321_add_indexes.rb +12 -0
  90. data/db/migrate/20210421093652_add_number_to_auctify_sales.rb +7 -0
  91. data/db/migrate/20210423071326_removing_polymorphic_assoc_sale_to_item.rb +7 -0
  92. data/db/migrate/20210423071534_add_currently_ends_at_to_auctify_sales.rb +7 -0
  93. data/db/migrate/20210427121353_change_column_published_on_auctify_sale.rb +15 -0
  94. data/db/migrate/20210427122315_add_featured_to_auctify_sales.rb +7 -0
  95. data/db/migrate/20210428045651_add_sales_bool_indices.rb +9 -0
  96. data/db/migrate/20210428064615_allow_seller_to_be_nil.rb +13 -0
  97. data/db/migrate/20210429051508_add_sales_pack_start_and_end.rb +15 -0
  98. data/db/migrate/20210430080419_add_sales_slug.rb +11 -0
  99. data/db/migrate/20210503095704_add_cancelled_to_auctify_bids.rb +7 -0
  100. data/db/migrate/20210504072041_add_commission_and_contract_to_auctify_sales.rb +8 -0
  101. data/db/migrate/20210506064100_add_winner_to_auctify_sales.rb +7 -0
  102. data/db/migrate/20210506072438_add_bids_count_to_auctify_sales.rb +7 -0
  103. data/db/migrate/20210507085845_rename_bids_count_to_applied_bids_count.rb +7 -0
  104. data/db/migrate/20210510063146_add_dont_confirm_bids_to_registrations.rb +7 -0
  105. data/db/migrate/20210511081556_add_index_on_cancelled_on.rb +7 -0
  106. data/db/migrate/20210512162942_add_sold_at_to_auctify_sales.rb +7 -0
  107. data/db/migrate/20210607113440_add_commission_in_percent_to_sales_packs.rb +7 -0
  108. data/db/migrate/20210617062509_add_index_to_auctify_sales_currently_ends_at.rb +7 -0
  109. data/db/migrate/20210625125732_add_current_winner_to_auctify_sales.rb +7 -0
  110. data/lib/auctify.rb +7 -0
  111. data/lib/auctify/configuration.rb +43 -0
  112. data/lib/auctify/engine.rb +25 -0
  113. data/lib/auctify/version.rb +5 -0
  114. data/lib/tasks/auctify_tasks.rake +23 -0
  115. metadata +442 -0
@@ -0,0 +1,220 @@
1
+ ---
2
+ cs:
3
+ activerecord:
4
+ errors:
5
+ messages:
6
+ record_invalid: 'Validace je neúspešná: %{errors}'
7
+ restrict_dependent_destroy:
8
+ has_many: Nemůžu smazat položku protože existuje závislé/ý %{record}
9
+ has_one: Nemůžu smazat položku protože existuje závislá/ý/é %{record}
10
+ date:
11
+ abbr_day_names:
12
+ - Ne
13
+ - Po
14
+ - Út
15
+ - St
16
+ - Čt
17
+ - Pá
18
+ - So
19
+ abbr_month_names:
20
+ -
21
+ - led
22
+ - úno
23
+ - bře
24
+ - dub
25
+ - kvě
26
+ - čvn
27
+ - čvc
28
+ - srp
29
+ - zář
30
+ - říj
31
+ - lis
32
+ - pro
33
+ day_names:
34
+ - neděle
35
+ - pondělí
36
+ - úterý
37
+ - středa
38
+ - čtvrtek
39
+ - pátek
40
+ - sobota
41
+ formats:
42
+ default: "%d. %m. %Y"
43
+ long: "%d. %B %Y"
44
+ short: "%d %b"
45
+ month_names:
46
+ -
47
+ - leden
48
+ - únor
49
+ - březen
50
+ - duben
51
+ - květen
52
+ - červen
53
+ - červenec
54
+ - srpen
55
+ - září
56
+ - říjen
57
+ - listopad
58
+ - prosinec
59
+ order:
60
+ - :day
61
+ - :month
62
+ - :year
63
+ datetime:
64
+ distance_in_words:
65
+ about_x_hours:
66
+ few: asi %{count} hodinami
67
+ one: asi hodinou
68
+ other: asi %{count} hodinami
69
+ about_x_months:
70
+ few: asi %{count} měsíci
71
+ one: asi měsícem
72
+ other: asi %{count} měsíci
73
+ about_x_years:
74
+ few: asi %{count} roky
75
+ one: asi rokem
76
+ other: asi %{count} roky
77
+ almost_x_years:
78
+ few: téměř %{count} roky
79
+ one: téměř rokem
80
+ other: téměř %{count} roky
81
+ half_a_minute: půl minutou
82
+ less_than_x_minutes:
83
+ few: ani ne %{count} minutami
84
+ one: necelou minutou
85
+ other: ani ne %{count} minutami
86
+ less_than_x_seconds:
87
+ few: ani ne %{count} sekundami
88
+ one: necelou sekundou
89
+ other: ani ne %{count} sekundami
90
+ over_x_years:
91
+ few: více než %{count} roky
92
+ one: více než rokem
93
+ other: více než %{count} roky
94
+ x_days:
95
+ few: "%{count} dny"
96
+ one: 24 hodinami
97
+ other: "%{count} dny"
98
+ x_minutes:
99
+ few: "%{count} minutami"
100
+ one: minutou
101
+ other: "%{count} minutami"
102
+ x_months:
103
+ few: "%{count} měsíci"
104
+ one: měsícem
105
+ other: "%{count} měsíci"
106
+ x_seconds:
107
+ few: "%{count} sekundami"
108
+ one: sekundou
109
+ other: "%{count} sekundami"
110
+ x_years:
111
+ few: "%{count} roky"
112
+ one: 1 rok
113
+ other: "%{count} let"
114
+ prompts:
115
+ day: Den
116
+ hour: Hodina
117
+ minute: Minuta
118
+ month: Měsíc
119
+ second: Sekunda
120
+ year: Rok
121
+ errors:
122
+ format: "%{attribute} %{message}"
123
+ messages:
124
+ accepted: musí být potvrzeno
125
+ blank: je povinná položka
126
+ confirmation: nebylo potvrzeno
127
+ empty: nesmí být prázdný/á/é
128
+ equal_to: musí být rovno %{count}
129
+ even: musí být sudé číslo
130
+ exclusion: je vyhrazeno pro jiný účel
131
+ greater_than: musí být větší než %{count}
132
+ greater_than_or_equal_to: musí být větší nebo rovno %{count}
133
+ inclusion: není v seznamu povolených hodnot
134
+ invalid: není platná hodnota
135
+ less_than: musí být méně než %{count}
136
+ less_than_or_equal_to: musí být méně nebo rovno %{count}
137
+ model_invalid: 'validace selhala: %{errors}'
138
+ not_a_number: není číslo
139
+ not_an_integer: musí být celé číslo
140
+ odd: musí být liché číslo
141
+ other_than: musí být rozdílný/á/é od %{count}
142
+ present: musí být prázdný/á/é
143
+ required: musí existovat
144
+ taken: již databáze obsahuje
145
+ too_long: je příliš dlouhý/á/é (max. %{count} znaků)
146
+ too_short: je příliš krátký/á/é (min. %{count} znaků)
147
+ wrong_length: nemá správnou délku (očekáváno %{count} znaků)
148
+ template:
149
+ body: 'Následující pole obsahují chybně vyplněné údaje: '
150
+ header:
151
+ few: Při ukládání objektu %{model} došlo ke %{count} chybám a nebylo možné jej uložit
152
+ one: Při ukládání objektu %{model} došlo k chybám a nebylo jej možné uložit
153
+ other: Při ukládání objektu %{model} došlo ke %{count} chybám a nebylo možné jej uložit
154
+ helpers:
155
+ select:
156
+ prompt: Prosím vyberte si
157
+ submit:
158
+ create: Vytvořit %{model}
159
+ submit: Uložit %{model}
160
+ update: Aktualizovat %{model}
161
+ number:
162
+ currency:
163
+ format:
164
+ delimiter: " "
165
+ format: "%n %u"
166
+ precision: 2
167
+ separator: ","
168
+ significant: false
169
+ strip_insignificant_zeros: false
170
+ unit: Kč
171
+ format:
172
+ delimiter: "."
173
+ precision: 3
174
+ separator: ","
175
+ significant: false
176
+ strip_insignificant_zeros: false
177
+ human:
178
+ decimal_units:
179
+ format: "%n %u"
180
+ units:
181
+ billion: Miliarda
182
+ million: Milion
183
+ quadrillion: Kvadrilion
184
+ thousand: Tisíc
185
+ trillion: Bilion
186
+ unit: ''
187
+ format:
188
+ delimiter: ''
189
+ precision: 1
190
+ significant: false
191
+ strip_insignificant_zeros: false
192
+ storage_units:
193
+ format: "%n %u"
194
+ units:
195
+ byte: B
196
+ eb: EB
197
+ gb: GB
198
+ kb: KB
199
+ mb: MB
200
+ pb: PB
201
+ tb: TB
202
+ percentage:
203
+ format:
204
+ delimiter: ''
205
+ format: "%n%"
206
+ precision:
207
+ format:
208
+ delimiter: ''
209
+ support:
210
+ array:
211
+ last_word_connector: " a "
212
+ two_words_connector: " a "
213
+ words_connector: ", "
214
+ time:
215
+ am: am
216
+ formats:
217
+ default: "%a %d. %B %Y %H:%M %z"
218
+ long: "%A %d. %B %Y %H:%M"
219
+ short: "%d. %m. %Y %H:%M"
220
+ pm: pm
@@ -0,0 +1,215 @@
1
+ ---
2
+ en:
3
+ activerecord:
4
+ errors:
5
+ messages:
6
+ record_invalid: 'Validation failed: %{errors}'
7
+ restrict_dependent_destroy:
8
+ has_many: Cannot delete record because dependent %{record} exist
9
+ has_one: Cannot delete record because a dependent %{record} exists
10
+ date:
11
+ abbr_day_names:
12
+ - Sun
13
+ - Mon
14
+ - Tue
15
+ - Wed
16
+ - Thu
17
+ - Fri
18
+ - Sat
19
+ abbr_month_names:
20
+ -
21
+ - Jan
22
+ - Feb
23
+ - Mar
24
+ - Apr
25
+ - May
26
+ - Jun
27
+ - Jul
28
+ - Aug
29
+ - Sep
30
+ - Oct
31
+ - Nov
32
+ - Dec
33
+ day_names:
34
+ - Sunday
35
+ - Monday
36
+ - Tuesday
37
+ - Wednesday
38
+ - Thursday
39
+ - Friday
40
+ - Saturday
41
+ formats:
42
+ default: "%Y-%m-%d"
43
+ long: "%B %d, %Y"
44
+ short: "%b %d"
45
+ month_names:
46
+ -
47
+ - January
48
+ - February
49
+ - March
50
+ - April
51
+ - May
52
+ - June
53
+ - July
54
+ - August
55
+ - September
56
+ - October
57
+ - November
58
+ - December
59
+ order:
60
+ - :year
61
+ - :month
62
+ - :day
63
+ datetime:
64
+ distance_in_words:
65
+ about_x_hours:
66
+ one: about 1 hour
67
+ other: about %{count} hours
68
+ about_x_months:
69
+ one: about 1 month
70
+ other: about %{count} months
71
+ about_x_years:
72
+ one: about 1 year
73
+ other: about %{count} years
74
+ almost_x_years:
75
+ one: almost 1 year
76
+ other: almost %{count} years
77
+ half_a_minute: half a minute
78
+ less_than_x_minutes:
79
+ one: less than a minute
80
+ other: less than %{count} minutes
81
+ less_than_x_seconds:
82
+ one: less than 1 second
83
+ other: less than %{count} seconds
84
+ over_x_years:
85
+ one: over 1 year
86
+ other: over %{count} years
87
+ x_days:
88
+ one: 1 day
89
+ other: "%{count} days"
90
+ x_minutes:
91
+ one: 1 minute
92
+ other: "%{count} minutes"
93
+ x_months:
94
+ one: 1 month
95
+ other: "%{count} months"
96
+ x_seconds:
97
+ one: 1 second
98
+ other: "%{count} seconds"
99
+ x_years:
100
+ one: 1 year
101
+ other: "%{count} years"
102
+ prompts:
103
+ day: Day
104
+ hour: Hour
105
+ minute: Minute
106
+ month: Month
107
+ second: Seconds
108
+ year: Year
109
+ errors:
110
+ format: "%{attribute} %{message}"
111
+ messages:
112
+ accepted: must be accepted
113
+ blank: can't be blank
114
+ confirmation: doesn't match %{attribute}
115
+ empty: can't be empty
116
+ equal_to: must be equal to %{count}
117
+ even: must be even
118
+ exclusion: is reserved
119
+ greater_than: must be greater than %{count}
120
+ greater_than_or_equal_to: must be greater than or equal to %{count}
121
+ inclusion: is not included in the list
122
+ invalid: is invalid
123
+ less_than: must be less than %{count}
124
+ less_than_or_equal_to: must be less than or equal to %{count}
125
+ model_invalid: 'Validation failed: %{errors}'
126
+ not_a_number: is not a number
127
+ not_an_integer: must be an integer
128
+ odd: must be odd
129
+ other_than: must be other than %{count}
130
+ present: must be blank
131
+ required: must exist
132
+ taken: has already been taken
133
+ too_long:
134
+ one: is too long (maximum is 1 character)
135
+ other: is too long (maximum is %{count} characters)
136
+ too_short:
137
+ one: is too short (minimum is 1 character)
138
+ other: is too short (minimum is %{count} characters)
139
+ wrong_length:
140
+ one: is the wrong length (should be 1 character)
141
+ other: is the wrong length (should be %{count} characters)
142
+ template:
143
+ body: 'There were problems with the following fields:'
144
+ header:
145
+ one: 1 error prohibited this %{model} from being saved
146
+ other: "%{count} errors prohibited this %{model} from being saved"
147
+ helpers:
148
+ select:
149
+ prompt: Please select
150
+ submit:
151
+ create: Create %{model}
152
+ submit: Save %{model}
153
+ update: Update %{model}
154
+ number:
155
+ currency:
156
+ format:
157
+ delimiter: ","
158
+ format: "%u%n"
159
+ precision: 2
160
+ separator: "."
161
+ significant: false
162
+ strip_insignificant_zeros: false
163
+ unit: "$"
164
+ format:
165
+ delimiter: ","
166
+ precision: 3
167
+ separator: "."
168
+ significant: false
169
+ strip_insignificant_zeros: false
170
+ human:
171
+ decimal_units:
172
+ format: "%n %u"
173
+ units:
174
+ billion: Billion
175
+ million: Million
176
+ quadrillion: Quadrillion
177
+ thousand: Thousand
178
+ trillion: Trillion
179
+ unit: ''
180
+ format:
181
+ delimiter: ''
182
+ precision: 3
183
+ significant: true
184
+ strip_insignificant_zeros: true
185
+ storage_units:
186
+ format: "%n %u"
187
+ units:
188
+ byte:
189
+ one: Byte
190
+ other: Bytes
191
+ eb: EB
192
+ gb: GB
193
+ kb: KB
194
+ mb: MB
195
+ pb: PB
196
+ tb: TB
197
+ percentage:
198
+ format:
199
+ delimiter: ''
200
+ format: "%n%"
201
+ precision:
202
+ format:
203
+ delimiter: ''
204
+ support:
205
+ array:
206
+ last_word_connector: ", and "
207
+ two_words_connector: " and "
208
+ words_connector: ", "
209
+ time:
210
+ am: am
211
+ formats:
212
+ default: "%a, %d %b %Y %H:%M:%S %z"
213
+ long: "%B %d, %Y %H:%M"
214
+ short: "%d %b %H:%M"
215
+ pm: pm
data/config/routes.rb ADDED
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ Auctify::Engine.routes.draw do
4
+ namespace :auctify do
5
+ resources :bids
6
+ resources :bidder_registrations
7
+ resources :sales
8
+
9
+ namespace :api do
10
+ namespace :v1 do
11
+ resources :auctions do
12
+ member do
13
+ post :bids
14
+ end
15
+ end
16
+
17
+ namespace :console do
18
+ resources :bids, only: %i[destroy]
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end