126 lines
5.4 KiB
Go
126 lines
5.4 KiB
Go
package main
|
|
|
|
import (
|
|
"database/sql"
|
|
"fmt"
|
|
"log"
|
|
|
|
_ "github.com/jackc/pgx/v5/stdlib"
|
|
)
|
|
|
|
type UserSeed struct {
|
|
Authname string
|
|
Firstname string
|
|
Lastname string
|
|
Password string
|
|
Email string
|
|
Contactno string
|
|
Roleid int
|
|
Locationid int
|
|
Status string
|
|
}
|
|
|
|
func main() {
|
|
dsn := "host=66.116.207.225 port=5433 user=admin password=Package@123# dbname=nearledb sslmode=disable"
|
|
db, err := sql.Open("pgx", dsn)
|
|
if err != nil {
|
|
log.Fatalf("Error opening db connection: %v", err)
|
|
}
|
|
defer db.Close()
|
|
|
|
err = db.Ping()
|
|
if err != nil {
|
|
log.Fatalf("Error pinging db: %v", err)
|
|
}
|
|
fmt.Println("Connected successfully to PostgreSQL!")
|
|
|
|
seeds := []UserSeed{
|
|
// Tenant-wide logins
|
|
{Authname: "abhishek@suriya.com", Firstname: "Abhishek", Lastname: "Tenant Admin", Password: "Password123", Email: "abhishek@suriya.com", Contactno: "9000000001", Roleid: 1, Locationid: 0, Status: "Active"},
|
|
{Authname: "dharaneesh@suriya.com", Firstname: "Dharaneesh", Lastname: "Tenant Admin", Password: "Password123", Email: "dharaneesh@suriya.com", Contactno: "9000000002", Roleid: 1, Locationid: 0, Status: "Active"},
|
|
|
|
// RS Puram branch (1166)
|
|
{Authname: "abhishek.rspuram@suriya.com", Firstname: "Abhishek", Lastname: "RS Puram Staff", Password: "Password123", Email: "abhishek.rspuram@suriya.com", Contactno: "9000000003", Roleid: 0, Locationid: 1166, Status: "active"},
|
|
{Authname: "dharaneesh.rspuram@suriya.com", Firstname: "Dharaneesh", Lastname: "RS Puram Staff", Password: "Password123", Email: "dharaneesh.rspuram@suriya.com", Contactno: "9000000004", Roleid: 0, Locationid: 1166, Status: "active"},
|
|
|
|
// Peelamedu branch (1170)
|
|
{Authname: "abhishek.peelamedu@suriya.com", Firstname: "Abhishek", Lastname: "Peelamedu Staff", Password: "Password123", Email: "abhishek.peelamedu@suriya.com", Contactno: "9000000005", Roleid: 0, Locationid: 1170, Status: "active"},
|
|
{Authname: "dharaneesh.peelamedu@suriya.com", Firstname: "Dharaneesh", Lastname: "Peelamedu Staff", Password: "Password123", Email: "dharaneesh.peelamedu@suriya.com", Contactno: "9000000006", Roleid: 0, Locationid: 1170, Status: "active"},
|
|
|
|
// Gandhipuram branch (1169)
|
|
{Authname: "abhishek.gandhipuram@suriya.com", Firstname: "Abhishek", Lastname: "Gandhipuram Staff", Password: "Password123", Email: "abhishek.gandhipuram@suriya.com", Contactno: "9000000007", Roleid: 0, Locationid: 1169, Status: "active"},
|
|
{Authname: "dharaneesh.gandhipuram@suriya.com", Firstname: "Dharaneesh", Lastname: "Gandhipuram Staff", Password: "Password123", Email: "dharaneesh.gandhipuram@suriya.com", Contactno: "9000000008", Roleid: 0, Locationid: 1169, Status: "active"},
|
|
|
|
// Ukkadam branch (1171)
|
|
{Authname: "abhishek.ukkadam@suriya.com", Firstname: "Abhishek", Lastname: "Ukkadam Staff", Password: "Password123", Email: "abhishek.ukkadam@suriya.com", Contactno: "9000000009", Roleid: 0, Locationid: 1171, Status: "active"},
|
|
{Authname: "dharaneesh.ukkadam@suriya.com", Firstname: "Dharaneesh", Lastname: "Ukkadam Staff", Password: "Password123", Email: "dharaneesh.ukkadam@suriya.com", Contactno: "9000000010", Roleid: 0, Locationid: 1171, Status: "active"},
|
|
|
|
// NSN branch (1172)
|
|
{Authname: "abhishek.nsn@suriya.com", Firstname: "Abhishek", Lastname: "NSN Staff", Password: "Password123", Email: "abhishek.nsn@suriya.com", Contactno: "9000000011", Roleid: 0, Locationid: 1172, Status: "active"},
|
|
{Authname: "dharaneesh.nsn@suriya.com", Firstname: "Dharaneesh", Lastname: "NSN Staff", Password: "Password123", Email: "dharaneesh.nsn@suriya.com", Contactno: "9000000012", Roleid: 0, Locationid: 1172, Status: "active"},
|
|
}
|
|
|
|
tx, err := db.Begin()
|
|
if err != nil {
|
|
log.Fatalf("Error starting transaction: %v", err)
|
|
}
|
|
|
|
checkQuery := `SELECT userid FROM app_users WHERE authname = $1`
|
|
insertQuery := `
|
|
INSERT INTO app_users (
|
|
authname, firstname, lastname, password, email, dialcode, contactno,
|
|
configid, authmode, roleid, pin, deviceid, devicetype, userfcmtoken,
|
|
address, suburb, city, state, postcode, partnerid, tenantid, locationid,
|
|
applocationid, status, shiftid
|
|
) VALUES (
|
|
$1, $2, $3, $4, $5, '+91', $6,
|
|
1, 0, $7, 0, '', '', '',
|
|
'', '', '', '', '', 0, 1135, $8,
|
|
1, $9, 0
|
|
)
|
|
`
|
|
updateQuery := `
|
|
UPDATE app_users SET
|
|
firstname = $1,
|
|
lastname = $2,
|
|
password = $3,
|
|
email = $4,
|
|
contactno = $5,
|
|
roleid = $6,
|
|
locationid = $7,
|
|
status = $8
|
|
WHERE userid = $9
|
|
`
|
|
|
|
for _, s := range seeds {
|
|
var existingUserID int
|
|
err := tx.QueryRow(checkQuery, s.Authname).Scan(&existingUserID)
|
|
if err == sql.ErrNoRows {
|
|
// Insert new record
|
|
_, err = tx.Exec(insertQuery, s.Authname, s.Firstname, s.Lastname, s.Password, s.Email, s.Contactno, s.Roleid, s.Locationid, s.Status)
|
|
if err != nil {
|
|
tx.Rollback()
|
|
log.Fatalf("Error inserting user %s: %v", s.Authname, err)
|
|
}
|
|
fmt.Printf("Successfully inserted new user: %s\n", s.Authname)
|
|
} else if err != nil {
|
|
tx.Rollback()
|
|
log.Fatalf("Error checking existing user %s: %v", s.Authname, err)
|
|
} else {
|
|
// Update existing record
|
|
_, err = tx.Exec(updateQuery, s.Firstname, s.Lastname, s.Password, s.Email, s.Contactno, s.Roleid, s.Locationid, s.Status, existingUserID)
|
|
if err != nil {
|
|
tx.Rollback()
|
|
log.Fatalf("Error updating user %s: %v", s.Authname, err)
|
|
}
|
|
fmt.Printf("Successfully updated existing user: %s\n", s.Authname)
|
|
}
|
|
}
|
|
|
|
if err := tx.Commit(); err != nil {
|
|
log.Fatalf("Error committing transaction: %v", err)
|
|
}
|
|
|
|
fmt.Println("All seed users successfully created/updated!")
|
|
}
|