Skip to content

Conversation

@kdelongecf
Copy link
Contributor

@kdelongecf kdelongecf commented Dec 12, 2024

Summary by Sourcery

Add support for vendor assignment in service tickets by introducing the 'assignedVendor' field in the ServiceTicket schema and implementing a method to retrieve service tickets by vendor ID.

New Features:

  • Add 'assignedVendor' field to the ServiceTicket schema to support vendor assignment.

Enhancements:

  • Implement a method to retrieve service tickets by vendor ID in the ServiceTicketV1DataApi.

@kdelongecf kdelongecf requested a review from nnoce14 December 12, 2024 16:51
@sourcery-ai
Copy link
Contributor

sourcery-ai bot commented Dec 12, 2024

Reviewer's Guide by Sourcery

This PR adds support for assigning vendors to service tickets by introducing a new assignedVendor field to the ServiceTicket schema and implementing the necessary data access and validation logic. The changes span across GraphQL schema definitions, domain logic, and data access layers.

ER diagram for updated ServiceTicket schema

erDiagram
    ServiceTicket {
        String activityLog
        String messages
        String revisionRequest
        String assignedVendor
        ObjectID id
        String schemaVersion
        DateTime createdAt
        String description
        ObjectID serviceId
    }

    ServiceTicket ||--o{ Community : belongs_to
    ServiceTicket ||--o{ Member : assigned_to
    ServiceTicket ||--o{ Vendor : assigned_vendor
Loading

Class diagram for ServiceTicketV1DomainApiImpl changes

classDiagram
    class ServiceTicketV1DomainApiImpl {
        +getServiceTicketsOpenByRequestor(memberId: string) Promise~ServiceTicketData[]~
        +getServiceTicketsClosedByRequestor(memberId: string) Promise~ServiceTicketData[]~
        +getServiceTicketsByAssignedTo(communityId: string, memberId: string) Promise~ServiceTicketData[]~
        +getServiceTicketsByVendor(vendorId: string) Promise~ServiceTicketData[]~
        +applyPermissionFilter(serviceTickets: ServiceTicketData[], context: AppContext) Promise~ServiceTicketData[]~
    }
    note for ServiceTicketV1DomainApiImpl "Added method getServiceTicketsByVendor to handle vendor-specific queries."
Loading

Class diagram for ServiceTicket schema changes

classDiagram
    class ServiceTicket {
        +String activityLog
        +String messages
        +String revisionRequest
        +String assignedVendor
        +ObjectID id
        +String schemaVersion
        +DateTime createdAt
        +String description
        +ObjectID serviceId
    }
    note for ServiceTicket "Added assignedVendor field to support vendor assignment."
Loading

File-Level Changes

Change Details Files
Added vendor assignment functionality to service ticket domain logic
  • Added validation to check if vendor exists when creating a service ticket
  • Added validation to check if vendor exists when updating a service ticket
  • Implemented vendor user lookup using UserById endpoint
data-access/src/app/application-services/cases/service-ticket/v1/service-ticket.domain.ts
Extended service ticket data access layer with vendor-related functionality
  • Added new method getServiceTicketsByVendor to fetch tickets by vendor ID
  • Implemented findByFields query for vendor assignments
data-access/src/app/application-services/cases/service-ticket/v1/service-ticket.data.ts
Updated GraphQL schema to support vendor assignments
  • Added assignedVendor field to ServiceTicket type
  • Added assignedVendor field to ServiceTicketCreateInput
  • Added assignedVendor field to ServiceTicketUpdateInput
data-access/src/functions/http-graphql/schema/types/service-ticket.graphql
data-access/src/functions/http-graphql/schema/builder/generated.ts
ui-community/src/generated.tsx
Updated MongoDB schema for service tickets
  • Added assignedVendor field to ServiceTicket interface
  • Added assignedVendor field to MongoDB schema definition
data-access/src/infrastructure-services-impl/datastore/mongodb/models/cases/service-ticket.ts

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time. You can also use
    this command to specify where the summary should be inserted.

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Data Access: Add fields for Vendor User to Community and ServiceTicket schemas

4 participants