4 drug intolerance
This commit is contained in:
47
4/data.js
47
4/data.js
@ -150,9 +150,11 @@ const ClassTypes = ['Theory', 'Practice']
|
||||
const RegistrationStatuses = ['NotPaid', 'Paid']
|
||||
const EquipmentUsageTypes = ['PayOnce', 'PayMonthly']
|
||||
|
||||
const COUNT = 10
|
||||
|
||||
function Values(callback, factor = 1) {
|
||||
let res = 'VALUES\n'
|
||||
const count = 5 * factor
|
||||
const count = COUNT * factor
|
||||
|
||||
for (let i = 0; i < count; i++) {
|
||||
res += callback()
|
||||
@ -166,6 +168,15 @@ function Values(callback, factor = 1) {
|
||||
return res
|
||||
}
|
||||
|
||||
function Many(insert, callback) {
|
||||
let res = ''
|
||||
|
||||
for (let i = 0; i < COUNT; i++) {
|
||||
res += insert + ' ' + callback() + ';\n'
|
||||
}
|
||||
return res + '\n'
|
||||
}
|
||||
|
||||
|
||||
// Person
|
||||
let script = 'INSERT INTO "Person" (full_name, passwd_hash) ' + Values(() => {
|
||||
@ -191,22 +202,23 @@ script += 'INSERT INTO "Studio" (address, capacity, begin_date, duration) ' + Va
|
||||
|
||||
// Course
|
||||
script += 'INSERT INTO "Course" ("Master_id", name, price, deadline_date) ' + Values(() => {
|
||||
return `(${GenInt(1, 6)}, 'курс ${GenMaxUInt(3)}', ${GenPrice()}, ${GenTimestamp()})`
|
||||
return `(${GenInt(1, COUNT + 1)}, 'курс ${GenMaxUInt(3)}', ${GenPrice()}, ${GenTimestamp()})`
|
||||
})
|
||||
|
||||
// Class
|
||||
script += 'INSERT INTO "Class" (begin_date, "Course_id", "Studio_id", name, type, duration) ' + Values(() => {
|
||||
return `(${GenTimestamp()}, ${GenInt(1, 6)}, ${GenInt(1, 6)}, 'занятие ${GenMaxUInt(100)}', '${ClassTypes[GenMaxUInt(ClassTypes.length)]}', ${GenIntervalHours()})`
|
||||
return `(${GenTimestamp()}, ${GenInt(1, COUNT + 1)}, ${GenInt(1, COUNT + 1)}, 'занятие ${GenMaxUInt(100)}', '${ClassTypes[GenMaxUInt(ClassTypes.length)]}', ${GenIntervalHours()})`
|
||||
})
|
||||
|
||||
// Class_Master
|
||||
script += `INSERT INTO "Class_Master" ("Class_begin_date", "Class_Course_id", "Master_id")
|
||||
SELECT begin_date, "Course_id", ${GenInt(1, 6)} FROM "Class" LIMIT 1;\n\n`
|
||||
script += Many(`INSERT INTO "Class_Master" ("Class_begin_date", "Class_Course_id", "Master_id")`, () => {
|
||||
return `SELECT begin_date, "Course_id", ${GenInt(1, COUNT + 1)} FROM "Class" LIMIT 1 OFFSET ${GenInt(0, COUNT)}`
|
||||
})
|
||||
|
||||
// Registration
|
||||
script += 'INSERT INTO "Registration" ("Client_id", "Course_id", date, status) ' + Values(() => {
|
||||
return `(${GenInt(6, 11)}, ${GenInt(1, 6)}, ${GenTimestamp()}, '${RegistrationStatuses[GenMaxUInt(RegistrationStatuses.length)]}')`
|
||||
})
|
||||
return `(${GenInt(COUNT + 1, COUNT * 2 + 1)}, ${GenInt(1, COUNT + 1)}, ${GenTimestamp()}, 'Paid')`
|
||||
}, 0.5)
|
||||
|
||||
// FoodProductEnum
|
||||
script += 'INSERT INTO "FoodProductEnum" (name, avg_price) ' + Values(() => {
|
||||
@ -214,17 +226,19 @@ script += 'INSERT INTO "FoodProductEnum" (name, avg_price) ' + Values(() => {
|
||||
})
|
||||
|
||||
// FoodProduct
|
||||
script += `INSERT INTO "FoodProduct" ("FoodProductEnum_id", "Class_begin_date", "Class_Course_id", buy_price, buy_date, delivery_price, delivery_date, expires_date)
|
||||
SELECT ${GenInt(1, 6)}, begin_date, "Course_id", ${GenPrice()}, ${GenTimestamp()}, ${GenPrice()}, ${GenTimestamp()}, ${GenTimestamp()} FROM "Class" LIMIT 1;\n\n`
|
||||
script += Many(`INSERT INTO "FoodProduct" ("FoodProductEnum_id", "Class_begin_date", "Class_Course_id", buy_price, buy_date, delivery_price, delivery_date, expires_date)`, () => {
|
||||
return `SELECT ${GenInt(1, COUNT + 1)}, begin_date, "Course_id", ${GenPrice()}, ${GenTimestamp()}, ${GenPrice()}, ${GenTimestamp()}, ${GenTimestamp()} FROM "Class" LIMIT 1 OFFSET ${GenInt(0, COUNT)}`
|
||||
})
|
||||
|
||||
// Equipment
|
||||
script += 'INSERT INTO "Equipment" ("Studio_id", name, usage_price, usage_type, delivery_price, delivery_date) ' + Values(() => {
|
||||
return `(${GenInt(1, 6)}, 'оборудование ${GenMaxUInt(100)}', ${GenPrice(300)}, '${EquipmentUsageTypes[GenMaxUInt(EquipmentUsageTypes.length)]}', ${GenPrice(200)}, ${GenTimestamp()})`
|
||||
return `(${GenInt(1, COUNT + 1)}, 'оборудование ${GenMaxUInt(100)}', ${GenPrice(300)}, '${EquipmentUsageTypes[GenMaxUInt(EquipmentUsageTypes.length)]}', ${GenPrice(200)}, ${GenTimestamp()})`
|
||||
})
|
||||
|
||||
// Class_Equipment
|
||||
script += `INSERT INTO "Class_Equipment" ("Class_begin_date", "Class_Course_id", "Equipment_id")
|
||||
SELECT begin_date, "Course_id", ${GenInt(1, 6)} FROM "Class" LIMIT 1;\n\n`
|
||||
script += Many(`INSERT INTO "Class_Equipment" ("Class_begin_date", "Class_Course_id", "Equipment_id")`, () => {
|
||||
return `SELECT begin_date, "Course_id", ${GenInt(1, COUNT + 1)} FROM "Class" LIMIT 1 OFFSET ${GenInt(0, COUNT)}`
|
||||
})
|
||||
|
||||
// DrugEnum
|
||||
script += 'INSERT INTO "DrugEnum" (name, avg_price) ' + Values(() => {
|
||||
@ -233,12 +247,17 @@ script += 'INSERT INTO "DrugEnum" (name, avg_price) ' + Values(() => {
|
||||
|
||||
// Drug
|
||||
script += 'INSERT INTO "Drug" ("DrugEnum_id", "Course_id", buy_price, buy_date, delivery_price, delivery_date, expires_date) ' + Values(() => {
|
||||
return `(${GenInt(1, 6)}, ${GenInt(1, 6)}, ${GenPrice()}, ${GenTimestamp()}, ${GenPrice()}, ${GenTimestamp()}, ${GenTimestamp()})`
|
||||
return `(${GenInt(1, COUNT + 1)}, ${GenInt(1, COUNT + 1)}, ${GenPrice()}, ${GenTimestamp()}, ${GenPrice()}, ${GenTimestamp()}, ${GenTimestamp()})`
|
||||
})
|
||||
|
||||
// DrugIntolerance
|
||||
script += 'INSERT INTO "DrugIntolerance" ("Person_id", "DrugEnum_id") ' + Values(() => {
|
||||
return `(${GenInt(1, COUNT * 2 + 1)}, ${GenInt(1, COUNT + 1)})`
|
||||
})
|
||||
|
||||
// ActivityLog
|
||||
script += 'INSERT INTO "ActivityLog" ("Person_id", action) ' + Values(() => {
|
||||
return `(${GenInt(1, 10)}, 'login')`
|
||||
return `(${GenInt(1, COUNT * 2 + 1)}, 'login')`
|
||||
})
|
||||
|
||||
const tables = [
|
||||
|
||||
@ -1,7 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -exu
|
||||
|
||||
source env.sh
|
||||
psql -e -q -f schema.sql
|
||||
psql -e -q -f data.sql
|
||||
|
||||
Reference in New Issue
Block a user