interface TripsRepository {
    modelName: string;
    countDocuments(query?: FilterQuery<models.trips.Trip>): Promise<number>;
    create(entity: models.trips.Trip): Promise<Saved<models.trips.Trip>>;
    createMany(
        entity: models.trips.Trip[],
        options?: CreateManyOptions,
    ): Promise<string[]>;
    deleteById(id: string): Promise<null | Saved<models.trips.Trip>>;
    destroyById(id: string): Promise<null | Saved<models.trips.Trip>>;
    findById(
        id: string,
        fields?: SelectQuery<models.trips.Trip>[],
        ListQueryOptions?: ListQueryOptions<models.trips.Trip>,
    ): Promise<null | Saved<models.trips.Trip>>;
    findOne(
        query?: FilterQuery<models.trips.Trip>,
        fields?: SelectQuery<models.trips.Trip>[],
        ListQueryOptions?: ListQueryOptions<models.trips.Trip>,
    ): Promise<null | Saved<models.trips.Trip>>;
    list(
        query?: FilterQuery<models.trips.Trip>,
        fields?: SelectQuery<models.trips.Trip>[],
        ListQueryOptions?: ListQueryOptions<models.trips.Trip>,
    ): Promise<Saved<models.trips.Trip>[]>;
    listTripsForGuide(
        tripFilterQuery?: FilterQuery<models.trips.Trip>,
        sortOptions?: SortOptions<models.trips.Trip>,
    ): Promise<SavedTrip[]>;
    listTripsForHost(
        tripFilterQuery?: FilterQuery<models.trips.Trip>,
        sortOptions?: SortOptions<models.trips.Trip>,
    ): Promise<SavedTrip[]>;
    listTripsForTraveler(
        travelerFilterQuery?: FilterQuery<models.travelers.Traveler>,
        bookingFilterQuery?: FilterQuery<
            Required<Omit<BaseBooking, bookingFieldToOmit>>,
        >,
        tripFilterQuery?: FilterQuery<models.trips.Trip>,
        sortOptions?: SortOptions<models.trips.Trip>,
    ): Promise<SavedTrip[]>;
    listTripsToLaunch(
        minLaunchDate: Date,
        maxLaunchDate: Date,
    ): Promise<SavedTrip[]>;
    paginate(
        options?: PaginateQueryOptions<models.trips.Trip>,
    ): Promise<PaginationResponse<Saved<models.trips.Trip>>>;
    updateById(
        id: string,
        entity: PartialQuery<models.trips.Trip>,
        options?: UpdateOptions,
    ): Promise<null | Saved<models.trips.Trip>>;
    updateMany(
        filter: FilterQuery<models.trips.Trip>,
        update: PartialQuery<models.trips.Trip>,
    ): Promise<number>;
    updateOne(
        filter: FilterQuery<models.trips.Trip>,
        update: PartialQuery<models.trips.Trip>,
        options?: UpdateOneOptions,
    ): Promise<null | Saved<models.trips.Trip>>;
    upsertOne(
        filter: FilterQuery<models.trips.Trip>,
        entity: PartialQuery<models.trips.Trip>,
    ): Promise<null | string>;
    useView(name: keyof TripViewMappings): ViewRepo<FinancialTrip | SavedTrip>;
}

Hierarchy (View Summary)

Properties

modelName: string

The name of the model.

Methods