feat: Integrate Data Connect and Implement Staff List View Directory

This commit is contained in:
dhinesh-m24
2026-01-31 16:54:59 +05:30
parent 48bb1c457c
commit cb25b33d04
255 changed files with 21425 additions and 109 deletions

View File

@@ -0,0 +1,54 @@
mutation createStaffAvailabilityStats(
$staffId: UUID!
$needWorkIndex: Int
$utilizationPercentage: Int
$predictedAvailabilityScore: Int
$scheduledHoursThisPeriod: Int
$desiredHoursThisPeriod: Int
$lastShiftDate: Timestamp
$acceptanceRate: Int
) @auth(level: USER) {
staffAvailabilityStats_insert(
data: {
staffId: $staffId
needWorkIndex: $needWorkIndex
utilizationPercentage: $utilizationPercentage
predictedAvailabilityScore: $predictedAvailabilityScore
scheduledHoursThisPeriod: $scheduledHoursThisPeriod
desiredHoursThisPeriod: $desiredHoursThisPeriod
lastShiftDate: $lastShiftDate
acceptanceRate: $acceptanceRate
}
)
}
mutation updateStaffAvailabilityStats(
$staffId: UUID!
$needWorkIndex: Int
$utilizationPercentage: Int
$predictedAvailabilityScore: Int
$scheduledHoursThisPeriod: Int
$desiredHoursThisPeriod: Int
$lastShiftDate: Timestamp
$acceptanceRate: Int
) @auth(level: USER) {
staffAvailabilityStats_update(
key: { staffId: $staffId }
data: {
needWorkIndex: $needWorkIndex
utilizationPercentage: $utilizationPercentage
predictedAvailabilityScore: $predictedAvailabilityScore
scheduledHoursThisPeriod: $scheduledHoursThisPeriod
desiredHoursThisPeriod: $desiredHoursThisPeriod
lastShiftDate: $lastShiftDate
acceptanceRate: $acceptanceRate
}
)
}
mutation deleteStaffAvailabilityStats(
$staffId: UUID!
) @auth(level: USER) {
staffAvailabilityStats_delete(key: { staffId: $staffId })
}

View File

@@ -0,0 +1,109 @@
# ==========================================================
# StaffAvailabilityStats - QUERIES
# ==========================================================
# Notes:
# - Entity key is composite: key: ["staffId"]
# - So the single-record lookup is: staffAvailabilityStats(key: { staffId: ... })
# - There is no Query.staffAvailabilityStat(id: ...) unless you defined id as the key.
# ==========================================================
# ----------------------------------------------------------
# LIST ALL (admin/debug)
# ----------------------------------------------------------
query listStaffAvailabilityStats(
$offset: Int
$limit: Int
) @auth(level: USER) {
staffAvailabilityStatss(offset: $offset, limit: $limit) {
id
staffId
needWorkIndex
utilizationPercentage
predictedAvailabilityScore
scheduledHoursThisPeriod
desiredHoursThisPeriod
lastShiftDate
acceptanceRate
createdAt
updatedAt
createdBy
staff {
id
fullName
}
}
}
# ----------------------------------------------------------
# GET BY KEY (staffId)
# ----------------------------------------------------------
query getStaffAvailabilityStatsByStaffId(
$staffId: UUID!
) @auth(level: USER) {
staffAvailabilityStats(key: { staffId: $staffId }) {
id
staffId
needWorkIndex
utilizationPercentage
predictedAvailabilityScore
scheduledHoursThisPeriod
desiredHoursThisPeriod
lastShiftDate
acceptanceRate
createdAt
updatedAt
createdBy
staff {
id
fullName
}
}
}
# ----------------------------------------------------------
# FILTER (optional) - useful for dashboards
# NOTE: Data Connect filter ops are typically: eq, ne, gt, ge, lt, le, in, isNull
# ----------------------------------------------------------
query filterStaffAvailabilityStats(
$needWorkIndexMin: Int
$needWorkIndexMax: Int
$utilizationMin: Int
$utilizationMax: Int
$acceptanceRateMin: Int
$acceptanceRateMax: Int
$lastShiftAfter: Timestamp
$lastShiftBefore: Timestamp
$offset: Int
$limit: Int
) @auth(level: USER) {
staffAvailabilityStatss(
where: {
needWorkIndex: { ge: $needWorkIndexMin, le: $needWorkIndexMax }
utilizationPercentage: { ge: $utilizationMin, le: $utilizationMax }
acceptanceRate: { ge: $acceptanceRateMin, le: $acceptanceRateMax }
lastShiftDate: { ge: $lastShiftAfter, le: $lastShiftBefore }
}
offset: $offset
limit: $limit
) {
id
staffId
needWorkIndex
utilizationPercentage
predictedAvailabilityScore
scheduledHoursThisPeriod
desiredHoursThisPeriod
lastShiftDate
acceptanceRate
createdAt
updatedAt
createdBy
staff {
id
fullName
}
}
}