Merge branch 'pause-ad' into 'next-release'
Draft: feat(pause ad): add first basic ad pause flag See merge request mobicoop/v3/service/matcher!48
This commit is contained in:
commit
96108ac873
|
@ -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,
|
||||
|
|
Loading…
Reference in New Issue