mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-29 23:28:11 +00:00
implement rule engine module with dynamic booking evaluation, 7 entities, and Postman endpoints
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
import { FindManyOptions } from 'typeorm';
|
||||
import { CargoType } from '../entities/cargo-type.entity';
|
||||
|
||||
export interface ICargoTypesRepository {
|
||||
findById(id: string): Promise<CargoType | null>;
|
||||
findByCode(code: string): Promise<CargoType | null>;
|
||||
findAll(options?: FindManyOptions<CargoType>): Promise<CargoType[]>;
|
||||
findAndCount(options?: FindManyOptions<CargoType>): Promise<[CargoType[], number]>;
|
||||
create(data: Partial<CargoType>): Promise<CargoType>;
|
||||
update(id: string, data: Partial<CargoType>): Promise<CargoType | null>;
|
||||
softDelete(id: string): Promise<void>;
|
||||
}
|
||||
|
||||
export const CARGO_TYPES_REPOSITORY = Symbol('CARGO_TYPES_REPOSITORY');
|
||||
@@ -0,0 +1,14 @@
|
||||
import { FindManyOptions } from 'typeorm';
|
||||
import { ContainerType } from '../entities/container-type.entity';
|
||||
|
||||
export interface IContainerTypesRepository {
|
||||
findById(id: string): Promise<ContainerType | null>;
|
||||
findBySizeCode(sizeCode: string): Promise<ContainerType | null>;
|
||||
findAll(options?: FindManyOptions<ContainerType>): Promise<ContainerType[]>;
|
||||
findAndCount(options?: FindManyOptions<ContainerType>): Promise<[ContainerType[], number]>;
|
||||
create(data: Partial<ContainerType>): Promise<ContainerType>;
|
||||
update(id: string, data: Partial<ContainerType>): Promise<ContainerType | null>;
|
||||
softDelete(id: string): Promise<void>;
|
||||
}
|
||||
|
||||
export const CONTAINER_TYPES_REPOSITORY = Symbol('CONTAINER_TYPES_REPOSITORY');
|
||||
@@ -0,0 +1,14 @@
|
||||
import { FindManyOptions } from 'typeorm';
|
||||
import { PriorityRule } from '../entities/priority-rule.entity';
|
||||
|
||||
export interface IPriorityRulesRepository {
|
||||
findById(id: string): Promise<PriorityRule | null>;
|
||||
findAllActive(): Promise<PriorityRule[]>;
|
||||
findAll(options?: FindManyOptions<PriorityRule>): Promise<PriorityRule[]>;
|
||||
findAndCount(options?: FindManyOptions<PriorityRule>): Promise<[PriorityRule[], number]>;
|
||||
create(data: Partial<PriorityRule>): Promise<PriorityRule>;
|
||||
update(id: string, data: Partial<PriorityRule>): Promise<PriorityRule | null>;
|
||||
softDelete(id: string): Promise<void>;
|
||||
}
|
||||
|
||||
export const PRIORITY_RULES_REPOSITORY = Symbol('PRIORITY_RULES_REPOSITORY');
|
||||
@@ -0,0 +1,14 @@
|
||||
import { FindManyOptions } from 'typeorm';
|
||||
import { ServiceType } from '../entities/service-type.entity';
|
||||
|
||||
export interface IServiceTypesRepository {
|
||||
findById(id: string): Promise<ServiceType | null>;
|
||||
findByCode(code: string): Promise<ServiceType | null>;
|
||||
findAll(options?: FindManyOptions<ServiceType>): Promise<ServiceType[]>;
|
||||
findAndCount(options?: FindManyOptions<ServiceType>): Promise<[ServiceType[], number]>;
|
||||
create(data: Partial<ServiceType>): Promise<ServiceType>;
|
||||
update(id: string, data: Partial<ServiceType>): Promise<ServiceType | null>;
|
||||
softDelete(id: string): Promise<void>;
|
||||
}
|
||||
|
||||
export const SERVICE_TYPES_REPOSITORY = Symbol('SERVICE_TYPES_REPOSITORY');
|
||||
@@ -0,0 +1,14 @@
|
||||
import { FindManyOptions } from 'typeorm';
|
||||
import { SurchargeType } from '../entities/surcharge-type.entity';
|
||||
|
||||
export interface ISurchargeTypesRepository {
|
||||
findById(id: string): Promise<SurchargeType | null>;
|
||||
findByCode(code: string): Promise<SurchargeType | null>;
|
||||
findAll(options?: FindManyOptions<SurchargeType>): Promise<SurchargeType[]>;
|
||||
findAndCount(options?: FindManyOptions<SurchargeType>): Promise<[SurchargeType[], number]>;
|
||||
create(data: Partial<SurchargeType>): Promise<SurchargeType>;
|
||||
update(id: string, data: Partial<SurchargeType>): Promise<SurchargeType | null>;
|
||||
softDelete(id: string): Promise<void>;
|
||||
}
|
||||
|
||||
export const SURCHARGE_TYPES_REPOSITORY = Symbol('SURCHARGE_TYPES_REPOSITORY');
|
||||
@@ -0,0 +1,14 @@
|
||||
import { FindManyOptions } from 'typeorm';
|
||||
import { Surcharge } from '../entities/surcharge.entity';
|
||||
|
||||
export interface ISurchargesRepository {
|
||||
findById(id: string): Promise<Surcharge | null>;
|
||||
findByTypeCode(typeCode: string): Promise<Surcharge | null>;
|
||||
findAll(options?: FindManyOptions<Surcharge>): Promise<Surcharge[]>;
|
||||
findAndCount(options?: FindManyOptions<Surcharge>): Promise<[Surcharge[], number]>;
|
||||
create(data: Partial<Surcharge>): Promise<Surcharge>;
|
||||
update(id: string, data: Partial<Surcharge>): Promise<Surcharge | null>;
|
||||
softDelete(id: string): Promise<void>;
|
||||
}
|
||||
|
||||
export const SURCHARGES_REPOSITORY = Symbol('SURCHARGES_REPOSITORY');
|
||||
@@ -0,0 +1,17 @@
|
||||
import { FindManyOptions } from 'typeorm';
|
||||
import { WeightLimitRule } from '../entities/weight-limit-rule.entity';
|
||||
|
||||
export interface IWeightLimitRulesRepository {
|
||||
findById(id: string): Promise<WeightLimitRule | null>;
|
||||
findActiveByContainerTypeAndDirection(
|
||||
sizeCode: string,
|
||||
tradeDirection: string,
|
||||
): Promise<WeightLimitRule[]>;
|
||||
findAll(options?: FindManyOptions<WeightLimitRule>): Promise<WeightLimitRule[]>;
|
||||
findAndCount(options?: FindManyOptions<WeightLimitRule>): Promise<[WeightLimitRule[], number]>;
|
||||
create(data: Partial<WeightLimitRule>): Promise<WeightLimitRule>;
|
||||
update(id: string, data: Partial<WeightLimitRule>): Promise<WeightLimitRule | null>;
|
||||
softDelete(id: string): Promise<void>;
|
||||
}
|
||||
|
||||
export const WEIGHT_LIMIT_RULES_REPOSITORY = Symbol('WEIGHT_LIMIT_RULES_REPOSITORY');
|
||||
Reference in New Issue
Block a user