← FRD Management
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

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

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

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

✅ 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
  • “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.

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

Email

Email

- 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

✅ 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

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.

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:
  • Gear tab fields include:
  • 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.

Email

Email

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

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

✅ 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

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.

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)

Email

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

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

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

✅ 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

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

✅ 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

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

5.4 Step 3/3: Pay Rates Configuration

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

✅ 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

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:

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

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

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.
  • 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

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

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

✅ 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

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

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

  1. Navigate to contractor profile - Agency admin accesses the contractor's profile screen
  2. Access kebab menu - Click the kebab menu (⋮) in the top-right corner of the contractor profile
  3. Select brand to remove - Click on the specific brand name to reveal options
  4. Click "Delete Contractor" - Select the delete option from the brand dropdown
  5. Review confirmation dialog - System displays "Remove Brand" confirmation dialog with brand name and impact details
  6. Confirm removal - Click "Remove" button to proceed with brand removal
  7. Process completion - Brand removed from contractor profile, success notification displayed

Alternative Path: Cancel Removal

1-5. Same as critical path

  1. Cancel action - Click "Cancel" button to abort the removal process
  2. 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

Linked tickets (0)

No tickets linked — generate test cases directly from this FRD instead.

—