49 lines
1.2 KiB
JavaScript
49 lines
1.2 KiB
JavaScript
import mysql from 'mysql2/promise'
|
|
import dotenv from 'dotenv'
|
|
|
|
dotenv.config()
|
|
|
|
async function run() {
|
|
const pool = mysql.createPool({
|
|
host: process.env.DB_HOST || 'localhost',
|
|
user: process.env.DB_USER || 'warme',
|
|
password: process.env.DB_PASSWORD || 'warme123',
|
|
database: process.env.DB_NAME || 'warme',
|
|
})
|
|
|
|
const conn = await pool.getConnection()
|
|
try {
|
|
// weekly availability (recurring weekly schedule)
|
|
await conn.query(`
|
|
CREATE TABLE IF NOT EXISTS weekly_availability (
|
|
id VARCHAR(36) PRIMARY KEY,
|
|
weekday TINYINT NOT NULL,
|
|
start_time TIME NOT NULL,
|
|
end_time TIME NOT NULL,
|
|
note TEXT,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
) ENGINE=InnoDB;
|
|
`)
|
|
|
|
// blocked specific dates
|
|
await conn.query(`
|
|
CREATE TABLE IF NOT EXISTS blocked_dates (
|
|
id VARCHAR(36) PRIMARY KEY,
|
|
block_date DATE NOT NULL,
|
|
note TEXT,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
) ENGINE=InnoDB;
|
|
`)
|
|
|
|
console.log('Availability tables created (if not existed)')
|
|
} finally {
|
|
conn.release()
|
|
await pool.end()
|
|
}
|
|
}
|
|
|
|
run().then(() => process.exit(0)).catch(err => {
|
|
console.error(err)
|
|
process.exit(1)
|
|
})
|