minor features, layout improvements, many fixes
[smr.git] / gui / db / schema.rb
bloba99e4422ada6a4e7377c5e2c34e91dc2488b9b8f
1 # encoding: UTF-8
2 # This file is auto-generated from the current state of the database. Instead
3 # of editing this file, please use the migrations feature of Active Record to
4 # incrementally modify your database, and then regenerate this schema definition.
6 # Note that this schema.rb definition is the authoritative source for your
7 # database schema. If you need to create the application database on another
8 # system, you should be using db:schema:load, not running all the migrations
9 # from scratch. The latter is a flawed and unsustainable approach (the more migrations
10 # you'll amass, the slower it'll run and the greater likelihood for issues).
12 # It's strongly recommended that you check this file into your version control system.
14 ActiveRecord::Schema.define(version: 20170225191425) do
16   create_table "access", id: false, force: :cascade do |t|
17     t.integer "id_user", limit: 4,  default: 0,  null: false
18     t.string  "name",    limit: 32, default: "", null: false
19     t.boolean "access"
20   end
22   create_table "comment", force: :cascade do |t|
23     t.integer "id_user", limit: 4,        null: false
24     t.integer "date",    limit: 4,        null: false
25     t.string  "title",   limit: 255,      null: false
26     t.text    "comment", limit: 16777215
27   end
29   create_table "dividend", force: :cascade do |t|
30     t.integer "id_security", limit: 4,                null: false
31     t.integer "exdate",      limit: 4,                null: false
32     t.float   "paid",        limit: 24, default: 0.0, null: false
33     t.integer "id_position", limit: 4,  default: 0,   null: false
34     t.integer "id_order",    limit: 4,  default: 0,   null: false
35   end
37   create_table "document", force: :cascade do |t|
38     t.integer "id_user",     limit: 4,     null: false
39     t.string  "mimetype",    limit: 50,    null: false
40     t.string  "filename",    limit: 255,   null: false
41     t.integer "size",        limit: 4,     null: false
42     t.integer "date_upload", limit: 4,     null: false
43     t.text    "comment",     limit: 65535
44   end
46   create_table "document_assign", primary_key: "id_document", force: :cascade do |t|
47     t.integer "id_portfolio", limit: 4
48     t.integer "id_position",  limit: 4
49     t.integer "id_order",     limit: 4
50     t.integer "id_security",  limit: 4
51     t.boolean "is_assigned"
52   end
54   add_index "document_assign", ["id_document"], name: "id_document", unique: true, using: :btree
56   create_table "document_data", primary_key: "id_document", force: :cascade do |t|
57     t.binary "content", limit: 16777215, null: false
58   end
60   add_index "document_data", ["id_document"], name: "id_document", unique: true, using: :btree
62   create_table "figure_data", force: :cascade do |t|
63     t.integer "id_figure_var", limit: 4,     null: false
64     t.integer "id_security",   limit: 4,     null: false
65     t.integer "date",          limit: 4,     null: false
66     t.string  "period",        limit: 25,    null: false
67     t.string  "analyst",       limit: 255
68     t.float   "value",         limit: 24,    null: false
69     t.boolean "is_expected"
70     t.boolean "is_audited"
71     t.text    "comment",       limit: 65535
72   end
74   create_table "figure_var", force: :cascade do |t|
75     t.integer "id_user",    limit: 4,        default: 0, null: false
76     t.string  "name",       limit: 255,                  null: false
77     t.string  "unit",       limit: 3
78     t.text    "expression", limit: 16777215
79     t.text    "comment",    limit: 65535
80   end
82   create_table "news", id: false, force: :cascade do |t|
83     t.integer "id_user",       limit: 4, default: 0,     null: false
84     t.integer "id_news_feed",  limit: 4, default: 0,     null: false
85     t.boolean "is_subscribed",           default: false, null: false
86   end
88   create_table "news_assign", id: false, force: :cascade do |t|
89     t.integer "id_news_item", limit: 4, default: 0, null: false
90     t.integer "id_position",  limit: 4, default: 0, null: false
91     t.boolean "is_assigned"
92   end
94   add_index "news_assign", ["id_news_item", "id_position"], name: "NID", unique: true, using: :btree
96   create_table "news_feed", force: :cascade do |t|
97     t.string  "url",          limit: 255
98     t.boolean "fetch_feed",                 default: true
99     t.integer "last_fetched", limit: 4,     default: 0
100     t.string  "title",        limit: 255
101     t.string  "link",         limit: 255
102     t.text    "description",  limit: 65535
103     t.string  "language",     limit: 10
104     t.integer "ttl",          limit: 4
105     t.string  "copyright",    limit: 255
106     t.integer "count_total",  limit: 4,                    null: false
107   end
109   create_table "news_item", force: :cascade do |t|
110     t.integer "id_news_feed",      limit: 4,     default: 0, null: false
111     t.string  "identifier",        limit: 255,               null: false
112     t.string  "identifier_method", limit: 0,                 null: false
113     t.integer "fetched",           limit: 4,                 null: false
114     t.string  "title",             limit: 255
115     t.string  "link",              limit: 255
116     t.text    "description",       limit: 65535
117     t.string  "pubDate",           limit: 50
118   end
120   create_table "news_read", id: false, force: :cascade do |t|
121     t.integer "id_news_feed",  limit: 4, null: false
122     t.integer "id_user",       limit: 4, null: false
123     t.integer "lastread",      limit: 4
124     t.integer "count_notread", limit: 4, null: false
125   end
127   create_table "order", force: :cascade do |t|
128     t.integer "id_position",        limit: 4,                         null: false
129     t.integer "issued",             limit: 4,        default: 0,      null: false
130     t.integer "expire",             limit: 4,        default: 0,      null: false
131     t.string  "type",               limit: 10,       default: "buy",  null: false
132     t.float   "shares",             limit: 24,       default: 0.0,    null: false
133     t.float   "limit",              limit: 24,       default: 0.0,    null: false
134     t.string  "addon",              limit: 10,       default: "none", null: false
135     t.string  "exchange",           limit: 25
136     t.float   "quote",              limit: 24,       default: 0.0,    null: false
137     t.float   "provision",          limit: 24,       default: 0.0
138     t.float   "courtage",           limit: 24,       default: 0.0
139     t.float   "expense",            limit: 24,       default: 0.0
140     t.text    "comment",            limit: 16777215
141     t.boolean "is_canceled"
142     t.integer "triggered_by_order", limit: 4
143     t.float   "accrued_interest",   limit: 24,       default: 0.0,    null: false
144   end
146   create_table "organization", force: :cascade do |t|
147     t.string "name",          limit: 255,   null: false
148     t.string "url",           limit: 255
149     t.string "contact_email", limit: 255
150     t.text   "description",   limit: 65535
151   end
153   create_table "portfolio", force: :cascade do |t|
154     t.integer "id_user",      limit: 4,                   null: false
155     t.string  "name",         limit: 255,                 null: false
156     t.string  "type",         limit: 0,                   null: false
157     t.integer "date_created", limit: 4,                   null: false
158     t.float   "taxallowance", limit: 24,    default: 0.0
159     t.integer "order",        limit: 1,     default: 0
160     t.text    "comment",      limit: 65535
161   end
163   create_table "position", force: :cascade do |t|
164     t.integer "id_portfolio",        limit: 4,                 null: false
165     t.integer "id_security",         limit: 4,                 null: false
166     t.integer "closed",              limit: 4,     default: 0
167     t.text    "comment",             limit: 65535,             null: false
168     t.integer "date_record_created", limit: 4,     default: 0, null: false
169   end
171   create_table "position_revision", force: :cascade do |t|
172     t.integer "id_order",    limit: 4,                null: false
173     t.integer "id_position", limit: 4,                null: false
174     t.integer "date",        limit: 4,  default: 0,   null: false
175     t.float   "shares",      limit: 24, default: 0.0, null: false
176     t.float   "invested",    limit: 24, default: 0.0, null: false
177     t.integer "type",        limit: 4,  default: 0,   null: false
178   end
180   create_table "quote", force: :cascade do |t|
181     t.integer "id_security", limit: 4,  default: 0,   null: false
182     t.integer "date",        limit: 4,  default: 0,   null: false
183     t.float   "quote",       limit: 24, default: 0.0, null: false
184     t.float   "low",         limit: 24, default: 0.0
185     t.float   "high",        limit: 24, default: 0.0
186     t.integer "volume",      limit: 4
187     t.string  "exchange",    limit: 50
188   end
190   create_table "quoterecord", force: :cascade do |t|
191     t.integer "id_user",          limit: 4,     null: false
192     t.integer "id_security",      limit: 4,     null: false
193     t.integer "id_quote",         limit: 4,     null: false
194     t.integer "created",          limit: 4,     null: false
195     t.string  "column",           limit: 25,    null: false
196     t.text    "comment",          limit: 65535
197     t.boolean "is_pivotal_point"
198     t.boolean "is_signal"
199     t.boolean "is_uphit"
200     t.boolean "is_downhit"
201   end
203   create_table "quoterecord_rule", force: :cascade do |t|
204     t.integer "id_user",         limit: 4,     null: false
205     t.integer "last_modified",   limit: 4
206     t.integer "order",           limit: 4
207     t.string  "related_columns", limit: 255
208     t.string  "name",            limit: 255,   null: false
209     t.text    "rule",            limit: 65535
210   end
212   create_table "quoterecord_threshold", force: :cascade do |t|
213     t.integer "id_user",           limit: 4,                null: false
214     t.integer "id_security",       limit: 4,                null: false
215     t.float   "quote_sensitivity", limit: 24, default: 0.0
216     t.float   "hit_sensitivity",   limit: 24, default: 0.0
217   end
219   create_table "security", force: :cascade do |t|
220     t.boolean "fetch_quote",                                             default: true
221     t.string  "symbol",                      limit: 32
222     t.string  "brief",                       limit: 255,                 default: "--",  null: false
223     t.string  "url",                         limit: 255
224     t.text    "description",                 limit: 65535
225     t.integer "id_organization",             limit: 4,                   default: 1,     null: false
226     t.decimal "collateral_coverage_ratio",                 precision: 2, default: 0,     null: false
227     t.integer "id_security_bond",            limit: 4,                   default: 0,     null: false
228     t.integer "id_security_fund",            limit: 4,                   default: 0,     null: false
229     t.integer "id_security_stock",           limit: 4,                   default: 0,     null: false
230     t.integer "id_security_metal",           limit: 4,                   default: 0,     null: false
231     t.integer "id_security_derivative",      limit: 4,                   default: 0,     null: false
232     t.integer "id_security_index",           limit: 4,                   default: 0,     null: false
233     t.string  "preferred_reaper",            limit: 255
234     t.integer "preferred_reaper_fail_count", limit: 4,                   default: 0,     null: false
235     t.boolean "preferred_reaper_locked",                                 default: false
236     t.integer "preferred_reaper_delay",      limit: 4,                   default: 0,     null: false
237     t.string  "trading_ceased_reason",       limit: 32
238     t.integer "trading_ceased_date",         limit: 8,                   default: 0,     null: false
239   end
241   add_index "security", ["id_organization"], name: "fk_rails_79816ed41e", using: :btree
243   create_table "security_bond", force: :cascade do |t|
244     t.integer "type",                    limit: 4,     default: 0,     null: false
245     t.integer "interest_method",         limit: 4,     default: 0,     null: false
246     t.integer "denomination",            limit: 4,     default: 1000,  null: false
247     t.string  "currency",                limit: 255
248     t.float   "coupon",                  limit: 24,    default: 0.0,   null: false
249     t.integer "coupon_interval",         limit: 4,     default: 12,    null: false
250     t.float   "redemption_price",        limit: 24,    default: 100.0, null: false
251     t.integer "redemption_installments", limit: 4,     default: 0,     null: false
252     t.integer "redemption_interval",     limit: 4,     default: 12,    null: false
253     t.integer "date_maturity",           limit: 8,     default: 0,     null: false
254     t.integer "date_first_coupon",       limit: 8,     default: 0,     null: false
255     t.integer "date_last_coupon",        limit: 8,     default: 0,     null: false
256     t.boolean "is_subordinated",                       default: false
257     t.boolean "is_callable",                           default: false
258     t.boolean "is_stepup",                             default: false
259     t.boolean "is_stepdown",                           default: false
260     t.text    "comment",                 limit: 65535
261     t.integer "date_issue",              limit: 8,     default: 0,     null: false
262     t.integer "date_first_call",         limit: 8,     default: 0,     null: false
263     t.float   "call_price",              limit: 24,    default: 0.0,   null: false
264     t.integer "call_interval",           limit: 4,     default: 0,     null: false
265     t.integer "call_notify_deadline",    limit: 4,     default: 0,     null: false
266     t.integer "issue_size",              limit: 8,     default: 0,     null: false
267   end
269   create_table "security_derivative", force: :cascade do |t|
270     t.integer "type",                   limit: 4,     default: 0,     null: false
271     t.integer "direction",              limit: 4,     default: 0,     null: false
272     t.integer "date_inception",         limit: 8,     default: 0,     null: false
273     t.integer "date_end",               limit: 8,     default: 0,     null: false
274     t.float   "strike_price",           limit: 24,    default: 0.0,   null: false
275     t.float   "subscription_ratio",     limit: 24,    default: 1.0,   null: false
276     t.boolean "is_leveraged",                         default: false
277     t.boolean "is_knock_out",                         default: false
278     t.text    "comment",                limit: 65535
279     t.integer "id_security_underlying", limit: 4,     default: 0,     null: false
280     t.boolean "is_dead",                              default: false
281   end
283   create_table "security_fund", force: :cascade do |t|
284     t.integer "type",                  limit: 4,     default: 0,     null: false
285     t.string  "currency",              limit: 255
286     t.string  "tranche",               limit: 255
287     t.integer "date_inception",        limit: 8,     default: 0,     null: false
288     t.integer "date_fiscalyearend",    limit: 8,     default: 0,     null: false
289     t.integer "investment_minimum",    limit: 4,     default: 0,     null: false
290     t.boolean "is_synthetic",                        default: false
291     t.float   "distribution",          limit: 24,    default: 0.0,   null: false
292     t.integer "distribution_interval", limit: 4,     default: 12,    null: false
293     t.integer "date_distribution",     limit: 8,     default: 0,     null: false
294     t.boolean "is_retaining_profits",                default: false
295     t.integer "redemption_period",     limit: 4,     default: 5,     null: false
296     t.float   "redemption_fee",        limit: 24,    default: 0.0
297     t.float   "issue_surcharge",       limit: 24,    default: 0.0,   null: false
298     t.float   "management_fee",        limit: 24,    default: 0.0,   null: false
299     t.text    "comment",               limit: 65535
300   end
302   create_table "security_index", force: :cascade do |t|
303     t.text "comment", limit: 65535
304   end
306   create_table "security_metal", force: :cascade do |t|
307     t.integer "type",    limit: 4,     default: 0, null: false
308     t.string  "unit",    limit: 255
309     t.text    "comment", limit: 65535
310   end
312   create_table "security_stock", force: :cascade do |t|
313     t.integer "type",              limit: 4,     default: 0,   null: false
314     t.float   "dividend",          limit: 24,    default: 0.0, null: false
315     t.integer "dividend_interval", limit: 4,     default: 12,  null: false
316     t.integer "dividend_exdate",   limit: 8,     default: 0,   null: false
317     t.text    "comment",           limit: 65535
318   end
320   create_table "setting", force: :cascade do |t|
321     t.integer "id_user", limit: 4,   default: 0,        null: false
322     t.string  "type",    limit: 10,  default: "plugin", null: false
323     t.string  "name",    limit: 32
324     t.string  "var",     limit: 32
325     t.string  "value",   limit: 255
326   end
328   create_table "split", force: :cascade do |t|
329     t.integer "id_security", limit: 4,        null: false
330     t.integer "date",        limit: 4,        null: false
331     t.string  "ratio",       limit: 11,       null: false
332     t.text    "comment",     limit: 16777215
333   end
335   add_index "split", ["id_security", "date"], name: "SID", unique: true, using: :btree
337   create_table "timetag", force: :cascade do |t|
338     t.integer "id_user",     limit: 4,     null: false
339     t.string  "title",       limit: 255,   null: false
340     t.text    "description", limit: 65535, null: false
341     t.integer "start",       limit: 4,     null: false
342     t.integer "end",         limit: 4,     null: false
343   end
345   create_table "user", force: :cascade do |t|
346     t.string   "login",                limit: 10,                       null: false
347     t.boolean  "is_admin",                              default: false, null: false
348     t.string   "fullname",             limit: 255
349     t.string   "email",                limit: 50
350     t.text     "comment",              limit: 16777215
351     t.string   "password_digest",      limit: 255
352     t.string   "password_auth_token",  limit: 255
353     t.string   "password_reset_token", limit: 255
354     t.datetime "password_reset_sent"
355   end
357   create_table "user_session", force: :cascade do |t|
358     t.string   "session_id", limit: 255,   null: false
359     t.text     "data",       limit: 65535
360     t.datetime "created_at"
361     t.datetime "updated_at"
362   end
364   add_index "user_session", ["session_id"], name: "index_user_session_on_session_id", unique: true, using: :btree
365   add_index "user_session", ["updated_at"], name: "index_user_session_on_updated_at", using: :btree
367   create_table "version", id: false, force: :cascade do |t|
368     t.integer "version", limit: 1
369   end
371   add_foreign_key "security", "organization", column: "id_organization"