forked from Yara724/api
YARA-732
This commit is contained in:
@@ -25,7 +25,71 @@ export class BranchDbService {
|
||||
async findAll(insuranceId: string): Promise<BranchModel[]> {
|
||||
return await this.branchModel.find({
|
||||
clientKey: new Types.ObjectId(insuranceId),
|
||||
}, { _id: 1, name: 1, code: 1, city: 1, state: 1, address: 1, phoneNumber: 1, createdAtFa: 1, updatedAtFa: 1 });
|
||||
});
|
||||
}
|
||||
|
||||
async findAllWithFilters(
|
||||
insuranceId: string,
|
||||
opts?: {
|
||||
search?: string;
|
||||
from?: Date;
|
||||
to?: Date;
|
||||
isActive?: boolean;
|
||||
},
|
||||
): Promise<BranchModel[]> {
|
||||
const filter: any = { clientKey: new Types.ObjectId(insuranceId) };
|
||||
|
||||
if (typeof opts?.isActive === "boolean") {
|
||||
filter.isActive = opts.isActive;
|
||||
}
|
||||
|
||||
if (opts?.from || opts?.to) {
|
||||
filter.$or = [
|
||||
{
|
||||
createdAt: {
|
||||
...(opts.from ? { $gte: opts.from } : {}),
|
||||
...(opts.to ? { $lte: opts.to } : {}),
|
||||
},
|
||||
},
|
||||
{
|
||||
activityStartDate: {
|
||||
...(opts.from ? { $gte: opts.from } : {}),
|
||||
...(opts.to ? { $lte: opts.to } : {}),
|
||||
},
|
||||
},
|
||||
];
|
||||
}
|
||||
|
||||
if (opts?.search?.trim()) {
|
||||
const q = opts.search.trim();
|
||||
const rx = new RegExp(q, "i");
|
||||
filter.$and = [
|
||||
...(filter.$and || []),
|
||||
{
|
||||
$or: [
|
||||
{ name: rx },
|
||||
{ code: rx },
|
||||
{ city: rx },
|
||||
{ state: rx },
|
||||
{ address: rx },
|
||||
{ phoneNumber: rx },
|
||||
],
|
||||
},
|
||||
];
|
||||
}
|
||||
|
||||
return this.branchModel.find(filter).lean();
|
||||
}
|
||||
|
||||
async findByIds(ids: Types.ObjectId[]) {
|
||||
return this.branchModel
|
||||
.find({ _id: { $in: ids } })
|
||||
.select({ _id: 1, name: 1, code: 1, city: 1, state: 1, address: 1, phoneNumber: 1, isActive: 1, activityStartDate: 1, createdAt: 1, updatedAt: 1 })
|
||||
.lean();
|
||||
}
|
||||
|
||||
async findByIdAndUpdate(id: string, update: any): Promise<BranchModel | null> {
|
||||
return this.branchModel.findByIdAndUpdate(id, update, { new: true }).lean();
|
||||
}
|
||||
|
||||
async findById(id: string): Promise<BranchModel | null> {
|
||||
|
||||
@@ -25,6 +25,12 @@ export class BranchModel {
|
||||
|
||||
@Prop()
|
||||
phoneNumber?: string;
|
||||
|
||||
@Prop({ type: Boolean, default: true })
|
||||
isActive?: boolean;
|
||||
|
||||
@Prop({ type: Date })
|
||||
activityStartDate?: Date;
|
||||
}
|
||||
|
||||
export const BranchSchema = SchemaFactory.createForClass(BranchModel);
|
||||
|
||||
Reference in New Issue
Block a user