mirror of
https://gitlab.com/mobicoop/v3/service/matcher.git
synced 2026-01-01 02:02:40 +00:00
Compare commits
4 Commits
next-relea
...
pause-ad
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
25ba855cca | ||
|
|
b52644ee3b | ||
|
|
d937a84182 | ||
|
|
f6d00f5e37 |
2
prisma/migrations/20240515150021_pause/migration.sql
Normal file
2
prisma/migrations/20240515150021_pause/migration.sql
Normal file
@@ -0,0 +1,2 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE "ad" ADD COLUMN "pause" BOOLEAN NOT NULL DEFAULT false;
|
||||
@@ -29,6 +29,7 @@ model Ad {
|
||||
passengerDuration Int?
|
||||
passengerDistance Int?
|
||||
waypoints Unsupported("geography(LINESTRING)")?
|
||||
pause Boolean @default(false)
|
||||
direction Unsupported("geography(LINESTRING)")?
|
||||
fwdAzimuth Int
|
||||
backAzimuth Int
|
||||
|
||||
@@ -52,6 +52,7 @@ export class AdMapper
|
||||
seatsProposed: copy.seatsProposed,
|
||||
seatsRequested: copy.seatsRequested,
|
||||
strict: copy.strict,
|
||||
pause: copy.pause,
|
||||
driverDuration: copy.driverDuration,
|
||||
driverDistance: copy.driverDistance,
|
||||
passengerDuration: copy.passengerDuration,
|
||||
@@ -100,6 +101,7 @@ export class AdMapper
|
||||
seatsProposed: record.seatsProposed,
|
||||
seatsRequested: record.seatsRequested,
|
||||
strict: record.strict,
|
||||
pause: record.pause,
|
||||
driverDuration: record.driverDuration,
|
||||
driverDistance: record.driverDistance,
|
||||
passengerDuration: record.passengerDuration,
|
||||
|
||||
@@ -15,6 +15,7 @@ export class CreateAdCommand extends Command implements UserAd {
|
||||
readonly seatsRequested: number;
|
||||
readonly strict: boolean;
|
||||
readonly waypoints: Address[];
|
||||
readonly pause: boolean;
|
||||
|
||||
constructor(props: CommandProps<CreateAdCommand>) {
|
||||
super(props);
|
||||
@@ -29,5 +30,6 @@ export class CreateAdCommand extends Command implements UserAd {
|
||||
this.seatsRequested = props.seatsRequested;
|
||||
this.strict = props.strict;
|
||||
this.waypoints = props.waypoints;
|
||||
this.pause = props.pause;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,6 +25,7 @@ export class MatchQuery extends QueryBase {
|
||||
seatsProposed?: number;
|
||||
seatsRequested?: number;
|
||||
strict?: boolean;
|
||||
pause?: boolean;
|
||||
readonly waypoints: Waypoint[];
|
||||
excludedAdId?: string;
|
||||
algorithmType?: AlgorithmType;
|
||||
|
||||
@@ -143,6 +143,7 @@ export class PassengerOrientedSelector extends Selector {
|
||||
|
||||
private _createWhere = (role: Role): string =>
|
||||
[
|
||||
this._wherePause(), // TODO where clause should be ordered for db index optimisation ...
|
||||
this._whereRole(role),
|
||||
this._whereStrict(),
|
||||
this._whereDate(role),
|
||||
@@ -157,6 +158,8 @@ export class PassengerOrientedSelector extends Selector {
|
||||
private _whereRole = (role: Role): string =>
|
||||
role == Role.PASSENGER ? 'driver=True' : 'passenger=True';
|
||||
|
||||
private _wherePause = (): string => 'pause=False'; // TODO: find if we want to add this as parameter/config or not
|
||||
|
||||
private _whereStrict = (): string =>
|
||||
this.query.strict
|
||||
? this.query.frequency == Frequency.PUNCTUAL
|
||||
|
||||
@@ -81,6 +81,7 @@ export class AdFactory {
|
||||
seatsProposed: ad.seatsProposed,
|
||||
seatsRequested: ad.seatsRequested,
|
||||
strict: ad.strict,
|
||||
pause: ad.pause,
|
||||
waypoints: ad.waypoints,
|
||||
points: points!,
|
||||
driverDistance,
|
||||
|
||||
@@ -15,6 +15,7 @@ export interface UserAd {
|
||||
seatsProposed: number;
|
||||
seatsRequested: number;
|
||||
strict: boolean;
|
||||
pause: boolean;
|
||||
waypoints: PointProps[];
|
||||
}
|
||||
|
||||
@@ -29,6 +30,7 @@ export interface AdProps {
|
||||
seatsProposed: number;
|
||||
seatsRequested: number;
|
||||
strict: boolean;
|
||||
pause: boolean;
|
||||
driverDuration?: number;
|
||||
driverDistance?: number;
|
||||
passengerDuration?: number;
|
||||
@@ -51,6 +53,7 @@ export interface CreateAdProps {
|
||||
seatsProposed: number;
|
||||
seatsRequested: number;
|
||||
strict: boolean;
|
||||
pause: boolean;
|
||||
waypoints: PointProps[];
|
||||
driverDuration?: number;
|
||||
driverDistance?: number;
|
||||
|
||||
@@ -20,6 +20,7 @@ export type AdModel = {
|
||||
seatsProposed: number;
|
||||
seatsRequested: number;
|
||||
strict: boolean;
|
||||
pause: boolean;
|
||||
driverDuration?: number;
|
||||
driverDistance?: number;
|
||||
passengerDuration?: number;
|
||||
@@ -158,6 +159,7 @@ export class AdRepository
|
||||
seatsProposed: ungroupedAd.seatsProposed,
|
||||
seatsRequested: ungroupedAd.seatsRequested,
|
||||
strict: ungroupedAd.strict,
|
||||
pause: ungroupedAd.pause,
|
||||
driverDuration: ungroupedAd.driverDuration,
|
||||
driverDistance: ungroupedAd.driverDistance,
|
||||
passengerDuration: ungroupedAd.passengerDuration,
|
||||
|
||||
@@ -32,6 +32,7 @@ export class AdCreatedMessageHandler {
|
||||
seatsRequested: createdAd.seatsRequested,
|
||||
strict: createdAd.strict,
|
||||
waypoints: createdAd.waypoints,
|
||||
pause: createdAd.pause,
|
||||
}),
|
||||
);
|
||||
} catch (error: any) {
|
||||
|
||||
@@ -15,6 +15,7 @@ export type Ad = AdReference & {
|
||||
seatsRequested: number;
|
||||
strict: boolean;
|
||||
waypoints: Waypoint[];
|
||||
pause: boolean;
|
||||
};
|
||||
|
||||
export type ScheduleItem = {
|
||||
|
||||
@@ -54,6 +54,7 @@ function createAdPropsDefaults(): CreateAdProps {
|
||||
seatsProposed: 1,
|
||||
seatsRequested: 1,
|
||||
strict: false,
|
||||
pause: false,
|
||||
waypoints: [],
|
||||
points: [],
|
||||
driverDuration: 0,
|
||||
|
||||
@@ -37,6 +37,7 @@ const adEntity: AdEntity = new AdEntity({
|
||||
},
|
||||
],
|
||||
strict: false,
|
||||
pause: false,
|
||||
seatsProposed: 3,
|
||||
seatsRequested: 1,
|
||||
driverDistance: 350101,
|
||||
@@ -89,6 +90,7 @@ const adReadModel: AdReadModel = {
|
||||
fwdAzimuth: 273,
|
||||
backAzimuth: 93,
|
||||
strict: false,
|
||||
pause: false,
|
||||
seatsProposed: 3,
|
||||
seatsRequested: 1,
|
||||
createdAt: now,
|
||||
|
||||
@@ -28,6 +28,7 @@ export function createAdProps(): CreateAdProps {
|
||||
seatsProposed: 3,
|
||||
seatsRequested: 1,
|
||||
strict: false,
|
||||
pause: false,
|
||||
waypoints: [originPointProps, destinationPointProps],
|
||||
driverDistance: 23000,
|
||||
driverDuration: 900,
|
||||
|
||||
@@ -37,6 +37,7 @@ const createAdProps: CreateAdProps = {
|
||||
seatsProposed: 3,
|
||||
seatsRequested: 1,
|
||||
strict: false,
|
||||
pause: false,
|
||||
frequency: Frequency.PUNCTUAL,
|
||||
waypoints: [originWaypoint, destinationWaypoint],
|
||||
driverDistance: 23000,
|
||||
|
||||
@@ -88,6 +88,7 @@ const mockPrismaService = {
|
||||
seatsProposed: 3,
|
||||
seatsRequested: 1,
|
||||
strict: false,
|
||||
pause: false,
|
||||
driverDistance: 350000,
|
||||
driverDuration: 14400,
|
||||
passengerDistance: 350000,
|
||||
|
||||
Reference in New Issue
Block a user