@company-manager/docs

Field Service Domain

UML diagrams for interventions, service contracts, and equipment management

Field Service Domain

The Field Service domain manages service interventions, contracts, equipment tracking, and technician dispatch.

Domain Overview

graph TB
    subgraph "Service Management"
        INTER[Interventions]
        CONTRACT[Service Contracts]
        REQUEST[Service Requests]
    end

    subgraph "Resources"
        TECH[Technicians]
        EQUIP[Equipment]
        PARTS[Spare Parts]
    end

    subgraph "Scheduling"
        DISPATCH[Dispatch]
        CALENDAR[Calendar]
        ROUTE[Route Planning]
    end

    subgraph "Customer"
        ASSET[Customer Assets]
        HISTORY[Service History]
        WARRANTY[Warranty]
    end

    REQUEST --> INTER
    CONTRACT --> INTER
    INTER --> TECH
    INTER --> EQUIP
    INTER --> PARTS

    DISPATCH --> TECH
    DISPATCH --> CALENDAR
    DISPATCH --> ROUTE

    ASSET --> HISTORY
    ASSET --> WARRANTY
    CONTRACT --> ASSET

    style INTER fill:#e1f5fe
    style DISPATCH fill:#fff3e0

Entity Relationship Diagram

erDiagram
    TENANT ||--o{ SERVICE_CONTRACT : has
    TENANT ||--o{ FIELD_SERVICE_INTERVENTION : has
    CLIENT ||--o{ CUSTOMER_ASSET : owns

    SERVICE_CONTRACT ||--o{ FIELD_SERVICE_INTERVENTION : triggers
    SERVICE_CONTRACT }o--|| CLIENT : with
    SERVICE_CONTRACT ||--o{ CUSTOMER_ASSET : covers

    FIELD_SERVICE_INTERVENTION }o--|| CUSTOMER_ASSET : services
    FIELD_SERVICE_INTERVENTION }o--o| USER : assigned_to
    FIELD_SERVICE_INTERVENTION ||--o{ INTERVENTION_PART : uses

    CUSTOMER_ASSET ||--o{ ASSET_MAINTENANCE : has
    CUSTOMER_ASSET ||--o{ ASSET_WARRANTY : covered_by

    EQUIPMENT ||--o{ EQUIPMENT_MAINTENANCE : requires

    FIELD_SERVICE_INTERVENTION {
        string id PK
        string tenantId FK
        string contractId FK
        string assetId FK
        string technicianId FK
        enum status
        enum priority
        string description
        timestamp scheduledAt
        timestamp startedAt
        timestamp completedAt
        json location
        text notes
        text resolution
    }

    SERVICE_CONTRACT {
        string id PK
        string tenantId FK
        string clientId FK
        enum type
        timestamp startDate
        timestamp endDate
        json terms
        decimal value
        enum status
    }

    CUSTOMER_ASSET {
        string id PK
        string clientId FK
        string name
        string serialNumber
        string model
        timestamp installDate
        json specifications
        enum status
    }

Intervention States

stateDiagram-v2
    [*] --> REQUESTED: Service Request

    REQUESTED --> SCHEDULED: Schedule Appointment
    REQUESTED --> CANCELLED: Cancel Request

    SCHEDULED --> DISPATCHED: Dispatch Technician
    SCHEDULED --> RESCHEDULED: Reschedule
    RESCHEDULED --> SCHEDULED: New Time Set

    DISPATCHED --> EN_ROUTE: Technician Departs
    EN_ROUTE --> ON_SITE: Arrive at Location

    ON_SITE --> IN_PROGRESS: Start Work
    IN_PROGRESS --> PAUSED: Pause (need parts)
    PAUSED --> IN_PROGRESS: Resume

    IN_PROGRESS --> COMPLETED: Work Done
    IN_PROGRESS --> ESCALATED: Needs Escalation

    ESCALATED --> SCHEDULED: Reschedule with Senior

    COMPLETED --> CLOSED: Customer Sign-off
    CLOSED --> [*]
    CANCELLED --> [*]

Key Business Processes

Intervention Workflow

Service request to completion flow. View Workflow Details

Equipment Lifecycle

Asset management and maintenance tracking. View Equipment Details

Dispatch Flow

flowchart TD
    REQUEST[Service Request] --> ASSESS[Assess Priority]

    ASSESS --> PRIORITY{Priority Level}
    PRIORITY -->|Emergency| IMMEDIATE[Immediate Dispatch]
    PRIORITY -->|High| SAME_DAY[Same Day]
    PRIORITY -->|Normal| SCHEDULE[Standard Scheduling]

    IMMEDIATE --> FIND_TECH[Find Available Tech]
    SAME_DAY --> FIND_TECH
    SCHEDULE --> SLOT[Find Time Slot]
    SLOT --> FIND_TECH

    FIND_TECH --> CRITERIA{Match Criteria}
    CRITERIA --> SKILL[Required Skills]
    CRITERIA --> LOCATION[Proximity]
    CRITERIA --> AVAILABILITY[Availability]

    SKILL --> SELECT[Select Technician]
    LOCATION --> SELECT
    AVAILABILITY --> SELECT

    SELECT --> ASSIGN[Assign & Notify]
    ASSIGN --> DISPATCH[Dispatch]

    style DISPATCH fill:#e8f5e9

Service Contract Types

TypeDescriptionSLA
BasicReactive maintenance only48h response
StandardScheduled + reactive24h response
PremiumPriority service4h response
All-InclusiveFull coverage + parts2h response