4 drug intolerance

This commit is contained in:
2026-03-31 22:28:38 +03:00
parent 2cfc404636
commit b3e15242de
2 changed files with 33 additions and 16 deletions

View File

@ -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 = [

View File

@ -1,7 +1,5 @@
#!/bin/bash
set -exu
source env.sh
psql -e -q -f schema.sql
psql -e -q -f data.sql