feat: harden ticket creation ux and seeding

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
This commit is contained in:
rever-tecnologia 2025-10-06 14:40:26 -03:00
parent be27dcfd15
commit a51783ce29
11 changed files with 338 additions and 537 deletions

View file

@ -4,13 +4,43 @@ import { hashPassword } from "better-auth/crypto"
const { PrismaClient } = pkg
const prisma = new PrismaClient()
const email = process.env.SEED_USER_EMAIL ?? "admin@sistema.dev"
const password = process.env.SEED_USER_PASSWORD ?? "admin123"
const name = process.env.SEED_USER_NAME ?? "Administrador"
const role = process.env.SEED_USER_ROLE ?? "admin"
const tenantId = process.env.SEED_USER_TENANT ?? "tenant-atlas"
async function main() {
const singleUserFromEnv = process.env.SEED_USER_EMAIL
? [{
email: process.env.SEED_USER_EMAIL,
password: process.env.SEED_USER_PASSWORD ?? "admin123",
name: process.env.SEED_USER_NAME ?? "Administrador",
role: process.env.SEED_USER_ROLE ?? "admin",
tenantId,
}]
: null
const defaultUsers = singleUserFromEnv ?? [
{
email: "admin@sistema.dev",
password: "admin123",
name: "Administrador",
role: "admin",
tenantId,
},
{
email: "agente.demo@sistema.dev",
password: "agent123",
name: "Agente Demo",
role: "agent",
tenantId,
},
{
email: "cliente.demo@sistema.dev",
password: "cliente123",
name: "Cliente Demo",
role: "customer",
tenantId,
},
]
async function upsertAuthUser({ email, password, name, role, tenantId: userTenant }: (typeof defaultUsers)[number]) {
const hashedPassword = await hashPassword(password)
const user = await prisma.authUser.upsert({
@ -18,13 +48,13 @@ async function main() {
update: {
name,
role,
tenantId,
tenantId: userTenant,
},
create: {
email,
name,
role,
tenantId,
tenantId: userTenant,
accounts: {
create: {
providerId: "credential",
@ -79,7 +109,13 @@ async function main() {
console.log(` Role: ${user.role}`)
console.log(` Tenant: ${user.tenantId ?? "(nenhum)"}`)
console.log(` Provider: ${account?.providerId ?? "-"}`)
console.log(`Senha provisoria: ${password}`)
console.log(` Senha provisoria: ${password}`)
}
async function main() {
for (const user of defaultUsers) {
await upsertAuthUser(user)
}
}
main()