package db import ( "database/sql" "go-sjles-pta-vote/server/config" _ "github.com/glebarez/go-sqlite" ) var build_db_query string = ` CREATE TABLE IF NOT EXISTS polls ( id INTEGER PRIMARY KEY, question TEXT NOT NULL, member_yes_votes UNSIGNED INT NOT NULL DEFAULT 0, member_no_votes UNSIGNED INT NOT NULL DEFAULT 0, non_member_yes_votes UNSIGNED INT NOT NULL DEFAULT 0, non_member_no_votes UNSIGNED INT NOT NULL DEFAULT 0, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP, expires_at DATETIME ); CREATE TABLE IF NOT EXISTS voters ( poll_id UNSIGNED INT NOT NULL, voter_email TEXT NOT NULL, FOREIGN KEY (poll_id) REFERENCES polls(id), PRIMARY KEY (poll_id, voter_email) ); CREATE TABLE IF NOT EXISTS members ( email TEXT NOT NULL, member_name TEXT, PRIMARY KEY (email) ); ` var db *sql.DB func Connect() (*sql.DB, error) { db_config := config.GetConfig() db, err := sql.Open("sqlite", db_config.DBPath) if err != nil { return nil, err } _, err = db.Exec(build_db_query) return db, err } func Close() { if db != nil { _ = db.Close() } }