From d98b816cc7dbf7ef4033a2aedc81abbbc3ec2d8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Salazar?= <73718835+joshrs23@users.noreply.github.com> Date: Wed, 17 Dec 2025 11:58:19 -0500 Subject: [PATCH] adding missing schema for event --- dataconnect/connector/staff/mutations.gql | 80 +++++++++++- dataconnect/connector/staff/queries.gql | 42 +++++++ dataconnect/schema/staff.gql | 25 +++- frontend-web-free/src/api/krowSDK.js | 3 +- .../src/components/staff/StaffForm.jsx | 114 +++++++++--------- 5 files changed, 201 insertions(+), 63 deletions(-) diff --git a/dataconnect/connector/staff/mutations.gql b/dataconnect/connector/staff/mutations.gql index 4523b114..6bc3d3fa 100644 --- a/dataconnect/connector/staff/mutations.gql +++ b/dataconnect/connector/staff/mutations.gql @@ -4,11 +4,17 @@ mutation CreateStaff( $vendorName: String, $manager: String, $contactNumber: String, + $phone:String # nuevo, $email: String, $department: StaffDepartment, $hubLocation: String, + $eventLocation:String, # nuevo + $address:String, # nuevo + $city:String, # nuevo $track: String, $position: String, + $position2:String, # nuevo + $initial:String, # nuevo $profileType: ProfileType, $employmentType: EmploymentType, $english: EnglishLevel, @@ -16,7 +22,20 @@ mutation CreateStaff( $rating: Float, $reliabilityScore: Int, $backgroundCheckStatus: BackgroundCheckStatus, - $notes: String + $notes: String, + $accountingComments:String, # nuevo + $shiftCoveragePercentage:Int, # nuevo + $cancellationCount:Int, # nuevo + $noShowCount:Int, # nuevo + $totalShifts:Int, # nuevo + $invoiced:Boolean, # nuevo + $englishRequired:Boolean, # nuevo + $checkIn:String, # nuevo + $scheduleDays:String, # nuevo + $replacedBy:String, # nuevo + $action:String, # nuevo + $ro:String, # nuevo + $mon:String, # nuevo ) @auth(level: USER) { staff_insert( data: { @@ -25,11 +44,17 @@ mutation CreateStaff( vendorName: $vendorName manager: $manager contactNumber: $contactNumber + phone:$phone email: $email department: $department hubLocation: $hubLocation + eventLocation:$eventLocation + address:$address + city:$city track: $track position: $position + position2:$position2 + initial:$initial profileType: $profileType employmentType: $employmentType english: $english @@ -38,6 +63,19 @@ mutation CreateStaff( reliabilityScore: $reliabilityScore backgroundCheckStatus: $backgroundCheckStatus notes: $notes + accountingComments:$accountingComments + shiftCoveragePercentage:$shiftCoveragePercentage + cancellationCount:$cancellationCount + noShowCount:$noShowCount + totalShifts:$totalShifts + invoiced:$invoiced + englishRequired:$englishRequired + checkIn:$checkIn + scheduleDays:$scheduleDays + replacedBy:$replacedBy + action:$action + ro:$ro + mon:$mon } ) } @@ -49,19 +87,38 @@ mutation UpdateStaff( $vendorName: String, $manager: String, $contactNumber: String, + $phone: String, $email: String, $department: StaffDepartment, $hubLocation: String, + $eventLocation: String, + $address: String, + $city: String, $track: String, $position: String, + $position2:String, + $initial:String, $profileType: ProfileType, $employmentType: EmploymentType, $english: EnglishLevel, + $englishRequired:Boolean # nuevo $rate: Float, $rating: Float, $reliabilityScore: Int, $backgroundCheckStatus: BackgroundCheckStatus, - $notes: String + $notes: String, + $accountingComments:String, + $shiftCoveragePercentage:Int, + $cancellationCount:Int, + $noShowCount:Int, + $totalShifts:Int, + $invoiced:Boolean, + $checkIn:String, + $scheduleDays:String, + $replacedBy:String, + $action:String, + $ro:String, + $mon:String, ) @auth(level: USER) { staff_update( id: $id, @@ -71,19 +128,38 @@ mutation UpdateStaff( vendorName: $vendorName manager: $manager contactNumber: $contactNumber + phone:$phone # nuevo email: $email department: $department hubLocation: $hubLocation + eventLocation:$eventLocation # nuevo + address:$address # nuevo + city:$city # nuevo track: $track position: $position + position2:$position2 # nuevo + initial:$initial # nuevo profileType: $profileType employmentType: $employmentType english: $english + englishRequired:$englishRequired # nuevo rate: $rate rating: $rating reliabilityScore: $reliabilityScore backgroundCheckStatus: $backgroundCheckStatus notes: $notes + accountingComments:$accountingComments # nuevo + shiftCoveragePercentage:$shiftCoveragePercentage # nuevo + cancellationCount:$cancellationCount # nuevo + noShowCount:$noShowCount # nuevo + totalShifts:$totalShifts # nuevo + invoiced:$invoiced # nuevo + checkIn:$checkIn # nuevo + scheduleDays:$scheduleDays # nuevo + replacedBy:$replacedBy # nuevo + action:$action # nuevo + ro:$ro # nuevo + mon:$mon # nuevo } ) } diff --git a/dataconnect/connector/staff/queries.gql b/dataconnect/connector/staff/queries.gql index 4574e21f..eebe2d73 100644 --- a/dataconnect/connector/staff/queries.gql +++ b/dataconnect/connector/staff/queries.gql @@ -6,19 +6,38 @@ query listStaff @auth(level: USER) { vendorName manager contactNumber + phone # nuevo email department hubLocation + eventLocation # nuevo + address # nuevo + city # nuevo track position + position2 + initial # nuevo profileType employmentType english + englishRequired # nuevo rate rating reliabilityScore backgroundCheckStatus notes + accountingComments # nuevo + shiftCoveragePercentage # nuevo + cancellationCount # nuevo + noShowCount # nuevo + totalShifts # nuevo + invoiced # nuevo + checkIn # nuevo + scheduleDays # nuevo + replacedBy # nuevo + action # nuevo + ro # nuevo + mon # nuevo } } @@ -32,11 +51,17 @@ query getStaffById( vendorName manager contactNumber + phone # nuevo email department hubLocation + eventLocation # nuevo + address # nuevo + city # nuevo track position + position2 # nuevo + initial # nuevo profileType employmentType english @@ -45,6 +70,19 @@ query getStaffById( reliabilityScore backgroundCheckStatus notes + accountingComments # nuevo + shiftCoveragePercentage # nuevo + cancellationCount # nuevo + noShowCount # nuevo + totalShifts # nuevo + invoiced # nuevo + englishRequired # nuevo + checkIn # nuevo + scheduleDays # nuevo + replacedBy # nuevo + action # nuevo + ro # nuevo + mon # nuevo } } @@ -71,7 +109,10 @@ query filterStaff( vendorId vendorName department + hubLocation + eventLocation # nuevo position + position2 employmentType english rate @@ -79,5 +120,6 @@ query filterStaff( reliabilityScore backgroundCheckStatus notes + invoiced # nuevo } } diff --git a/dataconnect/schema/staff.gql b/dataconnect/schema/staff.gql index f49f3473..3c2cffb4 100644 --- a/dataconnect/schema/staff.gql +++ b/dataconnect/schema/staff.gql @@ -42,16 +42,22 @@ enum BackgroundCheckStatus { type Staff @table(name: "staffs") { id: UUID! @default(expr: "uuidV4()") - employeeName: String! @col(name: "employee_name") - vendorId: String @col(name: "vendor_id") # vendor_id (FK lógica a Vendor.id) + employeeName: String! @col(name: "employee_name") + initial:String@col(name:"initial") # nuevo + vendorId: String @default(expr: "auth.uid")#String @col(name: "vendor_id") # vendor_id (FK lógica a Vendor.id) vendorName: String @col(name: "vendor_name") manager: String contactNumber: String @col(name: "contact_number") + phone: String @col(name:"phone") # nuevo email: String department: StaffDepartment - hubLocation: String @col(name: "hub_location") + hubLocation: String @col(name: "hub_location") + eventLocation:String@col(name:"event_location") # nuevo + address:String@col(name:"address") # nuevo + city:String@col(name:"city") # nuevo track: String position: String + position2: String @col(name:"position_2") # nuevo profileType: ProfileType @col(name: "profile_type") employmentType: EmploymentType @col(name: "employment_type") english: EnglishLevel @@ -60,6 +66,19 @@ type Staff @table(name: "staffs") { reliabilityScore: Int @col(name: "reliability_score") backgroundCheckStatus: BackgroundCheckStatus @col(name: "background_check_status") notes: String + accountingComments: String @col(name:"accounting_comments") # nuevo + shiftCoveragePercentage: Int @col(name:"shift_coverage_percentage") # nuevo + cancellationCount: Int @col(name:"cancellation_count") # nuevo + noShowCount: Int @col(name:"no_show_count") # nuevo + totalShifts: Int @col(name:"total_shifts") # nuevo + invoiced: Boolean @default(expr:"false") # nuevo + englishRequired: Boolean @col(name:"english_required")@default(expr:"false") # nuevo + checkIn: String @col(name:"check_in") # nuevo + scheduleDays: String @col(name:"schedule_days") # nuevo + replacedBy: String @col(name:"replaced_by") # nuevo + action: String # nuevo + ro: String # nuevo + mon: String # nuevo createdDate: Timestamp @default(expr: "request.time") updatedDate: Timestamp @default(expr: "request.time") createdBy: String @default(expr: "auth.uid") diff --git a/frontend-web-free/src/api/krowSDK.js b/frontend-web-free/src/api/krowSDK.js index 454db78a..67a32446 100644 --- a/frontend-web-free/src/api/krowSDK.js +++ b/frontend-web-free/src/api/krowSDK.js @@ -365,7 +365,7 @@ const toCamel = (value) => { } if (value && typeof value === "object") { return Object.entries(value).reduce((acc, [key, val]) => { - const camelKey = key.replace(/_([a-z])/g, (_, c) => c.toUpperCase()); + const camelKey = key.replace(/_([a-z0-9])/g, (_, c) => c.toUpperCase()); acc[camelKey] = toCamel(val); return acc; }, {}); @@ -382,6 +382,7 @@ const toSnake = (value) => { return Object.entries(value).reduce((acc, [key, val]) => { const snakeKey = key .replace(/([A-Z])/g, "_$1") + .replace(/([a-z])([0-9]+)/g, "$1_$2") .toLowerCase(); acc[snakeKey] = toSnake(val); return acc; diff --git a/frontend-web-free/src/components/staff/StaffForm.jsx b/frontend-web-free/src/components/staff/StaffForm.jsx index 1cd086a5..0635fdd7 100644 --- a/frontend-web-free/src/components/staff/StaffForm.jsx +++ b/frontend-web-free/src/components/staff/StaffForm.jsx @@ -14,35 +14,35 @@ export default function StaffForm({ staff, onSubmit, isSubmitting }) { employee_name: "", manager: "", contact_number: "", - //phone: "", + phone: "", email: "", // Added email field department: "", hub_location: "", - //event_location: "", + event_location: "", track: "", - //address: "", - //city: "", + address: "", + city: "", position: "", - //position_2: "", - //initial: "", + position_2: "", + initial: "", profile_type: "", employment_type: "", english: "", - //english_required: false, - //check_in: "", - //replaced_by: "", - //ro: "", - //mon: "", - //schedule_days: "", - //invoiced: false, - //action: "", + english_required: false, + check_in: "", + replaced_by: "", + ro: "", + mon: "", + schedule_days: "", + invoiced: false, + action: "", notes: "", - //accounting_comments: "", + accounting_comments: "", rating: 0, - //shift_coverage_percentage: 100, - //cancellation_count: 0, - //no_show_count: 0, // Added no_show_count field - //total_shifts: 0, + shift_coverage_percentage: 100, + cancellation_count: 0, + no_show_count: 0, // Added no_show_count field + total_shifts: 0, reliability_score: 100 }); @@ -81,7 +81,7 @@ export default function StaffForm({ staff, onSubmit, isSubmitting }) { /> - {/*