7. Contractor Management
Pixally CRM✅ Invite Contractor
Agency Contractor Management Module
Functional Requirement Document
BA & Ideation: Dakshraj Jhala
Reviewed By: KG
Updated Date: 14 October 2025
Status: Approved
Version 1.0
Invite New Contractor Module FRD
Module Overview
- Module Name: Invite New Contractor
- Purpose: Allow agency users to invite new contractors to the Pixally platform and assign them to one or more brands through email invitations
- Business Goal: Streamline the contractor onboarding process and facilitate the assignment of contractors to the brands of the agency
2. User Roles & Permissions
- Refer - Click Here
3. User Flow
4. Functional Logic
4.1 Brand Setup Validation
- The “Invite New Contractor” pop-up will open only if at least one brand is configured under Brand
- If no brands are configured, clicking the “+ Invite New” button will display the “No Brands Available” pop-up.
- The pop-up will display the title “No Brands Available!” and the message and two buttons:
- The “Set Up Brand” button in the pop-up redirects the user to the Brand Setup wizard. Refer - Click Here
- The “Close” button dismisses the pop-up and returns the user to the Contractors List (Active Tab)
4.2 Invitation Logic
- The agency user can invite the contractor by clicking on the “+ Invite New” button, which will open the “Invite New Contractor” Pop-Up. Refer - Click Here
- If a contractor is deleted from the agency and the agency reinvites the same contractor. Refer - Click Here
4.2.1 Email & Duplicate Validation
- Email validation prevents sending duplicate invitations
- The same email cannot be invited again unless the previous invitation is canceled
4.2.2 Brand & Service Selection
- The Brand dropdown dynamically lists all brands configured by the agency
- When a brand is selected, its associated services (Photography / Videography / Content Creation) are displayed.
- Multiple brands and services can be assigned to a single invitation.
- Selected brands appear as removable tags; removing a brand also removes its linked services
- Brands and services can later be edited through the Edit Brand option in the Contractor Profile. Refer - Click Here
4.2.3 Invitation Submission & Validation
- The “Send Invite” button remains enabled by default
- On click, all mandatory fields are validated:
- If validation fails, inline errors appear in the respective fields
- If validation passes, the invitation email is sent, and a confirmation pop-up is displayed.
4.2.4 Invitation Email & Link Behavior
- A successful invitation triggers the “Invitation Sent!” confirmation pop-up, and the email is delivered to the contractor at the email address entered by the agency user
- The optional message, if entered by the agency user in the “Invite New Contractor” pop-up message section, will be displayed in the email received by the contractor
- The invitation link stays active for 48 hours or until onboarding is completed, whichever occurs first
- Once expired or used, the link becomes invalid automatically. The user can resend the invitation from the pending invitation tab > “Resend Invite” button
- After the email is sent successfully, the contractor’s record immediately appears under the Pending Invitation Tab in the Contractors Sub-Module (Refer – Click Here)
4.2.5 Contractor Onboarding Process
- The contractor receives the email invitation and clicks the embedded link
- The link directs the contractor to the Contractor Portal Onboarding screen, preloaded with the agency’s brand and service information. Refer - Contractor Onboarding Module
- If the invitation is associated with a single brand, the screen displays that brand’s name, logo, and the services selected during the invitation (e.g., Photographer, Videographer).
- If the contractor is invited under multiple brands, the screen displays “Multiple Brands” along with the brands’ secondary logos and both brands' services chosen during the invitation.
- The contractor completes onboarding for the assigned brand(s) and services
4.2.6 Post-Invitation Acceptance & Notification
- The system sends both an in-app notification and an email alert to the inviting agency user and agency owner once the contractor completes onboarding.
- The notification confirms that the contractor is now ready for setup in the agency portal
5. Field Details & Validations
Field Name
Type
Required
Validation Rules
Invite New Contractor Pop-Up
Contractor Email
Yes
- Not already registered in the system
- Valid format, unique, no disposable emails
- Restricted emails mentioned in this list
First Name
Text
Yes
Max 50 chars
Second Name
Text
Yes
Max 50 chars
Assign New Brand
Dropdown
Yes (At least one)
Refer - Click Here
Assigned Brands
Pills with a remove option
Auto-generated
- Display the brands selected using the "Assign New Brand" dropdown, each with an option to remove them by clicking on the cancel (X) button
- If multiple brands are assigned, display each brand as a separate tag with a removal option
Services per Brand
Selectable Tags
Yes (At least one per brand)
- Display the services associated with the selected brands (i.e, photography, videography, content creation)
- If there are multiple brands, display each brand’s services in a stacked layout
Message
Text
No
- Max 250 characters
Cancel
Button
N/A
Close the pop-up without sending any invitation and return to the contractor’s list
Send Invite
Button
N/A
- On click, validate all mandatory fields
- If any validation fails, display the corresponding inline error message(s).
- If all validations pass, send the invitation email to the contractor and show the success confirmation pop-up
6. Error Message Handling
Field
Validation Scenario
Error Message
Contractor Email
Empty submission
"Please enter the contractor’s email address."
Contractor Email
Invalid format/Disposable email
"Please enter a valid email address."
Contractor Email
Already invited
“Invitation already sent for this email.”
First Name
Empty submission
"Please enter the contractor’s first name."
First Name
Length (characters) > 50
"First name cannot exceed 50 characters."
Second Name
Empty submission
"Please enter the contractor’s second name."
Second Name
Length (characters) > 50
"Second name cannot exceed 50 characters."
Assign Brand
No brand selected
"Please select at least one brand."
Services per Brand
No service was selected for the brand
"Please select at least one service."
Message
Length (characters) > 250
"Message cannot exceed 250 characters."
General
Server error/Email not sent
"Something went wrong."
7. Edge Cases
Scenario
Expected Behavior
Email service unavailable
Show the error message "Something went wrong."
The contractor has been invited by an agency, and the contractor has completed the onboarding; however, another agency has sent an invitation using a different first and last name
The contractor’s name will be displayed in the contractor profile and the Pending Invitation tab, as it was set up by the contractor during the first onboarding with any agency
When a contractor is invited by two agencies using two different names, and the contractor has not completed the onboarding for any agency
In the Pending Invitation tab for both agencies, the contractor’s name will appear exactly as it was provided at the time of invitation.
8. Test Cases
- Link: Pixally Test cases
9. Acceptance Criteria
- Brand Setup Validation: “+ Invite New” opens only if at least one brand exists; otherwise, show “No Brands Available!” pop-up with Set Up Brand (redirects to wizard) and Close (returns to list) buttons.
- Invitation Access: Clicking “+ Invite New” opens the “Invite New Contractor” pop-up for eligible users.
- Duplicate Email Check: System prevents inviting an email already used for an active or pending invitation; reinvites are allowed only after contractor deletion.
- Brand & Service Selection: Brand dropdown lists all agency brands; selecting a brand auto-loads linked services (Photography, Videography, Content Creation); multiple brands/services can be assigned; removing a brand clears its services.
- Form Validation & Submission: “Send Invite” validates mandatory fields; inline errors show if failed; on success, email is sent, and a confirmation pop-up is displayed.
- Invitation Email Behavior: Email sent instantly with an optional message; link is active for 48 hours or until onboarding completes; expired/used links auto-disable; record appears in the “Pending Invitations” tab.
- Resend Invite: Expired or inactive invitations can be re-sent via the Resend Invite button in the Pending tab.
- Onboarding Flow: Clicking the invite link opens Contractor Portal onboarding with preloaded brand and service info; shows brand logos and assigned services; for multiple brands, displays all linked details.
- Post-Onboarding Notifications: After onboarding completion, the system sends in-app and email notifications to the inviting user and agency owner, confirming contractor readiness for setup.
10. Dependencies
Module/System
Dependency Type
Impact if Unavailable
Brand Management
Data dependency
Cannot populate brand dropdown or validate brand assignments, services per brand unavailable
Email Service
Integration dependency
Cannot send invitation emails
Contractor Management
Data dependency
Cannot validate duplicate invitations or track invitation status
Contractor Portal
Integration dependency
The contractor cannot complete the onboarding and access to the contractor portal
11. References
- Figma Link: Click here
✅ Contractor Listing (Pending, Active and Setup tab)
Contractor Listing Module
1. Module Overview
- Module Name: Contractor Listing Management
- Purpose: A comprehensive contractor management module inside the Pixally CRM that displays and manages contractors across three distinct states: Pending Invitation, Setup Required, and Active. Enables agency admins to track invitation status, complete contractor setup, and manage active contractor relationships
- Business Goal: Provide agency users with a centralized view of all contractors, allowing them to easily track invitation progress, monitor setup completion, and access contractor details. The module enables quick visibility into contractor status, ratings, assigned brands, and projects while serving as the primary interface for managing contractor profiles across the Pixally CRM
2. User Roles & Permissions
3. User Flow
4. Functional Logic
4.1 Empty State
- If no contractors have been invited by the agency, an empty state will be displayed across all three tabs — Active, Setup Required, and Pending Invitation — with a “+ Invite New” call-to-action (CTA)
- On click, the system will open the “Invite New Contractor” pop-up, allowing the user to invite a contractor and assign them to a project after completing the contractor setup. Refer – click here
4.1.1 Agency Dashboard Impact
- If no contractors have been invited or set up, the “New Contractors” section on the Agency Dashboard will display an empty state with a message indicating that no contractors are currently available, along with an “Invite Contractor” CTA button.
- Clicking this button will open the Invite New Contractor pop-up. Refer – click here
4.1.2 Project-Level Impact
- If no contractors have been invited or set up, then when the agency user clicks the Assign Contractors button from Project → Event Details → Services / Contractors tab, the Suggested Contractors pop-up will display an empty state with no available contractors.
- If no contractors have been invited or set up, the Agency Owner can assign themselves to an event using the “Assign Yourself” button within the Contractors tab of any project event. (Refer – Click Here)
4.1.3 Other Module Dependencies
- Check Availability: If no contractor has been invited or set up, the Check Availability module will display no results for the contractor search.
- Task Module: If no contractors have been invited or set up, then while creating a task and selecting Assignee → Contractor, the system will display an empty state with the message “You have no contractors yet.”
4.1.4 Cross-Brand Access Restriction
- Contractors are brand-specific. Without inviting and setting up a contractor under a specific brand, the agency user cannot assign that contractor to any project events belonging to that brand, even if the same contractor exists under another brand of the same agency.
4.2 Tabs Management:
- Once a contractor is invited by the agency, their record will appear in the Contractors module under one of three tabs — Active, Setup Required, or Pending Invitation — depending on the progress of the invitation, onboarding, and setup process.
- Contractors automatically move between tabs as their status changes, and the record count on each tab updates accordingly.
4.2.1 Pending Invitation Tab
- The Pending Invitation tab displays all contractors who have been invited by the agency but have not yet accepted the invitation or completed their onboarding process.
- This includes cases where the agency has either completed or not completed the setup for that contractor.
- In summary, contractors who have not accepted the invitation or completed onboarding will remain under the Pending Invitation tab, irrespective of the agency’s setup progress.
- Tab Details, Refer - Pending Invitation Tab
4.2.2 Setup Required Tab
- The Setup Required tab displays contractors who have accepted the invitation and completed their onboarding, but whose agency-side setup is still incomplete.
- In this state, the contractor’s basic profile is active in the system, but the agency has not yet finalized brand mapping, role configuration, or pay rates.
- Agency Dashboard Impact: Contractors appearing in the Setup Required tab will also be visible under the Agency Dashboard → New Contractors section.
- Once the agency completes the setup, the contractor automatically moves to the Active tab.
- Tab Details, Refer - Set Up Required Tab
4.2.3 Active Tab
- The Active tab displays all contractors for whom both the onboarding (from the contractor’s side) and setup (from the agency’s side) are fully completed.
- An active contractor is ready to be assigned to project events and tasks under the brand they are set up with.
- Tab Details, Refer - Active Tab
4.2.4 Project Event Assignment Logic
- The agency user can assign a contractor to a project event only when the contractor has been invited and set up for that brand’s specific services and roles.
- If the contractor has not been invited or set up for the brand, they will not appear in the contractor assignment list.
- Even if the contractor has not yet accepted the invitation, the agency can still assign them provisionally once the internal setup is complete.
4.3 Search & Filter
- The Search and Filter functionality is available only in the Active tab of the Contractor Management module.
- It helps users quickly locate contractors based on specific attributes such as name, brand, service, role, rating, or service area.
4.3.1 Search Bar
- The Search Bar allows users to search across contractor names and email addresses.
- The search results dynamically update as the user types, displaying only those contractors whose name or associated brand matches the entered keyword.
4.3.2 Filters
- The Filter Panel provides multiple filter options to narrow down the contractor list based on predefined criteria.
- Applying any filter dynamically displays contractors matching the selected criteria—such as service type, role, backup shooter status, brand, service area, or rating—ensuring only relevant contractors appear based on the chosen filters.
- The filter field details (Refer - Click Here)
4.3.3 Filter Behavior (After Application)
- When one or more filters are applied, the selected values appear as filter tags above the contractor listing table.
- Each filter tag includes a cancel (X) icon that allows users to remove that specific filter.
- On removing an individual filter, the contractor list updates instantly based on the remaining active filters.
- A Clear All Filters button is displayed next to the tags to remove all filters at once.
- On clicking Clear All Filters, all selected filters are cleared, and the contractor list refreshes to display the full list of active contractors as it appeared before filtering.
4.4 Action CTA (Contractor Listing)
4.4.1 Active Tab
- “View Profile” CTA: The button will appear for each active contractor in the Active Tab, and on click, it will open the contractor profile sub-module. Refer to Click Here
4.4.2 Setup Required Tab
- “Set Up User” CTA: The button will appear for each contractor in the Setup Required Tab. When clicked, it will open the Set Up Contractor pop-up to complete the contractor setup. Refer - Click Here
4.4.3 Pending Invitation Tab
-
“Resend Invite” CTA: Displayed only for contractors listed under the Pending Invitation tab
- On click, the system performs the following actions:
- Sends a new invitation to the contractor’s registered email address
- If the resend occurs within 48 hours of the previous invitation, the previously issued invitation link is expired to prevent reuse. (If more than two days have passed, the previous link is already invalid.)
- Generates a new one-time use invitation link, which remains valid for 48 hours
- The resend action is restricted to once every 5 minutes per contractor to prevent multiple rapid resend attempts. After the user clicks “Resend,” the button changes to “Sent” and becomes disabled. After 5 minutes, the button updates to “Resend” again, allowing the user to request the code again
- On click, the system performs the following actions:
-
“Set Up Anyway” CTA: Appears in the Pending Invitation tab until the contractor accepts the invitation and completes onboarding, and setup is required from the agency side. On click, it opens the "Set Up Contractor" pop-up. Refer - Click Here.
- Once the setup is complete for the contractor by the agency, the CTA will no longer be displayed.
-
“Cancel” CTA: Opens a confirmation pop-up before cancellation, depending on the contractor’s project assignment
- If the contractor is assigned to a project event:
- A warning pop-up is displayed with a message to unassign the contractor before canceling the invite
- Includes a Close button, which closes the warning pop-up
- If the contractor is not assigned to any project event:
- A confirmation pop-up is displayed with Close and Cancel Invite options
- On clicking Cancel Invite, the previously sent invitation link will expire, and the contractor will be removed from the list.
- If the contractor is assigned to a project event:
4.5 Pagination
- Pagination Controls: Dropdown for rows per page, page navigation with previous/next buttons. Refer - Click Here
4.6 Data Calculations (Contractor Listing > Active Tab):
-
Projects Column > Projects Count Total = All Assigned Projects (Past/Current/future), Upcoming = Count of total future/upcoming projects only from the current date
-
Ratings Column > Rating Average: Calculated from all the total ratings given to the contractor by the agency using the formula: (sum of all ratings given by the current agency divided by the total number of ratings given by the current agency)
5. Field Details & Validations
5.1 Header Section Fields:
Field Name
Type
Validation Rules
Module Title
Text
Displays "Contractors" as the main heading
Check Availability
Button
On click, redirects to the "Check Availability" module
Invite New
Button
On click, opens "Invite new contractor" pop-up
Tab Navigation
Tab Container
- Three tabs: Active, Setup Required, and Pending Invitation
- Real-time counts are shown for the Setup Required and Pending Invitation tabs
Active Tab
Tab
- Default selected tab
- On click, displays the Active contractor's data
Set Up Required Tab
Tab
- On click, it displays the Setup Required contractor's data
- Display a badge indicating the number of contractors in the tab
Pending Invitation Tab
Tab
- On click, it displays the Pending Invitation contractor's data
- Display a badge indicating the number of contractors in the tab
Filter Button
Icon Button
- On click, opens the filter panel with multiple filter options
- Only displays in the Active tab
- Refer: Click Here
5.2 Filter Panel Fields:
Field Name
Type
Validation Rules
Filter Header
Text + Refresh Icon
"Filters" title with refresh icon to clear all filters
Services Section
Checkbox
- Multi-select options: Photography, Videography, Content Creation
- Display the services of the agency for all brands
Role Section
Checkbox
- Multi-select options: Lead Shooter, Second Shooter, Drone Operator, Assistant
Show only Backup Shooters
Toggle Switch
- Filters to show only backup shooters
- Backup shooters (marked during the setup contractor)
Brands Section
Dropdown
- Displays all brands of the agency.
Service Area Section
Dropdown
- Displays all service areas of the agency for all brands
Rating Section
Checkbox Group
- Multi-select options: 5 stars, 4+, 3+, 2+, 1+
5.3 Active Tab Fields:
Field Name
Type
Validation Rules
Name
Text + Profile Image + Roles icon + Service specialization
- Displays contractor's full name, profile photo, and role icons (Lead Shooter, Second Shooter, etc.)
- When no profile exists, use the initials of the full name (e.g., John Doe → JD)
- Shows service specialization assigned to the contractor (Photographer, Videographer, or Content Creator )
Brand(s)
Text + Hover Icon
- Display the brands assigned to the contractor
- Shows '+X' if assigned to multiple service areas, with one shown and X as the count of others
- On hover, show additional brand names (If applicable)
Service Area
Text + Hover Icon
- Displays the service areas assigned to the contractor by the agency
- Shows '+X' if assigned to multiple service areas, with one shown and X as the count of others
- On hover shows additional service areas (If applicable)
Pay Rates
Action Dropdown
- Shows "View Rates" with an icon
- Opens dropdown with rate details and "Edit Pay Rates" option
- Edit pay rates (refer - click here)
Next Event
Date/Location
- Closest upcoming booked event date with Event venue (city, state)
- Default to “--” if no events are assigned
- If the event venue is TBD, display “TBD”.
Projects
Text
- Format: "Total: X / Upcoming: Y"
- Refer - Click Here
Rating
Numeric (Stars)
- Refer - Click Here
- Defaults to "--" if no ratings are given to the contractor
- On clicking, the rating opens the View Reviews pop-up
View Profile
Button
On click action. Refer - Click Here
Column Sort
Sortable Headers
Sort by Name, Brand(s), Service Area, Next Event, Projects, Rating (ASC/DESC)
5.4 Pay Rates Dropdown Fields (Active Tab):
Field Name
Type
Validation Rules
Brand Selector
Dropdown
- Displays brands associated with a contractor
- Allows switching between brands to view brand-specific rates
Event Name Header
Text Label
- Displays event type (Wedding, Engagement Photoshoot, Rehearsal Dinner, etc.)
- Only events set up by the agency during "Set Up User"
Rate Type
Text + Icon
Displays Hourly (/h) or Fixed Price based on the rate type selected during setup
Service Category
Text
- Displays service type under each event (Photography, Videography, Content Creation)
- Displays only services set by the agency
Role Badge
Badge/Label with Symbol
- Shows contractor role with priority: 1. Lead Shooter 2. Second Shooter 3. Drone Operator 4. Assistant
- Display only roles set by the agency during contractor setup
Role-based Rate Amount
Numeric (Currency)
Display rate assigned for each role of each service under every event
Rate Display Format
Currency Text
- Shows rate with type indicator
- Hourly: "$XXX/h", Fixed: "$XXX"
Edit Pay Rates
Button
- On click, a pop-up opens to update pay rates
- Refer - Click Here
5.5 Set up Required Tab Fields:
Field Name
Type
Validation Rules
Name
Text with Avatar
- Contractor name and profile image
- When no profile image exists, use the initials of the full name (e.g., John Doe → JD).
- Shows contractor’s service specialization (Photographer/Videographer/Content Creator)
- Fetch service specialization from the invite contractor’s data
Invited By
Text
Displays the first and last name of the user who sent the invitation
Brand(s)
Text
- Display the brands assigned to the contractor
- Shows '+X' if assigned to multiple brands, with one shown and X as the count of others
- On hover, show additional brand names (If applicable)
Actions
Button
- Display “Set Up User” Button
- On click, action. Refer - Click Here
Column Sort
Sortable Headers
Sort by Name, Brand, Invited By (ASC/DESC)
5.6 Pending Invitation Tab Fields:
Field Name
Type
Validation Rules
- Valid email format
- Displays the invited contractor's email
Name
Text + Role Icon
- Valid name format (First, Last name)
- When no profile image exists, use the initials of the full name (e.g., John Doe → JD)
- Fetched from the invite contractor details and the role assigned during setup
- Display the pending required icon
Invited By
Text with Avatar
Displays the first and last name of the user who sent the invitation
Brand
Text
- Display the brands assigned to the contractor
- Shows '+X' if assigned to multiple service areas, with one shown and X as the count of others
- On hover, show additional brand names (If applicable)
Date Sent
Date & Time
- Displays the date and timestamp when the invitation was sent
- Format: DD MMM YYYY
- hh:mm AM/PM
Resend Invite
Button
On click action. Refer - Click Here
Set Up Anyway Button
Button
On click action. Refer - Click Here
Cancel Button
Button
On click action. Refer - Click Here
Search Bar
Input Field
Free text search across Email, Name,
Column Sort
Sortable Headers
Sort by Email, Name, Invited By, Brand, Date Sent (ASC/DESC)
5.7 Pagination Fields:
Field Name
Type
Validation Rules
Rows per page
Dropdown
- Options: 10, 25, 50, 100
- Allows the user to select the number of rows displayed per page
Page Info
Text
Shows current range and total count
Previous Page Button
Icon Button
Navigation to the previous page, disabled on the first page
Next Page Button
Icon Button
Navigation to the next page, disabled on the last page
6. Error Message Handling
Field/Action
Validation Scenario
Error Message
Cancel Invitation
Contractor not assigned to events
Pop-up - "You're about to cancel the invitation for this contractor; you can create a new invite anytime."
Cancel Invitation
Contractor assigned to events
Pop-up - "Contractor is currently assigned to this project and its associated event. To proceed with canceling the invitation, you must first unassign the contractor from the project."
Resend Invite
Rate limit exceeded
Pop-up - "You can resend the invitation after 1 hour."
Search
No results found
"No data found."
Edit Pay Rates
Unauthorized access
"You do not have permission to edit pay rates."
Filter Panel
No results after filtering
"No data found."
7. Edge Cases
Scenario
Expected Behavior
Contractor invitation expires
The link becomes invalid and can be re-invited
Same email invitation attempt
The system prevents duplicate invitations with the message "Contractor already invited."
Network interruption during the cancellation
Display error “Something went wrong.”
Filter panel with no results
Display the "No Data Found" message
Filter panel - Brand selection in the filter
Service Area dropdown updates to show only areas under the selected brand
Filter panel - Service Area selection in the filter
The brands dropdown updates to show only brands that operate in the selected service area
8. Test Cases
- Link:
9. Acceptance Criteria
- Tab Navigation: Three distinct tabs (Pending Invitation, Setup Required, Active) with accurate contractor counts and proper data display on tab selection
- Pending Invitation Management: Send, resend, cancel invitations, and "Set Up Anyway" functionality with appropriate confirmations
- Setup Process: Complete the contractor setup from the Setup Required tab or directly from the Pending tab, regardless of invitation acceptance status
- Column sorting: It works across all sortable fields in each tab.
- Header Functionality: Check Availability button redirects properly, Invite New opens a pop-up, tab counts display accurate real-time numbers
- Filter System: Comprehensive filtering works across all categories (Services, Roles, Brands, Service Areas, Rating) with proper multi-select and reset functionality, available only in the Active tab, with Brand-Service Area interdependency
- Pay Rates Display: Functional dropdown showing categorized rates by event and service type with role priority, brand selection, and edit capability
- Brand/Service Area Management: Proper display of multiple items with "+X" count and hover tooltips
- Search: Search across Names, Service specializations, Roles, Brands, and Service Areas with real-time results
- Button State Management: The "Set Up Anyway" button displays correctly in the Pending Invitation tab and hides automatically after contractor setup completion
- Modal Validation: Proper modal display for brand setup validation and cancellation scenarios based on contractor assignment status
- Error Handling: Graceful handling of all identified error scenarios with user-friendly messages
- Data Consistency: Real-time updates reflecting changes in contractor status, projects, and ratings using correct calculation formulas
10. Dependencies
Module/System
Dependency Type
Impact if Unavailable
Contractor Module
Core Data
Cannot display contractor information; the setup process fails
Email Service
External Integration
Cannot send/resend invitations, notifications fail
Project Management
Data Dependency
Cannot display project counts, and upcoming events are missing
Calendar System
Data Dependency
Cannot show the next event information
Rating System
Data Dependency
Cannot display contractor ratings
User Authentication
Security Dependency
Cannot verify admin permissions, access control fails
File Storage
Data Dependency
Cannot display contractor profile images
Brand Management
Core Data
Cannot validate brand setup, blocks the invitation process
11. References
- Figma Link: Click here
✅ Set Up Contractor
Set Up Contractor Module
1. Module Overview
- Module Name: Setup Contractor Module
- Purpose: Enable agency users to configure contractor settings, including service areas, roles, services, and pay rates for pre-assigned brands through a guided multi-step setup process
- Business Goal: Streamline contractor onboarding and ensure proper brand-contractor associations for efficient project assignment and resource management
2. User Roles & Permissions
- Refer - Click Here
3. User Flow
4. Functional Logic
4.1 Setup Initiation Logic
- The contractor setup process can be initiated from two locations within the Contractors module:
- Set Up Required Tab → “Set Up User” button
- Displayed for contractors who have completed onboarding but are not yet set up in the system.
- Clicking opens the “Set Up Contractor” pop-up.
- Once setup completes successfully, the contractor’s status changes from Setup Required → Active
- Pending Invitation Tab → “Set Up Anyway” button
- Appears for contractors whose invitation is sent, but onboarding is not yet complete.
- Allows agency setup to be performed before the contractor completes the onboarding.
- Once setup is completed, the CTA is hidden automatically, but the contractor’s profile remains in the “Pending Invitation” Tab.
- Set Up Required Tab → “Set Up User” button
4.2 Setup Flow Structure
- The setup follows a guided, multi-step process for each assigned brand: Step 1 – Service Area → Step 2 – Roles & Services → Step 3 – Pay Rates
- Single-brand or Multi-brand setup:
- The left sidebar lists all assigned brands in the stepper as an individual step for each brand.
- Each brand step contains its own 3 sub-steps (Service Area, Roles & Services, and Pay Rates).
- All 3 steps for one brand must be completed before moving to the next brand.
4.3 Brand and Service Dependency
- Only the services assigned to the contractor during the invitation are available for configuration.
- Each brand requires 3 setup steps. So, the total number of setup steps is 3 times the number of brands. For example, if there are 2 brands, there will be 6 setup steps (3 steps per brand)
- Services and event types shown are pulled directly from brand configuration and filtered by brand association.
4.4 Step 1 – Service Area Assignment (Per Brand)
- Assign the contractor to one or more service areas under the selected brand.
- The multi-select dropdown is populated dynamically from the service areas configured for that specific brand.
- For field details & validations- Refer - Click Here
4.5 Step 2 – Roles and Services (Per Brand)
- Configure contractor roles for each assigned service and select the applicable event types.
- The assigned services, roles, and events determine the contractor’s eligibility for assignment in projects and are used for assigning pay rates.
- For field details & validations- Refer - Click Here
Services
- Displays only those services that were selected during the contractor invitation process.
Roles
- Each service includes a multi-select checkbox list of roles.
- The Agency Owner can assign one or more roles to the contractor based on their expertise.
- Each role is represented by a distinct icon, which appears:
- Alongside the contractor’s name in all relevant modules (lists, assign contractor, profile, etc.)
- A contractor can:
- Hold multiple roles for a single service,
- Have a single role across multiple services, or
- Have different roles for different services.
Event Selection
- Displays a brand-specific event list in a checkbox format.
- The Agency Owner selects the applicable event types for which the contractor can be assigned under that brand.
Backup Shooter Toggle
- An optional toggle that marks the contractor as a Backup Shooter for all selected roles, services, and events.
- For field details & validations- Refer - Click Here
4.6 Step 3 – Pay Rates (Per Brand)
- The Pay Rates step defines the contractor’s pay structure for each role, across all services and events selected in Step 2.
- This step follows a guided flow that helps the agency define how contractors are paid for each event under a brand.
- Each selected event is displayed as a collapsible card where the user can choose the rate type, assign role-based pay rate amounts per service type, and optionally add a brand-level payment note.
- For field details & validations. Refer - Click Here
Event Panels
- Displays a collapsible card for each event selected in Step 2.
Rate Type Tab
- The user selects either Hourly or Fixed Price for each event.
- All roles within the same event must share the same pay rate type — either Hourly or Fixed Price.
- The Pay Rate field is optional. If a value is entered, the system validates that it follows the correct numeric format, but no mandatory entry is enforced.
- Hourly Rate
- If a contractor is assigned an hourly rate for a specific role in a service-event combination, the total payment is calculated as: Hourly Rate × Hours of coverage (shooting hours).
- The hourly rate is displayed with a “/h” suffix (e.g., $100.00/h).
- Fixed Rate
- If a contractor is assigned a fixed rate for a specific role in a service-event combination, their payment remains constant regardless of the Hours of coverage (shooting hours).
- Switching between rate types (Hourly ↔ Fixed) clears all previously entered rate values within that event panel to prevent data mismatch.
- Service and Role Display
- Lists the service name and role name along with their respective icons (as configured in Step 2).
- Role Rate Input Field
- A numeric input field to define the rate amount for each role.
- Validation ensures proper numeric formatting if a value is entered.
Add Payment Note
- Allows the agency to add a brand-specific payment note for the contractor.
- Initially, an “Add Payment Note” button with an informational tooltip is displayed.
- When clicked, a Payment Note input field appears, along with a “Remove Note” button.
- The entered payment note:
- Applies to all event services under the same brand.
- Appears in the Assign Event Price pop-up when assigning the contractor to an event for that brand.
- It is also displayed under the Rates tab in the contractor’s profile for that brand.
- Clicking the “Remove Note” button clears and hides the note input field.
4.7 Backup Shooter Logic
- The Backup Shooter toggle is optional.
- When enabled, it designates the contractor as a backup for all selected roles, services, and events under the current brand.
- If a contractor is marked as a Backup Shooter for a brand’s event, service, or role:
- Backup shooters are excluded from default event assignment suggestions and will not appear in the suggested contractor list for a brand’s role, service, or event unless the “Backup Shooter” filter is turned on by the Agency user.
- This flag is used during event assignment to identify eligible backup contractors.
- Backup status is brand-specific and does not carry over to other brands.
4.8 Contractor Profile Display and Fetching Logic
- Clicking the contractor’s profile icon inside the “Set Up User” pop-up opens the Contractor Profile Panel.
- The profile panel remains open throughout the setup process until closed using the (x) button, and it can be accessed from any step during the contractor setup
- The profile panel includes two tabs: Info and Gear.
- Info tab fields include:
- Refer - Click Here
- Gear tab fields include:
- Refer - Click Here
- Information is fetched from multiple data sources:
- Invitation Data (name, email, assigned services).
- Onboarding Data (travel info, phone number, website, meal preferences, gear).
- Any missing data displays fallback values “–” or “None.”
4.9 Data Persistence and Validation
- Data remains saved in memory when navigating between steps using Back or Next.
- Data is stored permanently in the database only after clicking Finish on the final step.
4.10 Impact for Assignment in an Event
- Once a contractor is successfully set up for a brand’s event — including configuration of the specific services and roles — the following impacts apply:
Project Details
- The contractor becomes eligible for assignment to any project’s event under that brand.
- Assignment eligibility is restricted to the exact services and roles configured during the setup process.
- Contractors who have not been configured for a specific service or role will not appear in the suggested contractor list for that category.
Check Availability Module
- After setup is complete, the contractor appears in the Check Availability results if their configuration matches the search criteria (such as service, role, event date, or brand).
- Only contractors meeting all matching criteria are displayed as available options for assignment.
5. Field Details & Validations
5.1 Contractor Profile Display
Field Name
Type
Validation Rules
Contractor Details Card
Info Display
Display contractor name, avatar, service specialization with pending invite status indicator (only if not accepted); clickable to open profile panel
5.2 Step 1/3: Service Area Assignment (Per Brand)
Field Name
Type
Required
Validation Rules
Add Service Area
Multi-Select Dropdown
Yes
At least one required
Multiple selections allowed; no limit
Cancel
Button
First brand only
Close the setup without saving; return to the contractor list
Next
Button
Always visible
The button remains enabled; validates on click - if validation passes, proceed to Step 2/3, otherwise display an error message
5.3 Step 2/3: Roles & Services (Per Brand)
Field Name
Type
Required
Validation Rules
Service Categories
Section Header
N/A
Display ONLY the services that were selected during the invitation for this specific brand
Role Checkboxes
Multi-Checkbox
Yes
At least one role is required
Options: Lead Shooter, Second Shooter, Assistant, Drone Operator
Backup Shooter
Toggle
No
Applies to all selected roles within selected services of the selected events
Events
Multi-select checkbox
Yes
At least 1 required; brand-specific event types only
Back Button
Button
N/A
Return to Step 1/3; preserve the entered data
Next Button
Button
N/A
The button remains enabled; validates on click - if validation passes, proceed to Step 3/3, otherwise display an error message
5.4 Step 3/3: Pay Rates (Per Brand)
Field Name
Type
Required
Validation Rules
Event Panel
Collapsible Card
N/A
Shows only events selected in sub-step 2/3; expandable panels
Rate Type Toggle
Switch Tab
N/A
- Options: Hourly and Fixed Price
- Choose either Hourly OR Fixed Price per event
Services and role
Text and icon
Yes
Display the service (selected during invitation) for the event, and also display the role name with the icon (selected in sub-step 2/3)
Pay Rate Input
Currency Input
No
- Maximum 6 digits (0-9)
- Numeric input only
- The system prevents typing after 6 digits
- Also allows “0” as the input.
Add Payment Note
Button
No
- On click, opens the payment note input field
Payment Note Input
Input
No
- Max 250 Characters
Remove Note
Button
Conditional
- On click, it clears the payment note
Back Button
Button
N/A
Return to Step 2/3; preserve the entered data
Next Button
Button
If multiple brands and not the last brand
- Visible for multi-brand setup (not the last brand)
- The button remains enabled; validates on click - if validation passes, proceed to the next brand's Step 1/3, otherwise display the error message
Finish Button
Button
If the last brand only
- Display only on the last step 3/3 of the last brand or the last step 3/3 of the single brand set up
- The button remains enabled; validates on click - if validation passes, save all data and complete setup, otherwise display the error message
5.5 Contractor Profile Panel - Info tab
Field Name
Type
Validation Rules
Service Type
Text
Shows service specialization assigned to the contractor during invite contractor/setup contractor (Photographer, Videographer, or Content Creator)
Service Area
Text
- Displays the service areas of the contractor (from contractor onboarding) as (City, Country)
Travel Without Fees
Text
- Display the miles selected for travel without fees by the contractor
Travel With Fees
Text
- Display the miles selected for travel with fees by the contractor.
Display the contractor’s email address
Phone Number
Number
- Display the contractor’s phone number
Website
URL
- Display the contractor’s website
Meal Preference
Text
- Display if meal preferences are selected by the contractor
Allergy
Text
- Display allergy (if added by the contractor).
Dietary Restriction
Text
- Display dietary restrictions (if added by the contractor)
5.6 Contractor Profile Panel - Gear Tab
Field Name
Type
Validation Rules
Camera
Text
- Displays the camera selected by the contractor during onboarding, including the camera in other fields
- Display "--" for no data (contractor pending invitation)
Lenses
Text
- Displays the lenses selected by the contractor during onboarding
- Display "--" for no data (contractor pending invitation)
Content Creation
Text
- Displays the content creation phone selected by the contractor during onboarding, including the phone in other fields
- Display "--" for no data (contractor pending invitation)
Drone
Text
- Displays the drone model selected by the contractor during onboarding, including the drone in other fields
- Display "--" for no data (contractor pending invitation)
On-Camera Flash
Yes/No
- Displays whether the contractor has an on-camera flash (Yes/No) selected by the contractor
- Display "--" for no data (contractor pending invitation)
Off-Camera Flash
Yes/No
- Displays whether the contractor has an off-camera flash (Yes/No) selected by the contractor
- Display "--" for no data (contractor pending invitation)
Other Gear
Text
- Displays any other gear selected by the contractor
- If no gear is selected, display 'None'
- If onboarding is not complete (pending contractor invitation), display '--'
6. Success Message Handling
Validation Scenario
Success Message
The contractor's setup was completed successfully
"Contractor has been set up successfully."
7. Error Message Handling
Field
Validation Scenario
Error Message
Step 1/3: Service Area
Add Service Area
No service area selected
"Please select at least one service area."
Step 2/3: Roles & Services
Role Checkboxes
No roles selected in any service category
"Please select at least one role for each service."
Events
No events selected
"Please select at least one event type."
Step 2/3: Pay Rates
Payment Note
Payment note exceeds 250 characters
“Payment note cannot exceed 250 characters.”
General
General
Server/API error
"Something went wrong."
8. Edge Cases
Scenario
Expected Behavior
Contractor onboarding was incomplete during the setup
Setup proceeds normally; contractor card profile fields show "–" for missing data (incomplete onboarding)
9. Test Cases
- Link: Pixally Test cases
10. Acceptance Criteria
- Setup Initiation: “Set Up User” (in Set Up Required) opens setup for onboarded-but-unconfigured contractors → success moves them to Active; “Set Up Anyway” (in Pending Invitation) allows pre-onboarding setup and hides CTA after completion (record stays in Pending).
- Setup Flow: Guided per-brand steps: Step 1 Service Area → Step 2 Roles & Services → Step 3 Pay Rates; left sidebar lists assigned brands; all 3 steps must be completed per brand before moving to the next.
- Brand/Service Dependency: Only invitation-assigned services are configurable; events/services pulled from brand config; total steps = 3 × brands.
- Step 1 – Service Areas: Assign one or more brand-specific service areas via multi-select sourced from that brand.
- Step 2 – Roles & Services: Configure roles per invited service and select brand-specific events; roles have icons shown across modules; optional Backup Shooter toggle applies to all chosen roles/services/events for that brand.
- Step 3 – Pay Rates: For each selected event (collapsible card), choose Hourly or Fixed (single type per event), enter optional role rates per service/role, switching type clears values; optional brand-level Payment Note applies across that brand and appears in Assign Event Price and Rates tab.
- Backup Shooter Behavior: When enabled, contractor is excluded from default suggestions and only appears when Backup Shooter filter is on; flag is brand-specific.
- Profile Panel: Clicking contractor avatar in setup opens a persistent Profile Panel (Info/Gear tabs) fetches from Invitation + Onboarding; missing values show “–/None”.
- Data Persistence: Step data retained while navigating; permanently saved only on Finish of the final step.
- Assignment Impact: After setup, contractor is eligible for assignment only for the configured brand/services/roles; appears in Check Availability only when all criteria (service/role/event date/brand) match.
11. Dependencies
Module/System
Dependency Type
Impact if Unavailable
Brand Management Module
Data dependency
Cannot populate available service areas
Contractor Invitation System
Data dependency
Cannot load pre-assigned brands, services, and contractor details
Contractor Onboarding Module
Data dependency
Profile information unavailable (graceful degradation)
Project Assignment Module
Consumes data
Future project assignments cannot match contractors properly
Authentication System
Security dependency
Cannot verify agency admin permissions
Session Management
System dependency
Cannot maintain the setup state during navigation
12. References
- Figma Design Link: Click Here
✅ Contractor Profile
Contractor Profile Module (Agency Portal) — FRD
Change summary (this version): Adds the contractor's Address (global Home Address) to the Info tab with an agency-only last-changed timestamp and a hover history of the last two previous addresses (address text only, most recent first). Adds address-change impact logic: an address change affects new/future assignments only (existing assignments frozen regardless of date; past/completed unaffected); distance/miles recalculate for new assignments but the travel fee never changes automatically; an email is sent to the associated agency/agencies. Only a street change via Google Places selection counts as an address change; history tracking begins on the release date (pre-release addresses are not back-filled).
Open items: (a) the contractor-facing pop-up copy lives in the Location & Travel FRD and is pending Ryan; (b) the agency email is currently specified to all agencies the contractor is associated with — narrow to active engagements only if preferred.
Related FRD: Contractor Portal → Account Settings → Location & Travel Tab (source of the Home Address; contractor-facing address-change pop-up).
1. Module Overview
- Module Name: Contractor Profile View
- Purpose: To provide agency users with a centralized and intuitive interface to view, edit, and manage contractor brand assignment and view details — including personal information, assigned brands, gear, rates, tax forms, address, and availability — all within a unified profile and calendar view.
- Business Goal: To centralize and streamline contractor management by providing agency users with a comprehensive interface to view, manage, and maintain contractor profiles — including personal details, assigned brands, gear, pay rates, tax form status, address, and availability. The module enables agencies to assign or edit brand associations, update rates, delete contractors, and monitor calendar availability.
2. User Roles & Permissions
- Refer - Click Here (Roles & Permissions master)
3. User Flow
- The Contractor Profile View is opened from any of the entry points defined in §4.1. The agency user lands on the profile with the Info tab selected by default, from where they can review the contractor's details (including the Address field and its change history), switch to Gear / Rates tabs, view the calendar, and take header actions.
4. Functional Logic
4.1 Profile Access
- The Contractor Profile View can be accessed by:
- Clicking the "View Profile" button in the Active tab
- Clicking the contractor's name in any tab (Active, Setup Required, or Pending Invitation) within the Contractor Listing Module
- Project Details > Events > Contractors tab > Clicking on the Contractor profile (if assigned to an event)
- Client & Contractors > Check Availability > Click on the contractor profile in the search result
- Global search > Contractor Name
- All profile data is fetched from:
- Contractor Onboarding details (if submitted by the contractor)
- Agency-side setup data (brands, pay rates, and assigned roles)
- Any updates made by the contractor in their own profile settings in the contractor portal (this includes the Home Address, maintained in Contractor Portal → Account Settings → Location & Travel)
4.1.1 Empty State
The contractor's profile will display an empty or partially completed state when the contractor is in the Pending Invitation tab, depending on the setup progress.
A. Pending Invitation and Setup Incomplete
- Role Icon: No role icon will be displayed with the contractor name.
- Pending Status Tag: Display the Pending tag in the contractor profile.
Info Tab
- Service Type: Displays the services selected during the contractor invitation.
- Service Area: Displays the empty state as setup is pending from the agency side.
- Address: Displays the empty state ("--") as the contractor has not completed onboarding (no Home Address captured yet).
- Email: Displays the email used to send the invitation to the contractor.
- Travel Without / With Fees, Phone Number, Website, Meal Preferences, Allergy: Displays the empty state as the contractor has not completed the onboarding process.
Gear Tab
- Displays an empty state as the contractor has not completed the onboarding process.
Rates Tab
- Displays an empty state as the setup is incomplete from the agency side.
- Displays a "Set Up Rates" button; on click, it opens the Setup Contractor pop-up.
B. Pending Invitation and Setup Complete
- Role Icon: Displays the role icon as assigned by the agency during contractor setup.
- Pending Status Tag: Display the Pending tag in the contractor profile.
Info Tab
- Service Type: Displays the services selected during the contractor invitation.
- Service Area: Displays the service area assigned to the contractor.
- Address: Displays the empty state ("--") until the contractor completes onboarding and a Home Address is captured.
- Email: Displays the email used to send the invitation to the contractor.
- Travel Without / With Fees, Phone Number, Website, Meal Preferences, Allergy: Displays the empty state as the contractor has not yet completed onboarding.
Gear Tab
- Displays an empty state as the contractor has not completed the onboarding process.
Rates Tab
- Displays the rates set up by the agency for each brand.
4.1.2 Brand Assignment Logic
- Only the brand name assigned by the agency user during contractor setup (or when assigned later using assign-new-brand functionality) is displayed below the contractor's name.
- The role assigned to the contractor for all assigned brands is displayed alongside the contractor's name.
4.1.3 Missing Data Handling
- Any fields with missing or incomplete data in the Info or Gear tab due to pending onboarding (Pending Invitation state) will display "--".
- The profile remains accessible but in a read-only state until onboarding completion.
4.2 Profile Header Section
- Displays Contractor Profile Image, Contractor Name, Role, Assigned Brands, Rating, and Tax Form Status.
Role Icons Identification
This section defines the logic for displaying role icons in the Contractor Profile Header based on the contractor’s assigned roles across different services.
During contractor setup or edit contractor services & roles, an agency user can assign multiple roles (Lead Shooter, Second Shooter, Assistant, Drone Operator) to the same contractor across the same or various services. When multiple roles are assigned, the corresponding role icons are combined or displayed separately based on the role combination.
-
- The visual representation of role icons is shown in the image below.
- **Role Display Logic:
**- Lead Shooter + Assistant: Combined icon representing both roles.
- Lead Shooter + Second Shooter: Combined icon representing both roles.
- Lead Shooter + Second Shooter + Assistant: Combined icon representing all three roles.
- Lead Shooter Only: Lead Shooter icon.
- Second Shooter Only: Second Shooter icon.
- Second Shooter + Assistant: Combined icon representing both roles.
- Assistant Only: Assistant icon.
- Drone Operator: Distinct Drone Operator icon, always shown as a separate icon, even if the contractor holds other roles.
- The Header Kebab menu includes:
- Edit [Brand]: Opens the brand-level configuration where the agency user can edit Service Area, Services & Roles, and Pay Rates for the specific contractor.
- Edit Service Area
- Edit Services, Roles & Pay Rate
- Assign New Brand: Opens the pop-up to assign a new brand to the selected contractor. If unassigned brands are available, the user can assign one; if all agency brands are already assigned, the "No Brands Available" pop-up is displayed.
- Delete Contractor
- Edit [Brand]: Opens the brand-level configuration where the agency user can edit Service Area, Services & Roles, and Pay Rates for the specific contractor.
4.2.1 Rating Display Logic
- The Rating field displays the contractor's average star rating calculated from all ratings given by the current agency: (Sum of all ratings given by the agency users ÷ Total number of ratings given by the agency users).
- If no ratings exist, the field displays "No ratings".
- Clicking the rating opens the "View All Ratings" pop-up.
4.2.2 Tax Form Logic
- The profile displays the tax form status and related actions based on submission status.
A. Tax Form Submitted
- Tag: "Tax Form Submitted"
- Button: Download (visible only when the form is submitted). On click, the submitted tax form downloads and a success message is displayed.
B. Tax Form Not Submitted
- Tag: "Tax Form Not Submitted"
- Button: Remind (visible only when not submitted). On click, sends a reminder email and displays a success message.
4.3 Info Tab Logic
- The Info Tab displays contractor information fetched from the details filled by the contractor during onboarding, or — if onboarding is incomplete — only the data filled by the agency during contractor invitation.
- Info Tab Fields:
- Fields entered by the agency
- Service Type: Service specialization assigned to the contractor during invite/setup (Photographer, Videographer, or Content Creator).
- Service Area: Service area(s) assigned to the contractor during contractor setup.
- Email: The contractor's email address.
- Fields entered by the contractor
- Address: The contractor's Home Address, as maintained by the contractor in Contractor Portal → Account Settings → Location & Travel. The Home Address is global across all agencies. This field also displays the last-changed timestamp and address history described in §4.3.1.
- Travel Without Fees: Distance (in miles) the contractor travels without charging extra fees.
- Max Travel Distance If Fees Provided: Distance (in miles) the contractor is available to travel for additional fees.
- Phone Number: The contractor's phone number.
- Website: The contractor's website.
- Meal Preference: Displayed if selected by the contractor.
- Allergy: Displayed if added by the contractor.
- Fields entered by the agency
4.3.1 Address Field — Last-Changed Timestamp & History (Agency View) — NEW
Source & visibility
- The Address field displays the contractor's Home Address, which the contractor maintains in Contractor Portal → Account Settings → Location & Travel. It is a global value shared across all agencies the contractor works with.
- The last-changed timestamp and address history described here are shown on the agency side only. The contractor does not see this timestamp/history in their own portal.
- Because the address is global, the same timestamp and previous-address history are shown to every agency the contractor is associated with.
Display (design reference: option 1a — history icon on the label row → side popover)
- The current address is shown as the field value, with an "Updated [date]" timestamp beneath it. [date] is the date on which the current address took effect (i.e., the date the most recent qualifying change was saved).
- A small history icon appears on the ADDRESS label row. On hover, a side popover reveals the address history.
- Popover contents: up to the last two previous addresses, most recent first, shown as address text only (no per-entry dates). If only one previous address exists, only one is shown.
What counts as an address change
- Only a change to the street address made via Google Places selection (the contractor selects a new address from Google autocomplete) counts as an address change.
- Manual edits to Apartment Number or ZIP Code alone — without selecting a new Google address — do not count: they do not update the timestamp, do not create a history entry, and do not trigger the contractor pop-up or the agency email.
History depth & rollover
- The system retains the current address plus up to two previous addresses.
- On each qualifying change: the outgoing current address becomes previous #1; the prior previous #1 becomes previous #2; any prior previous #2 is discarded.
Start of tracking & empty state
- History tracking begins on the release date of this feature. Addresses that predate release are not back-filled.
- For a contractor whose address has not changed since release (no qualifying change captured yet): no history icon/popover is shown and no "Updated [date]" timestamp is shown, because the true last-changed date is unknown.
- After the first qualifying change post-release, the timestamp appears and the popover shows the (single) previous address; a second qualifying change adds the second previous address.
4.3.2 Address Change — Distance, Travel Fee & Event Impact — NEW
- Applies to new/future assignments only. When the contractor changes their Home Address, the new address is used to calculate distance/miles only for events the contractor is assigned to after the change.
- Existing assignments are frozen. Events already assigned to the contractor are not recalculated — they retain the distance and travel fee determined at the time of assignment, regardless of the event's date. Past/completed events are likewise unaffected.
- Distance recalculates; travel fee does not. For new assignments, distance/miles recalculate to the new address. However, the travel fee is never changed automatically by the system. Any travel-fee adjustment must be made manually by the agency.
- Agency notification. On a qualifying address change, an email is sent to the agency/agencies the contractor is currently associated with, informing them of the change (email content is managed separately). No in-app notification or activity-log entry is generated by this change; the agency-side timestamp/history in §4.3.1 provides the passive, at-a-glance surfacing.
- Coordination expectation. Because the fee does not auto-update, the contractor is prompted (in their own portal — see the Location & Travel FRD) to coordinate any fee change with the agency directly.
4.4 Gear Tab Logic
- The Gear Tab displays the list of gear submitted by the contractor during onboarding, and only the gear relevant to the services invited by the current agency.
- If a contractor is associated with multiple agencies, each agency sees only the gear categories/models corresponding to the services they invited the contractor for. Gear for non-invited services remains hidden.
- Show More / Show Less applies per sub-gear section when items exceed the display limit (default: 5). Count Badge: each sub-category shows the number of items selected.
- Categories display in collapsible sections based on services the current agency invited the contractor for. Within each, only the specific gear models selected during onboarding display.
- A. Photography Gear: Camera Models, Lenses, Camera Flash (On-/Off-Camera).
- B. Videography Gear: Video Camera Type, Lenses, Camera Flash (On-/Off-Camera).
- C. Content Creation Gear: Smartphone devices selected during onboarding.
- D. Drone: Drone Models; Drone License (uploaded PDF with file name, size, and Download button).
- E. Other Gears: Shown only if the contractor added the section during onboarding.
4.5 Rates Tab Logic
- Displays brand-specific pay rates assigned to the contractor during setup.
- A Brand dropdown appears only if more than one brand is assigned; with a single brand, only that brand name displays.
- If a payment note was added for a brand, it displays for that brand.
- Organized by Brand → Event Type → Service → Role hierarchy.
4.5.1 Rate Display Formatting
- Each rate displays the currency symbol ($ or per agency global currency settings) as a prefix.
- Hourly rates append "/h". Examples: Hourly "$150/h"; Fixed "$600".
- Roles appear as an icon along with service in priority order: Lead Shooter, Second Shooter, Drone Operator, Assistant.
4.5.2 Edit Pay Rates Pop-up Logic
- Opens via the "Edit Pay Rates" button in the Rates tab.
- Displays all brands linked to the contractor in the brand dropdown (default: currently selected brand).
- Expanding each event panel allows editing of rate fields. All roles under an event use the same rate type (Hourly or Fixed). Rate-type changes apply only to future assigned projects.
- Updated rates apply only to future projects the contractor will be assigned to and do not affect projects already assigned.
- Payment notes can be added or modified per brand.
4.6 Calendar View
- Displays the contractor's availability and assigned events. Two modes: Month View and List View, toggleable via dropdown.
4.6.1 Month View Logic
- Displays booked event names (events assigned to the contractor) with corresponding project and event name.
- Unavailable / Do Not Book Days: marked with cross-stripes; includes "Do Not Book" days when the contractor is assigned to another agency's event.
- Future Booking Window: based on the contractor's defined preference (e.g., 3 or 6 months) from today, cells beyond the window display cross-stripes, updated dynamically daily. If the contractor selected "Any", all days are available except explicitly blocked days.
4.6.2 List View Logic
- Displays events in chronological order for the selected month. If none: "No events to display."
- Columns: Date, Project Name, Event Name, Brand, Service Area, and Status Icons (Contract, Invoice, Documents, Payment).
4.6.3 Status Icons
- Service Agreement / Documents: Empty = not signed/uploaded; Filled = signed/uploaded.
- Invoice: Empty = not uploaded; Filled = uploaded.
- Deliverables: Empty = not uploaded; Filled = uploaded.
- Payment: Empty = unpaid; Half-Filled = partial; Filled = fully paid.
4.7 Actions
- The actions menu options are displayed based on the contractor's setup status.
4.8 Missing Data & Dynamic Updates
- All fields dynamically refresh based on the contractor's latest data from onboarding or updates made in the contractor portal settings — including the Address field, which reflects the latest Home Address (and, on the agency side, the latest timestamp/history per §4.3.1).
5. Field Details & Validations
5.1 Header Section Fields
Field Name
Type
Validation Rules
Contractor Name
Text
Displays the contractor's full name along with role icons
Profile image
Image
Displays the contractor's profile image if uploaded; otherwise initials in the avatar (e.g., John Doe → JD)
Brands Assigned
Chip Tags
Displays the brands assigned to the contractor by the agency
Rating
Numbers (1–5)
Displays the calculated average rating (0–5 stars); defaults to "No ratings" if none; clicking opens the View All Ratings pop-up
Kebab
Kebab action
Options: Edit [Brand], Assign New Brand, Delete Contractor
Tax Form Status
Tag
"Tax Form Submitted" or "Tax Form Not Submitted"
Remind (Email reminder)
Button
Visible only if the tax form is not submitted
Download (Tax Form)
Button
Visible only if the tax form is submitted
5.2 Info Tab Fields — NEW / UPDATED
Field Name
Type
Validation / Display Rules
Service Type
Text
Agency-entered; Photographer / Videographer / Content Creator
Service Area
Text
Agency-assigned service area(s)
Text
Contractor's email address
Address (Home Address)
Text (read-only, display)
Displays the contractor's global Home Address. Read-only on the agency side (contractor edits it in their own portal). Shows "--" until a Home Address exists. See timestamp/history rows below.
Address — Last-Changed Timestamp
Timestamp label
Shows "Updated [date]" = date the current address took effect. Shown only after a qualifying (Google-selection) change captured post-release. Hidden for addresses never changed since release. Agency side only.
Address — History Icon
Icon (hover trigger)
Shown on the ADDRESS label row only when at least one previous address exists (post-release). On hover, opens the Previous Address popover. Agency side only.
Previous Address Popover
Popover (hover)
Lists up to the last two previous addresses (most recent first), address text only, no per-entry dates. Shows one if only one previous exists. Not shown if no previous address exists.
Travel Without Fees
Text
Distance (miles) the contractor travels without extra fees
Max Travel Distance If Fees Provided
Text
Distance (miles) available with additional fees
Phone Number
Text
Contractor's phone number
Website
Text
Contractor's website
Meal Preference
Text
Displayed if selected by the contractor
Allergy
Text
Displayed if added by the contractor
5.3 Rates Tab Fields
Field Name
Type
Validation Rules
Brand Selector
Dropdown
Displays brands associated with the contractor; allows switching to view brand-specific rates
Event Name Header
Section
Displays event type (Wedding, Engagement Photoshoot, Rehearsal Dinner, etc.)
Rate Type
Icon
Displays Hourly (/h) or Fixed Price icon based on the rate type for the event
Service Category
Text
Displays service type under each event (Photography, Videography, Content Creation); only services set by the agency
Role-based Rate
Numeric
Displays the rate assigned by the agency for each role/service under every event
Edit Pay Rates
Button
Opens the pop-up to update the pay rates
5.4 Edit Pay Rates Pop-Up Fields
Field Name
Type
Required
Validation Rules
Brand Selection
Dropdown (if >1 brand)
Yes
Displays associated brands; allows switching; single brand shows name only
Event Panel (e.g., Wedding)
Dropdown Card
Yes
Displays only events set up by the agency; collapsed by default; expands to set role rates
Rate Type (Hourly / Fixed) Toggle
Switch Tab
Yes
Choose Hourly or Fixed per event; all roles share the rate type; only the selected type applies
Service Category
Text
Yes
Displays service type per event panel; only agency-set services
Role
Text + icon
Yes
Displays role/service assignment
Role Rate Input
Currency Input
Yes
Max 6 digits (0–9), numeric only, "0" allowed; editable; order: Lead, Second, Drone, Assistant
Add Payment Note
Button
No
Opens the payment note input field
Payment Note Input
Input
No
Max 250 characters; displays existing note
Remove Note
Button
Conditional
Clears the payment note
Warning Message
Info Card
Yes
"Please note: Pay rates will be reflected only for future projects and their related events."
Cancel
Button
Yes
Closes the pop-up without saving
Close Icon
Button
Yes
Closes the pop-up without saving
Update Pay Rates
Button
Yes
Saves rates (future projects only) if validations pass
5.5 Calendar Month View Fields
Field Name
Type
Validation Rules
View Change Filter
Dropdown
Options: Month, List; toggles views; shown in both views
Month & Year
Text, Number
Displays current month and year
Previous Month
Icon Button
Navigates to previous month; hidden when current month is shown
Next Month
Icon Button
Navigates to next month
Today
Button
Navigates to the current month and highlights today
Event name + Project Name
Text
Displays event name + color code + project name on the corresponding day; spans multi-day events
Not available days
Do Not Book days
Displayed with cross-stripes
5.6 Calendar List View Fields
Field Name
Validation Rules
No events
"No events to display" when none for the selected month
Date
Event date the contractor is booked/assigned
Project Name
Title of the assigned project
Event Name
Event name + color code assigned to the contractor
Brand
Brand associated with the event
Service Area
Service area of the event (City, State)
Contract Icon
Filled if the contract is signed; else unfilled
Invoice Icon
Filled if the invoice is generated; else unfilled
Documents Icon
Filled if deliverables are uploaded; else unfilled
Payment Icon
Filled = fully paid; half = partial; unfilled = none
6. Success Message Handling
Validation Scenario
Success Message
Rate updated successfully
"Pay rates have been updated successfully."
Tax form reminder sent
"Tax form reminder has been sent successfully."
Tax form downloaded
"Tax form has been downloaded successfully."
7. Error Message Handling
Field
Validation Scenario
Error Message
Rate Input
Empty submission
"Please enter a pay rate."
Rate Update
Network timeout
"Unable to update pay rates. Please try again."
Tax Form Reminder
Send failure
"Unable to send tax form reminders. Please try again."
Tax Form Download
Download failure
"Unable to download tax form. Please try again."
Address History Popover
History fails to load
"Unable to load address history. Please try again."
8. Edge Cases
Scenario
Expected Behavior
Contractor hasn't completed onboarding
Display "--" for missing fields (including Address); show available data only
Tax form status changes during the session
Update status indicator and button visibility without page refresh
Calendar month with no events
Show empty calendar with availability indicators (Book / Do Not Book days)
Future booking window
Show days beyond the window as unavailable with cross-stripes
Address never changed since release
No timestamp and no history icon/popover shown for the Address field
Only one previous address exists
Popover shows a single previous address (address text only)
Contractor changes address a third time
Oldest of the three prior addresses drops off; popover retains the two most recent previous addresses
Contractor edits only Apartment # / ZIP (no new Google selection)
Not treated as an address change: no timestamp update, no new history entry, no agency email
Contractor is associated with multiple agencies
Every associated agency sees the same Address value, timestamp, and previous-address history (address is global)
Address changed after the contractor is already assigned to an event
The assigned event retains its original distance and travel fee (no recalculation), regardless of event date; new assignments use the new address
Address change would move the contractor beyond a no-fee threshold for a future assignment
Distance recalculates for new assignments, but no travel fee is added automatically; the agency adjusts fees manually
9. Test Cases
- Link: [to be added]
10. Acceptance Criteria
- Contractor profile is accessible from Active/Setup Required/Pending Invitation tabs, Project > Event > Contractors, Check Availability, or Global Search; data is fetched from onboarding, agency setup, and contractor updates.
- Info tab displays the contractor's Address (global Home Address); shows "--" when not yet available.
- Agency-side only: the Address field shows an "Updated [date]" timestamp and a hover history of the last two previous addresses (address text only), most recent first; a single previous address shows one entry.
- History starts at release: no timestamp or history is shown for addresses never changed since release; the affordances appear only after the first qualifying (Google-selection) change.
- Change trigger: only a street change via Google Places selection updates the timestamp, pushes a history entry, and triggers the agency email; Apartment #/ZIP-only edits do not.
- Event impact: an address change affects new/future assignments only; already-assigned events (any date) and past/completed events are never recalculated.
- Distance vs. fee: distance/miles recalculate to the new address for new assignments, but the travel fee is never changed automatically — adjustments are manual by the agency.
- Agency email: an email notification is sent to the associated agency/agencies on a qualifying address change (content managed separately).
- Existing header, rating, tax form, gear, rates, and calendar behaviors continue to function as specified.
11. Dependencies
Module/System
Dependency Type
Impact if Unavailable
Contractor Onboarding
Data dependency
Profile fields (including Address) show "--"; limited information available
Contractor Portal — Location & Travel
Data dependency
Address value and its change history cannot be sourced/displayed
Distance Calculation Module
Business-logic dependency
Distance/miles for new assignments cannot be recalculated on address change
Email Service
Service dependency
Address-change email to the agency cannot be sent
Calendar Module
Data dependency
No availability or booking information displayed
Event Management
Data dependency
Cannot show project assignments in calendar/list view
Payment Module
Data dependency
Payment icons remain empty or show incorrect status
Brand Management
Data dependency
Cannot display assigned brands or filter rates
12. References
- Figma Link: Click Here
- Related FRD: Contractor Portal → Account Settings → Location & Travel (source of the Home Address; contractor-facing address-change pop-up).
✅ Edit Service Area
Edit Brand Service Area
1. Module Overview
- Module Name: Edit Brand Service Area
- Purpose: Allow agency users to modify service area assignments for contractor-brand relationships through a dedicated service area management interface within the edit brand modal
- Business Goal: Enable flexible management of contractor service coverage by allowing agency users to add or remove service areas for specific brand assignments while ensuring data integrity and maintaining existing project commitments
2. User Roles & Permissions
- Refer - Click Here
3. User Flow
4. Functional Logic
4.1 Data Pre-Population Logic:
-
The user can edit a specific brand associated with the contractor from the Kebab Menu by selecting the “Edit [Brand Name]” option.
-
On clicking Edit Brand, a pop-up opens and pre-populates with the contractor’s existing brand-specific service area assignments.
-
The Add Service Area dropdown dynamically filters to show only brand-specific service areas that are not currently assigned to the contractor.
-
The Assigned Service Area stack view displays all currently assigned service areas with a Remove button beside each.
4.2 Add Remove Service Area Logic
4.2.1 Add Service Area Logic
- The Add Service Area dropdown lists only unassigned service areas for the selected brand.
- When the user selects a service area from the dropdown:
- The service area immediately moves to the Assigned Service Area stack view.
- The selected service area is removed from the dropdown list dynamically.
- When all brand service areas have been assigned to the contractor:
- The Add Service Area dropdown becomes hidden.
- The system validates that at least one service area must remain assigned before saving.
- After saving:
- The contractor becomes available for event assignments in new projects only for the service area which are assigned to the contractor
- The system updates visibility in availability checks and suggested contractor lists accordingly.
4.2.2 Remove Service Area Logic
- Each service area in the Assigned Service Area stack has a Remove button.
- On clicking Remove, the following actions occur instantly:
- The service area is removed from the assigned stack.
- The removed service area reappears in the Add Service Area dropdown.
- If the user removes all service areas:
- The system will allow the removal, but will display a validation error on save
- When a service area is removed and saved changes:
- The contractor will no longer appear in that service area for future project assignments.
- Existing project assignments in the service area that have been removed remain unaffected.
4.3 Save/Cancel Logic
- Save Changes:
- Changes are saved only when the Save Changes button is clicked and all validation rules pass.
- A successful save closes the pop-up and triggers a success toast message
- Cancel:
- Clicking Cancel immediately closes the pop-up without confirmation and discards all unsaved changes.
4.4 Information Display Logic
- An info message is displayed persistently at the bottom of the pop-up.
- Message Text: “Please Note: Changes to the service area here won’t affect existing projects. Updates only apply to new projects after saving these changes.”
4.5 Impact
- Refer - Click Here
5. Field Details & Validations
Field Name
Type
Validation Rules
Add Service Area Dropdown
Single-select Dropdown
Shows only unassigned service areas for the specific brand; hidden when all brand service areas are assigned/selected
Assigned Service Areas Stack
Display List with Delete Icons
At least one service area must remain assigned to save changes; it displays currently assigned/selected service areas in stack view
Service Area Items
Interactive List Items
Each service area has a delete icon; clicking delete removes it from the assigned list and adds it back to the “Add service area” dropdown
6. Success Message Handling
Validation Scenario
Success Message
Service areas updated successfully
"Contractor brand assignment has been updated successfully."
7. Error Message Handling
Field
Validation Scenario
Error Message
Service Areas
No service areas selected on save
"Please select at least one service area."
General
Network error
"Something went wrong."
8. Edge Cases
Scenario
Expected Behavior
All brand service areas are already assigned
Hide dropdown; show only assigned areas with a delete option
The user attempts to delete the last remaining service area
Allow deletion, but show a validation error on save attempt to select at least one service area
Modal opened for a brand with a single service area
Show single assigned area; hide dropdown as no other areas are available, and on delete dropdown appears with the particular brand’s service area, which is deleted
User deletes the service area, then adds it back
Service area seamlessly moves between the dropdown and the assigned stack
Rapid add/remove operations
Interface responds immediately to each action without lag or data loss
9. Test Cases
- Link:
10. Acceptance Criteria
- An agency user can view the currently assigned service areas for the contractor (brand-specific)
- The agency admin can add service areas from the brand-specific dropdown menu
- The agency admin can remove assigned/selected service areas using the delete icons
- The service area dropdown shows only unassigned areas for the specific brand
- The service area dropdown hides when all brand areas are assigned to the contractor
- At least one service area must be assigned before saving changes
- Validation error appears only on save attempt
- Clear error messages guide users to resolve validation issues
- Service areas move seamlessly between the dropdown and the assigned stack
- The delete icons function correctly for removing assignments
- Interface updates immediately reflect user actions
- The info message communicates the project's impact
- The Service Area tab loads as the default when the modal opens
- The save button validates requirements before applying changes
- The cancel button closes the modal without a confirmation dialog
- The success toast message appears after a successful save and modal closure
- Changes apply only to future projects, not existing assignments
- Service area assignments maintain data integrity with brand configurations
- All operations respect brand-specific service area limitations
11. Dependencies
Module/System
Dependency Type
Impact if Unavailable
Brand Management
Data dependency
Cannot load brand-specific service areas and configurations
Contractor Management
Data dependency
Cannot load contractor profile and existing brand assignments
Project Management
Business logic dependency
Cannot enforce future-only application of service area changes
User Authentication
Security dependency
Cannot verify agency admin permissions for editing assignments
12. References
- Figma Design Link: Click here
✅ Edit Services & Roles and Pay rates
Edit Contractors Services, Roles & Pay Rates
1. Module Overview
- Module Name: Contractor Brand Services & Roles Management
- Purpose: Allows agency users to manage and edit contractor assignments for specific brands, including services, roles, events, and corresponding pay rates through an edit brand functionality
- Business Goal: Streamline contractor brand management by providing a centralized interface to configure services, roles, and event assignments to the contractor, and pay rates while ensuring data integrity and maintaining existing project commitments
2. User Roles & Permissions
- Refer - Click Here
3. User Flow
4. Functional Logic
4.1 Contractor Not Set Up Logic
- When a contractor has not been configured for any brand-specific setup by the agency, and the user clicks the Edit [Brand Name] option from the contractor profile kebab actions, the system handles the state as follows:
- Initial Pop-Up Load Behavior
- The Edit Brand pop-up opens in the default state with no pre-selected service area, services, roles, events, or pay rates.
- The system identifies the contractor as not yet set up for the selected brand and initializes an empty setup state.
- Service Area Tab
- Displays the Service Area dropdown with no value selected. Refer - Click Here
- Service & Roles Tab
- Displays all available brand-specific services, roles, and events configured for that brand.
- Services will be pre-selected based on the services chosen during the contractor invitation process
- None of the checkboxes (roles and events) will be pre-selected.
- The backup shooter toggle remains off by default.
- Pay Rates Tab
- Since no role or event has been selected yet, the Pay Rates tab remains disabled and displays a relevant information message.
- To configure pay rates, users must select at least one role and one event in the Service & Roles tab; no editable pay rate fields are shown until a valid service-role-event combination is selected.
- Save Changes Behavior
- Clicking Save Changes without any valid selection triggers inline validation messages across tabs.
- No data is saved until all mandatory selections are completed (at least one service area, one service, one role, and one event).
- The contractor will be set up for the brand, and their status will be updated based on the invitation and setup completion. Refer - Click Here
- Subsequent Edits
- After the initial setup is saved, future edits for the same brand will follow the standard pre-population logic (as defined in Section 4.2 Data Pre-population Logic).
4.1 Data Pre-population Logic
- The user can edit a specific brand associated with the contractor from the Kebab Menu by selecting the “Edit [Brand Name]” option
On clicking Edit Brand, a pop-up opens and pre-populates with the contractor’s existing brand-specific data, loading the last saved state from the database for the selected contractor-brand combination
The Services & Roles tab displays:
All available brand-specific services with currently assigned ones highlighted.
All roles per service with currently assigned ones checked.
All brand-specific events with assigned events checked.
The Backup Shooter toggle reflects the contractor’s current backup status for that brand. Refer - Click Here
The Pay Rates tab displays previously set pay rates for each service-role-event combination.
4.3 Add, Edit, and Remove Logic Overview
All operations (Add, Edit, Remove) apply only to the selected brand assignment for the contractor.
Changes apply to future projects only — existing project assignments remain unaffected.
- In the Services & Roles tab, if the user makes any changes, a dynamic pop-up should appear on save. The pop-up will display a message indicating which services, roles, or events were previously selected and which have been added or removed.
4.3.1 Add Logic
4.3.1.1 Add Service
Displays only services configured for the selected brand.
- The services displayed are specific to the brand being edited. Each brand can offer 1 to 3 services, based on the services configured in the brand's settings from the available options (Photography, Videography, Content Creation)
Adding a service automatically enables the associated roles checkbox for selection.
New services appear in the Pay Rates tab under all selected Events once added, allowing users to set role-specific pay rates for that Event’s service.
At least one service must be selected before saving.
4.3.1.2 Add Role
Each service allows up to four roles:
Lead Shooter
Assistant
Second Shooter
Drone Operator
Adding a role automatically creates a pay rate input field for that role under all selected events and services.
Each selected service must have at least one role assigned.
4.3.1.3 Add Event
Events displayed are specific to the brand being edited and vary by brand configuration
When a new event is added:
The event appears in the Pay Rates tab as a collapsible panel.
All selected service-role combinations are shown under the event
At least one event must be selected before saving.
4.3.1.4 Add Pay Rate
When a new service, role, or event is added, the corresponding pay rate field appears in the Pay Rates tab.
Pay rate entry is optional; the user may leave it blank or enter 0.
The field accepts only numeric input (0–9) with a maximum of 6 digits.
Rate input supports both Hourly and Fixed Price types per event.
4.3.2 Edit Logic
4.3.2.1 Edit Service
Users can modify assigned services by checking or unchecking services in the Services & Roles tab.
Editing service selections automatically updates associated roles and pay rate fields.
Pay rate values for unchanged combinations are retained.
4.3.2.2 Edit Role
Users can modify assigned roles for each selected service.
Adding or removing roles dynamically updates the Pay Rates tab.
Editing a role does not require a pay rate entry, as it is optional.
4.3.2.3 Edit Event
Editing the event list adds or removes related pay rate fields automatically.
Removing an event hides all related rate fields.
Event changes do not affect existing saved rates for other events.
4.3.2.4 Edit Pay Rate
Pay rates can be edited directly in the Pay Rates tab.
Rate input fields accept only numeric values, including 0.
Rate entry is optional; fields can be left blank without blocking save.
All changes are saved only after successful validation and clicking Save Changes.
4.3.3 Remove Logic
4.3.3.1 Remove Service
Deselecting a service automatically removes associated roles, events, and pay rate fields.
The system enforces at least one service selection before saving.
4.3.3.2 Remove Role
Deselecting a role removes related rate fields across all events.
The system validates that each selected service must retain at least one role.
4.3.3.3 Remove Event
Removing an event also removes its associated pay rate card fields from the Pay Rates tab, along with the related services and role combinations
The system requires at least one event to remain selected.
4.3.3.4 Remove Pay Rate
Clearing a pay rate field is permitted and does not block saving.
A pay rate value of 0 is allowed, and it will be valid.
4.3.4 Re-adding Previously Removed Service Logic
- If a service is removed and then added back later, the system does NOT retain any previous configuration. The service must be set up completely from scratch.
- Re-addition Requirements:
- If the same service is added back at a later time (even in the same editing session), the contractor setup treats it as a brand new service assignment
- The agency user must:
- Re-select all roles for the service (Lead Shooter, Assistant, Second Shooter, Drone Operator)
- Re-enter pay rates for each role-event combination
4.4 Pay Rate Logic
The Pay Rates tab dynamically reflects service, role, and event selections.
Each Event Panel includes Refer - Click Here
The selected pricing type, Hourly or Fixed, applies per event panel.
4.5 Backup Shooter Add/Edit Logic
- The Backup Shooter toggle is an optional configuration available in the “Roles & Services” tab of the contractor setup
- The toggle state (ON/OFF) is fetched from the contractor’s existing setup and indicates whether the contractor is currently configured as a Backup Shooter for the selected brand.
When the Backup Shooter Toggle is Enabled
- If a contractor was previously configured as a Normal Shooter and the toggle is now turned ON, the contractor is designated as a Backup Shooter for all selected roles, services, and events under the current brand. Refer - Click Here
- Once enabled, the contractor is excluded from:
- The default contractor suggestion list during event assignment, and
- The Check Availability results
When the Backup Shooter Toggle is Disabled
- If a contractor was previously configured as a Backup Shooter and the toggle is now turned OFF, the backup status is removed for all selected roles, services, and events under that brand.
- The contractor reverts to a Normal Shooter for all configured roles, services, and events.
- Once disabled, the contractor will:
- Reappear in the default event assignment suggestions, and
- Be visible in Check Availability results for the selected event, role, and services.
- The status change affects only future event assignments and does not impact any past or ongoing projects where the contractor was previously assigned as a backup.
4.6 Validation & Save Logic
On successful validation:
All updates (Services, Roles, Events, Pay Rates) are saved together atomically. And a success toast appears
On validation failure:
Inline messages appear for missing services, roles, or events.
4.6.1 Add/Edit/Remove Validation
If the user tries to add or remove any assigned services, roles, or events, then upon clicking Save Changes, a dynamic pop-up will appear informing the user about the services, roles, and events that were added or removed.
- The pop-up will display only the services, roles, and events that were modified — whether added or removed, with their impact.
Impact of Changes:
- These updates will apply only to future projects under this brand.
- Removed services, roles, and events: The contractor will become ineligible for assignment to any future projects or events related to the removed configurations.
- Added services, roles, and events: The contractor will become eligible for assignment to future projects matching the newly added configurations.
- Existing and ongoing projects will remain unchanged.
4.7 Data Persistence Logic
Changes made across tabs are temporarily stored in draft state.
Drafts persist during navigation, but clear if the modal is closed without saving.
The final save operation saves all the data.
4.8 Impact of Updates
- Once a contractor is successfully edited for a brand’s event — including configuration of the specific services and roles — the following impacts apply:
4.8.1 Project Details
- All updates apply only to future projects.
Existing and ongoing projects remain unchanged.
- The user can update the rate from hourly to fixed, or vice versa, and the change will apply only to future assigned projects.
- Updated rates apply only to future projects that the contractor will be assigned to and do not affect any projects the contractor is already assigned to
- Payment notes can be added or modified for each brand the contractor is assigned.
- The contractor becomes eligible for assignment to the project’s event under that brand, which is configured or added during the edit brand.
- Assignment eligibility is restricted to the exact services and roles assigned or edited.
- Contractors who have not been assigned for a specific service or role will not appear in the suggested contractor list for that category.
4.8.2 Check Availability Module
- After the edit is complete, the contractor appears in the Check Availability results if their configuration matches the search criteria (such as service, role, event date, or brand).
- Only contractors meeting all matching criteria are displayed as available options for assignment.
4.8.3 Gear Details Impact for Added Services
When an agency adds a new service to a contractor's assignment after the initial invitation, the system handles gear details collection based on the contractor's onboarding status:
Scenario 1: Contractor Not Yet Onboarded (Within 48 hours of invitation)
- If the agency adds an additional service to the contractor within 48 hours of sending the invitation AND the contractor has not yet completed the onboarding process:
- The contractor's onboarding screen will dynamically update to include gear details input fields for the newly added service(s)
- When the contractor accesses the onboarding link, the Gear Details section will display input fields for:
- The originally assigned service(s) from the invitation
- Any additional service(s) added by the agency before onboarding completion
- The contractor can complete gear details for all assigned services in a single onboarding session
- No additional email notification is sent to the contractor for the added service; the existing invitation link remains valid
Scenario 2: Contractor Already Onboarded
- If the agency adds a new service to the contractor AFTER the contractor has completed the onboarding process:
- The system immediately triggers an automated email notification to the contractor
- The email informs the contractor about the newly added service and requests them to add the corresponding gear details
5. Field Details & Validations
5.1 Services Section
Field Name
Type
Validation Rules
Services
Photography
Multi-select card
- Display the brands' available services
- At least one service must be selected
Videography
Content Creation
Roles (Per Service)
Lead Shooter
Checkbox
At least one role per selected service
Assistant
Second Shooter
Drone Operator
Backup Shooter
Toggle
Optional emergency assignment flag
Events Section
Brand Events (Dynamic)
Checkbox
At least one event must be selected from brand-specific events
5.3 Pay Rates Fields
Field Name
Type
Validation Rules
Event Panel (e.g., Wedding)
Dropdown Card
- Display only events selected in the services & roles tab
- On click, expands to set rates for roles
Rate Type (Hourly / Fixed Price) Toggle
Switch Tab
- Options: Hourly and Fixed Price
- Choose either Hourly OR Fixed Price per event
- Switching the tab clears the rate input
Service Category
Text
- Display only services selected in the services & roles tab
Role
Text + icon
- Display only roles selected in the services & roles tab for each service and event combination
Role Rate Input
Currency Input Field
- Maximum 6 digits (0-9)
- Numeric input only
- The system prevents typing after 6 digits
- Also allows “0” as the input
Warning Message
Info Card
Displays the warning note "Please note: Pay rates will be reflected only for future projects and their related events."
Close (X)
Button
Closes the pop-up without saving any data
Cancel
Update Pay Rates
Button
- Updates the pay rate of the contractor if all validations are passed for the required filling.
6. Success Message Handling
Validation Scenario
Success Message
Services & Roles, Pay rates updated successfully
"Contractor brand assignment has been updated successfully."
7. Error Message Handling
Field
Validation Scenario
Error Message
Services
No service selected
"Please select at least one service."
Roles
No role selected for a service
"Please select at least one role for each service."
Events
No event selected
"Please select at least one event."
General
Network error
"Something went wrong."
8. Edge Cases
Scenario
Expected Behavior
The user removes the service with the existing pay rates
The system removes associated pay rates
User adds an event, but doesn't complete the pay rates
Auto-redirect to the Pay Rates tab with validation highlighting missing rates
The contractor has existing bookings for the removed role
Existing project events will not be impacted.
The user tries to save with incomplete pay rate combinations
Prevent saving and displaying a validation error message
9. Test Cases
- Link
10. Acceptance Criteria
- If the contractor is not yet set up for a brand, the Edit [Brand Name] pop-up opens with no pre-selected service area, services, roles, events, or pay rates, showing a default empty setup state.
- The Service Area tab shows an empty dropdown; the Services & Roles tab lists all brand-specific services (pre-selected as per invitation) with unchecked roles/events and Backup Shooter toggle OFF; the Pay Rates tab stays disabled until at least one valid service-role-event combination is selected.
- Clicking Save Changes without mandatory selections triggers inline validations; data is saved only after selecting at least one service area, service, role, and event.
- After initial save, future edits open with pre-populated data showing the last saved brand configuration (services, roles, events, pay rates, and backup status).
- Add/Edit/Remove operations apply only to the selected brand and affect future projects only; existing projects remain unchanged.
- Adding a new service, role, or event dynamically adds related pay rate fields; rate entry is optional and numeric-only (supports Hourly or Fixed type).
- Removing a service, role, or event automatically removes dependent pay rate fields and enforces at least one remaining selection before saving.
- Editing existing services, roles, or events updates linked pay rate fields; unchanged combinations retain their previous rate values.
- Pay Rates tab dynamically updates to reflect current selections; each event panel supports a unified rate type (Hourly or Fixed) per event.
- Enabling Backup Shooter excludes the contractor from default assignment and availability lists for that brand; disabling restores visibility in both lists.
- On Save, all modifications (services, roles, events, rates) are saved atomically; success toast displayed; failures trigger inline error messages.
- If changes are made, a confirmation pop-up lists added/removed services, roles, and events, and clarifies that updates apply only to future projects.
- Changes persist in draft while navigating tabs and are cleared if the modal closes without saving.
- After save, the contractor becomes eligible only for the updated brand/services/roles combination and appears in Check Availability when matching criteria are met.
11. Dependencies
Module/System
Dependency Type
Impact if Unavailable
Contractor Management
Data dependency
Cannot access contractor profiles and existing assignments
Brand Management
Data dependency
Cannot retrieve brand-specific service configurations and events
Brand Event Configuration
Data dependency
Cannot populate brand-specific events for assignment
Payment Processing
Integration
Cannot validate pay rate formats and currency handling
User Authentication
Security dependency
Cannot verify admin permissions for editing assignments
Audit Logging
Compliance dependency
Cannot track changes to contractor assignments
12. References
- Figma Link: Click Here
✅ Assign New Brand
Assign New Brand to Contractor
1. Module Overview
- Module Name: Assign New Brand to Contractor
- Purpose: Enable Agency users to assign additional brands to existing contractors, including configuration of service areas, roles & services, and pay rates for each assigned brand
- Business Goal: Streamline the process of expanding contractors' presence across multiple agency brands while maintaining proper role-based access and rate management
2. User Roles & Permissions
- Refer - Click Here
3. User Flow
3.1 Critical Path: Single Brand Assignment
3.2 Alternative Path: Multiple Brand Assignment
- Steps ( 1 - 4) will be the same as the single brand assignment flow given in Section 3.1
- The user selects multiple brands and their respective services.
- Sequential brand configuration - Complete all steps of configuration for each selected brand in sequence
- User completes the assignment after the last brand configuration is completed
4. Functional Logic
4.1 Brand Availability Logic:
The user can assign only the current agency’s brands to the contractor.
If all available brands of the agency have already been assigned, clicking “Assign New Brand” will display a “No Brands Available” pop-up message, indicating that all agency brands are already assigned to the contractor
- If there are unassigned brands available, when the user clicks “Assign New Brand” in the User Profile > Kebab Menu > Assign New Brand option, the system fetches all agency brands and compares them with the contractor’s currently assigned brands, and only the unassigned brands are displayed in the Assign New Brand dropdown.
4.2 Service Dynamic Display Logic:
- When brand(s) are selected, the system fetches each brand's services (Photography, Videography, Content Creation)
- Display services as selectable for each chosen brand in the Assign New Brand pop-up
- The user can assign single or multiple services per selected brands. At least one service is required for each brand.
4.3 Single & Multi-Brand Setup Flow Logic:
- After selecting the brand and services, and clicking on the proceed to setup, all the steps will be the same as the setup contractor flow. Refer - Click Here
- Sequential processing: Complete all 3 sub-steps for Brand 1 before proceeding to Brand 2
- Navigation between brands is allowed through the back and next buttons
- All the steps will follow the same setup contractor flow for each sub-step: Step 1/3 (Service Area), Step 2/3 (Roles & Services), Step 3/3 (Pay Rates). Refer - Click Here
5. Field Details & Validations
5.1 Brand Selection Popup (Initial Step)
Field Name
Type
Required
Validation Rules
Assigned Brands
Display Tags
N/A
Read-only display of currently selected brands with remove icons
Assign New Brand
Multi-Select Dropdown
Yes
Must contain the agency's unassigned brands only, at least 1 brand required
Service Selection Cards
Multi-Checkbox Cards
Yes
Dynamically populated based on the selected brand's available services, at least 1 service per brand required
Cancel Button
Button
N/A
Closes pop-up without saving
Proceed to the Setup Button
Button
N/A
Validates selections and proceeds to Step 1/3 (Service Area)
5.2 Step 1/3: Service Area Configuration
Field Name
Type
Required
Validation Rules
Add Service Area
Multi-Select Dropdown
Yes
At least one required
Multiple selections allowed
No limit
Back Button
Button
N/A
Returns to brand selection pop-up, preserves data
Next Button
Button
N/A
Validates and proceeds to Step 2/3 (Roles & Services)
5.3 Step 2/3: Roles & Services Configuration
- Refer - Click Here
5.4 Step 3/3: Pay Rates Configuration
- Refer - Click Here
6. Success Message Handling
Validation Scenario
Success Message
Brand assignment completed successfully
"Brand(s) have been successfully assigned to the contractor."
Contractor profile updated
The contractor profile displays newly assigned brands immediately
Redirect completion
User redirected to contractor profile after successful assignment
7. Error Message Handling
Field
Validation Scenario
Error Message
Assign New Brand
No brand selected
"Please select at least one brand to proceed."
Refer - For sub steps error message - Click Here
8. Edge Cases
Scenario
Expected Behavior
All agency brands are already assigned
Display "No Brands Available" pop-up with message: "All available brands have already been assigned to this contractor."
Network interruption during setup
Process restart required, all entered data lost, popup closes
User removes the selected brand during configuration
Navigate back to the initial selection step, remove the brand from the assigned list, and allow re-selection
Browser back/forward navigation
Process restart required, all data lost
Concurrent admin access
Last save wins, no conflict resolution
9. Test Cases
- Link:
10. Acceptance Criteria
Brand Assignment Initiation:
- An agency user can access "Assign New Brand" from the contractor profile kebab menu
- The system correctly identifies and displays only unassigned agency brands
- "No Brands Available" pop-up displays when all brands are assigned
Brand and Service Selection:
- Multi-select dropdown displays unassigned brands correctly
- Service cards display dynamically based on the selected brand's available services
- Validation enforces a minimum of one brand and one service per brand selection
Three-Step Configuration Process:
- Step 1/3 allows service area selection with brand-specific options
- Step 2/3 enables role selection per service and event configuration
- Step 3/3 provides pay rate configuration for all role/service/event combinations
Data Validation and Error Handling:
- All mandatory field validations function correctly
- Rate input validation prevents invalid entries
- Appropriate error messages display for all validation scenarios
Assignment Completion:
- A successful assignment updates the contractor profile immediately
- Toast notification confirms successful brand assignment to the contractor
- User redirected to the contractor profile after completion
11. Dependencies
Module/System
Dependency Type
Impact if Unavailable
Brand Management
Data dependency
Cannot retrieve the agency brand list and configurations
Contractor Management
Data dependency
Cannot access the contractor profile and assignment status
Service Configuration
Data dependency
Cannot populate service areas, events, and role options
Authentication System
Access dependency
Cannot verify agency admin permissions
Profile Display
UI dependency
Cannot show updated brand assignments
12. References
- Figma link: Click Here
✅ Delete Contractor
Functional Requirements Document (FRD) – Delete Contractor Module
Document Info
Details
Module Name
Delete Contractor
Version
1.2
Last Updated
April 17, 2026 – 11:15 AM IST
Change Summary
Added delete confirmation pop-up for contractors with no active assignments
1. Module Overview
-
Module Name: Delete Contractor
-
Purpose: Enable Agency owner and admins to remove contractors from their agency across all brands while validating business rules for active assignments, preserving historical data where appropriate, and maintaining system integrity across all related modules
-
Business Goal: Allow agencies to remove contractors when they are no longer needed, while protecting business continuity by preventing deletion of contractors with active assignments (ongoing or future projects), warning about incomplete deliverables or payments, and maintaining historical project records for completed work
2. User Roles & Permissions
- Refer - Click Here
3. User Flow
(Refer to Figma design for visual flow)
4. Functional Logic
4.1 Pre-Deletion Validation Logic
The system performs validation checks when the user tries to delete any contractor in the following order:
4.1.1 Active Assignments Check (Blocking Validation)
Step 1: The system validates all assigned brands under the agency for the contractor
Step 2: Check all project events across all brands where the contractor is assigned
Step 3: Identify if contractor has any active assignments:
- Active Assignment: Contractor is assigned to an event that is currently in progress OR scheduled for a future date (including the next day)
Step 4: Validation:
- If any brand has an active assignment, the system will prevent deletion and display an error pop-up message. Refer - Click Here
- If no active assignments exist, proceed to the next validation step (Deliverables & Payment Check warning). Refer - Click Here
Step 5: Delete Confirmation:
- If no active assignments exist AND no pending deliverables/outstanding payments exist, the system displays a delete confirmation pop-up before proceeding with deletion. Refer - Click Here
4.1.2 Deliverables & Payment Check (Warning Validation)
Step 1: System checks all completed projects (event date passed) across all brands
Step 2: Check for:
- Pending deliverables (contractor has not submitted deliverables)
- Outstanding payments (the agency has not completed payment to the contractor)
Step 3: Validation:
- If pending deliverables OR outstanding payments exist → Display warning pop-up
- The user can still proceed with the deletion
Scenario 1: Pending Deliverables By The Contractor. Refer - Click Here
- When a user attempts to delete a contractor who has pending deliverables for any assigned events. If pending deliverables exist, a warning pop-up is displayed before proceeding with deletion.
- However, the user can still choose to delete the contractor after acknowledging the warning.
Scenario 2: Outstanding Payments For Contractors. Refer - Click Here
- When a user attempts to delete a contractor who has outstanding payments pending from the agency for any assigned events.
- If outstanding payments exist, a warning pop-up is displayed before proceeding with deletion.
- However, the user can still choose to delete the contractor after acknowledging the warning, understanding that deletion will prevent any further payment processing to the deleted contractor for the assigned events.
Scenario 3: Both Pending Deliverables and Outstanding Payments. Refer - Click Here
- When a user attempts to delete a contractor who has both pending deliverables and outstanding payments from the agency for assigned events, the system performs a check for both conditions.
- If both pending deliverables or outstanding payments are found, a combined warning pop-up is displayed before proceeding with deletion.
- However, the user can still choose to delete the contractor after acknowledging the warning, understanding that deletion will prevent deliverable submissions and payment processing for the listed items.
4.2 Soft Delete Implementation
If the contractor does not have any active assignments, the user can delete the contractor. Upon successful contractor deletion:
4.2.1 Data Retention
- Retain all contractor data (name, email, password, contact details)
- Preserve all historical project associations across all brands
- Maintain all financial records and transaction history of the contractors
- Keep all historical deliverables in the raw media tab and documents in the Files/Document tab of the event
4.3 System-Wide Impact After Deletion for the Agency
When an Agency user initiates contractor deletion:
- The deletion applies to ALL assigned brands under the agency simultaneously
- The contractor relationship with the entire agency is terminated, not just individual brands
4.3.1 Project Module Impact
Project Details - Contractors Tab:
- Deleted contractors remain visible in the Contractors tab for events (past projects) where they were previously assigned
- Contractor name and details displayed as a historical record
- Clicking on the deleted contractor's profile card displays: "This contractor no longer exists and cannot be accessed."
- No edit or interaction options available for the deleted contractor
Event Details - Services/Contractors Section:
- Deleted contractor shown in the assigned contractor list (historical view)
- Cannot reassign or modify the deleted contractor's event assignment and pay rates
- The contractor card shows a profile unavailable state when clicked
User List in Events Details:
- Deleted contractors appear in user lists for events where they were assigned
- Shown for reference only
Email Module:
- Existing Email Threads: Contractor remains visible in existing conversation threads; contractor can receive emails if agency users reply within existing threads; contractor can read and reply to existing thread emails
- New Email Creation: Contractor does NOT appear in the recipient list (+ button) when composing new emails; cannot initiate new email conversations with deleted contractor; search for contractor email in compose view returns no results
Rate Contractor:
- The agency should not be able to give a rating to the contractor after it has been deleted.
4.3.2 Contractor Listing Module Impact
- Contractor will be removed from the relevant tab (Active, Setup required or Pending Invitation) immediately after deletion
- Search results exclude the deleted contractor
- Filter results to exclude deleted contractors
4.3.3 Check Availability Module Impact
- Deleted contractor does NOT appear in availability search results
4.3.4 Task Module Impact
- The deleted contractor was removed from the Assignee dropdown list during task creation
- Cannot assign new tasks to the deleted contractor
- Existing tasks where the contractor was the assignee remain visible with the contractor's name (historical record)
4.3.5 Assignment Flow Impact
- The agency user will not be able to assign the deleted contractor to any new events, as the contractor will be removed from the suggested contractor lists across all brand events in which they were previously assigned
4.3.6 Financial Module Impact
- All financial records will remain in the finances module of the agency and the finances tab of the project details
- Payment processing is BLOCKED for deleted contractors
- Outstanding payments cannot be completed after deletion
- Financial reports show historical transactions with a deleted contractor
- Invoice history preserved but marked as archived
4.3.7 Global Search Module Impact
- The deleted contractor will not be displayed when the agency user searches for the contractor from the global search module
4.4 Contractor Portal Impact
- If the contractor was in Active or Set Required status and had completed the onboarding process, and the agency deletes the contractor, refer to Click Here
- If the contractor was in the Pending Invitation tab and the agency deleted the contractor, the contractor will not be able to access the contractor portal, as they have not completed the onboarding process.
- The invite link will no longer be active if it has not expired (less than 48 hours)
4.4.1 Single-Agency Contractor Scenario
When a contractor works with only one agency that has deleted them:
Login Access:
- Contractor retains login access with existing credentials
- Can access the contractor portal with username/password
Portal Functionality:
- The contractor can be able to see all the past events where they were assigned, but the entire portal (all modules) becomes read-only for the agency that deleted the contractor, except for the account settings and profile section, which is global for the contractor.
Deleted Agency Workspace:
- Workspace becomes READ-ONLY
- Can view historical project data for this agency
- Can view past deliverables and payment records
- Cannot perform any actions within this workspace
- Cannot submit deliverables or upload invoices
- Cannot access new assignments from this agency
- Cannot create notes (public or private)
- Contractor can modify account settings (profile details, password, contact info)
- Cannot update the travel distance setting for the deleted agency
- If a user attempts to modify the distance under "Travel with fees" or "Travel without fees" for a deleted agency, the system shall display the following error message: "You are no longer associated with this agency."
- Changes are SAVED in the contractor's profile
- Changes are NOT synced to the agency's system, which has deleted the contractor
- The agency continues to see old information
4.4.2 Multi-Agency Contractor Scenario
When a contractor works with multiple agencies and ONE agency deletes them:
Login Access:
- Contractor maintains a single login with existing credentials
- Full access to the contractor portal
Agency Workspace Switcher:
- Workspace switcher continues to function normally
- All agency workspaces remain listed
Deleted Agency Workspace:
- Refer - Click Here
Account Settings:
- Contractor can modify account settings
- Changes are SAVED in the contractor's central profile
- Changes are NOT synced to the deleted agency's system
- Changes ARE synced to all active agency relationships
- Deleted agency sees old contractor information only
Active Agency Workspaces:
- Full read-write access is maintained for the agencies where the contractor is active
- Analyse the dashboard and task module
- Can perform all actions normally (upload, edit, submit)
- Can receive new event assignments
- Can submit deliverables and invoices
- Can update availability and preferences
Payment:
- Payments related to agencies where the contractor is active will continue to work — the contractor can raise invoices and receive payments
- The deleted agency cannot process new payments, and the contractor also cannot raise an invoice
4.4.3 Notes & Documents Visibility Logic During Deletion Period
When a contractor is deleted by an agency, any new notes or documents added by that agency to projects where the contractor was previously assigned will NOT be visible in the contractor's portal.
- If the agency adds a new public note (for the contractor) or uploads new documents/files to any project event where the deleted contractor was assigned:
- These notes & documents will NOT appear in the contractor's portal view for that agency's workspace
- The contractor can only view notes & documents that existed BEFORE their deletion timestamp
Multi-Agency Impact:
- This visibility restriction applies ONLY to the agency that deleted the contractor
- If the contractor works with multiple agencies, other active agency workspaces remain unaffected
- Notes and documents in active agency workspaces function normally with full read-write access
Timestamp-Based Filtering:
- The system records the exact deletion timestamp when the contractor is removed
- All content (notes, documents) added AFTER this timestamp is filtered out from the contractor's portal view for that specific agency's workspace only
4.5 Re-invitation Process
4.5.1 System Recognition
- System recognizes contractor email as a previously soft-deleted user
- No duplicate accounts created for the same email address
- System retrieves contractor profile data
4.5.2 Re-invitation Flow
- Agency Admin can re-invite a deleted contractor through the standard invitation process
- Contractor receives invitation email
4.5.3 Agency-Side Setup Requirements
- Agency must reconfigure ALL settings from scratch:
- Brand assignments
- Service areas for each brand
- Roles (Lead Shooter, Second Shooter, etc.)
- Services (Photography, Videography, Content Creation)
- Pay rates for each event type, service, and role
- The previous configuration is NOT automatically restored
4.5.4 Contractor-Side Onboarding
- If contractor previously completed onboarding: Basic profile information retained (no need to re-enter); must accept new invitation and complete the onboarding process
4.5.5 Post-Reinvitation Status
- If the contractor is deleted from the Pending Invitation tab, they will have to complete all the onboarding steps from the beginning.
- If the contractor has onboarded with the different agency, they will need to follow the same steps mentioned below.
- If the contractor is deleted from the Active or Setup Required tab, they will need to complete the onboarding process only for the new services assigned in the invitation by the agency. If the invitation includes previously assigned services, the contractor will not need to re-enter the existing information, and the contractor can directly access the contractor portal using the invitation link
- The contractor appears on the contractor listing based on the setup and pending status. Refer - Click Here
- Rate Contractor: The agency should be able to give a rating to the contractor after re-invitation.
4.5.6 Notes & Documents Visibility Restoration
- When a previously deleted contractor is re-invited and completes the onboarding process, all notes and documents that were added during the deletion period become visible in the contractor's portal.
5. Success Message Handling
Validation Scenario
Success Message
Contractor deleted successfully
"Contractor [Name] has been deleted successfully."
6. Error Message Handling
Field/Action
Validation Scenario
Error Message
Delete Action
Contractor has active assignments (ongoing or future events)
Pop-up - "Cannot Delete Contractor - [Contractor Name] has active assignments for the following event(s): [Grouped by Brand → Project Name → Event Name]. Please remove them from all assigned events to proceed."
Delete Action
Contractor has no active assignments and no pending deliverables/payments
Confirmation Pop-up - "Delete Contractor - Are you sure you want to delete [Contractor Name]? This action cannot be undone."
Email Composition
Attempting to add the deleted contractor to the new email
Contractor does not appear in the recipient search results
General
System error during deletion
"Something went wrong."
Error Pop-up Display Format for Active Assignments
When displaying the "Cannot Delete Contractor" error, events are grouped and displayed in the following format:
Display Rules:
- Events are grouped by Brand Name (brand name shown once per group)
- Under each brand, show Project Name as a header
- Event Name displayed below the Project Name
- No date display required
- No status tags (ongoing/future) displayed
Example Format:
Cannot Delete Contractor
[Contractor Name] has active assignments for the following event(s):
[Brand Name]
📁 [Project Name]
• [Event Name]
📁 [Project Name]
• [Event Name]
[Brand Name 2]
📁 [Project Name]
• [Event Name]
⚠️ Please remove them from all assigned events to proceed.
[Close Button]
Sample with Data:
Cannot Delete Contractor
Nick Robinson has active assignments for the following event(s):
Vivid Vision Studio
📁 Jadon & Monika Wedding
• Rehearsal Dinner
📁 Smith Anniversary
• Reception Coverage
Starter Starter
📁 Johnson Birthday
• Main Event
⚠️ Please remove them from all assigned events to proceed.
[Close]
Delete Confirmation Pop-up
When a contractor has NO active assignments AND NO pending deliverables/outstanding payments, the system displays a confirmation pop-up before deletion.
Element
Content
Title
Delete Contractor
Message
Are you sure you want to delete [Contractor Name]? This action cannot be undone.
Buttons
Cancel · Delete
Example:
Delete Contractor
Are you sure you want to delete Nick Robinson? This action cannot be undone.
[Cancel] [Delete]
7. Edge Cases
Scenario
Expected Behavior
Contractor deleted while logged into an active session
Session continues, but all actions become read-only immediately for that agency workspace
Contractor has mixed project statuses (past and active) across brands
Block deletion if ANY active assignment exists across ANY brand
The agency attempts to process payment to the deleted contractor
Payment processing blocked, error message displayed, alternative payment method suggested
Contractor switches between agency workspaces after deletion
Deleted agency shows read-only mode, active agencies show normal functionality
The agency attempts to assign the deleted contractor to a new project
Contractor does not appear in the suggested list, manual search returns no results
Agency searches for deleted contractor in Check Availability
Contractor does not appear in search results across any brands
Task assignment to the deleted contractor
Contractor not visible in assignee dropdown, cannot create new task assignments
Agency replies to email thread with deleted contractor
Contractor receives an email in the existing thread, can read and reply
8. Test Cases
- Link: (To be added)
9. Acceptance Criteria
- System validates deletion sequentially — blocking deletion if contractor has any active assignments (events currently in progress or scheduled for a future date).
- If only completed events exist, the system checks for pending deliverables or unpaid payments and shows a warning pop-up before allowing deletion.
- The user can proceed with deletion after acknowledging warnings for pending deliverables or payments.
- Deleted contractors undergo soft deletion — retaining personal info, historical projects, deliverables, and financial records in a read-only state.
- Deletion applies across all brands under the agency; the contractor is removed from all active, setup-required, and pending tabs.
- Deleted contractors are excluded from search results, filters, assignment lists, and Check Availability.
- In projects, deleted contractors remain visible for past events but cannot be edited, reassigned, or accessed.
- Email threads remain readable; the contractor can reply in existing threads, but cannot be added to new emails.
- Deleted contractors are removed from task assignee lists, though old tasks remain visible as history.
- Financial data is preserved, but payment processing and new invoices for deleted contractors are blocked.
- Global search excludes deleted contractors across all modules.
- Contractor retains login access post-deletion; the deleted agency workspace becomes read-only.
- Multi-agency contractors retain full access for active agencies; deleted agency data remains view-only.
- Reinvited contractors are recognized by email, preventing duplicates; the agency user must reconfigure all brand and service details.
- Previously onboarded contractors retain base profile info but must accept the new invite and complete onboarding for new services.
- Reinvited contractors appear in the Pending Invitation or Active tab based on onboarding progress.
10. Dependencies
Module/System
Dependency Type
Impact if Unavailable
Project Management
Data dependency
Cannot validate active assignments, cannot preserve project history, and deletion validation fails
Authentication System
Service dependency
Cannot verify user permissions, cannot maintain contractor login access
Contractor Portal
Integration dependency
Cannot provide a read-only experience, cannot maintain workspace switching for multi-agency contractors
Document Management
Service dependency
Cannot preserve deliverables, cannot maintain historical documents
Notification System
Service dependency
Cannot send re-invitation emails, cannot notify contractor of status changes
Financial System
Integration dependency
Cannot validate outstanding payments, cannot block payment processing, cannot maintain financial records
Multi-Agency Workspace
Service dependency
Cannot maintain other agency relationships, cannot manage workspace switcher
Payment System
Integration dependency
Cannot preserve payment details, cannot block payment processing for deleted contractors
Audit Logging
Data dependency
Cannot track deletion actions, cannot maintain compliance records
Email System
Integration dependency
Cannot maintain existing email threads, cannot restrict new email composition
Task Management
Service dependency
Cannot remove contractor from assignee lists, cannot preserve task history
Check Availability Module
Integration dependency
Cannot remove the contractor from the availability searches
Contractor Listing Module
Integration dependency
Cannot remove the contractor from all tabs and views
Brand Management
Data dependency
Cannot validate assignments across multiple brands, cannot enforce deletion across all brands
11. References
- Figma Link: Click Here
12. Change Log
Version
Date
Time
Changed By
Changes Made
1.0
-
-
-
Initial document creation
1.1
April 16, 2026
10:45 AM IST
-
Consolidated ongoing/future project error messages into single "active assignments" message; Updated error pop-up display format with grouped Brand → Project → Event hierarchy; Removed date display and status tags from error pop-up; Updated Section 4.1.1, Section 6, Section 7, and Section 9
1.2
April 17, 2026
11:15 AM IST
-
Added delete confirmation pop-up for contractors with no active assignments and no pending deliverables/payments; Added Step 5 in Section 4.1.1
✅ Additional info
4.1 Pre-Deletion Validation Logic
- The system performs validation checks when the user tries to delete any contractor in the following order:
4.1.1 Active Projects’ Event Assignment Check (Blocking Validation)
Step 1: The System validates all assigned brands under the agency for contractor assignments
Step 2: Check all project events across all brands where the contractor is assigned
Step 3: Identify project event status:
- Ongoing Project Event: Contractor is assigned to an event currently in the active stage
- Future Project Event: Contractor is assigned to an event scheduled for a future date
Step 4: Validation:
- If any brand has an ongoing or upcoming project/event, the system will prevent deletion and display an error pop-up message. Refer - Click Here
- If no ongoing or upcoming project/event exists, proceed to the next validation step (Deliverables & Payment Check warning). Refer - Click Here
4.1.2 Deliverables & Payment Check (Warning Validation)
Step 1: System checks all completed projects (event date passed) across all brands
Step 2: Check for:
- Pending deliverables (contractor has not submitted deliverables)
- Outstanding payments (the agency has not completed payment to the contractor)
Step 3: Validation:
- If pending deliverables OR outstanding payments exist → Display warning pop-up
- The user can still proceed with the deletion
Warning Pop-up Content:
Scenario 1: Pending Deliverables By The Contractor
- Header: "Warning: Pending Deliverables"
- Message: "[Contractor Name] has not submitted deliverables for the following project(s):"
- List format: "[Brand Name] - [Project Name] - [Event Name] - Deliverable Status: Pending"
- On clicking the event name, it will redirect the user to that particular event
- Sub Message: "Deleting this contractor will prevent them from submitting deliverables. Do you want to proceed?"
Scenario 2: Outstanding Payments For Contractors
- Header: "Warning: Outstanding Payments"
- Message: "You have outstanding payments for [Contractor Name] in the following project(s):"
- List format: "[Brand Name] - [Project Name] - [Event Name] - Payment Status: Pending"
- On clicking the event name, it will redirect the user to that particular event
- Sub message: "After deletion, you will not be able to process these payments. Do you want to proceed?"
Scenario 3: Both Pending Deliverables and Outstanding Payments
- Header: "Warning: Pending Items"
- Message: "[Contractor Name] has pending deliverables and outstanding payments:"
- Section 1: "Pending Deliverables:" (list all events)
- Section 2: "Outstanding Payments:" (list all events)
- On clicking the event name, it will redirect the user to that particular event
- Sub message: "Deleting this contractor will prevent deliverable submissions and payment processing. Do you want to proceed?"
✅ Rate Contractor
Rate Contractor Module
1. Module Overview
- Module Name: Rate Contractor
- Purpose: Allow agency users to provide post-event performance ratings and reviews for contractors
- Business Goal: Track contractor performance, average ratings for future project assignments decisions
2. User Roles & Permissions
- Refer - Click Here
3. User Flow
3.1 Main Rating Flow:
3.2 View Rating Flow:
3.3 View All Ratings Flow:
4. Functional Logic
4.1 Rating Availability & Visibility
- The “Rate Contractor” button for a contractor becomes visible only after the event completion date.
- If the event is upcoming or ongoing, the button will not be visible.
- The agency user can rate contractors individually for all events of the same project to which they are assigned after the event date has passed
4.2 Logic for Add, Edit, and View Review from the project
4.2.1 Add Rating Logic
- The “Rate Contractor” button appears for each contractor under the Contractors tab of a completed event.
- Clicking the button opens the Rate Contractor Pop-Up with empty fields for Star Rating and Review Text.
- Input Fields:
- Star Rating (1–5): Users can select the stars by clicking on them from 1 to 5.
- Review Text: A mandatory field with no character limit.
- Submission Behavior:
- On successful validation:
- The rating and review are saved for the selected contractor and event.
- A success toast message is displayed, and the pop-up closes automatically.
- On successful validation:
- Post-Submission State:
- The “Rate Contractor” button label changes to “View Rating”.
- The submitted rating and review become viewable and editable (depending on user permissions).
4.2.2 Edit Rating Logic
- Clicking the “View Rating” button opens the Your Review pop-up.
- Only the original rater, agency owner, or agency admin can access the Edit Review option.
- Other users will not be able to edit the rating.
- On clicking Edit Review, the Rate Contractor pop-up opens prefilled with:
- The previously selected star rating, and
- The previously submitted review text.
- The user can modify both the star rating and review text.
- On clicking Save, the existing record is updated. And a success toast appears, and the pop-up closes automatically.
4.2.3 View Rating Logic
- When the “View Rating” button is clicked in the contractor card from the Event > Contractors tab
- The Your Review pop-up appears, showing:
- Reviewer Info: Name, avatar (or initials), and review submitted date.
- Star Rating: Display (1–5) based on the provided rating
- Event Details: Project name, event name, contractor role, and role icon.
- Review Text: If the review text exceeds the visible width, truncate the content and display a “Show More” / “Show Less” toggle to expand or collapse the full text.
- The Edit Review button appears only for:
- The original rater, agency admin, or agency owner.
4.3 Rating Calculation
- For contractors with a single rating, display the exact rating value.
- For multiple ratings:
- Average rating formula: Average Rating = (Sum of all ratings given by the current agency ÷ Total number of ratings given by the current agency)
4.4 Added Review Impact:
- Contractor Profile:
- The total number of reviews will be increased.
- The average star rating will be reflected based on the new review.
- Display the average rating both numerically (e.g., 4.5) and visually (stars). Alongside the rating, display the total review count (e.g., “10 Reviews”).
- The star rating and review provided for the event will be displayed in the “View All Ratings” tab.
- Contractor side restrictions:
- Contractors cannot view their own ratings or those of other contractors.
- Ratings are only visible to all users within the agency portal.
4.5 View All Rating Display
- The user can view all the ratings and reviews provided to the contractor from the contractor profile > click on the number of reviews
- Refer - Click Here
4.6 Rating Display Logic
- The contractor’s rating will be displayed in the following modules of the Pixally CRM:
- Contractor Management Listing (Active Tab)
- Contractor Profile
- Projects > Events > Contractors Tab
- Projects > Events > Services
- Suggested Contractor & Explore Travel Fee Pop-Up
- Check Availability
- Global Search > Contractor listing
5. Field Details & Validations
5.1 Rate Contractor Pop-up Fields:
Field Name
Type
Validation Rules
Contractor Avatar + Name
Text
- Display circular avatar fetched from the contractor's portal
- When no profile exists, use the initials of the full name (e.g., John Doe → JD)
- Display the First + Last name of the contractor
Contractor Email
- Display the contractor’s email address
Star Rating
Star Input (1-5)
- Display 5 stars.
- Users can select only whole numbers: 1, 2, 3, 4, or 5 stars.
Review Text
Text area
- Mandatory field
- No character limit
Cancel
Button
Close the pop-up without giving any ratings
Rate Contractor
Button
- The "Rate Contractor" button will remain enabled. On click, if validations fail, it will display the relevant error messages
- If validation passes, rate the contractor and show a success toast
5.2 Your Review Pop-Up Fields:
Field Name
Type
Validation Rules
User Name + Avatar
Text
Display the first + last name and avatar of the agency user who submitted the rating for the particular event
Date of Rating
Date
Display the date on which the review is submitted/last updated by the agency user/admin
Star Rating
Star Display
1-5 stars dynamically display based on ratings given for the event
Project & Event Name
Text
Display the Project & Event name with the color badge for which the rating was given
Role
Text + role icon
Display the Role of the Contractor in the event
Review Text
Text
- Display submitted review text
- Display Show More if review text exceeds the length and Show Less
Edit Review
Button
- On click, opens the 'Rate Contractor' pop-up pre-filled with the previously submitted star rating and review text.
- This option is only visible to the agency admin and the agency user who originally submitted the rating.
5.3 View All Rating Fields:
Field Name
Type
Validation Rules
Contractor Avatar + Name + Specialization
Image + Text
- Display circular avatar fetched from the contractor's portal
- When no profile exists, use the initials of the full name (e.g., John Doe → JD)
- Display the First + Last name of the contractor
- Shows service specialization assigned to the (Photographer, Videographer, or Content Creator)
Average Rating
Number + Stars
- Range 1.0–5.0
- Display the average contractor rating calculated for the current agency.
- Formula: (Sum of all ratings given by the current agency ÷ Total number of ratings given by the current agency)
- Numeric display with visual stars
Review Count
Number + Text
- Display as a {number} + "Reviews" (e.g., "10 Reviews")
- Display the total number of reviews submitted for the contractor by the current agency.
Review Filters
Dropdown
- Options: Newest, Oldest, Highest Rating, Lowest Rating
- Filter the listing based on the selected filter
- The filter dropdown will only appear if more than one review exists.
Project & Event Name
Text
Display the project & event name for which the rating is given to the contractor
Contractor Role
Text + role icon
Display the contractor's role (with the icon) in the event associated with each rating. (e.g. Lead Shooter)
Reviewer Info
User Block
- Display the agency user’s avatar for each review provided. If no profile image exists, display the user’s initials from their full name (e.g., John Doe → JD).
- Display the agency user's full name (e.g., "John Doe"),
- Display the star rating given by that particular user,
- Display the date on which the review is submitted/last updated
Review Content
Text
- Display the review text submitted by the agency user for the particular event
- Display “Show More” if the review text exceeds the visible length, and “Show Less” to collapse it.
Cancel
Button
On click closes the pop-up
Note: The pop-up will be scrollable to accommodate a large number of reviews, ensuring users can easily browse all available reviews
6. Success Message Handling
Validation Scenario
Success Message
Rating submitted successfully
“Your rating has been submitted successfully.”
Rating updated successfully
“Your rating has been updated successfully.”
7. Error Message Handling
Field
Validation Scenario
Error Message
Star Rating
Empty
"Please select a rating."
Review Text
Empty
"Please enter your review."
General
Server/network error
"Something went wrong."
8. Edge Cases
Scenario
Expected Behavior
User attempts to rate the same contractor multiple times for the same event
The system allows editing existing ratings instead of creating duplicates
Contractor profile deleted after receiving ratings
Soft delete maintains rating data
No ratings exist for contractors in "View Profile"
Display "No Ratings" text in the profile header
Review text exactly 150 characters
Display full review text without showing the 'Show More' link.
The review text is 151+ characters
Display the first 150 characters with a 'Show More' link to expand the full review.
The user clicks "Show More" on the expanded text
Once expanded, show full text and change the link label to 'Show Less'.
Only one review exists for the contractor
Hide the review filter dropdown completely
A user session expires during rating edit
Require re-authentication, preserve draft data
The contractor has no avatar image
Display initials in circular placeholder
Invalid contractor role data
Display "Role not specified" with the default icon
Network failure during rating submission
Show error message, allow retry
9. Test Cases
- Link: Pixally Test cases
10. Acceptance Criteria
- The “Rate Contractor” button becomes visible only after the event completion date; it remains hidden for ongoing or upcoming events.
- Agency users can rate contractors individually per event within a project once the event has ended.
- Clicking “Rate Contractor” opens the rating pop-up with empty star (1–5) and review text fields; review text is mandatory.
- On successful submission, rating and review are saved, a success toast is shown, and the button label changes to “View Rating.”
- “View Rating” opens the review pop-up showing reviewer info, star rating, event details, and truncated review text with “Show More/Less.”
- Only the original rater, agency owner, or admin can edit reviews; clicking “Edit Review” preloads existing data for modification.
- Edited ratings update immediately, displaying a success toast and closing the pop-up automatically.
- Contractors’ overall rating is calculated as the average of all ratings given by the agency: (Sum of all ratings ÷ Total number of ratings).
- New reviews update the contractor’s profile — increasing total review count and recalculating average rating (e.g., “4.5 ★ · 10 Reviews”).
- Ratings and reviews appear in the “View All Ratings” section of the contractor profile.
- Contractors cannot view ratings or reviews; visibility is limited to users within the agency portal.
- Contractor rating is displayed across all relevant modules — Contractor Listing, Contractor Profile, Project > Events > Contractors tab, Project > Events > Services, Suggested Contractors pop-up, Check Availability, and Global Search.
11. Dependencies
Module/System
Dependency Type
Impact if Unavailable
Event Module
Data dependency
Cannot determine event completion status for button visibility
Contractor Module
Data dependency
Cannot display contractor profile information
User Profile Module
Data dependency
Cannot identify the rater or display the reviewer information
Email Notification System
Service dependency
Rating reminders won't be sent (graceful degradation)
Review Storage System
Data dependency
Cannot save or retrieve rating data
Authentication Module
Security dependency
Cannot verify user permissions for rating access
12. References
- Figma Design Link: Click Here
✅ Unassign Brand
Unassign Brand from Contractor
1. Module Overview
- Module Name: Unassign Brand from Contractor
- Purpose: Allows the agency user to remove a specific brand association with a contractor's profile while preserving historical project data and ongoing project assignments for the particular brand
- Business Goal: Provide flexibility in contractor-brand management by enabling selective brand removal without disrupting existing projects or historical records
2. User Roles & Permissions
- Refer - Click Here
3. User Flow
4. Functional Logic
4.1 Brand Removal Access Logic
- Agency admin navigates to contractor profile
- Kebab menu displays list of assigned brands
- Only assigned brands are shown in the removal options
- Each brand can be individually selected for removal
4.2 Confirmation Dialog Logic
- System displays confirmation dialog when "Delete Contractor" is selected
- Dialog dynamically inserts the selected brand name into the confirmation message
- Message clearly states the impact: removal of settings and future project impact only
- Message explicitly confirms existing/ongoing projects remain unaffected
4.3 Brand Removal Processing Logic
- Upon confirmation, system removes brand assignment from contractor profile
- All brand-specific settings are deleted:
- Service area configurations
- Role assignments
- Pay rate configurations
- Backup shooter settings
- Event assignments
- Brand removal only affects future project assignments
- Historical data and completed projects remain intact
- Ongoing/active projects are not impacted
4.4 Profile Update Logic
- Removed brand immediately disappears from contractor's profile brand list
- If only one brand was assigned and it's removed, contractor profile shows no brands
- System updates contractor's available brand list for future assignments
- Profile displays success notification upon completion
4.5 Data Preservation Logic
- Past project data associated with the removed brand is preserved
- Project history remains accessible for reporting and analytics
- Contractor's work history with the brand is maintained
- Only future assignment capability is removed
5. Field Details & Validations
Remove Brand Confirmation Dialog
Field Name
Type
Required
Validation Rules
Dialog Title
Text Label
N/A
Display: "Remove Brand"
Brand Name
Dynamic Text
N/A
Display selected brand name in bold within confirmation message
Confirmation Message
Text Label
N/A
"Are you sure you want to delete "[Brand Name]" brand from contractor's profile? This action will remove all settings associated with this brand and will only impact future projects for that brand. Existing/ongoing projects will not be affected."
Cancel Button
Button
N/A
Closes dialog without any action
Remove Button
Button
N/A
Proceeds with brand removal after validation
6. Error Message Handling
Field
Validation Scenario
Error Message
General
System error during removal
"Something went wrong. Please try again."
General
Network error
"Unable to remove brand. Please check your connection and try again."
Brand Assignment
Brand has active/ongoing projects
"Cannot remove brand. This contractor has ongoing projects assigned." (if applicable based on business rules)
7. Success Messages
Validation Scenario
Success Message
Brand successfully unassigned
"Brand has been successfully removed from the contractor" (Toast notification)
Contractor profile updated
Contractor profile no longer displays the removed brand
Redirect completion
User remains on contractor profile after successful removal
8. Edge Cases
Scenario
Expected Behavior
Last brand removal
Allow removal; contractor profile shows no assigned brands
Contractor has active projects with the brand
Based on business rules - either block removal with appropriate message or allow with warning
Network interruption during removal
Show error message, no changes applied, allow retry
Concurrent admin access
Last action wins; if another admin assigns the same brand simultaneously, show appropriate conflict message
Brand deleted from agency
Brand automatically removed from all contractors; no manual removal needed
9. Acceptance Criteria
- Agency admin can access brand removal option from contractor profile kebab menu
- Only assigned brands are available for removal
- Confirmation dialog displays with correct brand name and impact statement
- Cancel and Remove buttons function correctly
- Brand is successfully removed upon confirmation with all associated settings deleted
- Historical project data remains intact after removal
- Contractor profile immediately reflects brand removal with success notification
- System displays appropriate error messages for failures with retry capability
10. Dependencies
Module/System
Dependency Type
Impact if Unavailable
Brand Management
Data dependency
Cannot verify brand existence and settings
Contractor Management
Data dependency
Cannot access contractor profile and update assignments
Project Management
Data dependency
Cannot verify ongoing projects and preserve historical data
Authentication System
Access dependency
Cannot verify agency admin permissions
Profile Display
UI dependency
Cannot show updated brand list
11. References
- Figma Design Link: Click here
Tab 12
Functional Requirements Document (FRD) - Unassign Brand from Contractor
1. Module Overview
Module Name: Unassign Brand from Contractor
Purpose: Enable Agency Admins to remove brand assignments from contractors when they are no longer working with specific brands
Business Goal: Maintain accurate contractor-brand relationships and ensure proper access control while preserving historical project data
2. User Roles & Permissions
Role
Description
Key Permissions
Agency Admin
System administrator for the agency
Full access to unassign brands from contractors, manage brand settings, and view all contractor profiles
3. User Flow
Critical Path: Unassign Brand
- Navigate to contractor profile - Agency admin accesses the contractor's profile screen
- Access kebab menu - Click the kebab menu (⋮) in the top-right corner of the contractor profile
- Select brand to remove - Click on the specific brand name to reveal options
- Click "Delete Contractor" - Select the delete option from the brand dropdown
- Review confirmation dialog - System displays "Remove Brand" confirmation dialog with brand name and impact details
- Confirm removal - Click "Remove" button to proceed with brand removal
- Process completion - Brand removed from contractor profile, success notification displayed
Alternative Path: Cancel Removal
1-5. Same as critical path
- Cancel action - Click "Cancel" button to abort the removal process
- Return to profile - User remains on contractor profile with no changes made
4. Functional Logic
4.1 Brand Removal Access Logic
- Agency admin navigates to contractor profile
- Kebab menu displays list of assigned brands
- Only assigned brands are shown in the removal options
- Each brand can be individually selected for removal
4.2 Confirmation Dialog Logic
- System displays confirmation dialog when "Delete Contractor" is selected
- Dialog dynamically inserts the selected brand name into the confirmation message
- Message clearly states the impact: removal of settings and future project impact only
- Message explicitly confirms existing/ongoing projects remain unaffected
4.3 Brand Removal Processing Logic
- Upon confirmation, system removes brand assignment from contractor profile
- All brand-specific settings are deleted:
- Service area configurations
- Role assignments
- Pay rate configurations
- Backup shooter settings
- Event assignments
- Brand removal only affects future project assignments
- Historical data and completed projects remain intact
- Ongoing/active projects are not impacted
4.4 Profile Update Logic
- Removed brand immediately disappears from contractor's profile brand list
- If only one brand was assigned and it's removed, contractor profile shows no brands
- System updates contractor's available brand list for future assignments
- Profile displays success notification upon completion
4.5 Data Preservation Logic
- Past project data associated with the removed brand is preserved
- Project history remains accessible for reporting and analytics
- Contractor's work history with the brand is maintained
- Only future assignment capability is removed
5. Field Details & Validations
Remove Brand Confirmation Dialog
Field Name
Type
Required
Validation Rules
Dialog Title
Text Label
N/A
Display: "Remove Brand"
Brand Name
Dynamic Text
N/A
Display selected brand name in bold within confirmation message
Confirmation Message
Text Label
N/A
"Are you sure you want to delete "[Brand Name]" brand from contractor's profile? This action will remove all settings associated with this brand and will only impact future projects for that brand. Existing/ongoing projects will not be affected."
Cancel Button
Button
N/A
Closes dialog without any action
Remove Button
Button
N/A
Proceeds with brand removal after validation
6. Error Message Handling
Field
Validation Scenario
Error Message
General
System error during removal
"Something went wrong. Please try again."
General
Network error
"Unable to remove brand. Please check your connection and try again."
Brand Assignment
Brand has active/ongoing projects
"Cannot remove brand. This contractor has ongoing projects assigned." (if applicable based on business rules)
Success Messages
Validation Scenario
Success Message
Brand successfully unassigned
"Brand has been successfully removed from the contractor" (Toast notification)
Contractor profile updated
Contractor profile no longer displays the removed brand
Redirect completion
User remains on contractor profile after successful removal
7. Edge Cases
Scenario
Expected Behavior
Last brand removal
Allow removal; contractor profile shows no assigned brands
Contractor has active projects with the brand
Based on business rules - either block removal with appropriate message or allow with warning
Network interruption during removal
Show error message, no changes applied, allow retry
Concurrent admin access
Last action wins; if another admin assigns the same brand simultaneously, show appropriate conflict message
Brand deleted from agency
Brand automatically removed from all contractors; no manual removal needed
8. Acceptance Criteria
- Agency admin can access brand removal option from contractor profile kebab menu
- Only assigned brands are available for removal
- Confirmation dialog displays with correct brand name and impact statement
- Cancel and Remove buttons function correctly
- Brand is successfully removed upon confirmation with all associated settings deleted
- Historical project data remains intact after removal
- Contractor profile immediately reflects brand removal with success notification
- System displays appropriate error messages for failures with retry capability
9. Dependencies
Module/System
Dependency Type
Impact if Unavailable
Brand Management
Data dependency
Cannot verify brand existence and settings
Contractor Management
Data dependency
Cannot access contractor profile and update assignments
Project Management
Data dependency
Cannot verify ongoing projects and preserve historical data
Authentication System
Access dependency
Cannot verify agency admin permissions
Profile Display
UI dependency
Cannot show updated brand list
10. References
- Test Cases: [Link to be added]
- Figma Design: [Click Here]
Tab 13
Tab 14
No tickets linked — generate test cases directly from this FRD instead.