This commit is contained in:
2026-02-11 17:46:22 +03:00
commit eacfacb13b
266 changed files with 51337 additions and 0 deletions

296
svc/queries/user_detail.go Normal file
View File

@@ -0,0 +1,296 @@
package queries
// ======================================================
// 👤 USER HEADER
// ======================================================
// ======================================================
// 👤 USER HEADER (mk_dfusr)
// ======================================================
const GetUserHeader = `
SELECT
id,
username,
is_active,
COALESCE(full_name,'') AS full_name,
COALESCE(email,'') AS email,
COALESCE(mobile,'') AS mobile,
COALESCE(address,'') AS address,
CASE
WHEN password_hash IS NOT NULL AND password_hash <> '' THEN true
ELSE false
END AS has_password
FROM mk_dfusr
WHERE id = $1
`
// ======================================================
// 🔐 ROLES
// ======================================================
const GetUserRoles = `
SELECT r.code
FROM dfrole_usr ur
JOIN dfrole r ON r.id = ur.dfrole_id
WHERE ur.dfusr_id = $1
ORDER BY r.code
`
// ======================================================
// 🏢 DEPARTMENTS
// ======================================================
const GetUserDepartments = `
SELECT d.code, d.title
FROM dfusr_dprt ud
JOIN mk_dprt d ON d.id = ud.dprt_id
WHERE ud.dfusr_id = $1
AND ud.is_active = true
ORDER BY d.code
`
// ======================================================
// 🌍 PIYASALAR
// ======================================================
const GetUserPiyasalar = `
SELECT p.code, p.title
FROM dfusr_piyasa up
JOIN mk_sales_piy p ON p.code = up.piyasa_code
WHERE up.dfusr_id = $1
AND up.is_allowed = true
ORDER BY p.code
`
// ======================================================
// 🧾 NEBIM USERS
// ======================================================
const GetUserNebim = `
SELECT n.username, n.user_group_code
FROM dfusr_nebim_user un
JOIN mk_nebim_user n ON n.id = un.mk_nebim_user_id
WHERE un.dfusr_id = $1
ORDER BY n.username
`
// ======================================================
// ✍️ UPDATE USER HEADER (SAFE)
// ======================================================
// ======================================================
// ✍️ UPDATE USER HEADER (mk_dfusr)
// ======================================================
const UpdateUserHeader = `
UPDATE mk_dfusr
SET
username = $2,
is_active = $3,
full_name = $4,
email = $5,
mobile = $6,
address = NULLIF($7, ''),
updated_at = NOW()
WHERE id = $1
`
// ======================================================
// INSERT RELATIONS
// ======================================================
// ---------- ROLE
const InsertUserRole = `
INSERT INTO dfrole_usr (dfusr_id, dfrole_id)
SELECT $1, r.id
FROM dfrole r
WHERE r.code = $2
ON CONFLICT DO NOTHING
`
// ---------- DEPARTMENT
const InsertUserDepartment = `
INSERT INTO dfusr_dprt (dfusr_id, dprt_id, is_active)
SELECT $1, d.id, true
FROM mk_dprt d
WHERE d.code = $2
ON CONFLICT DO NOTHING
`
// ---------- PIYASA
const InsertUserPiyasa = `
INSERT INTO dfusr_piyasa (dfusr_id, piyasa_code, is_allowed)
VALUES ($1, $2, true)
ON CONFLICT DO NOTHING
`
// ---------- NEBIM USER
const InsertUserNebim = `
INSERT INTO dfusr_nebim_user (dfusr_id, mk_nebim_user_id)
SELECT $1, n.id
FROM mk_nebim_user n
WHERE n.username = $2
ON CONFLICT DO NOTHING
`
// ======================================================
// 📚 LOOKUPS
// ======================================================
const GetRoleLookup = `
SELECT code AS value, code AS label
FROM dfrole
ORDER BY code
`
const GetDepartmentLookup = `
SELECT code AS value, title AS label
FROM mk_dprt
WHERE is_active = true
ORDER BY code
`
const GetPiyasaLookup = `
SELECT code AS value, title AS label
FROM mk_sales_piy
WHERE is_active = true
ORDER BY code
`
const GetNebimUserLookup = `
SELECT
username AS value,
username || ' (' || user_group_code || ')' AS label,
user_group_code
FROM mk_nebim_user
WHERE is_active = true
ORDER BY username
`
// ======================================================
// 📦 ORDER — NEW NUMBER
// ======================================================
const GetNextOrderNumber = `
SELECT
COALESCE(MAX(order_number), 0) + 1
FROM orders
WHERE order_year = EXTRACT(YEAR FROM NOW())
`
// ======================================================
// 🔐 ROLES (ADMIN LIST)
// ======================================================
const GetRoles = `
SELECT
id,
code,
title
FROM dfrole
ORDER BY code
`
// ======================================================
// 🏢 DEPARTMENTS (ADMIN LIST)
// ======================================================
const GetDepartments = `
SELECT
id,
code,
title
FROM mk_dprt
WHERE is_active = true
ORDER BY code
`
// ======================================================
// 🌍 PIYASALAR (ADMIN LIST)
// ======================================================
const GetPiyasalar = `
SELECT
code,
title
FROM mk_sales_piy
WHERE is_active = true
ORDER BY code
`
// ======================================================
// 🔗 ROLE → DEPARTMENT
// ======================================================
const DeleteRoleDepartments = `
DELETE FROM dfrole_dprt
WHERE dfrole_id = $1
`
const InsertRoleDepartment = `
INSERT INTO dfrole_dprt (
dfrole_id,
dprt_id,
is_allowed
)
SELECT
$1,
d.id,
true
FROM mk_dprt d
WHERE d.code = $2
ON CONFLICT DO NOTHING
`
// ======================================================
// 🔗 ROLE → PIYASA
// ======================================================
const DeleteRolePiyasalar = `
DELETE FROM dfrole_piyasa
WHERE dfrole_id = $1
`
const InsertRolePiyasa = `
INSERT INTO dfrole_piyasa (
dfrole_id,
piyasa_code,
is_allowed
)
VALUES ($1,$2,true)
ON CONFLICT DO NOTHING
`
// ======================================================
// 👤 USER → ROLE
// ======================================================
const DeleteUserRoles = `
DELETE FROM dfrole_usr
WHERE dfusr_id = $1
`
// ======================================================
// 🏢 DEPARTMENTS (ADMIN PERM PAGE SELECT) -> { code, title }
// ======================================================
const GetDepartmentsForPermissionSelect = `
SELECT
code AS id,
title AS title
FROM mk_dprt
WHERE is_active = true
ORDER BY title
`
// ======================================================
// 🔐 ROLES (ADMIN PERM PAGE SELECT) -> { id, title }
// ======================================================
const GetRolesForPermissionSelect = `
SELECT
id::text AS id,
COALESCE(NULLIF(title,''), code) AS title
FROM dfrole
ORDER BY COALESCE(NULLIF(title,''), code)
`
const GetUserLookupForPermission = `
SELECT
id::text AS id,
username || ' - ' || full_name AS title
FROM mk_dfusr
WHERE is_active = true
ORDER BY username
`