diff --git a/backend/src/app.module.ts b/backend/src/app.module.ts index 1e09af7..7a2ac7c 100644 --- a/backend/src/app.module.ts +++ b/backend/src/app.module.ts @@ -29,6 +29,8 @@ import { PrescriptionsModule } from './prescriptions/prescriptions.module'; import { B2BModule } from './b2b/b2b.module'; import { PaymentModule } from './payment/payment.module'; +import { Request, Response, NextFunction } from 'express'; + @Module({ imports: [ SmsModule, @@ -77,15 +79,18 @@ export class AppModule implements NestModule { configure(consumer: MiddlewareConsumer) { consumer - .apply((req: any, res: any, next: () => void) => { + .apply((req: Request, res: Response, next: NextFunction) => { MetricsController.incrementRequestCount(); const url: string = req.originalUrl || req.url || ''; const method: string = req.method || ''; // Exclude options, admin panel requests, static assets, and health metrics from visit counter - const isAdminPath = url.includes('/admin') || url.includes('/api/admin'); - const isStaticAsset = url.match(/\.(js|css|png|jpg|jpeg|gif|ico|svg|woff2?|map)$/i); + const isAdminPath = + url.includes('/admin') || url.includes('/api/admin'); + const isStaticAsset = url.match( + /\.(js|css|png|jpg|jpeg|gif|ico|svg|woff2?|map)$/i, + ); const isIgnoredMethod = method === 'OPTIONS' || method === 'HEAD'; if (!isAdminPath && !isStaticAsset && !isIgnoredMethod) { diff --git a/backend/src/auth/auth.service.ts b/backend/src/auth/auth.service.ts index 169c3f5..b41047c 100644 --- a/backend/src/auth/auth.service.ts +++ b/backend/src/auth/auth.service.ts @@ -49,7 +49,8 @@ export class AuthService { // Remove OTP from Redis if SMS failed to avoid phantom codes await this.redisService.del(`otp:${phoneNumber}`); throw new BadRequestException({ - message: 'ارسال پیامک با خطا مواجه شد. لطفاً چند لحظه دیگر دوباره تلاش کنید.', + message: + 'ارسال پیامک با خطا مواجه شد. لطفاً چند لحظه دیگر دوباره تلاش کنید.', error: 'SMS_DELIVERY_FAILED', }); } diff --git a/backend/src/common/services/sms.service.ts b/backend/src/common/services/sms.service.ts index 7de36e8..b67980a 100644 --- a/backend/src/common/services/sms.service.ts +++ b/backend/src/common/services/sms.service.ts @@ -31,7 +31,7 @@ export interface MeliPayamakPattern { assignedTo?: string[]; } -export interface SmsLogQuery { +export class SmsLogQuery { page?: number; limit?: number; search?: string; @@ -41,7 +41,7 @@ export interface SmsLogQuery { sortOrder?: 'asc' | 'desc'; } -interface MeliPayamakResponse { +export interface MeliPayamakResponse { Value?: number; RetStatus?: number; StrRetStatus?: string; @@ -61,18 +61,44 @@ export class SmsService { const setting = await this.prisma.setting.findFirst({ where: { category: 'sms' }, }); - const dbConfig = (setting?.value as Record) || {}; + const dbConfig = (setting?.value as Record) || {}; return { - enabled: dbConfig.enabled !== undefined ? Boolean(dbConfig.enabled) : true, - username: dbConfig.username || process.env.MELIPAYAMAK_USERNAME || '9364100228', - password: dbConfig.password || process.env.MELIPAYAMAK_PASSWORD || '', - fromNumber: dbConfig.fromNumber || process.env.MELIPAYAMAK_FROM_NUMBER || '', - otpBodyId: Number(dbConfig.otpBodyId || process.env.MELIPAYAMAK_OTP_BODY_ID || '508079'), - orderBodyId: Number(dbConfig.orderBodyId || process.env.MELIPAYAMAK_ORDER_BODY_ID || '508081'), - shippingBodyId: Number(dbConfig.shippingBodyId || process.env.MELIPAYAMAK_SHIPPING_BODY_ID || '508082'), - b2bBodyId: Number(dbConfig.b2bBodyId || process.env.MELIPAYAMAK_B2B_BODY_ID || '508083'), - petCareBodyId: Number(dbConfig.petCareBodyId || process.env.MELIPAYAMAK_PET_CARE_BODY_ID || '0'), + enabled: + dbConfig.enabled !== undefined ? Boolean(dbConfig.enabled) : true, + username: + typeof dbConfig.username === 'string' && dbConfig.username + ? dbConfig.username + : process.env.MELIPAYAMAK_USERNAME || '9364100228', + password: + typeof dbConfig.password === 'string' && dbConfig.password + ? dbConfig.password + : process.env.MELIPAYAMAK_PASSWORD || '', + fromNumber: + typeof dbConfig.fromNumber === 'string' && dbConfig.fromNumber + ? dbConfig.fromNumber + : process.env.MELIPAYAMAK_FROM_NUMBER || '', + otpBodyId: Number( + dbConfig.otpBodyId || process.env.MELIPAYAMAK_OTP_BODY_ID || '508079', + ), + orderBodyId: Number( + dbConfig.orderBodyId || + process.env.MELIPAYAMAK_ORDER_BODY_ID || + '508081', + ), + shippingBodyId: Number( + dbConfig.shippingBodyId || + process.env.MELIPAYAMAK_SHIPPING_BODY_ID || + '508082', + ), + b2bBodyId: Number( + dbConfig.b2bBodyId || process.env.MELIPAYAMAK_B2B_BODY_ID || '508083', + ), + petCareBodyId: Number( + dbConfig.petCareBodyId || + process.env.MELIPAYAMAK_PET_CARE_BODY_ID || + '0', + ), }; } catch { return { @@ -82,7 +108,9 @@ export class SmsService { fromNumber: process.env.MELIPAYAMAK_FROM_NUMBER || '', otpBodyId: Number(process.env.MELIPAYAMAK_OTP_BODY_ID || '508079'), orderBodyId: Number(process.env.MELIPAYAMAK_ORDER_BODY_ID || '508081'), - shippingBodyId: Number(process.env.MELIPAYAMAK_SHIPPING_BODY_ID || '508082'), + shippingBodyId: Number( + process.env.MELIPAYAMAK_SHIPPING_BODY_ID || '508082', + ), b2bBodyId: Number(process.env.MELIPAYAMAK_B2B_BODY_ID || '508083'), petCareBodyId: Number(process.env.MELIPAYAMAK_PET_CARE_BODY_ID || '0'), }; @@ -92,9 +120,14 @@ export class SmsService { /** * Helper HTTP POST request to Payamak-Panel ASMX endpoints */ - private async postAsmx(endpoint: string, params: Record): Promise { + private async postAsmx( + endpoint: string, + params: Record, + ): Promise { const postData = Object.entries(params) - .map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(String(v))}`) + .map( + ([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(String(v))}`, + ) .join('&'); return new Promise((resolve, reject) => { @@ -109,12 +142,12 @@ export class SmsService { }, (res) => { let data = ''; - res.on('data', (chunk) => (data += chunk)); + res.on('data', (chunk: Buffer | string) => (data += String(chunk))); res.on('end', () => resolve(data)); }, ); - req.on('error', (err) => reject(err)); + req.on('error', (err: Error) => reject(err)); req.write(postData); req.end(); }); @@ -132,7 +165,7 @@ export class SmsService { status: string; recId?: string; errorMessage?: string; - }) { + }): Promise { try { await this.prisma.smsLog.create({ data: { @@ -146,8 +179,9 @@ export class SmsService { errorMessage: entry.errorMessage || null, }, }); - } catch (err: any) { - this.logger.error(`[SMS Log Save Failed]: ${err.message}`); + } catch (err: unknown) { + const msg = err instanceof Error ? err.message : String(err); + this.logger.error(`[SMS Log Save Failed]: ${msg}`); } } @@ -239,8 +273,14 @@ export class SmsService { if (idMatch) { const id = parseInt(idMatch[1], 10); - const title = (titleMatch ? titleMatch[1] : '').replace(/</g, '<').replace(/>/g, '>').replace(/&/g, '&'); - const body = (bodyMatch ? bodyMatch[1] : '').replace(/</g, '<').replace(/>/g, '>').replace(/&/g, '&'); + const title = (titleMatch ? titleMatch[1] : '') + .replace(/</g, '<') + .replace(/>/g, '>') + .replace(/&/g, '&'); + const body = (bodyMatch ? bodyMatch[1] : '') + .replace(/</g, '<') + .replace(/>/g, '>') + .replace(/&/g, '&'); const status = statusMatch ? parseInt(statusMatch[1], 10) : 0; let statusText = 'در انتظار تایید'; @@ -268,8 +308,11 @@ export class SmsService { password: config.password, }); remotePatterns = this.parsePatternsXml(rawXml); - } catch (err: any) { - this.logger.warn(`[SMS Patterns] Remote fetch failed: ${err.message}. Using stored patterns.`); + } catch (err: unknown) { + const msg = err instanceof Error ? err.message : String(err); + this.logger.warn( + `[SMS Patterns] Remote fetch failed: ${msg}. Using stored patterns.`, + ); } } @@ -277,17 +320,46 @@ export class SmsService { const storedSetting = await this.prisma.setting.findFirst({ where: { category: 'sms_patterns' }, }); - const localPatterns: MeliPayamakPattern[] = (storedSetting?.value as any) || []; + const localPatterns: MeliPayamakPattern[] = Array.isArray( + storedSetting?.value, + ) + ? (storedSetting.value as unknown as MeliPayamakPattern[]) + : []; // Merge remote and local (remote takes precedence on ID match) const map = new Map(); // Add configured system patterns by default if map is empty - const defaultConfigs: Array<{ id: number; title: string; body: string; assigned: string }> = [ - { id: config.otpBodyId, title: 'کد تایید ورود و ثبت‌نام (OTP)', body: 'کد ورود به کانینا: {0}', assigned: 'otp' }, - { id: config.orderBodyId, title: 'تایید و ثبت فاکتور سفارش', body: 'سفارش شما به شماره {0} با مبلغ {1} ثبت گردید.', assigned: 'order' }, - { id: config.shippingBodyId, title: 'ارسال کد رهگیری پستی', body: 'مرسوله سفارش {0} با کد رهگیری پستی {1} ارسال شد.', assigned: 'shipping' }, - { id: config.b2bBodyId, title: 'اطلاع‌رسانی درخواست B2B', body: 'همکار گرامی {0} درخواست شما دریافت شد.', assigned: 'b2b' }, + const defaultConfigs: Array<{ + id: number; + title: string; + body: string; + assigned: string; + }> = [ + { + id: config.otpBodyId, + title: 'کد تایید ورود و ثبت‌نام (OTP)', + body: 'کد ورود به کانینا: {0}', + assigned: 'otp', + }, + { + id: config.orderBodyId, + title: 'تایید و ثبت فاکتور سفارش', + body: 'سفارش شما به شماره {0} با مبلغ {1} ثبت گردید.', + assigned: 'order', + }, + { + id: config.shippingBodyId, + title: 'ارسال کد رهگیری پستی', + body: 'مرسوله سفارش {0} با کد رهگیری پستی {1} ارسال شد.', + assigned: 'shipping', + }, + { + id: config.b2bBodyId, + title: 'اطلاع‌رسانی درخواست B2B', + body: 'همکار گرامی {0} درخواست شما دریافت شد.', + assigned: 'b2b', + }, ]; for (const d of defaultConfigs) { @@ -304,7 +376,7 @@ export class SmsService { } for (const lp of localPatterns) { - if (lp.id) map.set(lp.id, { ...lp }); + if (lp && lp.id) map.set(lp.id, { ...lp }); } for (const rp of remotePatterns) { @@ -332,7 +404,11 @@ export class SmsService { /** * Add a new pattern to MeliPayamak */ - async addPattern(title: string, body: string, blackListId: number = 0): Promise<{ success: boolean; bodyId?: number; message: string }> { + async addPattern( + title: string, + body: string, + blackListId: number = 0, + ): Promise<{ success: boolean; bodyId?: number; message: string }> { const config = await this.getSmsConfig(); if (!config.username || !config.password) { @@ -351,7 +427,8 @@ export class SmsService { blackListId, }); - const match = rawXml.match(/(-?\d+)<\/int>/i) || rawXml.match(/>(-?\d+)(-?\d+)<\/int>/i) || rawXml.match(/>(-?\d+) 0) { @@ -369,13 +446,23 @@ export class SmsService { message: `الگو با موفقیت ثبت شد و شناسه اختصاصی ${code} دریافت گردید. (وضعیت: در انتظار تایید ناظر)`, }; } else if (code === 0) { - return { success: false, message: 'نام کاربری یا کلمه عبور ملی پیامک اشتباه است.' }; + return { + success: false, + message: 'نام کاربری یا کلمه عبور ملی پیامک اشتباه است.', + }; } else if (code === -2) { - return { success: false, message: 'شناسه لیست سیاه ویژه اشتباه است.' }; + return { + success: false, + message: 'شناسه لیست سیاه ویژه اشتباه است.', + }; } else { - return { success: false, message: `خطا در ثبت پترن با کد پاسخ: ${code}` }; + return { + success: false, + message: `خطا در ثبت پترن با کد پاسخ: ${code}`, + }; } - } catch (err: any) { + } catch (err: unknown) { + const msg = err instanceof Error ? err.message : String(err); const generatedId = Math.floor(500000 + Math.random() * 90000); await this.saveLocalPattern({ id: generatedId, @@ -388,7 +475,7 @@ export class SmsService { return { success: true, bodyId: generatedId, - message: `الگو به صورت محلی با شناسه موقت ${generatedId} ذخیره شد (${err.message}).`, + message: `الگو به صورت محلی با شناسه موقت ${generatedId} ذخیره شد (${msg}).`, }; } } @@ -396,7 +483,10 @@ export class SmsService { /** * Edit an existing pattern in MeliPayamak */ - async editPattern(bodyId: number, body: string): Promise<{ success: boolean; message: string }> { + async editPattern( + bodyId: number, + body: string, + ): Promise<{ success: boolean; message: string }> { const config = await this.getSmsConfig(); if (!config.username || !config.password) { @@ -414,29 +504,36 @@ export class SmsService { body, }); - const match = rawXml.match(/(-?\d+)<\/int>/i) || rawXml.match(/>(-?\d+)(-?\d+)<\/int>/i) || rawXml.match(/>(-?\d+) p.id !== pattern.id)]; await this.prisma.setting.upsert({ where: { key: 'sms_patterns_config' }, - update: { category: 'sms_patterns', value: updated as any }, - create: { key: 'sms_patterns_config', category: 'sms_patterns', value: updated as any }, + update: { + category: 'sms_patterns', + value: updated as unknown as Prisma.InputJsonValue, + }, + create: { + key: 'sms_patterns_config', + category: 'sms_patterns', + value: updated as unknown as Prisma.InputJsonValue, + }, }); - } catch (err: any) { - this.logger.error(`Failed to save local pattern: ${err.message}`); + } catch (err: unknown) { + const msg = err instanceof Error ? err.message : String(err); + this.logger.error(`Failed to save local pattern: ${msg}`); } } @@ -464,16 +571,35 @@ export class SmsService { const setting = await this.prisma.setting.findFirst({ where: { category: 'sms_patterns' }, }); - const list: MeliPayamakPattern[] = (setting?.value as any) || []; - const updated = list.map((p) => (p.id === bodyId ? { ...p, body: newBody, status: 0, statusText: 'در انتظار تایید' } : p)); + const list: MeliPayamakPattern[] = Array.isArray(setting?.value) + ? (setting.value as unknown as MeliPayamakPattern[]) + : []; + const updated = list.map((p) => + p.id === bodyId + ? { + ...p, + body: newBody, + status: 0, + statusText: 'در انتظار تایید', + } + : p, + ); await this.prisma.setting.upsert({ where: { key: 'sms_patterns_config' }, - update: { category: 'sms_patterns', value: updated as any }, - create: { key: 'sms_patterns_config', category: 'sms_patterns', value: updated as any }, + update: { + category: 'sms_patterns', + value: updated as unknown as Prisma.InputJsonValue, + }, + create: { + key: 'sms_patterns_config', + category: 'sms_patterns', + value: updated as unknown as Prisma.InputJsonValue, + }, }); - } catch (err: any) { - this.logger.error(`Failed to update local pattern: ${err.message}`); + } catch (err: unknown) { + const msg = err instanceof Error ? err.message : String(err); + this.logger.error(`Failed to update local pattern: ${msg}`); } } @@ -531,64 +657,73 @@ export class SmsService { }, (res) => { let data = ''; - res.on('data', (chunk) => (data += chunk)); - res.on('end', async () => { - try { - const json = JSON.parse(data) as MeliPayamakResponse; - const val = json.Value ?? 0; - if (json && (val > 15 || json.RetStatus === 1)) { - this.logger.log( - `[SMS Sent] Pattern SMS ${options.bodyId} dispatched to ${options.to} (RecId: ${val})`, - ); - await this.recordLog({ - receptor: options.to, - type: msgType, - patternId: options.bodyId, - args: options.args, - status: 'SUCCESS', - recId: String(val), - }); - resolve(true); - } else { - const errMsg = `خطای درگاه ملی پیامک با کد بازگشتی: ${val}`; - this.logger.error(`[SMS Error] Failed sending to ${options.to}. Code: ${val}`); + res.on('data', (chunk: Buffer | string) => (data += String(chunk))); + res.on('end', () => { + void (async () => { + try { + const json = JSON.parse(data) as MeliPayamakResponse; + const val = json.Value ?? 0; + if (json && (val > 15 || json.RetStatus === 1)) { + this.logger.log( + `[SMS Sent] Pattern SMS ${options.bodyId} dispatched to ${options.to} (RecId: ${val})`, + ); + await this.recordLog({ + receptor: options.to, + type: msgType, + patternId: options.bodyId, + args: options.args, + status: 'SUCCESS', + recId: String(val), + }); + resolve(true); + } else { + const errMsg = `خطای درگاه ملی پیامک با کد بازگشتی: ${val}`; + this.logger.error( + `[SMS Error] Failed sending to ${options.to}. Code: ${val}`, + ); + await this.recordLog({ + receptor: options.to, + type: msgType, + patternId: options.bodyId, + args: options.args, + status: 'FAILED', + recId: String(val), + errorMessage: errMsg, + }); + resolve(false); + } + } catch (err: unknown) { + const msg = err instanceof Error ? err.message : String(err); await this.recordLog({ receptor: options.to, type: msgType, patternId: options.bodyId, args: options.args, status: 'FAILED', - recId: String(val), - errorMessage: errMsg, + errorMessage: `خطای پارس پاسخ سرور: ${data || msg}`, }); resolve(false); } - } catch (err: any) { - await this.recordLog({ - receptor: options.to, - type: msgType, - patternId: options.bodyId, - args: options.args, - status: 'FAILED', - errorMessage: `خطای پارس پاسخ سرور: ${data || err.message}`, - }); - resolve(false); - } + })(); }); }, ); - req.on('error', async (err) => { - this.logger.error(`[SMS Exception] MeliPayamak HTTP Error: ${err.message}`); - await this.recordLog({ - receptor: options.to, - type: msgType, - patternId: options.bodyId, - args: options.args, - status: 'FAILED', - errorMessage: `خطای شبکه: ${err.message}`, - }); - resolve(false); + req.on('error', (err: Error) => { + void (async () => { + this.logger.error( + `[SMS Exception] MeliPayamak HTTP Error: ${err.message}`, + ); + await this.recordLog({ + receptor: options.to, + type: msgType, + patternId: options.bodyId, + args: options.args, + status: 'FAILED', + errorMessage: `خطای شبکه: ${err.message}`, + }); + resolve(false); + })(); }); req.write(payload); @@ -599,7 +734,15 @@ export class SmsService { /** * Test SMS Dispatch from Admin Panel */ - async testSms(targetPhone: string, testPatternId?: number, testArgs?: string[]): Promise<{ success: boolean; message: string; rawResponse?: any }> { + async testSms( + targetPhone: string, + testPatternId?: number, + testArgs?: string[], + ): Promise<{ + success: boolean; + message: string; + rawResponse?: MeliPayamakResponse; + }> { const config = await this.getSmsConfig(); if (!config.username || !config.password) { @@ -638,69 +781,74 @@ export class SmsService { }, (res) => { let data = ''; - res.on('data', (chunk) => (data += chunk)); - res.on('end', async () => { - try { - const json = JSON.parse(data) as MeliPayamakResponse; - const val = json.Value ?? 0; - if (json && (val > 15 || json.RetStatus === 1)) { - await this.recordLog({ - receptor: targetPhone, - type: 'TEST', - patternId: bodyId, - args, - status: 'SUCCESS', - recId: String(val), - }); - resolve({ - success: true, - message: `پیامک تستی پترن با موفقیت ارسال شد (شناسه پیگیری ملی پیامک: ${val})`, - rawResponse: json, - }); - } else { - const errMsg = `خطای درگاه ملی پیامک: کد پاسخ بازگشتی ${val}`; + res.on('data', (chunk: Buffer | string) => (data += String(chunk))); + res.on('end', () => { + void (async () => { + try { + const json = JSON.parse(data) as MeliPayamakResponse; + const val = json.Value ?? 0; + if (json && (val > 15 || json.RetStatus === 1)) { + await this.recordLog({ + receptor: targetPhone, + type: 'TEST', + patternId: bodyId, + args, + status: 'SUCCESS', + recId: String(val), + }); + resolve({ + success: true, + message: `پیامک تستی پترن با موفقیت ارسال شد (شناسه پیگیری ملی پیامک: ${val})`, + rawResponse: json, + }); + } else { + const errMsg = `خطای درگاه ملی پیامک: کد پاسخ بازگشتی ${val}`; + await this.recordLog({ + receptor: targetPhone, + type: 'TEST', + patternId: bodyId, + args, + status: 'FAILED', + recId: String(val), + errorMessage: errMsg, + }); + resolve({ + success: false, + message: errMsg, + rawResponse: json, + }); + } + } catch (err: unknown) { + const msg = err instanceof Error ? err.message : String(err); + const errMsg = `پاسخ نامعتبر از سرور ملی پیامک: ${data || msg}`; await this.recordLog({ receptor: targetPhone, type: 'TEST', patternId: bodyId, args, status: 'FAILED', - recId: String(val), errorMessage: errMsg, }); - resolve({ - success: false, - message: errMsg, - rawResponse: json, - }); + resolve({ success: false, message: errMsg }); } - } catch (err: any) { - const errMsg = `پاسخ نامعتبر از سرور ملی پیامک: ${data || err.message}`; - await this.recordLog({ - receptor: targetPhone, - type: 'TEST', - patternId: bodyId, - args, - status: 'FAILED', - errorMessage: errMsg, - }); - resolve({ success: false, message: errMsg }); - } + })(); }); }, ); - req.on('error', async (err) => { - const errMsg = `خطای برقراری ارتباط با وب‌سرویس ملی پیامک: ${err.message}`; - await this.recordLog({ - receptor: targetPhone, - type: 'TEST', - patternId: bodyId, - args, - status: 'FAILED', - errorMessage: errMsg, - }); - resolve({ success: false, message: errMsg }); + req.on('error', (err: Error) => { + void (async () => { + const errMsg = `خطای برقراری ارتباط با وب‌سرویس ملی پیامک: ${err.message}`; + await this.recordLog({ + receptor: targetPhone, + type: 'TEST', + patternId: bodyId, + args, + status: 'FAILED', + errorMessage: errMsg, + }); + resolve({ success: false, message: errMsg }); + })(); }); req.write(payload); diff --git a/backend/src/payment/payment.controller.ts b/backend/src/payment/payment.controller.ts index 1994c4a..9d2fdd6 100644 --- a/backend/src/payment/payment.controller.ts +++ b/backend/src/payment/payment.controller.ts @@ -23,7 +23,6 @@ import { ApiTags, ApiOperation, ApiBearerAuth, - ApiResponse, ApiOkResponse, ApiBadRequestResponse, } from '@nestjs/swagger'; @@ -52,7 +51,9 @@ export class PaymentController { }, }, }) - @ApiBadRequestResponse({ description: 'خطا در ایجاد تراکنش یا نامعتبر بودن سفارش' }) + @ApiBadRequestResponse({ + description: 'خطا در ایجاد تراکنش یا نامعتبر بودن سفارش', + }) async initiateOrderPayment( @Req() req: { user: { id: string } }, @Body() body: InitiatePaymentDto, @@ -91,7 +92,9 @@ export class PaymentController { } @Get('zibal/callback') - @ApiOperation({ summary: 'دریافت کال‌بک بازگشت از درگاه زیبال و تایید تراکنش' }) + @ApiOperation({ + summary: 'دریافت کال‌بک بازگشت از درگاه زیبال و تایید تراکنش', + }) async handleZibalCallback( @Query() query: ZibalCallbackQueryDto, @Res() res: Response, @@ -130,9 +133,10 @@ export class PaymentController { }); return res.redirect(`${frontendUrl}/payment/verify?${params.toString()}`); - } catch (err: any) { + } catch (err: unknown) { + const msg = err instanceof Error ? err.message : 'خطا در پردازش پرداخت'; return res.redirect( - `${frontendUrl}/payment/verify?success=0&trackId=${trackId}&message=${encodeURIComponent(err.message || 'خطا در پردازش پرداخت')}`, + `${frontendUrl}/payment/verify?success=0&trackId=${trackId}&message=${encodeURIComponent(msg)}`, ); } } @@ -149,7 +153,9 @@ export class PaymentController { const orderId = body.orderId; if (!trackId) { - return res.status(HttpStatus.BAD_REQUEST).json({ success: false, message: 'trackId is required' }); + return res + .status(HttpStatus.BAD_REQUEST) + .json({ success: false, message: 'trackId is required' }); } const result = await this.paymentService.verifyAndProcess( diff --git a/backend/src/payment/payment.service.ts b/backend/src/payment/payment.service.ts index 999333e..fa3c652 100644 --- a/backend/src/payment/payment.service.ts +++ b/backend/src/payment/payment.service.ts @@ -46,7 +46,9 @@ export class PaymentService { const amountRials = Math.round(amountTomans * 10); if (amountRials < 1000) { - throw new BadRequestException('مبلغ سفارش کمتر از حداقل مجاز درگاه بانکی (۱,۰۰۰ ریال) است'); + throw new BadRequestException( + 'مبلغ سفارش کمتر از حداقل مجاز درگاه بانکی (۱,۰۰۰ ریال) است', + ); } const frontendUrl = await this.zibalService.getFrontendUrl(); @@ -111,9 +113,11 @@ export class PaymentService { orderId: order.id, amount: amountTomans, }; - } catch (err: any) { - this.logger.error(`Error requesting payment from Zibal: ${err.message}`, err.stack); - throw new BadRequestException(err.message || 'خطا در اتصال به درگاه پرداخت'); + } catch (err: unknown) { + const msg = err instanceof Error ? err.message : String(err); + const stack = err instanceof Error ? err.stack : undefined; + this.logger.error(`Error requesting payment from Zibal: ${msg}`, stack); + throw new BadRequestException(msg || 'خطا در اتصال به درگاه پرداخت'); } } @@ -189,9 +193,10 @@ export class PaymentService { paymentUrl: this.zibalService.getStartUrl(trackId), amount: amountTomans, }; - } catch (err: any) { - this.logger.error(`Error requesting wallet topup from Zibal: ${err.message}`); - throw new BadRequestException(err.message || 'خطا در ارتباط با درگاه بانکی'); + } catch (err: unknown) { + const msg = err instanceof Error ? err.message : String(err); + this.logger.error(`Error requesting wallet topup from Zibal: ${msg}`); + throw new BadRequestException(msg || 'خطا در ارتباط با درگاه بانکی'); } } @@ -226,7 +231,10 @@ export class PaymentService { orderBy: { createdAt: 'desc' }, include: { order: { - include: { user: true, orderItems: { include: { product: true } } }, + include: { + user: true, + orderItems: { include: { product: true } }, + }, }, user: true, }, @@ -255,7 +263,9 @@ export class PaymentService { // If user cancelled or Zibal signaled failure at the gate if (successParam === '0' || statusParam === '3') { - const statusMessage = this.zibalService.getStatusMessage(statusParam || 3); + const statusMessage = this.zibalService.getStatusMessage( + statusParam || 3, + ); await this.prisma.paymentTransaction.update({ where: { id: transaction.id }, data: { @@ -301,9 +311,13 @@ export class PaymentService { } // SUCCESSFUL PAYMENT! - const refNumber = verifyRes.refNumber ? String(verifyRes.refNumber) : undefined; + const refNumber = verifyRes.refNumber + ? String(verifyRes.refNumber) + : undefined; const cardNumber = verifyRes.cardNumber || undefined; - const paidDate = verifyRes.paidAt ? new Date(verifyRes.paidAt) : new Date(); + const paidDate = verifyRes.paidAt + ? new Date(verifyRes.paidAt) + : new Date(); await this.prisma.$transaction(async (tx) => { // 1. Mark transaction as VERIFIED @@ -330,7 +344,10 @@ export class PaymentService { }); // If charity donation was made, update user's total charity - if (transaction.order && Number(transaction.order.charityDonation) > 0) { + if ( + transaction.order && + Number(transaction.order.charityDonation) > 0 + ) { await tx.user.update({ where: { id: transaction.userId }, data: { @@ -369,8 +386,11 @@ export class PaymentService { // Send SMS notification if order payment if (transaction.type === 'ORDER' && transaction.order?.user?.mobile) { const mobile = transaction.order.user.mobile; - const trackingNum = transaction.order.trackingNumber || transaction.order.id; - const formattedAmount = Number(transaction.amount).toLocaleString('fa-IR'); + const trackingNum = + transaction.order.trackingNumber || transaction.order.id; + const formattedAmount = Number(transaction.amount).toLocaleString( + 'fa-IR', + ); this.smsService .sendOrderConfirmation(mobile, trackingNum, formattedAmount) @@ -390,13 +410,15 @@ export class PaymentService { type: transaction.type, message: 'پرداخت با موفقیت انجام شد', }; - } catch (err: any) { - this.logger.error(`Error during verify: ${err.message}`, err.stack); + } catch (err: unknown) { + const msg = err instanceof Error ? err.message : String(err); + const stack = err instanceof Error ? err.stack : undefined; + this.logger.error(`Error during verify: ${msg}`, stack); return { success: false, status: 'ERROR', trackId, - message: err.message || 'خطا در فرایند تایید تراکنش', + message: msg || 'خطا در فرایند تایید تراکنش', orderId: transaction.orderId, }; } diff --git a/backend/src/payment/zibal.service.ts b/backend/src/payment/zibal.service.ts index 0172c73..5dc32e0 100644 --- a/backend/src/payment/zibal.service.ts +++ b/backend/src/payment/zibal.service.ts @@ -115,8 +115,12 @@ export class ZibalService { if (!response.ok) { const errorText = await response.text(); - this.logger.error(`Zibal request HTTP error ${response.status}: ${errorText}`); - throw new Error(`خطا در اتصال به درگاه زیبال: کد وضعیت ${response.status}`); + this.logger.error( + `Zibal request HTTP error ${response.status}: ${errorText}`, + ); + throw new Error( + `خطا در اتصال به درگاه زیبال: کد وضعیت ${response.status}`, + ); } const data = (await response.json()) as ZibalRequestResponse; @@ -142,7 +146,9 @@ export class ZibalService { trackId: String(trackId), }; - this.logger.log(`Verifying payment on Zibal for trackId=${trackId}, merchant=${merchant}`); + this.logger.log( + `Verifying payment on Zibal for trackId=${trackId}, merchant=${merchant}`, + ); const response = await fetch(`${this.baseUrl}/v1/verify`, { method: 'POST', @@ -154,8 +160,12 @@ export class ZibalService { if (!response.ok) { const errorText = await response.text(); - this.logger.error(`Zibal verify HTTP error ${response.status}: ${errorText}`); - throw new Error(`خطا در تایید تراکنش درگاه زیبال: کد وضعیت ${response.status}`); + this.logger.error( + `Zibal verify HTTP error ${response.status}: ${errorText}`, + ); + throw new Error( + `خطا در تایید تراکنش درگاه زیبال: کد وضعیت ${response.status}`, + ); } const data = (await response.json()) as ZibalVerifyResponse; @@ -166,7 +176,9 @@ export class ZibalService { /** * 4. Inquiry Payment (استعلام وضعیت تراکنش) */ - async inquiryPayment(trackId: string | number): Promise { + async inquiryPayment( + trackId: string | number, + ): Promise { const merchant = await this.getMerchant(); const payload = { @@ -186,8 +198,12 @@ export class ZibalService { if (!response.ok) { const errorText = await response.text(); - this.logger.error(`Zibal inquiry HTTP error ${response.status}: ${errorText}`); - throw new Error(`خطا در استعلام تراکنش زیبال: کد وضعیت ${response.status}`); + this.logger.error( + `Zibal inquiry HTTP error ${response.status}: ${errorText}`, + ); + throw new Error( + `خطا در استعلام تراکنش زیبال: کد وضعیت ${response.status}`, + ); } const data = (await response.json()) as ZibalInquiryResponse; diff --git a/backend/src/settings/settings.controller.ts b/backend/src/settings/settings.controller.ts index 5e66141..5a1ec7a 100644 --- a/backend/src/settings/settings.controller.ts +++ b/backend/src/settings/settings.controller.ts @@ -12,6 +12,7 @@ import { } from '@nestjs/common'; import { Prisma } from '@prisma/client'; import { SettingsService, ScientificTermData } from './settings.service'; +import { SmsLogQuery } from '../common/services/sms.service'; import { JwtAuthGuard } from '../auth/jwt-auth.guard'; import { RolesGuard } from '../common/guards/roles.guard'; import { Roles } from '../common/decorators/roles.decorator'; @@ -164,7 +165,9 @@ export class SettingsController { @Roles('Admin') @ApiBearerAuth() @Get('sms/patterns') - @ApiOperation({ summary: 'دریافت لیست تمامی پترن‌های تعریف شده در ملی پیامک' }) + @ApiOperation({ + summary: 'دریافت لیست تمامی پترن‌های تعریف شده در ملی پیامک', + }) getPatterns() { return this.settingsService.getPatterns(); } @@ -186,11 +189,10 @@ export class SettingsController { @Roles('Admin') @ApiBearerAuth() @Put('sms/patterns/:bodyId') - @ApiOperation({ summary: 'ویرایش الگوی رد شده یا در حال ویرایش در ملی پیامک' }) - editPattern( - @Param('bodyId') bodyId: string, - @Body('body') body: string, - ) { + @ApiOperation({ + summary: 'ویرایش الگوی رد شده یا در حال ویرایش در ملی پیامک', + }) + editPattern(@Param('bodyId') bodyId: string, @Body('body') body: string) { return this.settingsService.editPattern(Number(bodyId), body); } @@ -199,8 +201,10 @@ export class SettingsController { @Roles('Admin') @ApiBearerAuth() @Get('sms/logs') - @ApiOperation({ summary: 'دریافت گزارشات و لاگ‌های کامل پیامک‌های ارسالی با فیلتر و جستجو' }) - getSmsLogs(@Query() query: any) { + @ApiOperation({ + summary: 'دریافت گزارشات و لاگ‌های کامل پیامک‌های ارسالی با فیلتر و جستجو', + }) + getSmsLogs(@Query() query: SmsLogQuery) { return this.settingsService.getSmsLogs(query); } @@ -222,5 +226,3 @@ export class SettingsController { return this.settingsService.clearAllSmsLogs(); } } - - diff --git a/backend/src/settings/settings.service.ts b/backend/src/settings/settings.service.ts index f521cb2..bca01ac 100644 --- a/backend/src/settings/settings.service.ts +++ b/backend/src/settings/settings.service.ts @@ -1,7 +1,7 @@ import { Injectable } from '@nestjs/common'; import { Prisma } from '@prisma/client'; import { PrismaService } from '../prisma/prisma.service'; -import { SmsService } from '../common/services/sms.service'; +import { SmsService, SmsLogQuery } from '../common/services/sms.service'; export class ScientificTermData { term?: string; @@ -116,7 +116,7 @@ export class SettingsService { return this.smsService.editPattern(bodyId, body); } - async getSmsLogs(query: any) { + async getSmsLogs(query: SmsLogQuery) { return this.smsService.getSmsLogs(query); } @@ -128,4 +128,3 @@ export class SettingsService { return this.smsService.clearAllSmsLogs(); } } - diff --git a/graphify-out/.graphify_labels.json b/graphify-out/.graphify_labels.json index ea0e10c..a540c17 100644 --- a/graphify-out/.graphify_labels.json +++ b/graphify-out/.graphify_labels.json @@ -1,31 +1,31 @@ { "0": "AdminService", - "1": "pets/pets.controller.ts", + "1": "PetsController", "2": "Roles", "3": "UsersService", "4": "CmsController", - "5": ".create", - "6": "auth.controller.ts", + "5": "BannersService", + "6": "auth.service.ts", "7": "app.module.ts", "8": "CreateVideoDto", "9": "ProductService", "10": "SmartAdvisor.tsx", "11": "compilerOptions", "12": "toPersian", - "13": "Products.tsx", + "13": "pets/pets.controller.ts", "14": "ProductsService", "15": "lib/services/api.ts", "16": "devDependencies", "17": "useSettingsStore", - "18": "AppModule", + "18": "MetricsController", "19": "B2B Inquiry Controller", "20": "Category Management Controller", - "21": "auth.service.ts", + "21": "RedisService", "22": "MediaController", "23": "Ingredient Management Controller", "24": "adminRoutes.tsx", "25": "admin.module.ts", - "26": "SmsService", + "26": "api", "27": "Prescription Review Controller", "28": "Smart Advisor Controller", "29": "Testimonials Management Controller", @@ -34,7 +34,7 @@ "32": "useCartStore", "33": "ZibalService", "34": "main.ts", - "35": "ContactService", + "35": "payment.controller.ts", "36": "Backend TypeScript Config", "37": "App TypeScript Config", "38": "ConfirmModal.tsx", @@ -61,9 +61,9 @@ "59": "PrismaService", "60": "Jest Testing Config", "61": "PaginationDto", - "62": "BlogsController", + "62": "WikiController", "63": "FE-001", - "64": "WikiService", + "64": "PetsService", "65": "rules/graphify.md", "66": "App Health Controller", "67": "dependencies", @@ -73,10 +73,10 @@ "71": "Analytics and Report Charts", "72": "Task Orchestration Scripts", "73": "Backend Package Config", - "74": "CreateOrderDto", + "74": "CreateHealthLogDto", "75": "React Error Boundary", "76": "Application Package Config", - "77": "WikiController", + "77": ".findAll", "78": "Error and Not Found Pages", "79": "VPN Utility Scripts", "80": "NestJS CLI Config", @@ -102,7 +102,7 @@ "100": "Network Status Banner", "101": "Docker Deployment Scripts", "102": "DB-001", - "103": ".adminLogin", + "103": "CreateReminderDto", "104": "Database Migration Scripts", "105": "Scientific Terms Schema", "106": "Blog Data Seeding", @@ -116,7 +116,7 @@ "114": "Manifest Data Generation", "115": "Honest Manifest Synchronization", "116": "Manifest Entry Synchronization", - "117": "AuthController", + "117": "Videos.tsx", "118": "TS-001", "119": "TEST-001", "120": "@tailwindcss/postcss", @@ -129,14 +129,14 @@ "127": "DEVOPS-001", "128": "DOC-001", "129": "What You Must Do When Invoked", - "130": "JwtAuthGuard", + "130": "RolesGuard", "131": "راهنمای تست سیستم (Software Testing)", "132": "Role & Core Objective", "133": "Required Review Group Closures", "134": "Operational Rules & Boundaries", "135": "Operational Rules & Boundaries", "136": "🏢 AI Software Agency — Master Orchestration Protocol v3", - "137": "BlogsService", + "137": "@nestjs/cli", "138": "Operational Rules & Boundaries", "139": "Operational Rules & Boundaries", "140": "Bcrypt Type Definitions", @@ -213,7 +213,7 @@ "211": "Phase 2 Final Quality Gate Summary Report", "212": "Task Modifications Log", "213": "Install", - "214": ".findAll", + "214": "BlogsController", "215": "System Discovery", "216": "Product Requirement Document (PRD)", "217": "Baseline Command Plan & Reconciled Command History", @@ -264,15 +264,7 @@ "262": "application/CLAUDE.md", "263": "application/public/fonts/sahel-font-v3.4.0/CHANGELOG.md", "264": "tailwindcss", - "265": "AuthService", - "266": "RegisterDto", - "267": "GetProductsDto", - "268": "WholesaleApplyDto", - "269": "AdminLoginDto", - "270": "VerifyOtpDto", - "271": "App.tsx", - "272": "ValidateCouponDto", - "273": "AGENTS.md", - "274": "eslint-config-prettier", - "275": "globals" + "265": "typescript-eslint", + "268": "wholesale.controller.ts", + "273": "AGENTS.md" } diff --git a/graphify-out/.graphify_labels.json.sig b/graphify-out/.graphify_labels.json.sig index d08af29..d10da75 100644 --- a/graphify-out/.graphify_labels.json.sig +++ b/graphify-out/.graphify_labels.json.sig @@ -1 +1 @@ -{"0": "f5b1aa05cb305be9", "1": "edf7a5c21b28690d", "2": "4ec71b4a1e3fe162", "3": "11f8ed43cec13257", "4": "f34c872571e8a774", "5": "00dbaa2a61830c53", "6": "e6b3cdbd52c87bfc", "7": "b7d39a423084111b", "8": "1077fee6b5510591", "9": "24a1d952082d507a", "10": "17d3c105da90b4ed", "11": "7bf5b79d43d8adb6", "12": "2e74386825b1fbfe", "13": "e174d61c36948c7a", "14": "460622d91fbc8b30", "15": "4594bb1096f5da3c", "16": "f353b6059914801a", "17": "404a7df7025e3dcd", "18": "2428f8c522beb17a", "19": "4c59d1cd2ef8804b", "20": "f38c905c9af9edc0", "21": "9bf2de85f71d3843", "22": "a2843cfb0b7e7d68", "23": "65e41c1c22dcd058", "24": "1a150e49817ab174", "25": "ca5218f47ddb8919", "26": "2317310dbb8a7b00", "27": "73df605d6eec20d9", "28": "cb17af4eb831480f", "29": "5a6d4157fb91d937", "30": "cd268dc1b604e871", "31": "37a08c3a89b38a50", "32": "21393d756e6cc9c6", "33": "82e9a1de745d836b", "34": "6198197b3da188d8", "35": "93d54dd865cba4db", "36": "f7d0b5a4835ae7b1", "37": "55ff2f267bd546b2", "38": "0cd269afc079928e", "39": "1f914a584cbde781", "40": "fd6d145000147563", "41": "3b1909d07e8fb962", "42": "5499104e9ca4fdad", "43": "b1c3283bd55a8fe9", "44": "d9e74b032c5b8440", "45": "62430df45afa65b5", "46": "95526a5655b981bc", "47": "b1fb8b1d0bcaa7fd", "48": "4ece6985263357c4", "49": "1489b016e8e66c98", "50": "656f816eb51f2ab1", "51": "bf5a253cc5340107", "52": "71d2ce6fb684bc0e", "53": "8ea0eab3d1fe8e62", "54": "f82008d7d17c733f", "55": "4eda46a5b0695ef6", "56": "db04321dca52a9ad", "57": "c2ee2f9838df873c", "58": "e2bda4d8806cbe01", "59": "70e9b52aa8fee8f2", "60": "e036dbd1de0f8b38", "61": "14761019df71fdf1", "62": "d308b8d47bb1d1ef", "63": "90b79d6027d60d30", "64": "1ee682d3178edd99", "65": "4654167fd211d027", "66": "c6b57d78299a27b3", "67": "f0f56796aaebb4f5", "68": "1464363354548dce", "69": "9409b3b8a334f51d", "70": "ac95a9f152e3d1c4", "71": "989c014f76b74793", "72": "17ecb7325285cf7a", "73": "4487fd85ddc13c93", "74": "b51ff1009d405234", "75": "167643bcbbc26244", "76": "dcffd9ad7a1f7df6", "77": "f17c5fbca8a8e41e", "78": "48f898ce95c8e90c", "79": "a2fe690317aef2ee", "80": "fa2d7dcf52348095", "81": "b92a68cf0d823560", "82": "6bd6f2633370820c", "83": "1d80b74f885d6716", "84": "f4d1e3ec22fbfe3d", "85": "e9728eefddbaed5b", "86": "85cd9ca1246dc437", "87": "3e93071fc4a80e95", "88": "35d3a2679371e9a4", "89": "b8f35a499b36a57a", "90": "2d009974f4217730", "91": "00d9ddfeee7b4c47", "92": "6ddbf62ac93920e1", "93": "d0fc47de7f8bcf41", "94": "867babdd40f0c3fc", "95": "94971d590fc06983", "96": "00d275127a7e435e", "97": "2942a9d30dae4a29", "98": "3e21e2fb50e12670", "99": "17ca8d640a75a60d", "100": "6cc089e9f052ba3f", "101": "6256958a9b817133", "102": "7664e56213a29331", "103": "a8b2b957659905e7", "104": "7c65a1f3c4f1b858", "105": "67b5cef27d55952d", "106": "10b2996179aaaf2e", "107": "39031f751fb2d42f", "108": "1e833ee596b5ca23", "109": "2434b1a28b16557f", "110": "cb3fe87c920b0cb3", "111": "ddb9c95db6575999", "112": "e2250667e3a77089", "113": "9069d5dda9013eee", "114": "0077975cffee54dc", "115": "e6fcd0aec85fac92", "116": "9590124db1601a96", "117": "bb438de4556ce039", "118": "942c4f9928c60a45", "119": "0614b98d9013b5f5", "120": "5a4d1c1ef8bed9bb", "121": "4ab8ffab1d51ca61", "122": "3be2a9ccdc6668cc", "123": "3fb0bef25bab507e", "124": "bd3010d97e467f52", "125": "703a4a9860d7ed16", "126": "85fd4a84b5393d0e", "127": "53ff49b3d54f0fba", "128": "2153ddcd7477dfb7", "129": "7abb5bc6a0e4f65f", "130": "46531efd420762ae", "131": "1c9a1f4c72613346", "132": "0f62727f3b4907c0", "133": "31a5a53f1fe77e46", "134": "69d0f8b228227690", "135": "22456307ff273d80", "136": "ba7bc17581366c9a", "137": "6058c28d2bab04d5", "138": "0727bb53199085fc", "139": "91393683c97d1773", "140": "ecfb692b6f7a1014", "141": "05f1ad1f29e435ff", "142": "bfcc583da029935c", "143": "e66a941c60456b44", "144": "a7cf02106e992a23", "145": "88604333ff6aa860", "146": "8365b02889fa6cfc", "147": "38a03e32ab28113e", "148": "9fd8a4abf0eb00a3", "149": "fe8ad8aaa5b6f652", "150": "be78134816511eaf", "151": "4737624cd139d117", "152": "5fcab665dcd75a7d", "153": "33b1870821fb012a", "154": "10992f7331cbdeba", "155": "cef806733796b489", "156": "76578e90353475ed", "157": "7dd5c61562c827a8", "158": "57931ddf408ceeeb", "159": "d64c6d160a7faed4", "160": "e6273a4f9b65952b", "161": "400d2883ce278be7", "162": "6e3ce4714f76f2f9", "163": "de2233c73c628824", "164": "a144dcdc61af17a5", "165": "672ba0ee4d6993c2", "166": "60a2d42e0373376c", "167": "934bee98555c5f5b", "168": "3323cd7407922799", "169": "9050a3ebe80326e5", "170": "10d7c8f3898b68e5", "171": "2ce5bbc30db985b5", "172": "2a963843e9a8e153", "173": "28537a0c0fbd566f", "174": "3659ed0b62c213c5", "175": "912cf03978233ef7", "176": "8176a164778526f9", "177": "70497658d0e0cea6", "178": "c4abf0eb38ef740d", "179": "75efc6457f7fce22", "180": "be62daa7d5bc336a", "181": "47c3e1a9d4bb7e67", "182": "82ff39c105ae3090", "183": "54f53e5e0cc8c385", "184": "821696b1ff49347b", "185": "25a6695f5783d2be", "186": "a74925b45b279d6f", "187": "f7a706f5fcb260c3", "188": "6e7b82d0387bf16d", "189": "2eef246ebb269184", "190": "f5edd0761d024ff0", "191": "b4fbbd4b7a13369e", "192": "a13f9628796dc16a", "193": "3c1d9844d072bd2a", "194": "b3c5433df880f335", "195": "ac7cb5ec7d5c0802", "196": "622f83f2eb300a25", "197": "6d16ccde1291c9d4", "198": "d228746e85ead3af", "199": "b55ba9125ffb5729", "200": "5f50a360f18a880b", "201": "db70db08c00162df", "202": "9a1080686fc7c39b", "203": "77fd76193df9f573", "204": "9141a0ede9461fd5", "205": "3ceda88239910d9a", "206": "a7299f20633c0236", "207": "54decf0dc3db231e", "208": "7f405315686459b9", "209": "44c7924c829cc215", "210": "39ad95ace95a3106", "211": "07d37aeefbe50e21", "212": "70b58e32c2890fdd", "213": "f2c7afb0c277c4b7", "214": "36ce34eb1840b3b7", "215": "c7ddffce8605b65b", "216": "5910eeefe2f97a20", "217": "66efafa1e86d8081", "218": "e30004421d79ffeb", "219": "cd66a5f43cd3407d", "220": "8375a4fbf0573a52", "221": "edb079558c6f3d59", "222": "3cd15de82f23093a", "223": "7a77349497fcdf37", "224": "6114ccb7b9036e33", "225": "f3d92800d756dd79", "226": "2aa85a497fd142d7", "227": "4ac5f9965007617d", "228": "cff999497d56b512", "229": "06b38ffa6f58195d", "230": "ee705c178d6958bb", "231": "6747ecf936cb0400", "232": "ebc0087e3400009c", "233": "162b36508e5879f3", "234": "ab06e01c9caa9f90", "235": "204b3a83ef62f360", "236": "00739b5480732bdc", "237": "0bd7ed52b69464bf", "238": "578638c4278d00c6", "239": "c556ac339be4aba5", "240": "78aa95566e86b57f", "241": "fc778d7a22e550eb", "242": "8d1aad761b4c839d", "243": "e24cf60bcf607797", "244": "bbcea5ec9d046ac0", "245": "5eb83040a203bd16", "246": "20a2080eac259e2b", "247": "d2a7888a77082d4c", "248": "0598c15fa2a12fad", "249": "88e82bb9fffbe642", "250": "60ce4fcea460e0a6", "251": "7a7f04630a11cc2b", "252": "b1d204e97a3c45dc", "253": "0650b6a561436852", "254": "e195f425def606d0", "255": "19ac29575c50f599", "256": "a0fdc688ac30f227", "257": "bcf417101439fd9e", "258": "04d938f720c1db19", "259": "768db8a3a299f590", "260": "daf108b14eb1d2d5", "261": "a618b7b467aa2c0c", "262": "3a30dd7bf2ececaa", "263": "23c1a365d72c9b86", "264": "321732baccae846b", "265": "a51d296e611512d1", "266": "acfe5a84eaab81d7", "267": "fc622cc7acf716b6", "268": "6594364126802c01", "269": "2c92e71020d644f3", "270": "176083777cb01eb7", "271": "1de450305dd1bf58", "272": "4a0ee509eb81db2e", "273": "97ec841e4f367258", "274": "f6ddba6f531d6b96", "275": "490b465cf48c7efa"} \ No newline at end of file +{"0": "30a1c2fd9747456c", "1": "5863b59256c49e08", "2": "3d300b88f00ccf1b", "3": "8dab30332cfe7b4a", "4": "f34c872571e8a774", "5": "7478d6755ca2248a", "6": "175f6432fa736132", "7": "777b9a7c9e0f1331", "8": "de0d68774c418a39", "9": "24a1d952082d507a", "10": "17d3c105da90b4ed", "11": "7bf5b79d43d8adb6", "12": "2e74386825b1fbfe", "13": "0e290698fd1e38fc", "14": "8fb0bfac013b3325", "15": "4594bb1096f5da3c", "16": "9a39f6904a50a0d5", "17": "404a7df7025e3dcd", "18": "1a833537ef5e569c", "19": "4c59d1cd2ef8804b", "20": "f38c905c9af9edc0", "21": "e4c875487f38ca21", "22": "57bcc45ffc43d506", "23": "65e41c1c22dcd058", "24": "59c21afd1aef3cf8", "25": "76700bee9b0b348c", "26": "7b4c63b90462f277", "27": "73df605d6eec20d9", "28": "cb17af4eb831480f", "29": "5a6d4157fb91d937", "30": "74f27996c9783fc6", "31": "0b1ea141b3d385e4", "32": "21393d756e6cc9c6", "33": "c3c095b65e9ba3ad", "34": "926b11275f3779d4", "35": "e0cf92dd562fdd2e", "36": "f7d0b5a4835ae7b1", "37": "55ff2f267bd546b2", "38": "1a4105b7ff782b16", "39": "1f914a584cbde781", "40": "fd6d145000147563", "41": "3b1909d07e8fb962", "42": "5499104e9ca4fdad", "43": "b1c3283bd55a8fe9", "44": "d9e74b032c5b8440", "45": "62430df45afa65b5", "46": "95526a5655b981bc", "47": "b1fb8b1d0bcaa7fd", "48": "4ece6985263357c4", "49": "841013681f4e6e8c", "50": "656f816eb51f2ab1", "51": "bf5a253cc5340107", "52": "71d2ce6fb684bc0e", "53": "8ea0eab3d1fe8e62", "54": "f82008d7d17c733f", "55": "4eda46a5b0695ef6", "56": "db04321dca52a9ad", "57": "c2ee2f9838df873c", "58": "e2bda4d8806cbe01", "59": "ece5386762390485", "60": "e036dbd1de0f8b38", "61": "052aa003ecf113f5", "62": "0bf61615fa50a168", "63": "90b79d6027d60d30", "64": "7a15bcf51917680d", "65": "4654167fd211d027", "66": "c6b57d78299a27b3", "67": "f0f56796aaebb4f5", "68": "4cc0d8843a80fd04", "69": "9409b3b8a334f51d", "70": "ac95a9f152e3d1c4", "71": "989c014f76b74793", "72": "17ecb7325285cf7a", "73": "4487fd85ddc13c93", "74": "20ee2c8dca771e1b", "75": "167643bcbbc26244", "76": "dcffd9ad7a1f7df6", "77": "96d87080e1586a3d", "78": "48f898ce95c8e90c", "79": "a2fe690317aef2ee", "80": "fa2d7dcf52348095", "81": "b92a68cf0d823560", "82": "6bd6f2633370820c", "83": "1d80b74f885d6716", "84": "f4d1e3ec22fbfe3d", "85": "e9728eefddbaed5b", "86": "85cd9ca1246dc437", "87": "3e93071fc4a80e95", "88": "35d3a2679371e9a4", "89": "b8f35a499b36a57a", "90": "2d009974f4217730", "91": "00d9ddfeee7b4c47", "92": "6ddbf62ac93920e1", "93": "d0fc47de7f8bcf41", "94": "867babdd40f0c3fc", "95": "94971d590fc06983", "96": "00d275127a7e435e", "97": "2942a9d30dae4a29", "98": "3e21e2fb50e12670", "99": "17ca8d640a75a60d", "100": "6cc089e9f052ba3f", "101": "6256958a9b817133", "102": "7664e56213a29331", "103": "af64ebd98dd4a80d", "104": "7c65a1f3c4f1b858", "105": "67b5cef27d55952d", "106": "10b2996179aaaf2e", "107": "39031f751fb2d42f", "108": "1e833ee596b5ca23", "109": "2434b1a28b16557f", "110": "cb3fe87c920b0cb3", "111": "ddb9c95db6575999", "112": "e2250667e3a77089", "113": "9069d5dda9013eee", "114": "0077975cffee54dc", "115": "e6fcd0aec85fac92", "116": "9590124db1601a96", "117": "95071eae544f664e", "118": "942c4f9928c60a45", "119": "0614b98d9013b5f5", "120": "5a4d1c1ef8bed9bb", "121": "4ab8ffab1d51ca61", "122": "3be2a9ccdc6668cc", "123": "3fb0bef25bab507e", "124": "bd3010d97e467f52", "125": "703a4a9860d7ed16", "126": "85fd4a84b5393d0e", "127": "53ff49b3d54f0fba", "128": "2153ddcd7477dfb7", "129": "7abb5bc6a0e4f65f", "130": "dadd2f1ac72916bc", "131": "1c9a1f4c72613346", "132": "0f62727f3b4907c0", "133": "31a5a53f1fe77e46", "134": "69d0f8b228227690", "135": "22456307ff273d80", "136": "ba7bc17581366c9a", "137": "d7cad630fb1d1414", "138": "0727bb53199085fc", "139": "91393683c97d1773", "140": "ecfb692b6f7a1014", "141": "05f1ad1f29e435ff", "142": "bfcc583da029935c", "143": "e66a941c60456b44", "144": "a7cf02106e992a23", "145": "88604333ff6aa860", "146": "8365b02889fa6cfc", "147": "38a03e32ab28113e", "148": "9fd8a4abf0eb00a3", "149": "fe8ad8aaa5b6f652", "150": "be78134816511eaf", "151": "4737624cd139d117", "152": "5fcab665dcd75a7d", "153": "33b1870821fb012a", "154": "10992f7331cbdeba", "155": "cef806733796b489", "156": "76578e90353475ed", "157": "7dd5c61562c827a8", "158": "57931ddf408ceeeb", "159": "d64c6d160a7faed4", "160": "e6273a4f9b65952b", "161": "400d2883ce278be7", "162": "6e3ce4714f76f2f9", "163": "de2233c73c628824", "164": "a144dcdc61af17a5", "165": "672ba0ee4d6993c2", "166": "60a2d42e0373376c", "167": "934bee98555c5f5b", "168": "3323cd7407922799", "169": "9050a3ebe80326e5", "170": "10d7c8f3898b68e5", "171": "2ce5bbc30db985b5", "172": "2a963843e9a8e153", "173": "28537a0c0fbd566f", "174": "3659ed0b62c213c5", "175": "912cf03978233ef7", "176": "8176a164778526f9", "177": "70497658d0e0cea6", "178": "c4abf0eb38ef740d", "179": "75efc6457f7fce22", "180": "be62daa7d5bc336a", "181": "47c3e1a9d4bb7e67", "182": "82ff39c105ae3090", "183": "54f53e5e0cc8c385", "184": "821696b1ff49347b", "185": "25a6695f5783d2be", "186": "a74925b45b279d6f", "187": "f7a706f5fcb260c3", "188": "6e7b82d0387bf16d", "189": "2eef246ebb269184", "190": "f5edd0761d024ff0", "191": "b4fbbd4b7a13369e", "192": "a13f9628796dc16a", "193": "3c1d9844d072bd2a", "194": "b3c5433df880f335", "195": "ac7cb5ec7d5c0802", "196": "622f83f2eb300a25", "197": "6d16ccde1291c9d4", "198": "d228746e85ead3af", "199": "b55ba9125ffb5729", "200": "5f50a360f18a880b", "201": "db70db08c00162df", "202": "9a1080686fc7c39b", "203": "77fd76193df9f573", "204": "9141a0ede9461fd5", "205": "3ceda88239910d9a", "206": "a7299f20633c0236", "207": "54decf0dc3db231e", "208": "7f405315686459b9", "209": "44c7924c829cc215", "210": "39ad95ace95a3106", "211": "07d37aeefbe50e21", "212": "70b58e32c2890fdd", "213": "f2c7afb0c277c4b7", "214": "e37e0ecadc209564", "215": "c7ddffce8605b65b", "216": "5910eeefe2f97a20", "217": "66efafa1e86d8081", "218": "e30004421d79ffeb", "219": "cd66a5f43cd3407d", "220": "8375a4fbf0573a52", "221": "edb079558c6f3d59", "222": "3cd15de82f23093a", "223": "7a77349497fcdf37", "224": "6114ccb7b9036e33", "225": "f3d92800d756dd79", "226": "2aa85a497fd142d7", "227": "4ac5f9965007617d", "228": "cff999497d56b512", "229": "06b38ffa6f58195d", "230": "ee705c178d6958bb", "231": "6747ecf936cb0400", "232": "ebc0087e3400009c", "233": "162b36508e5879f3", "234": "ab06e01c9caa9f90", "235": "204b3a83ef62f360", "236": "00739b5480732bdc", "237": "0bd7ed52b69464bf", "238": "578638c4278d00c6", "239": "c556ac339be4aba5", "240": "78aa95566e86b57f", "241": "fc778d7a22e550eb", "242": "8d1aad761b4c839d", "243": "e24cf60bcf607797", "244": "bbcea5ec9d046ac0", "245": "5eb83040a203bd16", "246": "20a2080eac259e2b", "247": "d2a7888a77082d4c", "248": "0598c15fa2a12fad", "249": "88e82bb9fffbe642", "250": "60ce4fcea460e0a6", "251": "7a7f04630a11cc2b", "252": "b1d204e97a3c45dc", "253": "0650b6a561436852", "254": "e195f425def606d0", "255": "19ac29575c50f599", "256": "a0fdc688ac30f227", "257": "bcf417101439fd9e", "258": "04d938f720c1db19", "259": "768db8a3a299f590", "260": "daf108b14eb1d2d5", "261": "a618b7b467aa2c0c", "262": "3a30dd7bf2ececaa", "263": "23c1a365d72c9b86", "264": "321732baccae846b", "265": "1c69dcee9405ce47", "268": "2eedbebd00c1af6b", "273": "97ec841e4f367258"} \ No newline at end of file diff --git a/graphify-out/2026-08-16/.graphify_labels.json b/graphify-out/2026-08-16/.graphify_labels.json index a38c66f..ea0e10c 100644 --- a/graphify-out/2026-08-16/.graphify_labels.json +++ b/graphify-out/2026-08-16/.graphify_labels.json @@ -1,10 +1,10 @@ { "0": "AdminService", - "1": "Pet Management Controller", - "2": "SettingsController", + "1": "pets/pets.controller.ts", + "2": "Roles", "3": "UsersService", - "4": "CMS Content Management", - "5": "OrdersService", + "4": "CmsController", + "5": ".create", "6": "auth.controller.ts", "7": "app.module.ts", "8": "CreateVideoDto", @@ -12,7 +12,7 @@ "10": "SmartAdvisor.tsx", "11": "compilerOptions", "12": "toPersian", - "13": "Media and Blog UI Components", + "13": "Products.tsx", "14": "ProductsService", "15": "lib/services/api.ts", "16": "devDependencies", @@ -20,28 +20,28 @@ "18": "AppModule", "19": "B2B Inquiry Controller", "20": "Category Management Controller", - "21": "Banner Management Controller", - "22": "Media Upload Controller", + "21": "auth.service.ts", + "22": "MediaController", "23": "Ingredient Management Controller", - "24": "Admin Dashboard Components", + "24": "adminRoutes.tsx", "25": "admin.module.ts", - "26": "Pet DTOs and Controller", + "26": "SmsService", "27": "Prescription Review Controller", "28": "Smart Advisor Controller", "29": "Testimonials Management Controller", - "30": "Admin Sidebar and Layout", - "31": "Admin Settings Managers", + "30": "src/services/api.ts", + "31": "Spinner.tsx", "32": "useCartStore", "33": "ZibalService", "34": "main.ts", "35": "ContactService", "36": "Backend TypeScript Config", "37": "App TypeScript Config", - "38": "CMS and Media Modals", + "38": "ConfirmModal.tsx", "39": "dependencies", "40": "Node TypeScript Config", "41": "Admin Blog Controller", - "42": "WholesaleApplyDto", + "42": "WholesaleService", "43": "devDependencies", "44": "Generic CRUD Controller", "45": "seo.module.ts", @@ -63,17 +63,17 @@ "61": "PaginationDto", "62": "BlogsController", "63": "FE-001", - "64": "pagination.dto.ts", + "64": "WikiService", "65": "rules/graphify.md", "66": "App Health Controller", "67": "dependencies", - "68": "Pet Business Logic", + "68": "OrdersService", "69": "Integrity Validation Scripts", "70": "Admin Panel Package Config", "71": "Analytics and Report Charts", "72": "Task Orchestration Scripts", "73": "Backend Package Config", - "74": "Health Log DTOs", + "74": "CreateOrderDto", "75": "React Error Boundary", "76": "Application Package Config", "77": "WikiController", @@ -102,7 +102,7 @@ "100": "Network Status Banner", "101": "Docker Deployment Scripts", "102": "DB-001", - "103": "typescript-eslint", + "103": ".adminLogin", "104": "Database Migration Scripts", "105": "Scientific Terms Schema", "106": "Blog Data Seeding", @@ -116,7 +116,7 @@ "114": "Manifest Data Generation", "115": "Honest Manifest Synchronization", "116": "Manifest Entry Synchronization", - "117": "Pet Reminder DTOs", + "117": "AuthController", "118": "TS-001", "119": "TEST-001", "120": "@tailwindcss/postcss", @@ -129,14 +129,14 @@ "127": "DEVOPS-001", "128": "DOC-001", "129": "What You Must Do When Invoked", - "130": "Roles", + "130": "JwtAuthGuard", "131": "راهنمای تست سیستم (Software Testing)", "132": "Role & Core Objective", "133": "Required Review Group Closures", "134": "Operational Rules & Boundaries", "135": "Operational Rules & Boundaries", "136": "🏢 AI Software Agency — Master Orchestration Protocol v3", - "137": "NestJS CLI Tooling", + "137": "BlogsService", "138": "Operational Rules & Boundaries", "139": "Operational Rules & Boundaries", "140": "Bcrypt Type Definitions", @@ -263,5 +263,16 @@ "261": "shabnam-font-v5.0.1/CHANGELOG.md", "262": "application/CLAUDE.md", "263": "application/public/fonts/sahel-font-v3.4.0/CHANGELOG.md", - "264": "tailwindcss" + "264": "tailwindcss", + "265": "AuthService", + "266": "RegisterDto", + "267": "GetProductsDto", + "268": "WholesaleApplyDto", + "269": "AdminLoginDto", + "270": "VerifyOtpDto", + "271": "App.tsx", + "272": "ValidateCouponDto", + "273": "AGENTS.md", + "274": "eslint-config-prettier", + "275": "globals" } diff --git a/graphify-out/2026-08-16/GRAPH_REPORT.md b/graphify-out/2026-08-16/GRAPH_REPORT.md index 8d1c687..b29d1bf 100644 --- a/graphify-out/2026-08-16/GRAPH_REPORT.md +++ b/graphify-out/2026-08-16/GRAPH_REPORT.md @@ -1,26 +1,26 @@ # Graph Report - canina (2026-08-16) ## Corpus Check -- 459 files · ~667,716 words +- 461 files · ~673,005 words - Verdict: corpus is large enough that graph structure adds value. ## Summary -- 3167 nodes · 5051 edges · 265 communities (171 shown, 94 thin omitted) -- Extraction: 97% EXTRACTED · 3% INFERRED · 0% AMBIGUOUS · INFERRED: 160 edges (avg confidence: 0.79) +- 3199 nodes · 5155 edges · 276 communities (179 shown, 97 thin omitted) +- Extraction: 97% EXTRACTED · 3% INFERRED · 0% AMBIGUOUS · INFERRED: 171 edges (avg confidence: 0.79) - Token cost: 0 input · 0 output ## Graph Freshness -- Built from commit: `03900e72` +- Built from commit: `0934b4f3` - Run `git rev-parse HEAD` and compare to check if the graph is stale. - Run `graphify update .` after code changes (no API cost). ## Community Hubs (Navigation) - AdminService -- Pet Management Controller -- SettingsController +- pets/pets.controller.ts +- Roles - UsersService -- CMS Content Management -- OrdersService +- CmsController +- .create - auth.controller.ts - app.module.ts - CreateVideoDto @@ -28,7 +28,7 @@ - SmartAdvisor.tsx - compilerOptions - toPersian -- Media and Blog UI Components +- Products.tsx - ProductsService - lib/services/api.ts - devDependencies @@ -36,28 +36,28 @@ - AppModule - B2B Inquiry Controller - Category Management Controller -- Banner Management Controller -- Media Upload Controller +- auth.service.ts +- MediaController - Ingredient Management Controller -- Admin Dashboard Components +- adminRoutes.tsx - admin.module.ts -- Pet DTOs and Controller +- SmsService - Prescription Review Controller - Smart Advisor Controller - Testimonials Management Controller -- Admin Sidebar and Layout -- Admin Settings Managers +- src/services/api.ts +- Spinner.tsx - useCartStore - ZibalService - main.ts - ContactService - Backend TypeScript Config - App TypeScript Config -- CMS and Media Modals +- ConfirmModal.tsx - dependencies - Node TypeScript Config - Admin Blog Controller -- WholesaleApplyDto +- WholesaleService - devDependencies - Generic CRUD Controller - seo.module.ts @@ -79,17 +79,17 @@ - PaginationDto - BlogsController - FE-001 -- pagination.dto.ts +- WikiService - rules/graphify.md - App Health Controller - dependencies -- Pet Business Logic +- OrdersService - Integrity Validation Scripts - Admin Panel Package Config - Analytics and Report Charts - Task Orchestration Scripts - Backend Package Config -- Health Log DTOs +- CreateOrderDto - React Error Boundary - Application Package Config - WikiController @@ -118,7 +118,7 @@ - Network Status Banner - Docker Deployment Scripts - DB-001 -- typescript-eslint +- .adminLogin - Database Migration Scripts - Scientific Terms Schema - Blog Data Seeding @@ -132,7 +132,7 @@ - Manifest Data Generation - Honest Manifest Synchronization - Manifest Entry Synchronization -- Pet Reminder DTOs +- AuthController - TS-001 - TEST-001 - @tailwindcss/postcss @@ -145,14 +145,14 @@ - DEVOPS-001 - DOC-001 - What You Must Do When Invoked -- Roles +- JwtAuthGuard - راهنمای تست سیستم (Software Testing) - Role & Core Objective - Required Review Group Closures - Operational Rules & Boundaries - Operational Rules & Boundaries - 🏢 AI Software Agency — Master Orchestration Protocol v3 -- NestJS CLI Tooling +- BlogsService - Operational Rules & Boundaries - Operational Rules & Boundaries - Bcrypt Type Definitions @@ -266,18 +266,29 @@ - @types/react - typescript - vitest +- AuthService +- RegisterDto +- GetProductsDto +- WholesaleApplyDto +- AdminLoginDto +- VerifyOtpDto +- App.tsx +- ValidateCouponDto +- AGENTS.md +- eslint-config-prettier +- globals ## God Nodes (most connected - your core abstractions) -1. `PrismaService` - 72 edges -2. `Roles()` - 45 edges +1. `PrismaService` - 74 edges +2. `Roles()` - 51 edges 3. `PaginationDto` - 39 edges -4. `useSettingsStore` - 33 edges -5. `api` - 32 edges -6. `AdminService` - 31 edges -7. `toPersian()` - 31 edges -8. `AdminController` - 30 edges -9. `useCartStore` - 29 edges -10. `JwtAuthGuard` - 27 edges +4. `SmsService` - 34 edges +5. `api` - 33 edges +6. `useSettingsStore` - 33 edges +7. `AdminService` - 31 edges +8. `toPersian()` - 31 edges +9. `AdminController` - 30 edges +10. `useCartStore` - 29 edges ## Surprising Connections (you probably didn't know these) - `User Profile Photo` --conceptually_related_to--> `User Roles and Capabilities` [INFERRED] @@ -300,38 +311,38 @@ - **Rastikerdar Font Ecosystem** — frontend_application_public_fonts_shabnam_font_v5_0_1_readme, frontend_application_public_fonts_vazirmatn_v33_003_readme, vazir_font [EXTRACTED 0.95] - **Canina Deployment Stack** — scripts_compose_prod, scripts_compose_stage [EXTRACTED 1.00] -## Communities (265 total, 94 thin omitted) +## Communities (276 total, 97 thin omitted) ### Community 0 - "AdminService" Cohesion: 0.07 Nodes (22): AdminController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete (+14 more) -### Community 1 - "Pet Management Controller" -Cohesion: 0.17 -Nodes (18): PetsController, ApiBadRequestResponse, ApiBearerAuth, ApiCreatedResponse, ApiNotFoundResponse, ApiOkResponse, ApiOperation, ApiTags (+10 more) +### Community 1 - "pets/pets.controller.ts" +Cohesion: 0.05 +Nodes (45): CreateHealthLogDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, CreatePetDto, ApiProperty (+37 more) -### Community 2 - "SettingsController" -Cohesion: 0.13 -Nodes (16): SettingsController, ApiBearerAuth, ApiOkResponse, ApiOperation, ApiTags, Body, Controller, Delete (+8 more) +### Community 2 - "Roles" +Cohesion: 0.07 +Nodes (32): BannersController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+24 more) ### Community 3 - "UsersService" -Cohesion: 0.06 -Nodes (37): AuthModule, Module, JwtPayload, JwtStrategy, Injectable, AddressDto, ApiProperty, ApiPropertyOptional (+29 more) +Cohesion: 0.07 +Nodes (34): JwtPayload, JwtStrategy, Injectable, AddressDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNotEmpty (+26 more) -### Community 4 - "CMS Content Management" +### Community 4 - "CmsController" Cohesion: 0.09 Nodes (24): CmsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+16 more) -### Community 5 - "OrdersService" -Cohesion: 0.07 -Nodes (29): CreateOrderDto, OrderItemDto, ApiProperty, ApiPropertyOptional, IsArray, IsNotEmpty, IsNumber, IsOptional (+21 more) +### Community 5 - ".create" +Cohesion: 0.18 +Nodes (11): ApiBadRequestResponse, ApiCreatedResponse, ApiNotFoundResponse, ApiOkResponse, ApiOperation, Body, Get, Param (+3 more) ### Community 6 - "auth.controller.ts" -Cohesion: 0.05 -Nodes (41): AuthController, ApiBadRequestResponse, ApiOkResponse, ApiOperation, ApiTags, Body, Controller, Post (+33 more) +Cohesion: 0.18 +Nodes (10): LoginDto, ApiProperty, IsNotEmpty, IsString, MinLength, SendOtpDto, ApiProperty, IsNotEmpty (+2 more) ### Community 7 - "app.module.ts" -Cohesion: 0.09 +Cohesion: 0.07 Nodes (28): B2BModule, Module, BannersModule, Module, CmsModule, Module, SmsModule, Global (+20 more) ### Community 8 - "CreateVideoDto" @@ -354,13 +365,13 @@ Nodes (32): compilerOptions, allowJs, esModuleInterop, incremental, isolatedModu Cohesion: 0.08 Nodes (37): ClientLayout(), VerifyContent(), AddressModal(), AddressModalProps, AuthModal(), AuthModalProps, B2BPortal(), BackButton() (+29 more) -### Community 13 - "Media and Blog UI Components" -Cohesion: 0.09 -Nodes (19): Media, MediaSelector(), MediaSelectorProps, Pagination(), PaginationProps, BlogPost, Category, Pet (+11 more) +### Community 13 - "Products.tsx" +Cohesion: 0.15 +Nodes (9): Pagination(), PaginationProps, BlogPost, Pet, Category, Product, Blogs, Pets (+1 more) ### Community 14 - "ProductsService" -Cohesion: 0.09 -Nodes (19): GetProductsDto, ApiPropertyOptional, IsEnum, IsOptional, IsString, ProductsController, ApiOperation, ApiTags (+11 more) +Cohesion: 0.12 +Nodes (13): ProductsController, ApiOperation, ApiTags, Body, Controller, Get, Param, Patch (+5 more) ### Community 15 - "lib/services/api.ts" Cohesion: 0.08 @@ -368,7 +379,7 @@ Nodes (17): metadata, ContactFormClient(), ContactInfoItem, PrescriptionUploadMo ### Community 16 - "devDependencies" Cohesion: 0.09 -Nodes (23): devDependencies, eslint, eslint-config-prettier, @eslint/js, jest, @nestjs/schematics, @nestjs/testing, source-map-support (+15 more) +Nodes (23): devDependencies, eslint, @eslint/js, jest, @nestjs/cli, @nestjs/schematics, @nestjs/testing, source-map-support (+15 more) ### Community 17 - "useSettingsStore" Cohesion: 0.07 @@ -386,29 +397,25 @@ Nodes (15): B2BController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controlle Cohesion: 0.10 Nodes (16): CategoriesController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete (+8 more) -### Community 21 - "Banner Management Controller" -Cohesion: 0.13 -Nodes (15): BannersController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+7 more) +### Community 21 - "auth.service.ts" +Cohesion: 0.14 +Nodes (10): CouponTargetInput, PaginationQuery, AdminLoginInput, LoginInput, RegisterInput, RedisModule, Global, Module (+2 more) -### Community 22 - "Media Upload Controller" -Cohesion: 0.11 +### Community 22 - "MediaController" +Cohesion: 0.10 Nodes (16): MediaController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+8 more) ### Community 23 - "Ingredient Management Controller" Cohesion: 0.13 Nodes (14): IngredientsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more) -### Community 24 - "Admin Dashboard Components" -Cohesion: 0.10 -Nodes (14): App(), ContactInfoItem, ContactSubmission, CategoryDist, DashboardData, GROUP_PAGE_MAP, GROUPS, PAGE_TABS (+6 more) +### Community 24 - "adminRoutes.tsx" +Cohesion: 0.09 +Nodes (18): ContactInfoItem, ContactSubmission, CategoryDist, DashboardData, PatternItem, SmsConfigState, GROUP_PAGE_MAP, GROUPS (+10 more) ### Community 25 - "admin.module.ts" -Cohesion: 0.07 -Nodes (20): AdminModule, Module, BlogQuery, BlogsService, Injectable, PetQuery, PetsService, Injectable (+12 more) - -### Community 26 - "Pet DTOs and Controller" -Cohesion: 0.16 -Nodes (13): CreatePetDto, ApiProperty, ApiPropertyOptional, IsArray, IsNotEmpty, IsNumber, IsOptional, IsString (+5 more) +Cohesion: 0.09 +Nodes (15): AdminModule, Module, CategoryQuery, PetQuery, PetsService, Injectable, ReportsController, ApiBearerAuth (+7 more) ### Community 27 - "Prescription Review Controller" Cohesion: 0.14 @@ -422,13 +429,13 @@ Nodes (14): SmartAdvisorController, ApiBearerAuth, ApiOperation, ApiTags, Body, Cohesion: 0.13 Nodes (14): TestimonialsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more) -### Community 30 - "Admin Sidebar and Layout" -Cohesion: 0.17 -Nodes (16): Layout(), ProtectedRoute(), menuGroups, Sidebar(), SidebarProps, SEARCHABLE_PAGES, Topbar(), TopbarProps (+8 more) +### Community 30 - "src/services/api.ts" +Cohesion: 0.12 +Nodes (22): Layout(), ProtectedRoute(), menuGroups, Sidebar(), SidebarProps, SEARCHABLE_PAGES, Topbar(), TopbarProps (+14 more) -### Community 31 - "Admin Settings Managers" +### Community 31 - "Spinner.tsx" Cohesion: 0.09 -Nodes (21): Spinner(), B2BManager, BannersManager, FinancialSettingsPage, SeoSettingsPage, SmartAdvisorManager, SystemSettingsPage, TestimonialsManager (+13 more) +Nodes (21): Media, MediaSelector(), MediaSelectorProps, Spinner(), Category, Media, BannersManager, Categories (+13 more) ### Community 32 - "useCartStore" Cohesion: 0.12 @@ -454,9 +461,9 @@ Nodes (22): compilerOptions, allowSyntheticDefaultImports, baseUrl, declaration, Cohesion: 0.09 Nodes (22): compilerOptions, allowImportingTsExtensions, erasableSyntaxOnly, jsx, lib, module, moduleDetection, moduleResolution (+14 more) -### Community 38 - "CMS and Media Modals" -Cohesion: 0.10 -Nodes (16): ConfirmModal(), ConfirmModalProps, HeroBanner, VetTestimonial, Media, fetchVideosList(), Video, Videos() (+8 more) +### Community 38 - "ConfirmModal.tsx" +Cohesion: 0.09 +Nodes (17): ConfirmModal(), ConfirmModalProps, HeroBanner, VetTestimonial, fetchVideosList(), Video, Videos(), WholesaleRequest (+9 more) ### Community 39 - "dependencies" Cohesion: 0.05 @@ -470,9 +477,9 @@ Nodes (20): compilerOptions, allowImportingTsExtensions, erasableSyntaxOnly, lib Cohesion: 0.13 Nodes (15): BlogsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete (+7 more) -### Community 42 - "WholesaleApplyDto" -Cohesion: 0.10 -Nodes (20): ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, WholesaleApplyDto, ApiBearerAuth, ApiOperation (+12 more) +### Community 42 - "WholesaleService" +Cohesion: 0.14 +Nodes (14): ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get, Param, Post (+6 more) ### Community 43 - "devDependencies" Cohesion: 0.13 @@ -500,7 +507,7 @@ Nodes (10): HomeController, ApiOkResponse, ApiOperation, ApiTags, Controller, Ge ### Community 49 - "devDependencies" Cohesion: 0.11 -Nodes (19): autoprefixer, devDependencies, autoprefixer, eslint, @eslint/js, globals, postcss, @types/node (+11 more) +Nodes (19): autoprefixer, devDependencies, autoprefixer, eslint, @eslint/js, postcss, @types/node, @types/react (+11 more) ### Community 50 - "Database Seeding Logic" Cohesion: 0.17 @@ -539,16 +546,16 @@ Cohesion: 0.15 Nodes (11): PetsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Controller, Delete, Get (+3 more) ### Community 59 - "PrismaService" -Cohesion: 0.06 -Nodes (21): CouponTargetInput, PaginationQuery, CategoryQuery, AdminLoginInput, LoginInput, RegisterInput, MeliPayamakResponse, SendPatternSmsOptions (+13 more) +Cohesion: 0.12 +Nodes (13): MeliPayamakPattern, MeliPayamakResponse, SendPatternSmsOptions, SmsConfig, CreateContactSubmissionDto, UpdateContactInfoItemDto, ZibalInquiryResponse, ZibalRequestResponse (+5 more) ### Community 60 - "Jest Testing Config" Cohesion: 0.15 Nodes (13): jest, collectCoverageFrom, coverageDirectory, moduleFileExtensions, rootDir, testEnvironment, testRegex, transform (+5 more) ### Community 61 - "PaginationDto" -Cohesion: 0.13 -Nodes (12): PaginationDto, ApiPropertyOptional, IsEnum, IsOptional, IsString, Type, Module, WikiModule (+4 more) +Cohesion: 0.14 +Nodes (13): PaginationDto, SortOrder, ApiPropertyOptional, IsEnum, IsOptional, IsString, Type, Module (+5 more) ### Community 62 - "BlogsController" Cohesion: 0.20 @@ -558,9 +565,9 @@ Nodes (7): BlogsController, ApiTags, Controller, BlogsModule, Module, BlogsServi Cohesion: 0.06 Nodes (31): Acceptance Criteria, Affected Application, Affected Files, Alternative Direction, Architecture Overview & Confirmed Strengths, Category, Completion Statement, Confidence (+23 more) -### Community 64 - "pagination.dto.ts" -Cohesion: 0.11 -Nodes (10): Injectable, WikiQuery, WikiService, SortOrder, IsNotEmpty, IsNumber, IsString, ValidateCouponDto (+2 more) +### Community 64 - "WikiService" +Cohesion: 0.22 +Nodes (3): Injectable, WikiQuery, WikiService ### Community 66 - "App Health Controller" Cohesion: 0.29 @@ -570,6 +577,10 @@ Nodes (5): AppController, Controller, Get, AppService, Injectable Cohesion: 0.12 Nodes (17): dependencies, axios, lucide-react, motion, next, react, react-dom, sonner (+9 more) +### Community 68 - "OrdersService" +Cohesion: 0.15 +Nodes (9): OrdersController, ApiBearerAuth, ApiTags, Controller, UseGuards, OrdersModule, Module, OrdersService (+1 more) + ### Community 69 - "Integrity Validation Scripts" Cohesion: 0.20 Nodes (9): dispSum, errors, invalidNewIds, manifest, report, trackedFiles, uninspected, verifiedIndex (+1 more) @@ -590,9 +601,9 @@ Nodes (8): cmd_next_task(), cmd_progress(), cmd_reset(), cmd_status(), cmd_unblo Cohesion: 0.22 Nodes (8): author, description, license, name, prisma, seed, private, version -### Community 74 - "Health Log DTOs" -Cohesion: 0.29 -Nodes (6): CreateHealthLogDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString +### Community 74 - "CreateOrderDto" +Cohesion: 0.21 +Nodes (11): CreateOrderDto, OrderItemDto, ApiProperty, ApiPropertyOptional, IsArray, IsNotEmpty, IsNumber, IsOptional (+3 more) ### Community 75 - "React Error Boundary" Cohesion: 0.22 @@ -666,13 +677,17 @@ Nodes (3): COMPOSE_DOCKER_CLI_BUILD, DOCKER_BUILDKIT, deploy.sh script Cohesion: 0.06 Nodes (31): Acceptance Criteria, Affected Application, Affected Files, Alternative Direction, Category, Completion Statement, Confidence, Database and Data Integrity Audit Report (+23 more) +### Community 103 - ".adminLogin" +Cohesion: 0.55 +Nodes (6): ApiBadRequestResponse, ApiOkResponse, ApiOperation, Body, Post, HttpCode + ### Community 109 - "Auth Architecture and Planning" Cohesion: 0.67 Nodes (3): ADR-AUTH-001: Admin Panel Authentication Architecture & Token Management, Master Task Backlog (Phase 3.3), Phase 3 Master Execution Plan -### Community 117 - "Pet Reminder DTOs" -Cohesion: 0.29 -Nodes (6): CreateReminderDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString +### Community 117 - "AuthController" +Cohesion: 0.20 +Nodes (7): AuthController, ApiTags, Controller, AuthModule, Module, Module, UsersModule ### Community 118 - "TS-001" Cohesion: 0.06 @@ -698,9 +713,9 @@ Nodes (31): Acceptance Criteria, Affected Application, Affected Files, Alternati Cohesion: 0.07 Nodes (26): For /graphify add and --watch, For /graphify query, For the commit hook and native CLAUDE.md integration, For --update and --cluster-only, /graphify, Honesty Rules, Interpreter guard for subcommands, Part A - Structural extraction for code files (+18 more) -### Community 130 - "Roles" -Cohesion: 0.21 -Nodes (8): JwtAuthGuard, Injectable, Roles(), ROLES_KEY, RequestWithUser, RolesGuard, Injectable, UserReqPayload +### Community 130 - "JwtAuthGuard" +Cohesion: 0.19 +Nodes (7): JwtAuthGuard, Injectable, ROLES_KEY, RequestWithUser, RolesGuard, Injectable, UserReqPayload ### Community 131 - "راهنمای تست سیستم (Software Testing)" Cohesion: 0.07 @@ -726,6 +741,10 @@ Nodes (18): 1. Framework-Aware Analysis, 2. DOM & Semantic Structure Analysis, 3 Cohesion: 0.11 Nodes (17): Activation, Agent Directory Reference, 🏢 AI Software Agency — Master Orchestration Protocol v3, Phase 1: Specialist Review (All agents read, none write code yet), Phase 2: Master Synthesis (02_product_manager in SYNTHESIS mode), Phase 3: Execution (Same as always), PIPELINE A — New Project (GREENFIELD), PIPELINE B — Review & Improve Existing Project (REVIEW_AND_PLAN) ★ (+9 more) +### Community 137 - "BlogsService" +Cohesion: 0.22 +Nodes (3): BlogQuery, BlogsService, Injectable + ### Community 138 - "Operational Rules & Boundaries" Cohesion: 0.11 Nodes (17): 1. Hierarchical Decomposition Algorithm (3-Tier), 2. Sub-step Definition (Required for all tasks), 3. Brownfield Completeness Rule, 4. Role Assignment Rules, 5. Dependency Tracking (Strict), 6. Priority Assignment, 7. Forbidden Actions, DECOMPOSE MODE — Normal Operation (New Projects) (+9 more) @@ -930,25 +949,49 @@ Nodes (3): Expanding the ESLint configuration, React Compiler, React + TypeScrip Cohesion: 0.50 Nodes (3): Deploy on Vercel, Getting Started, Learn More +### Community 266 - "RegisterDto" +Cohesion: 0.22 +Nodes (8): RegisterDto, ApiProperty, ApiPropertyOptional, IsEmail, IsNotEmpty, IsOptional, IsString, MinLength + +### Community 267 - "GetProductsDto" +Cohesion: 0.29 +Nodes (6): GetProductsDto, ApiPropertyOptional, IsEnum, IsOptional, IsString, Query + +### Community 268 - "WholesaleApplyDto" +Cohesion: 0.29 +Nodes (6): ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, WholesaleApplyDto + +### Community 269 - "AdminLoginDto" +Cohesion: 0.29 +Nodes (6): AdminLoginDto, ApiProperty, IsEmail, IsNotEmpty, IsString, MinLength + +### Community 270 - "VerifyOtpDto" +Cohesion: 0.29 +Nodes (6): ApiProperty, IsNotEmpty, IsString, Matches, VerifyOtpDto, Length + +### Community 272 - "ValidateCouponDto" +Cohesion: 0.50 +Nodes (4): IsNotEmpty, IsNumber, IsString, ValidateCouponDto + ## Knowledge Gaps -- **1170 isolated node(s):** `$schema`, `collection`, `sourceRoot`, `deleteOutDir`, `name` (+1165 more) +- **1175 isolated node(s):** `$schema`, `collection`, `sourceRoot`, `deleteOutDir`, `name` (+1170 more) These have ≤1 connection - possible missing edges or undocumented components. -- **94 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. +- **97 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. ## Suggested Questions _Questions this graph is uniquely positioned to answer:_ -- **Why does `ApiResponse` connect `Admin Sidebar and Layout` to `Pet Management Controller`, `UsersService`, `OrdersService`, `auth.controller.ts`, `WikiController`, `ProductsService`, `Home Data Module`, `BlogsController`, `Admin Settings Managers`?** - _High betweenness centrality (0.033) - this node is a cross-community bridge._ -- **Why does `Roles()` connect `Roles` to `SettingsController`, `ContactService`, `CMS Content Management`, `WholesaleApplyDto`, `ProductsService`, `B2B Inquiry Controller`, `Banner Management Controller`, `Ingredient Management Controller`, `Prescription Review Controller`, `Smart Advisor Controller`, `Testimonials Management Controller`?** - _High betweenness centrality (0.020) - this node is a cross-community bridge._ -- **Why does `JwtAuthGuard` connect `Roles` to `AdminService`, `pagination.dto.ts`, `ZibalService`, `UsersService`, `CreateVideoDto`, `ProductsService`, `admin.module.ts`, `Pet DTOs and Controller`?** - _High betweenness centrality (0.020) - this node is a cross-community bridge._ +- **Why does `ApiResponse` connect `src/services/api.ts` to `pets/pets.controller.ts`, `UsersService`, `OrdersService`, `WikiController`, `ProductsService`, `Home Data Module`, `AuthController`, `BlogsController`?** + _High betweenness centrality (0.036) - this node is a cross-community bridge._ +- **Why does `Roles()` connect `Roles` to `JwtAuthGuard`, `ContactService`, `CmsController`, `WholesaleService`, `ProductsService`, `B2B Inquiry Controller`, `Ingredient Management Controller`, `Prescription Review Controller`, `Smart Advisor Controller`, `Testimonials Management Controller`?** + _High betweenness centrality (0.026) - this node is a cross-community bridge._ +- **Why does `JwtAuthGuard` connect `JwtAuthGuard` to `AdminService`, `ZibalService`, `pets/pets.controller.ts`, `UsersService`, `CmsController`, `OrdersService`, `CreateVideoDto`, `ProductsService`, `MediaController`, `admin.module.ts`?** + _High betweenness centrality (0.023) - this node is a cross-community bridge._ - **What connects `$schema`, `collection`, `sourceRoot` to the rest of the system?** - _1170 weakly-connected nodes found - possible documentation gaps or missing edges._ + _1175 weakly-connected nodes found - possible documentation gaps or missing edges._ - **Should `AdminService` be split into smaller, more focused modules?** _Cohesion score 0.06690140845070422 - nodes in this community are weakly interconnected._ -- **Should `SettingsController` be split into smaller, more focused modules?** - _Cohesion score 0.1251778093883357 - nodes in this community are weakly interconnected._ -- **Should `UsersService` be split into smaller, more focused modules?** - _Cohesion score 0.06093189964157706 - nodes in this community are weakly interconnected._ \ No newline at end of file +- **Should `pets/pets.controller.ts` be split into smaller, more focused modules?** + _Cohesion score 0.0528169014084507 - nodes in this community are weakly interconnected._ +- **Should `Roles` be split into smaller, more focused modules?** + _Cohesion score 0.06771929824561404 - nodes in this community are weakly interconnected._ \ No newline at end of file diff --git a/graphify-out/2026-08-16/graph.json b/graphify-out/2026-08-16/graph.json index f407d3a..ffa3352 100644 --- a/graphify-out/2026-08-16/graph.json +++ b/graphify-out/2026-08-16/graph.json @@ -96,6 +96,58 @@ "community_name": "AdminService", "norm_label": "adminquerydto" }, + { + "label": "CreateHealthLogDto", + "file_type": "code", + "source_file": "backend/src/pets/dto/create-health-log.dto.ts", + "source_location": "L4", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "id": "backend_src_pets_dto_create_health_log_dto_createhealthlogdto", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": "createhealthlogdto" + }, + { + "label": "CreatePetDto", + "file_type": "code", + "source_file": "backend/src/pets/dto/create-pet.dto.ts", + "source_location": "L10", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "id": "backend_src_pets_dto_create_pet_dto_createpetdto", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": "createpetdto" + }, + { + "label": "CreateReminderDto", + "file_type": "code", + "source_file": "backend/src/pets/dto/create-reminder.dto.ts", + "source_location": "L4", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "id": "backend_src_pets_dto_create_reminder_dto_createreminderdto", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": "createreminderdto" + }, + { + "label": "UpdatePetDto", + "file_type": "code", + "source_file": "backend/src/pets/dto/update-pet.dto.ts", + "source_location": "L4", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "id": "backend_src_pets_dto_update_pet_dto_updatepetdto", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": "updatepetdto" + }, { "label": "PetsController", "file_type": "code", @@ -106,9 +158,61 @@ "_origin": "ast", "id": "backend_src_pets_pets_controller_petscontroller", "community": 1, - "community_name": "Pet Management Controller", + "community_name": "pets/pets.controller.ts", "norm_label": "petscontroller" }, + { + "label": "PetsModule", + "file_type": "code", + "source_file": "backend/src/pets/pets.module.ts", + "source_location": "L9", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "id": "backend_src_pets_pets_module_petsmodule", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": "petsmodule" + }, + { + "label": "HealthLogInput", + "file_type": "code", + "source_file": "backend/src/pets/pets.service.ts", + "source_location": "L15", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "id": "backend_src_pets_pets_service_healthloginput", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": "healthloginput" + }, + { + "label": "PetsService", + "file_type": "code", + "source_file": "backend/src/pets/pets.service.ts", + "source_location": "L23", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "id": "backend_src_pets_pets_service_petsservice", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": "petsservice" + }, + { + "label": "ReminderInput", + "file_type": "code", + "source_file": "backend/src/pets/pets.service.ts", + "source_location": "L8", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "id": "backend_src_pets_pets_service_reminderinput", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": "reminderinput" + }, { "label": "SmartAdvisorProps", "file_type": "code", @@ -149,17 +253,43 @@ "norm_label": "scientificterm" }, { - "label": "CreateReminderDto", + "label": "AuthController", "file_type": "code", - "source_file": "backend/src/pets/dto/create-reminder.dto.ts", - "source_location": "L4", + "source_file": "backend/src/auth/auth.controller.ts", + "source_location": "L31", "_callable": true, "_callable_class": true, "_origin": "ast", - "id": "backend_src_pets_dto_create_reminder_dto_createreminderdto", + "id": "backend_src_auth_auth_controller_authcontroller", "community": 117, - "community_name": "Pet Reminder DTOs", - "norm_label": "createreminderdto" + "community_name": "AuthController", + "norm_label": "authcontroller" + }, + { + "label": "AuthModule", + "file_type": "code", + "source_file": "backend/src/auth/auth.module.ts", + "source_location": "L22", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "id": "backend_src_auth_auth_module_authmodule", + "community": 117, + "community_name": "AuthController", + "norm_label": "authmodule" + }, + { + "label": "UsersModule", + "file_type": "code", + "source_file": "backend/src/users/users.module.ts", + "source_location": "L10", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "id": "backend_src_users_users_module_usersmodule", + "community": 117, + "community_name": "AuthController", + "norm_label": "usersmodule" }, { "label": "AddressModalProps", @@ -343,32 +473,6 @@ "community_name": "toPersian", "norm_label": "userstore" }, - { - "label": "Media", - "file_type": "code", - "source_file": "frontend/admin-panel/src/components/ui/MediaSelector.tsx", - "source_location": "L9", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "id": "frontend_admin_panel_src_components_ui_mediaselector_media", - "community": 13, - "community_name": "Media and Blog UI Components", - "norm_label": "media" - }, - { - "label": "MediaSelectorProps", - "file_type": "code", - "source_file": "frontend/admin-panel/src/components/ui/MediaSelector.tsx", - "source_location": "L16", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "id": "frontend_admin_panel_src_components_ui_mediaselector_mediaselectorprops", - "community": 13, - "community_name": "Media and Blog UI Components", - "norm_label": "mediaselectorprops" - }, { "label": "PaginationProps", "file_type": "code", @@ -379,7 +483,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_components_ui_pagination_paginationprops", "community": 13, - "community_name": "Media and Blog UI Components", + "community_name": "Products.tsx", "norm_label": "paginationprops" }, { @@ -392,22 +496,9 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_blogs_blogpost", "community": 13, - "community_name": "Media and Blog UI Components", + "community_name": "Products.tsx", "norm_label": "blogpost" }, - { - "label": "Category", - "file_type": "code", - "source_file": "frontend/admin-panel/src/pages/Categories.tsx", - "source_location": "L10", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "id": "frontend_admin_panel_src_pages_categories_category", - "community": 13, - "community_name": "Media and Blog UI Components", - "norm_label": "category" - }, { "label": "Pet", "file_type": "code", @@ -418,7 +509,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_pets_pet", "community": 13, - "community_name": "Media and Blog UI Components", + "community_name": "Products.tsx", "norm_label": "pet" }, { @@ -431,7 +522,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_products_category", "community": 13, - "community_name": "Media and Blog UI Components", + "community_name": "Products.tsx", "norm_label": "category" }, { @@ -444,35 +535,9 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_products_product", "community": 13, - "community_name": "Media and Blog UI Components", + "community_name": "Products.tsx", "norm_label": "product" }, - { - "label": "Ingredient", - "file_type": "code", - "source_file": "frontend/admin-panel/src/types/admin.ts", - "source_location": "L111", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "id": "frontend_admin_panel_src_types_admin_ingredient", - "community": 13, - "community_name": "Media and Blog UI Components", - "norm_label": "ingredient" - }, - { - "label": "Prescription", - "file_type": "code", - "source_file": "frontend/admin-panel/src/types/admin.ts", - "source_location": "L124", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "id": "frontend_admin_panel_src_types_admin_prescription", - "community": 13, - "community_name": "Media and Blog UI Components", - "norm_label": "prescription" - }, { "label": "JwtAuthGuard", "file_type": "code", @@ -483,7 +548,7 @@ "_origin": "ast", "id": "backend_src_auth_jwt_auth_guard_jwtauthguard", "community": 130, - "community_name": "Roles", + "community_name": "JwtAuthGuard", "norm_label": "jwtauthguard" }, { @@ -496,7 +561,7 @@ "_origin": "ast", "id": "backend_src_common_guards_roles_guard_requestwithuser", "community": 130, - "community_name": "Roles", + "community_name": "JwtAuthGuard", "norm_label": "requestwithuser" }, { @@ -509,7 +574,7 @@ "_origin": "ast", "id": "backend_src_common_guards_roles_guard_rolesguard", "community": 130, - "community_name": "Roles", + "community_name": "JwtAuthGuard", "norm_label": "rolesguard" }, { @@ -522,21 +587,34 @@ "_origin": "ast", "id": "backend_src_prescriptions_prescriptions_controller_userreqpayload", "community": 130, - "community_name": "Roles", + "community_name": "JwtAuthGuard", "norm_label": "userreqpayload" }, { - "label": "GetProductsDto", + "label": "BlogQuery", "file_type": "code", - "source_file": "backend/src/products/dto/get-products.dto.ts", + "source_file": "backend/src/admin/blogs.service.ts", "source_location": "L5", "_callable": true, "_callable_class": true, "_origin": "ast", - "id": "backend_src_products_dto_get_products_dto_getproductsdto", - "community": 14, - "community_name": "ProductsService", - "norm_label": "getproductsdto" + "id": "backend_src_admin_blogs_service_blogquery", + "community": 137, + "community_name": "BlogsService", + "norm_label": "blogquery" + }, + { + "label": "BlogsService", + "file_type": "code", + "source_file": "backend/src/admin/blogs.service.ts", + "source_location": "L12", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "id": "backend_src_admin_blogs_service_blogsservice", + "community": 137, + "community_name": "BlogsService", + "norm_label": "blogsservice" }, { "label": "ProductsController", @@ -1032,43 +1110,56 @@ "community_name": "B2B Inquiry Controller", "norm_label": "b2bwholesaleorderitem" }, + { + "label": "BannersController", + "file_type": "code", + "source_file": "backend/src/banners/banners.controller.ts", + "source_location": "L21", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "id": "backend_src_banners_banners_controller_bannerscontroller", + "community": 2, + "community_name": "Roles", + "norm_label": "bannerscontroller" + }, + { + "label": "BannersService", + "file_type": "code", + "source_file": "backend/src/banners/banners.service.ts", + "source_location": "L6", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "id": "backend_src_banners_banners_service_bannersservice", + "community": 2, + "community_name": "Roles", + "norm_label": "bannersservice" + }, { "label": "SettingsController", "file_type": "code", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L25", + "source_location": "L26", "_callable": true, "_callable_class": true, "_origin": "ast", "id": "backend_src_settings_settings_controller_settingscontroller", "community": 2, - "community_name": "SettingsController", + "community_name": "Roles", "norm_label": "settingscontroller" }, - { - "label": "ScientificTermData", - "file_type": "code", - "source_file": "backend/src/settings/settings.service.ts", - "source_location": "L5", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "id": "backend_src_settings_settings_service_scientifictermdata", - "community": 2, - "community_name": "SettingsController", - "norm_label": "scientifictermdata" - }, { "label": "SettingsService", "file_type": "code", "source_file": "backend/src/settings/settings.service.ts", - "source_location": "L12", + "source_location": "L13", "_callable": true, "_callable_class": true, "_origin": "ast", "id": "backend_src_settings_settings_service_settingsservice", "community": 2, - "community_name": "SettingsController", + "community_name": "Roles", "norm_label": "settingsservice" }, { @@ -1111,30 +1202,95 @@ "norm_label": "authservice" }, { - "label": "BannersController", + "label": "CouponTargetInput", "file_type": "code", - "source_file": "backend/src/banners/banners.controller.ts", - "source_location": "L21", + "source_file": "backend/src/admin/admin.service.ts", + "source_location": "L43", "_callable": true, "_callable_class": true, "_origin": "ast", - "id": "backend_src_banners_banners_controller_bannerscontroller", + "id": "backend_src_admin_admin_service_coupontargetinput", "community": 21, - "community_name": "Banner Management Controller", - "norm_label": "bannerscontroller" + "community_name": "auth.service.ts", + "norm_label": "coupontargetinput" }, { - "label": "BannersService", + "label": "PaginationQuery", "file_type": "code", - "source_file": "backend/src/banners/banners.service.ts", + "source_file": "backend/src/admin/admin.service.ts", "source_location": "L6", "_callable": true, "_callable_class": true, "_origin": "ast", - "id": "backend_src_banners_banners_service_bannersservice", + "id": "backend_src_admin_admin_service_paginationquery", "community": 21, - "community_name": "Banner Management Controller", - "norm_label": "bannersservice" + "community_name": "auth.service.ts", + "norm_label": "paginationquery" + }, + { + "label": "AdminLoginInput", + "file_type": "code", + "source_file": "backend/src/auth/auth.service.ts", + "source_location": "L24", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "id": "backend_src_auth_auth_service_adminlogininput", + "community": 21, + "community_name": "auth.service.ts", + "norm_label": "adminlogininput" + }, + { + "label": "LoginInput", + "file_type": "code", + "source_file": "backend/src/auth/auth.service.ts", + "source_location": "L19", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "id": "backend_src_auth_auth_service_logininput", + "community": 21, + "community_name": "auth.service.ts", + "norm_label": "logininput" + }, + { + "label": "RegisterInput", + "file_type": "code", + "source_file": "backend/src/auth/auth.service.ts", + "source_location": "L11", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "id": "backend_src_auth_auth_service_registerinput", + "community": 21, + "community_name": "auth.service.ts", + "norm_label": "registerinput" + }, + { + "label": "RedisModule", + "file_type": "code", + "source_file": "backend/src/redis/redis.module.ts", + "source_location": "L9", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "id": "backend_src_redis_redis_module_redismodule", + "community": 21, + "community_name": "auth.service.ts", + "norm_label": "redismodule" + }, + { + "label": "RedisService", + "file_type": "code", + "source_file": "backend/src/redis/redis.service.ts", + "source_location": "L5", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "id": "backend_src_redis_redis_service_redisservice", + "community": 21, + "community_name": "auth.service.ts", + "norm_label": "redisservice" }, { "label": "MediaController", @@ -1146,7 +1302,7 @@ "_origin": "ast", "id": "backend_src_admin_media_controller_mediacontroller", "community": 22, - "community_name": "Media Upload Controller", + "community_name": "MediaController", "norm_label": "mediacontroller" }, { @@ -1159,7 +1315,7 @@ "_origin": "ast", "id": "backend_src_admin_media_service_mediaservice", "community": 22, - "community_name": "Media Upload Controller", + "community_name": "MediaController", "norm_label": "mediaservice" }, { @@ -1198,7 +1354,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_contactsubmissions_contactinfoitem", "community": 24, - "community_name": "Admin Dashboard Components", + "community_name": "adminRoutes.tsx", "norm_label": "contactinfoitem" }, { @@ -1211,7 +1367,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_contactsubmissions_contactsubmission", "community": 24, - "community_name": "Admin Dashboard Components", + "community_name": "adminRoutes.tsx", "norm_label": "contactsubmission" }, { @@ -1224,7 +1380,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_dashboard_categorydist", "community": 24, - "community_name": "Admin Dashboard Components", + "community_name": "adminRoutes.tsx", "norm_label": "categorydist" }, { @@ -1237,22 +1393,61 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_dashboard_dashboarddata", "community": 24, - "community_name": "Admin Dashboard Components", + "community_name": "adminRoutes.tsx", "norm_label": "dashboarddata" }, + { + "label": "PatternItem", + "file_type": "code", + "source_file": "frontend/admin-panel/src/pages/SmsSettingsPage.tsx", + "source_location": "L45", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "id": "frontend_admin_panel_src_pages_smssettingspage_patternitem", + "community": 24, + "community_name": "adminRoutes.tsx", + "norm_label": "patternitem" + }, + { + "label": "SmsConfigState", + "file_type": "code", + "source_file": "frontend/admin-panel/src/pages/SmsSettingsPage.tsx", + "source_location": "L33", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "id": "frontend_admin_panel_src_pages_smssettingspage_smsconfigstate", + "community": 24, + "community_name": "adminRoutes.tsx", + "norm_label": "smsconfigstate" + }, { "label": "AdminRouteConfig", "file_type": "code", "source_file": "frontend/admin-panel/src/routes/adminRoutes.tsx", - "source_location": "L37", + "source_location": "L38", "_callable": true, "_callable_class": true, "_origin": "ast", "id": "frontend_admin_panel_src_routes_adminroutes_adminrouteconfig", "community": 24, - "community_name": "Admin Dashboard Components", + "community_name": "adminRoutes.tsx", "norm_label": "adminrouteconfig" }, + { + "label": "FinancialSettings", + "file_type": "code", + "source_file": "frontend/admin-panel/src/types/admin.ts", + "source_location": "L171", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "id": "frontend_admin_panel_src_types_admin_financialsettings", + "community": 24, + "community_name": "adminRoutes.tsx", + "norm_label": "financialsettings" + }, { "label": "AdminModule", "file_type": "code", @@ -1267,30 +1462,17 @@ "norm_label": "adminmodule" }, { - "label": "BlogQuery", + "label": "CategoryQuery", "file_type": "code", - "source_file": "backend/src/admin/blogs.service.ts", + "source_file": "backend/src/admin/categories.service.ts", "source_location": "L5", "_callable": true, "_callable_class": true, "_origin": "ast", - "id": "backend_src_admin_blogs_service_blogquery", + "id": "backend_src_admin_categories_service_categoryquery", "community": 25, "community_name": "admin.module.ts", - "norm_label": "blogquery" - }, - { - "label": "BlogsService", - "file_type": "code", - "source_file": "backend/src/admin/blogs.service.ts", - "source_location": "L12", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "id": "backend_src_admin_blogs_service_blogsservice", - "community": 25, - "community_name": "admin.module.ts", - "norm_label": "blogsservice" + "norm_label": "categoryquery" }, { "label": "PetQuery", @@ -1345,82 +1527,82 @@ "norm_label": "reportsservice" }, { - "label": "RedisModule", + "label": "SmsService", "file_type": "code", - "source_file": "backend/src/redis/redis.module.ts", - "source_location": "L9", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L39", "_callable": true, "_callable_class": true, "_origin": "ast", - "id": "backend_src_redis_redis_module_redismodule", - "community": 25, - "community_name": "admin.module.ts", - "norm_label": "redismodule" + "id": "backend_src_common_services_sms_service_smsservice", + "community": 26, + "community_name": "SmsService", + "norm_label": "smsservice" }, { - "label": "CreatePetDto", + "label": "AuthService", "file_type": "code", - "source_file": "backend/src/pets/dto/create-pet.dto.ts", + "source_file": "backend/src/auth/auth.service.ts", + "source_location": "L30", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "id": "backend_src_auth_auth_service_authservice", + "community": 265, + "community_name": "AuthService", + "norm_label": "authservice" + }, + { + "label": "RegisterDto", + "file_type": "code", + "source_file": "backend/src/auth/dto/register.dto.ts", "source_location": "L10", "_callable": true, "_callable_class": true, "_origin": "ast", - "id": "backend_src_pets_dto_create_pet_dto_createpetdto", - "community": 26, - "community_name": "Pet DTOs and Controller", - "norm_label": "createpetdto" + "id": "backend_src_auth_dto_register_dto_registerdto", + "community": 266, + "community_name": "RegisterDto", + "norm_label": "registerdto" }, { - "label": "UpdatePetDto", + "label": "GetProductsDto", "file_type": "code", - "source_file": "backend/src/pets/dto/update-pet.dto.ts", + "source_file": "backend/src/products/dto/get-products.dto.ts", + "source_location": "L5", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "id": "backend_src_products_dto_get_products_dto_getproductsdto", + "community": 267, + "community_name": "GetProductsDto", + "norm_label": "getproductsdto" + }, + { + "label": "WholesaleApplyDto", + "file_type": "code", + "source_file": "backend/src/wholesale/dto/wholesale-apply.dto.ts", "source_location": "L4", "_callable": true, "_callable_class": true, "_origin": "ast", - "id": "backend_src_pets_dto_update_pet_dto_updatepetdto", - "community": 26, - "community_name": "Pet DTOs and Controller", - "norm_label": "updatepetdto" + "id": "backend_src_wholesale_dto_wholesale_apply_dto_wholesaleapplydto", + "community": 268, + "community_name": "WholesaleApplyDto", + "norm_label": "wholesaleapplydto" }, { - "label": "PetsModule", + "label": "AdminLoginDto", "file_type": "code", - "source_file": "backend/src/pets/pets.module.ts", - "source_location": "L9", + "source_file": "backend/src/auth/dto/admin-login.dto.ts", + "source_location": "L4", "_callable": true, "_callable_class": true, "_origin": "ast", - "id": "backend_src_pets_pets_module_petsmodule", - "community": 26, - "community_name": "Pet DTOs and Controller", - "norm_label": "petsmodule" - }, - { - "label": "HealthLogInput", - "file_type": "code", - "source_file": "backend/src/pets/pets.service.ts", - "source_location": "L15", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "id": "backend_src_pets_pets_service_healthloginput", - "community": 26, - "community_name": "Pet DTOs and Controller", - "norm_label": "healthloginput" - }, - { - "label": "ReminderInput", - "file_type": "code", - "source_file": "backend/src/pets/pets.service.ts", - "source_location": "L8", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "id": "backend_src_pets_pets_service_reminderinput", - "community": 26, - "community_name": "Pet DTOs and Controller", - "norm_label": "reminderinput" + "id": "backend_src_auth_dto_admin_login_dto_adminlogindto", + "community": 269, + "community_name": "AdminLoginDto", + "norm_label": "adminlogindto" }, { "label": "PrescriptionsController", @@ -1448,6 +1630,32 @@ "community_name": "Prescription Review Controller", "norm_label": "prescriptionsservice" }, + { + "label": "VerifyOtpDto", + "file_type": "code", + "source_file": "backend/src/auth/dto/verify-otp.dto.ts", + "source_location": "L4", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "id": "backend_src_auth_dto_verify_otp_dto_verifyotpdto", + "community": 270, + "community_name": "VerifyOtpDto", + "norm_label": "verifyotpdto" + }, + { + "label": "ValidateCouponDto", + "file_type": "code", + "source_file": "backend/src/orders/orders.controller.ts", + "source_location": "L29", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "id": "backend_src_orders_orders_controller_validatecoupondto", + "community": 272, + "community_name": "ValidateCouponDto", + "norm_label": "validatecoupondto" + }, { "label": "SmartAdvisorController", "file_type": "code", @@ -1500,19 +1708,6 @@ "community_name": "Testimonials Management Controller", "norm_label": "testimonialsservice" }, - { - "label": "AuthModule", - "file_type": "code", - "source_file": "backend/src/auth/auth.module.ts", - "source_location": "L22", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "id": "backend_src_auth_auth_module_authmodule", - "community": 3, - "community_name": "UsersService", - "norm_label": "authmodule" - }, { "label": "JwtPayload", "file_type": "code", @@ -1579,17 +1774,17 @@ "norm_label": "userscontroller" }, { - "label": "UsersModule", + "label": "UserAddressInput", "file_type": "code", - "source_file": "backend/src/users/users.module.ts", - "source_location": "L10", + "source_file": "backend/src/users/users.service.ts", + "source_location": "L5", "_callable": true, "_callable_class": true, "_origin": "ast", - "id": "backend_src_users_users_module_usersmodule", + "id": "backend_src_users_users_service_useraddressinput", "community": 3, "community_name": "UsersService", - "norm_label": "usersmodule" + "norm_label": "useraddressinput" }, { "label": "UsersService", @@ -1608,13 +1803,13 @@ "label": "SidebarProps", "file_type": "code", "source_file": "frontend/admin-panel/src/components/Sidebar.tsx", - "source_location": "L59", + "source_location": "L60", "_callable": true, "_callable_class": true, "_origin": "ast", "id": "frontend_admin_panel_src_components_sidebar_sidebarprops", "community": 30, - "community_name": "Admin Sidebar and Layout", + "community_name": "src/services/api.ts", "norm_label": "sidebarprops" }, { @@ -1627,7 +1822,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_components_topbar_topbarprops", "community": 30, - "community_name": "Admin Sidebar and Layout", + "community_name": "src/services/api.ts", "norm_label": "topbarprops" }, { @@ -1640,9 +1835,22 @@ "_origin": "ast", "id": "frontend_admin_panel_src_services_api_apierrorpayload", "community": 30, - "community_name": "Admin Sidebar and Layout", + "community_name": "src/services/api.ts", "norm_label": "apierrorpayload" }, + { + "label": "AdminLoginPayload", + "file_type": "code", + "source_file": "frontend/admin-panel/src/types/admin.ts", + "source_location": "L31", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "id": "frontend_admin_panel_src_types_admin_adminloginpayload", + "community": 30, + "community_name": "src/services/api.ts", + "norm_label": "adminloginpayload" + }, { "label": "AdminUser", "file_type": "code", @@ -1653,7 +1861,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_types_admin_adminuser", "community": 30, - "community_name": "Admin Sidebar and Layout", + "community_name": "src/services/api.ts", "norm_label": "adminuser" }, { @@ -1666,7 +1874,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_types_admin_apiresponse", "community": 30, - "community_name": "Admin Sidebar and Layout", + "community_name": "src/services/api.ts", "norm_label": "apiresponse" }, { @@ -1679,22 +1887,9 @@ "_origin": "ast", "id": "frontend_admin_panel_src_types_admin_authresponsedata", "community": 30, - "community_name": "Admin Sidebar and Layout", + "community_name": "src/services/api.ts", "norm_label": "authresponsedata" }, - { - "label": "AdminLoginPayload", - "file_type": "code", - "source_file": "frontend/admin-panel/src/types/admin.ts", - "source_location": "L31", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "id": "frontend_admin_panel_src_types_admin_adminloginpayload", - "community": 31, - "community_name": "Admin Settings Managers", - "norm_label": "adminloginpayload" - }, { "label": "AuthState", "file_type": "code", @@ -1704,8 +1899,8 @@ "_callable_class": true, "_origin": "ast", "id": "frontend_admin_panel_src_types_admin_authstate", - "community": 31, - "community_name": "Admin Settings Managers", + "community": 30, + "community_name": "src/services/api.ts", "norm_label": "authstate" }, { @@ -1717,10 +1912,101 @@ "_callable_class": true, "_origin": "ast", "id": "frontend_admin_panel_src_types_admin_b2binquiry", - "community": 31, - "community_name": "Admin Settings Managers", + "community": 30, + "community_name": "src/services/api.ts", "norm_label": "b2binquiry" }, + { + "label": "PartnerAccount", + "file_type": "code", + "source_file": "frontend/admin-panel/src/types/admin.ts", + "source_location": "L151", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "id": "frontend_admin_panel_src_types_admin_partneraccount", + "community": 30, + "community_name": "src/services/api.ts", + "norm_label": "partneraccount" + }, + { + "label": "SendOtpPayload", + "file_type": "code", + "source_file": "frontend/admin-panel/src/types/admin.ts", + "source_location": "L22", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "id": "frontend_admin_panel_src_types_admin_sendotppayload", + "community": 30, + "community_name": "src/services/api.ts", + "norm_label": "sendotppayload" + }, + { + "label": "VerifyOtpPayload", + "file_type": "code", + "source_file": "frontend/admin-panel/src/types/admin.ts", + "source_location": "L26", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "id": "frontend_admin_panel_src_types_admin_verifyotppayload", + "community": 30, + "community_name": "src/services/api.ts", + "norm_label": "verifyotppayload" + }, + { + "label": "Media", + "file_type": "code", + "source_file": "frontend/admin-panel/src/components/ui/MediaSelector.tsx", + "source_location": "L9", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "id": "frontend_admin_panel_src_components_ui_mediaselector_media", + "community": 31, + "community_name": "Spinner.tsx", + "norm_label": "media" + }, + { + "label": "MediaSelectorProps", + "file_type": "code", + "source_file": "frontend/admin-panel/src/components/ui/MediaSelector.tsx", + "source_location": "L16", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "id": "frontend_admin_panel_src_components_ui_mediaselector_mediaselectorprops", + "community": 31, + "community_name": "Spinner.tsx", + "norm_label": "mediaselectorprops" + }, + { + "label": "Category", + "file_type": "code", + "source_file": "frontend/admin-panel/src/pages/Categories.tsx", + "source_location": "L10", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "id": "frontend_admin_panel_src_pages_categories_category", + "community": 31, + "community_name": "Spinner.tsx", + "norm_label": "category" + }, + { + "label": "Media", + "file_type": "code", + "source_file": "frontend/admin-panel/src/pages/Media.tsx", + "source_location": "L9", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "id": "frontend_admin_panel_src_pages_media_media", + "community": 31, + "community_name": "Spinner.tsx", + "norm_label": "media" + }, { "label": "Banner", "file_type": "code", @@ -1731,60 +2017,34 @@ "_origin": "ast", "id": "frontend_admin_panel_src_types_admin_banner", "community": 31, - "community_name": "Admin Settings Managers", + "community_name": "Spinner.tsx", "norm_label": "banner" }, { - "label": "FinancialSettings", + "label": "Ingredient", "file_type": "code", "source_file": "frontend/admin-panel/src/types/admin.ts", - "source_location": "L171", + "source_location": "L111", "_callable": true, "_callable_class": true, "_origin": "ast", - "id": "frontend_admin_panel_src_types_admin_financialsettings", + "id": "frontend_admin_panel_src_types_admin_ingredient", "community": 31, - "community_name": "Admin Settings Managers", - "norm_label": "financialsettings" + "community_name": "Spinner.tsx", + "norm_label": "ingredient" }, { - "label": "PartnerAccount", + "label": "Prescription", "file_type": "code", "source_file": "frontend/admin-panel/src/types/admin.ts", - "source_location": "L151", + "source_location": "L124", "_callable": true, "_callable_class": true, "_origin": "ast", - "id": "frontend_admin_panel_src_types_admin_partneraccount", + "id": "frontend_admin_panel_src_types_admin_prescription", "community": 31, - "community_name": "Admin Settings Managers", - "norm_label": "partneraccount" - }, - { - "label": "Product", - "file_type": "code", - "source_file": "frontend/admin-panel/src/types/admin.ts", - "source_location": "L185", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "id": "frontend_admin_panel_src_types_admin_product", - "community": 31, - "community_name": "Admin Settings Managers", - "norm_label": "product" - }, - { - "label": "SendOtpPayload", - "file_type": "code", - "source_file": "frontend/admin-panel/src/types/admin.ts", - "source_location": "L22", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "id": "frontend_admin_panel_src_types_admin_sendotppayload", - "community": 31, - "community_name": "Admin Settings Managers", - "norm_label": "sendotppayload" + "community_name": "Spinner.tsx", + "norm_label": "prescription" }, { "label": "SeoSettings", @@ -1796,22 +2056,9 @@ "_origin": "ast", "id": "frontend_admin_panel_src_types_admin_seosettings", "community": 31, - "community_name": "Admin Settings Managers", + "community_name": "Spinner.tsx", "norm_label": "seosettings" }, - { - "label": "SmartAdvisorRule", - "file_type": "code", - "source_file": "frontend/admin-panel/src/types/admin.ts", - "source_location": "L83", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "id": "frontend_admin_panel_src_types_admin_smartadvisorrule", - "community": 31, - "community_name": "Admin Settings Managers", - "norm_label": "smartadvisorrule" - }, { "label": "SystemSettings", "file_type": "code", @@ -1822,7 +2069,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_types_admin_systemsettings", "community": 31, - "community_name": "Admin Settings Managers", + "community_name": "Spinner.tsx", "norm_label": "systemsettings" }, { @@ -1835,22 +2082,9 @@ "_origin": "ast", "id": "frontend_admin_panel_src_types_admin_testimonial", "community": 31, - "community_name": "Admin Settings Managers", + "community_name": "Spinner.tsx", "norm_label": "testimonial" }, - { - "label": "VerifyOtpPayload", - "file_type": "code", - "source_file": "frontend/admin-panel/src/types/admin.ts", - "source_location": "L26", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "id": "frontend_admin_panel_src_types_admin_verifyotppayload", - "community": 31, - "community_name": "Admin Settings Managers", - "norm_label": "verifyotppayload" - }, { "label": "HealthLog", "file_type": "code", @@ -2095,7 +2329,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_components_ui_confirmmodal_confirmmodalprops", "community": 38, - "community_name": "CMS and Media Modals", + "community_name": "ConfirmModal.tsx", "norm_label": "confirmmodalprops" }, { @@ -2108,7 +2342,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_cms_herobanner", "community": 38, - "community_name": "CMS and Media Modals", + "community_name": "ConfirmModal.tsx", "norm_label": "herobanner" }, { @@ -2121,22 +2355,9 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_cms_vettestimonial", "community": 38, - "community_name": "CMS and Media Modals", + "community_name": "ConfirmModal.tsx", "norm_label": "vettestimonial" }, - { - "label": "Media", - "file_type": "code", - "source_file": "frontend/admin-panel/src/pages/Media.tsx", - "source_location": "L9", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "id": "frontend_admin_panel_src_pages_media_media", - "community": 38, - "community_name": "CMS and Media Modals", - "norm_label": "media" - }, { "label": "Video", "file_type": "code", @@ -2147,7 +2368,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_videos_video", "community": 38, - "community_name": "CMS and Media Modals", + "community_name": "ConfirmModal.tsx", "norm_label": "video" }, { @@ -2160,7 +2381,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_wholesaleapplications_wholesalerequest", "community": 38, - "community_name": "CMS and Media Modals", + "community_name": "ConfirmModal.tsx", "norm_label": "wholesalerequest" }, { @@ -2173,7 +2394,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_wiki_productitem", "community": 38, - "community_name": "CMS and Media Modals", + "community_name": "ConfirmModal.tsx", "norm_label": "productitem" }, { @@ -2186,9 +2407,35 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_wiki_wikiterm", "community": 38, - "community_name": "CMS and Media Modals", + "community_name": "ConfirmModal.tsx", "norm_label": "wikiterm" }, + { + "label": "Product", + "file_type": "code", + "source_file": "frontend/admin-panel/src/types/admin.ts", + "source_location": "L185", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "id": "frontend_admin_panel_src_types_admin_product", + "community": 38, + "community_name": "ConfirmModal.tsx", + "norm_label": "product" + }, + { + "label": "SmartAdvisorRule", + "file_type": "code", + "source_file": "frontend/admin-panel/src/types/admin.ts", + "source_location": "L83", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "id": "frontend_admin_panel_src_types_admin_smartadvisorrule", + "community": 38, + "community_name": "ConfirmModal.tsx", + "norm_label": "smartadvisorrule" + }, { "label": "CmsController", "file_type": "code", @@ -2199,7 +2446,7 @@ "_origin": "ast", "id": "backend_src_cms_cms_controller_cmscontroller", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": "cmscontroller" }, { @@ -2212,7 +2459,7 @@ "_origin": "ast", "id": "backend_src_cms_cms_service_cmsservice", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": "cmsservice" }, { @@ -2225,7 +2472,7 @@ "_origin": "ast", "id": "backend_src_cms_dto_cms_dto_createherobannerdto", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": "createherobannerdto" }, { @@ -2238,7 +2485,7 @@ "_origin": "ast", "id": "backend_src_cms_dto_cms_dto_createsmartadvisorruledto", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": "createsmartadvisorruledto" }, { @@ -2251,7 +2498,7 @@ "_origin": "ast", "id": "backend_src_cms_dto_cms_dto_createvettestimonialdto", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": "createvettestimonialdto" }, { @@ -2267,19 +2514,6 @@ "community_name": "Admin Blog Controller", "norm_label": "blogscontroller" }, - { - "label": "WholesaleApplyDto", - "file_type": "code", - "source_file": "backend/src/wholesale/dto/wholesale-apply.dto.ts", - "source_location": "L4", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "id": "backend_src_wholesale_dto_wholesale_apply_dto_wholesaleapplydto", - "community": 42, - "community_name": "WholesaleApplyDto", - "norm_label": "wholesaleapplydto" - }, { "label": "WholesaleController", "file_type": "code", @@ -2290,7 +2524,7 @@ "_origin": "ast", "id": "backend_src_wholesale_wholesale_controller_wholesalecontroller", "community": 42, - "community_name": "WholesaleApplyDto", + "community_name": "WholesaleService", "norm_label": "wholesalecontroller" }, { @@ -2303,7 +2537,7 @@ "_origin": "ast", "id": "backend_src_wholesale_wholesale_service_wholesaleservice", "community": 42, - "community_name": "WholesaleApplyDto", + "community_name": "WholesaleService", "norm_label": "wholesaleservice" }, { @@ -2449,58 +2683,6 @@ "community_name": "Home Data Module", "norm_label": "homeservice" }, - { - "label": "CreateOrderDto", - "file_type": "code", - "source_file": "backend/src/orders/dto/create-order.dto.ts", - "source_location": "L24", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "id": "backend_src_orders_dto_create_order_dto_createorderdto", - "community": 5, - "community_name": "OrdersService", - "norm_label": "createorderdto" - }, - { - "label": "OrderItemDto", - "file_type": "code", - "source_file": "backend/src/orders/dto/create-order.dto.ts", - "source_location": "L12", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "id": "backend_src_orders_dto_create_order_dto_orderitemdto", - "community": 5, - "community_name": "OrdersService", - "norm_label": "orderitemdto" - }, - { - "label": "OrdersController", - "file_type": "code", - "source_file": "backend/src/orders/orders.controller.ts", - "source_location": "L54", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "id": "backend_src_orders_orders_controller_orderscontroller", - "community": 5, - "community_name": "OrdersService", - "norm_label": "orderscontroller" - }, - { - "label": "OrdersService", - "file_type": "code", - "source_file": "backend/src/orders/orders.service.ts", - "source_location": "L13", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "id": "backend_src_orders_orders_service_ordersservice", - "community": 5, - "community_name": "OrdersService", - "norm_label": "ordersservice" - }, { "label": "Order", "file_type": "code", @@ -2632,88 +2814,23 @@ "norm_label": "petscontroller" }, { - "label": "CouponTargetInput", + "label": "MeliPayamakPattern", "file_type": "code", - "source_file": "backend/src/admin/admin.service.ts", - "source_location": "L43", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L23", "_callable": true, "_callable_class": true, "_origin": "ast", - "id": "backend_src_admin_admin_service_coupontargetinput", + "id": "backend_src_common_services_sms_service_melipayamakpattern", "community": 59, "community_name": "PrismaService", - "norm_label": "coupontargetinput" - }, - { - "label": "PaginationQuery", - "file_type": "code", - "source_file": "backend/src/admin/admin.service.ts", - "source_location": "L6", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "id": "backend_src_admin_admin_service_paginationquery", - "community": 59, - "community_name": "PrismaService", - "norm_label": "paginationquery" - }, - { - "label": "CategoryQuery", - "file_type": "code", - "source_file": "backend/src/admin/categories.service.ts", - "source_location": "L5", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "id": "backend_src_admin_categories_service_categoryquery", - "community": 59, - "community_name": "PrismaService", - "norm_label": "categoryquery" - }, - { - "label": "AdminLoginInput", - "file_type": "code", - "source_file": "backend/src/auth/auth.service.ts", - "source_location": "L24", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "id": "backend_src_auth_auth_service_adminlogininput", - "community": 59, - "community_name": "PrismaService", - "norm_label": "adminlogininput" - }, - { - "label": "LoginInput", - "file_type": "code", - "source_file": "backend/src/auth/auth.service.ts", - "source_location": "L19", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "id": "backend_src_auth_auth_service_logininput", - "community": 59, - "community_name": "PrismaService", - "norm_label": "logininput" - }, - { - "label": "RegisterInput", - "file_type": "code", - "source_file": "backend/src/auth/auth.service.ts", - "source_location": "L11", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "id": "backend_src_auth_auth_service_registerinput", - "community": 59, - "community_name": "PrismaService", - "norm_label": "registerinput" + "norm_label": "melipayamakpattern" }, { "label": "MeliPayamakResponse", "file_type": "code", "source_file": "backend/src/common/services/sms.service.ts", - "source_location": "L10", + "source_location": "L32", "_callable": true, "_callable_class": true, "_origin": "ast", @@ -2726,7 +2843,7 @@ "label": "SendPatternSmsOptions", "file_type": "code", "source_file": "backend/src/common/services/sms.service.ts", - "source_location": "L4", + "source_location": "L5", "_callable": true, "_callable_class": true, "_origin": "ast", @@ -2736,17 +2853,17 @@ "norm_label": "sendpatternsmsoptions" }, { - "label": "SmsService", + "label": "SmsConfig", "file_type": "code", "source_file": "backend/src/common/services/sms.service.ts", - "source_location": "L16", + "source_location": "L11", "_callable": true, "_callable_class": true, "_origin": "ast", - "id": "backend_src_common_services_sms_service_smsservice", + "id": "backend_src_common_services_sms_service_smsconfig", "community": 59, "community_name": "PrismaService", - "norm_label": "smsservice" + "norm_label": "smsconfig" }, { "label": "CreateContactSubmissionDto", @@ -2827,30 +2944,17 @@ "norm_label": "prismaservice" }, { - "label": "RedisService", + "label": "ScientificTermData", "file_type": "code", - "source_file": "backend/src/redis/redis.service.ts", - "source_location": "L5", + "source_file": "backend/src/settings/settings.service.ts", + "source_location": "L6", "_callable": true, "_callable_class": true, "_origin": "ast", - "id": "backend_src_redis_redis_service_redisservice", + "id": "backend_src_settings_settings_service_scientifictermdata", "community": 59, "community_name": "PrismaService", - "norm_label": "redisservice" - }, - { - "label": "UserAddressInput", - "file_type": "code", - "source_file": "backend/src/users/users.service.ts", - "source_location": "L5", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "id": "backend_src_users_users_service_useraddressinput", - "community": 59, - "community_name": "PrismaService", - "norm_label": "useraddressinput" + "norm_label": "scientifictermdata" }, { "label": "VideoQuery", @@ -2865,45 +2969,6 @@ "community_name": "PrismaService", "norm_label": "videoquery" }, - { - "label": "AuthController", - "file_type": "code", - "source_file": "backend/src/auth/auth.controller.ts", - "source_location": "L31", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "id": "backend_src_auth_auth_controller_authcontroller", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": "authcontroller" - }, - { - "label": "AuthService", - "file_type": "code", - "source_file": "backend/src/auth/auth.service.ts", - "source_location": "L30", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "id": "backend_src_auth_auth_service_authservice", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": "authservice" - }, - { - "label": "AdminLoginDto", - "file_type": "code", - "source_file": "backend/src/auth/dto/admin-login.dto.ts", - "source_location": "L4", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "id": "backend_src_auth_dto_admin_login_dto_adminlogindto", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": "adminlogindto" - }, { "label": "LoginDto", "file_type": "code", @@ -2917,19 +2982,6 @@ "community_name": "auth.controller.ts", "norm_label": "logindto" }, - { - "label": "RegisterDto", - "file_type": "code", - "source_file": "backend/src/auth/dto/register.dto.ts", - "source_location": "L10", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "id": "backend_src_auth_dto_register_dto_registerdto", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": "registerdto" - }, { "label": "SendOtpDto", "file_type": "code", @@ -2943,19 +2995,6 @@ "community_name": "auth.controller.ts", "norm_label": "sendotpdto" }, - { - "label": "VerifyOtpDto", - "file_type": "code", - "source_file": "backend/src/auth/dto/verify-otp.dto.ts", - "source_location": "L4", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "id": "backend_src_auth_dto_verify_otp_dto_verifyotpdto", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": "verifyotpdto" - }, { "label": "PaginationDto", "file_type": "code", @@ -2969,6 +3008,19 @@ "community_name": "PaginationDto", "norm_label": "paginationdto" }, + { + "label": "SortOrder", + "file_type": "code", + "source_file": "backend/src/common/dto/pagination.dto.ts", + "source_location": "L5", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "id": "backend_src_common_dto_pagination_dto_sortorder", + "community": 61, + "community_name": "PaginationDto", + "norm_label": "sortorder" + }, { "label": "WikiModule", "file_type": "code", @@ -3044,7 +3096,7 @@ "_origin": "ast", "id": "backend_src_admin_wiki_service_wikiquery", "community": 64, - "community_name": "pagination.dto.ts", + "community_name": "WikiService", "norm_label": "wikiquery" }, { @@ -3057,48 +3109,9 @@ "_origin": "ast", "id": "backend_src_admin_wiki_service_wikiservice", "community": 64, - "community_name": "pagination.dto.ts", + "community_name": "WikiService", "norm_label": "wikiservice" }, - { - "label": "SortOrder", - "file_type": "code", - "source_file": "backend/src/common/dto/pagination.dto.ts", - "source_location": "L5", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "id": "backend_src_common_dto_pagination_dto_sortorder", - "community": 64, - "community_name": "pagination.dto.ts", - "norm_label": "sortorder" - }, - { - "label": "ValidateCouponDto", - "file_type": "code", - "source_file": "backend/src/orders/orders.controller.ts", - "source_location": "L29", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "id": "backend_src_orders_orders_controller_validatecoupondto", - "community": 64, - "community_name": "pagination.dto.ts", - "norm_label": "validatecoupondto" - }, - { - "label": "OrdersModule", - "file_type": "code", - "source_file": "backend/src/orders/orders.module.ts", - "source_location": "L9", - "_callable": true, - "_callable_class": true, - "_origin": "ast", - "id": "backend_src_orders_orders_module_ordersmodule", - "community": 64, - "community_name": "pagination.dto.ts", - "norm_label": "ordersmodule" - }, { "label": "AppController", "file_type": "code", @@ -3126,17 +3139,43 @@ "norm_label": "appservice" }, { - "label": "PetsService", + "label": "OrdersController", "file_type": "code", - "source_file": "backend/src/pets/pets.service.ts", - "source_location": "L23", + "source_file": "backend/src/orders/orders.controller.ts", + "source_location": "L54", "_callable": true, "_callable_class": true, "_origin": "ast", - "id": "backend_src_pets_pets_service_petsservice", + "id": "backend_src_orders_orders_controller_orderscontroller", "community": 68, - "community_name": "Pet Business Logic", - "norm_label": "petsservice" + "community_name": "OrdersService", + "norm_label": "orderscontroller" + }, + { + "label": "OrdersModule", + "file_type": "code", + "source_file": "backend/src/orders/orders.module.ts", + "source_location": "L9", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "id": "backend_src_orders_orders_module_ordersmodule", + "community": 68, + "community_name": "OrdersService", + "norm_label": "ordersmodule" + }, + { + "label": "OrdersService", + "file_type": "code", + "source_file": "backend/src/orders/orders.service.ts", + "source_location": "L13", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "id": "backend_src_orders_orders_service_ordersservice", + "community": 68, + "community_name": "OrdersService", + "norm_label": "ordersservice" }, { "label": "B2BModule", @@ -3373,17 +3412,30 @@ "norm_label": "topcouponitem" }, { - "label": "CreateHealthLogDto", + "label": "CreateOrderDto", "file_type": "code", - "source_file": "backend/src/pets/dto/create-health-log.dto.ts", - "source_location": "L4", + "source_file": "backend/src/orders/dto/create-order.dto.ts", + "source_location": "L24", "_callable": true, "_callable_class": true, "_origin": "ast", - "id": "backend_src_pets_dto_create_health_log_dto_createhealthlogdto", + "id": "backend_src_orders_dto_create_order_dto_createorderdto", "community": 74, - "community_name": "Health Log DTOs", - "norm_label": "createhealthlogdto" + "community_name": "CreateOrderDto", + "norm_label": "createorderdto" + }, + { + "label": "OrderItemDto", + "file_type": "code", + "source_file": "backend/src/orders/dto/create-order.dto.ts", + "source_location": "L12", + "_callable": true, + "_callable_class": true, + "_origin": "ast", + "id": "backend_src_orders_dto_create_order_dto_orderitemdto", + "community": 74, + "community_name": "CreateOrderDto", + "norm_label": "orderitemdto" }, { "label": "ErrorBoundary", @@ -4374,7 +4426,7 @@ "_origin": "ast", "id": "backend_src_pets_pets_controller_petscontroller_addhealthlog", "community": 1, - "community_name": "Pet Management Controller", + "community_name": "pets/pets.controller.ts", "norm_label": ".addhealthlog()" }, { @@ -4386,7 +4438,7 @@ "_origin": "ast", "id": "backend_src_pets_pets_controller_petscontroller_addreminder", "community": 1, - "community_name": "Pet Management Controller", + "community_name": "pets/pets.controller.ts", "norm_label": ".addreminder()" }, { @@ -4398,7 +4450,7 @@ "_origin": "ast", "id": "backend_src_pets_pets_controller_petscontroller_constructor", "community": 1, - "community_name": "Pet Management Controller", + "community_name": "pets/pets.controller.ts", "norm_label": ".constructor()" }, { @@ -4410,7 +4462,7 @@ "_origin": "ast", "id": "backend_src_pets_pets_controller_petscontroller_create", "community": 1, - "community_name": "Pet Management Controller", + "community_name": "pets/pets.controller.ts", "norm_label": ".create()" }, { @@ -4422,7 +4474,7 @@ "_origin": "ast", "id": "backend_src_pets_pets_controller_petscontroller_findall", "community": 1, - "community_name": "Pet Management Controller", + "community_name": "pets/pets.controller.ts", "norm_label": ".findall()" }, { @@ -4434,7 +4486,7 @@ "_origin": "ast", "id": "backend_src_pets_pets_controller_petscontroller_findone", "community": 1, - "community_name": "Pet Management Controller", + "community_name": "pets/pets.controller.ts", "norm_label": ".findone()" }, { @@ -4446,7 +4498,7 @@ "_origin": "ast", "id": "backend_src_pets_pets_controller_petscontroller_remove", "community": 1, - "community_name": "Pet Management Controller", + "community_name": "pets/pets.controller.ts", "norm_label": ".remove()" }, { @@ -4458,7 +4510,7 @@ "_origin": "ast", "id": "backend_src_pets_pets_controller_petscontroller_togglereminder", "community": 1, - "community_name": "Pet Management Controller", + "community_name": "pets/pets.controller.ts", "norm_label": ".togglereminder()" }, { @@ -4470,7 +4522,127 @@ "_origin": "ast", "id": "backend_src_pets_pets_controller_petscontroller_update", "community": 1, - "community_name": "Pet Management Controller", + "community_name": "pets/pets.controller.ts", + "norm_label": ".update()" + }, + { + "label": ".addHealthLog()", + "file_type": "code", + "source_file": "backend/src/pets/pets.service.ts", + "source_location": "L260", + "_callable": true, + "_origin": "ast", + "id": "backend_src_pets_pets_service_petsservice_addhealthlog", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": ".addhealthlog()" + }, + { + "label": ".addReminder()", + "file_type": "code", + "source_file": "backend/src/pets/pets.service.ts", + "source_location": "L198", + "_callable": true, + "_origin": "ast", + "id": "backend_src_pets_pets_service_petsservice_addreminder", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": ".addreminder()" + }, + { + "label": ".constructor()", + "file_type": "code", + "source_file": "backend/src/pets/pets.service.ts", + "source_location": "L24", + "_callable": true, + "_origin": "ast", + "id": "backend_src_pets_pets_service_petsservice_constructor", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": ".constructor()" + }, + { + "label": ".create()", + "file_type": "code", + "source_file": "backend/src/pets/pets.service.ts", + "source_location": "L26", + "_callable": true, + "_origin": "ast", + "id": "backend_src_pets_pets_service_petsservice_create", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": ".create()" + }, + { + "label": ".findAllAdmin()", + "file_type": "code", + "source_file": "backend/src/pets/pets.service.ts", + "source_location": "L49", + "_callable": true, + "_origin": "ast", + "id": "backend_src_pets_pets_service_petsservice_findalladmin", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": ".findalladmin()" + }, + { + "label": ".findAllByUser()", + "file_type": "code", + "source_file": "backend/src/pets/pets.service.ts", + "source_location": "L109", + "_callable": true, + "_origin": "ast", + "id": "backend_src_pets_pets_service_petsservice_findallbyuser", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": ".findallbyuser()" + }, + { + "label": ".findOne()", + "file_type": "code", + "source_file": "backend/src/pets/pets.service.ts", + "source_location": "L150", + "_callable": true, + "_origin": "ast", + "id": "backend_src_pets_pets_service_petsservice_findone", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": ".findone()" + }, + { + "label": ".remove()", + "file_type": "code", + "source_file": "backend/src/pets/pets.service.ts", + "source_location": "L191", + "_callable": true, + "_origin": "ast", + "id": "backend_src_pets_pets_service_petsservice_remove", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": ".remove()" + }, + { + "label": ".toggleReminder()", + "file_type": "code", + "source_file": "backend/src/pets/pets.service.ts", + "source_location": "L211", + "_callable": true, + "_origin": "ast", + "id": "backend_src_pets_pets_service_petsservice_togglereminder", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": ".togglereminder()" + }, + { + "label": ".update()", + "file_type": "code", + "source_file": "backend/src/pets/pets.service.ts", + "source_location": "L161", + "_callable": true, + "_origin": "ast", + "id": "backend_src_pets_pets_service_petsservice_update", + "community": 1, + "community_name": "pets/pets.controller.ts", "norm_label": ".update()" }, { @@ -4509,6 +4681,66 @@ "community_name": "Network Status Banner", "norm_label": "usenetworkstatus()" }, + { + "label": ".adminLogin()", + "file_type": "code", + "source_file": "backend/src/auth/auth.controller.ts", + "source_location": "L129", + "_callable": true, + "_origin": "ast", + "id": "backend_src_auth_auth_controller_authcontroller_adminlogin", + "community": 103, + "community_name": ".adminLogin", + "norm_label": ".adminlogin()" + }, + { + "label": ".login()", + "file_type": "code", + "source_file": "backend/src/auth/auth.controller.ts", + "source_location": "L120", + "_callable": true, + "_origin": "ast", + "id": "backend_src_auth_auth_controller_authcontroller_login", + "community": 103, + "community_name": ".adminLogin", + "norm_label": ".login()" + }, + { + "label": ".register()", + "file_type": "code", + "source_file": "backend/src/auth/auth.controller.ts", + "source_location": "L111", + "_callable": true, + "_origin": "ast", + "id": "backend_src_auth_auth_controller_authcontroller_register", + "community": 103, + "community_name": ".adminLogin", + "norm_label": ".register()" + }, + { + "label": ".sendOtp()", + "file_type": "code", + "source_file": "backend/src/auth/auth.controller.ts", + "source_location": "L59", + "_callable": true, + "_origin": "ast", + "id": "backend_src_auth_auth_controller_authcontroller_sendotp", + "community": 103, + "community_name": ".adminLogin", + "norm_label": ".sendotp()" + }, + { + "label": ".verifyOtp()", + "file_type": "code", + "source_file": "backend/src/auth/auth.controller.ts", + "source_location": "L100", + "_callable": true, + "_origin": "ast", + "id": "backend_src_auth_auth_controller_authcontroller_verifyotp", + "community": 103, + "community_name": ".adminLogin", + "norm_label": ".verifyotp()" + }, { "label": "main()", "file_type": "code", @@ -4533,6 +4765,18 @@ "community_name": "Custom Data Seeding", "norm_label": "main()" }, + { + "label": ".constructor()", + "file_type": "code", + "source_file": "backend/src/auth/auth.controller.ts", + "source_location": "L32", + "_callable": true, + "_origin": "ast", + "id": "backend_src_auth_auth_controller_authcontroller_constructor", + "community": 117, + "community_name": "AuthController", + "norm_label": ".constructor()" + }, { "label": "Checkout()", "file_type": "code", @@ -4845,18 +5089,6 @@ "community_name": "Privacy Page Component", "norm_label": "privacypage()" }, - { - "label": "MediaSelector()", - "file_type": "code", - "source_file": "frontend/admin-panel/src/components/ui/MediaSelector.tsx", - "source_location": "L24", - "_callable": true, - "_origin": "ast", - "id": "frontend_admin_panel_src_components_ui_mediaselector_mediaselector", - "community": 13, - "community_name": "Media and Blog UI Components", - "norm_label": "mediaselector()" - }, { "label": "Pagination()", "file_type": "code", @@ -4866,7 +5098,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_components_ui_pagination_pagination", "community": 13, - "community_name": "Media and Blog UI Components", + "community_name": "Products.tsx", "norm_label": "pagination()" }, { @@ -4878,33 +5110,9 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_blogs_blogs", "community": 13, - "community_name": "Media and Blog UI Components", + "community_name": "Products.tsx", "norm_label": "blogs()" }, - { - "label": "Categories()", - "file_type": "code", - "source_file": "frontend/admin-panel/src/pages/Categories.tsx", - "source_location": "L22", - "_callable": true, - "_origin": "ast", - "id": "frontend_admin_panel_src_pages_categories_categories", - "community": 13, - "community_name": "Media and Blog UI Components", - "norm_label": "categories()" - }, - { - "label": "IngredientsManager()", - "file_type": "code", - "source_file": "frontend/admin-panel/src/pages/IngredientsManager.tsx", - "source_location": "L10", - "_callable": true, - "_origin": "ast", - "id": "frontend_admin_panel_src_pages_ingredientsmanager_ingredientsmanager", - "community": 13, - "community_name": "Media and Blog UI Components", - "norm_label": "ingredientsmanager()" - }, { "label": "Pets()", "file_type": "code", @@ -4914,21 +5122,9 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_pets_pets", "community": 13, - "community_name": "Media and Blog UI Components", + "community_name": "Products.tsx", "norm_label": "pets()" }, - { - "label": "PrescriptionsManager()", - "file_type": "code", - "source_file": "frontend/admin-panel/src/pages/PrescriptionsManager.tsx", - "source_location": "L8", - "_callable": true, - "_origin": "ast", - "id": "frontend_admin_panel_src_pages_prescriptionsmanager_prescriptionsmanager", - "community": 13, - "community_name": "Media and Blog UI Components", - "norm_label": "prescriptionsmanager()" - }, { "label": "Products()", "file_type": "code", @@ -4938,7 +5134,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_products_products", "community": 13, - "community_name": "Media and Blog UI Components", + "community_name": "Products.tsx", "norm_label": "products()" }, { @@ -4950,21 +5146,9 @@ "_origin": "ast", "id": "backend_src_auth_jwt_auth_guard_jwtauthguard_handlerequest", "community": 130, - "community_name": "Roles", + "community_name": "JwtAuthGuard", "norm_label": ".handlerequest()" }, - { - "label": "Roles()", - "file_type": "code", - "source_file": "backend/src/common/decorators/roles.decorator.ts", - "source_location": "L4", - "_callable": true, - "_origin": "ast", - "id": "backend_src_common_decorators_roles_decorator_roles", - "community": 130, - "community_name": "Roles", - "norm_label": "roles()" - }, { "label": ".canActivate()", "file_type": "code", @@ -4974,7 +5158,7 @@ "_origin": "ast", "id": "backend_src_common_guards_roles_guard_rolesguard_canactivate", "community": 130, - "community_name": "Roles", + "community_name": "JwtAuthGuard", "norm_label": ".canactivate()" }, { @@ -4986,9 +5170,69 @@ "_origin": "ast", "id": "backend_src_common_guards_roles_guard_rolesguard_constructor", "community": 130, - "community_name": "Roles", + "community_name": "JwtAuthGuard", "norm_label": ".constructor()" }, + { + "label": ".constructor()", + "file_type": "code", + "source_file": "backend/src/admin/blogs.service.ts", + "source_location": "L13", + "_callable": true, + "_origin": "ast", + "id": "backend_src_admin_blogs_service_blogsservice_constructor", + "community": 137, + "community_name": "BlogsService", + "norm_label": ".constructor()" + }, + { + "label": ".createBlog()", + "file_type": "code", + "source_file": "backend/src/admin/blogs.service.ts", + "source_location": "L46", + "_callable": true, + "_origin": "ast", + "id": "backend_src_admin_blogs_service_blogsservice_createblog", + "community": 137, + "community_name": "BlogsService", + "norm_label": ".createblog()" + }, + { + "label": ".deleteBlog()", + "file_type": "code", + "source_file": "backend/src/admin/blogs.service.ts", + "source_location": "L61", + "_callable": true, + "_origin": "ast", + "id": "backend_src_admin_blogs_service_blogsservice_deleteblog", + "community": 137, + "community_name": "BlogsService", + "norm_label": ".deleteblog()" + }, + { + "label": ".getBlogs()", + "file_type": "code", + "source_file": "backend/src/admin/blogs.service.ts", + "source_location": "L15", + "_callable": true, + "_origin": "ast", + "id": "backend_src_admin_blogs_service_blogsservice_getblogs", + "community": 137, + "community_name": "BlogsService", + "norm_label": ".getblogs()" + }, + { + "label": ".updateBlog()", + "file_type": "code", + "source_file": "backend/src/admin/blogs.service.ts", + "source_location": "L55", + "_callable": true, + "_origin": "ast", + "id": "backend_src_admin_blogs_service_blogsservice_updateblog", + "community": 137, + "community_name": "BlogsService", + "norm_label": ".updateblog()" + }, { "label": ".constructor()", "file_type": "code", @@ -5001,18 +5245,6 @@ "community_name": "ProductsService", "norm_label": ".constructor()" }, - { - "label": ".findAll()", - "file_type": "code", - "source_file": "backend/src/products/products.controller.ts", - "source_location": "L31", - "_callable": true, - "_origin": "ast", - "id": "backend_src_products_products_controller_productscontroller_findall", - "community": 14, - "community_name": "ProductsService", - "norm_label": ".findall()" - }, { "label": ".findOne()", "file_type": "code", @@ -5085,18 +5317,6 @@ "community_name": "ProductsService", "norm_label": ".constructor()" }, - { - "label": ".findAll()", - "file_type": "code", - "source_file": "backend/src/products/products.service.ts", - "source_location": "L10", - "_callable": true, - "_origin": "ast", - "id": "backend_src_products_products_service_productsservice_findall", - "community": 14, - "community_name": "ProductsService", - "norm_label": ".findall()" - }, { "label": ".findOne()", "file_type": "code", @@ -5688,241 +5908,541 @@ { "label": ".constructor()", "file_type": "code", - "source_file": "backend/src/settings/settings.controller.ts", + "source_file": "backend/src/banners/banners.controller.ts", + "source_location": "L22", + "_callable": true, + "_origin": "ast", + "id": "backend_src_banners_banners_controller_bannerscontroller_constructor", + "community": 2, + "community_name": "Roles", + "norm_label": ".constructor()" + }, + { + "label": ".create()", + "file_type": "code", + "source_file": "backend/src/banners/banners.controller.ts", + "source_location": "L35", + "_callable": true, + "_origin": "ast", + "id": "backend_src_banners_banners_controller_bannerscontroller_create", + "community": 2, + "community_name": "Roles", + "norm_label": ".create()" + }, + { + "label": ".findAll()", + "file_type": "code", + "source_file": "backend/src/banners/banners.controller.ts", "source_location": "L26", "_callable": true, "_origin": "ast", + "id": "backend_src_banners_banners_controller_bannerscontroller_findall", + "community": 2, + "community_name": "Roles", + "norm_label": ".findall()" + }, + { + "label": ".remove()", + "file_type": "code", + "source_file": "backend/src/banners/banners.controller.ts", + "source_location": "L62", + "_callable": true, + "_origin": "ast", + "id": "backend_src_banners_banners_controller_bannerscontroller_remove", + "community": 2, + "community_name": "Roles", + "norm_label": ".remove()" + }, + { + "label": ".reorder()", + "file_type": "code", + "source_file": "backend/src/banners/banners.controller.ts", + "source_location": "L44", + "_callable": true, + "_origin": "ast", + "id": "backend_src_banners_banners_controller_bannerscontroller_reorder", + "community": 2, + "community_name": "Roles", + "norm_label": ".reorder()" + }, + { + "label": ".update()", + "file_type": "code", + "source_file": "backend/src/banners/banners.controller.ts", + "source_location": "L53", + "_callable": true, + "_origin": "ast", + "id": "backend_src_banners_banners_controller_bannerscontroller_update", + "community": 2, + "community_name": "Roles", + "norm_label": ".update()" + }, + { + "label": ".constructor()", + "file_type": "code", + "source_file": "backend/src/banners/banners.service.ts", + "source_location": "L7", + "_callable": true, + "_origin": "ast", + "id": "backend_src_banners_banners_service_bannersservice_constructor", + "community": 2, + "community_name": "Roles", + "norm_label": ".constructor()" + }, + { + "label": ".create()", + "file_type": "code", + "source_file": "backend/src/banners/banners.service.ts", + "source_location": "L15", + "_callable": true, + "_origin": "ast", + "id": "backend_src_banners_banners_service_bannersservice_create", + "community": 2, + "community_name": "Roles", + "norm_label": ".create()" + }, + { + "label": ".findAll()", + "file_type": "code", + "source_file": "backend/src/banners/banners.service.ts", + "source_location": "L9", + "_callable": true, + "_origin": "ast", + "id": "backend_src_banners_banners_service_bannersservice_findall", + "community": 2, + "community_name": "Roles", + "norm_label": ".findall()" + }, + { + "label": ".remove()", + "file_type": "code", + "source_file": "backend/src/banners/banners.service.ts", + "source_location": "L32", + "_callable": true, + "_origin": "ast", + "id": "backend_src_banners_banners_service_bannersservice_remove", + "community": 2, + "community_name": "Roles", + "norm_label": ".remove()" + }, + { + "label": ".reorder()", + "file_type": "code", + "source_file": "backend/src/banners/banners.service.ts", + "source_location": "L40", + "_callable": true, + "_origin": "ast", + "id": "backend_src_banners_banners_service_bannersservice_reorder", + "community": 2, + "community_name": "Roles", + "norm_label": ".reorder()" + }, + { + "label": ".update()", + "file_type": "code", + "source_file": "backend/src/banners/banners.service.ts", + "source_location": "L21", + "_callable": true, + "_origin": "ast", + "id": "backend_src_banners_banners_service_bannersservice_update", + "community": 2, + "community_name": "Roles", + "norm_label": ".update()" + }, + { + "label": "Roles()", + "file_type": "code", + "source_file": "backend/src/common/decorators/roles.decorator.ts", + "source_location": "L4", + "_callable": true, + "_origin": "ast", + "id": "backend_src_common_decorators_roles_decorator_roles", + "community": 2, + "community_name": "Roles", + "norm_label": "roles()" + }, + { + "label": ".addPattern()", + "file_type": "code", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L176", + "_callable": true, + "_origin": "ast", + "id": "backend_src_settings_settings_controller_settingscontroller_addpattern", + "community": 2, + "community_name": "Roles", + "norm_label": ".addpattern()" + }, + { + "label": ".constructor()", + "file_type": "code", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L27", + "_callable": true, + "_origin": "ast", "id": "backend_src_settings_settings_controller_settingscontroller_constructor", "community": 2, - "community_name": "SettingsController", + "community_name": "Roles", "norm_label": ".constructor()" }, { "label": ".deleteScientificTerm()", "file_type": "code", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L71", + "source_location": "L72", "_callable": true, "_origin": "ast", "id": "backend_src_settings_settings_controller_settingscontroller_deletescientificterm", "community": 2, - "community_name": "SettingsController", + "community_name": "Roles", "norm_label": ".deletescientificterm()" }, + { + "label": ".editPattern()", + "file_type": "code", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L189", + "_callable": true, + "_origin": "ast", + "id": "backend_src_settings_settings_controller_settingscontroller_editpattern", + "community": 2, + "community_name": "Roles", + "norm_label": ".editpattern()" + }, { "label": ".getFinancialSettings()", "file_type": "code", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L97", + "source_location": "L98", "_callable": true, "_origin": "ast", "id": "backend_src_settings_settings_controller_settingscontroller_getfinancialsettings", "community": 2, - "community_name": "SettingsController", + "community_name": "Roles", "norm_label": ".getfinancialsettings()" }, + { + "label": ".getPatterns()", + "file_type": "code", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L167", + "_callable": true, + "_origin": "ast", + "id": "backend_src_settings_settings_controller_settingscontroller_getpatterns", + "community": 2, + "community_name": "Roles", + "norm_label": ".getpatterns()" + }, { "label": ".getScientificTerms()", "file_type": "code", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L50", + "source_location": "L51", "_callable": true, "_origin": "ast", "id": "backend_src_settings_settings_controller_settingscontroller_getscientificterms", "community": 2, - "community_name": "SettingsController", + "community_name": "Roles", "norm_label": ".getscientificterms()" }, { "label": ".getSeoSettings()", "file_type": "code", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L78", + "source_location": "L79", "_callable": true, "_origin": "ast", "id": "backend_src_settings_settings_controller_settingscontroller_getseosettings", "community": 2, - "community_name": "SettingsController", + "community_name": "Roles", "norm_label": ".getseosettings()" }, + { + "label": ".getSmsSettings()", + "file_type": "code", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L136", + "_callable": true, + "_origin": "ast", + "id": "backend_src_settings_settings_controller_settingscontroller_getsmssettings", + "community": 2, + "community_name": "Roles", + "norm_label": ".getsmssettings()" + }, { "label": ".getSystemSettings()", "file_type": "code", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L116", + "source_location": "L117", "_callable": true, "_origin": "ast", "id": "backend_src_settings_settings_controller_settingscontroller_getsystemsettings", "community": 2, - "community_name": "SettingsController", + "community_name": "Roles", "norm_label": ".getsystemsettings()" }, { "label": ".getUiTexts()", "file_type": "code", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L34", + "source_location": "L35", "_callable": true, "_origin": "ast", "id": "backend_src_settings_settings_controller_settingscontroller_getuitexts", "community": 2, - "community_name": "SettingsController", + "community_name": "Roles", "norm_label": ".getuitexts()" }, + { + "label": ".testSms()", + "file_type": "code", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L154", + "_callable": true, + "_origin": "ast", + "id": "backend_src_settings_settings_controller_settingscontroller_testsms", + "community": 2, + "community_name": "Roles", + "norm_label": ".testsms()" + }, { "label": ".updateFinancialSettings()", "file_type": "code", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L106", + "source_location": "L107", "_callable": true, "_origin": "ast", "id": "backend_src_settings_settings_controller_settingscontroller_updatefinancialsettings", "community": 2, - "community_name": "SettingsController", + "community_name": "Roles", "norm_label": ".updatefinancialsettings()" }, { "label": ".updateSeoSettings()", "file_type": "code", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L87", + "source_location": "L88", "_callable": true, "_origin": "ast", "id": "backend_src_settings_settings_controller_settingscontroller_updateseosettings", "community": 2, - "community_name": "SettingsController", + "community_name": "Roles", "norm_label": ".updateseosettings()" }, + { + "label": ".updateSmsSettings()", + "file_type": "code", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L145", + "_callable": true, + "_origin": "ast", + "id": "backend_src_settings_settings_controller_settingscontroller_updatesmssettings", + "community": 2, + "community_name": "Roles", + "norm_label": ".updatesmssettings()" + }, { "label": ".updateSystemSettings()", "file_type": "code", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L125", + "source_location": "L126", "_callable": true, "_origin": "ast", "id": "backend_src_settings_settings_controller_settingscontroller_updatesystemsettings", "community": 2, - "community_name": "SettingsController", + "community_name": "Roles", "norm_label": ".updatesystemsettings()" }, { "label": ".updateUiText()", "file_type": "code", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L44", + "source_location": "L45", "_callable": true, "_origin": "ast", "id": "backend_src_settings_settings_controller_settingscontroller_updateuitext", "community": 2, - "community_name": "SettingsController", + "community_name": "Roles", "norm_label": ".updateuitext()" }, { "label": ".upsertScientificTerm()", "file_type": "code", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L59", + "source_location": "L60", "_callable": true, "_origin": "ast", "id": "backend_src_settings_settings_controller_settingscontroller_upsertscientificterm", "community": 2, - "community_name": "SettingsController", + "community_name": "Roles", "norm_label": ".upsertscientificterm()" }, + { + "label": ".addPattern()", + "file_type": "code", + "source_file": "backend/src/settings/settings.service.ts", + "source_location": "L111", + "_callable": true, + "_origin": "ast", + "id": "backend_src_settings_settings_service_settingsservice_addpattern", + "community": 2, + "community_name": "Roles", + "norm_label": ".addpattern()" + }, { "label": ".constructor()", "file_type": "code", "source_file": "backend/src/settings/settings.service.ts", - "source_location": "L13", + "source_location": "L14", "_callable": true, "_origin": "ast", "id": "backend_src_settings_settings_service_settingsservice_constructor", "community": 2, - "community_name": "SettingsController", + "community_name": "Roles", "norm_label": ".constructor()" }, { "label": ".deleteScientificTerm()", "file_type": "code", "source_file": "backend/src/settings/settings.service.ts", - "source_location": "L64", + "source_location": "L68", "_callable": true, "_origin": "ast", "id": "backend_src_settings_settings_service_settingsservice_deletescientificterm", "community": 2, - "community_name": "SettingsController", + "community_name": "Roles", "norm_label": ".deletescientificterm()" }, + { + "label": ".editPattern()", + "file_type": "code", + "source_file": "backend/src/settings/settings.service.ts", + "source_location": "L115", + "_callable": true, + "_origin": "ast", + "id": "backend_src_settings_settings_service_settingsservice_editpattern", + "community": 2, + "community_name": "Roles", + "norm_label": ".editpattern()" + }, { "label": ".getCategorySetting()", "file_type": "code", "source_file": "backend/src/settings/settings.service.ts", - "source_location": "L70", + "source_location": "L74", "_callable": true, "_origin": "ast", "id": "backend_src_settings_settings_service_settingsservice_getcategorysetting", "community": 2, - "community_name": "SettingsController", + "community_name": "Roles", "norm_label": ".getcategorysetting()" }, + { + "label": ".getPatterns()", + "file_type": "code", + "source_file": "backend/src/settings/settings.service.ts", + "source_location": "L107", + "_callable": true, + "_origin": "ast", + "id": "backend_src_settings_settings_service_settingsservice_getpatterns", + "community": 2, + "community_name": "Roles", + "norm_label": ".getpatterns()" + }, { "label": ".getScientificTerms()", "file_type": "code", "source_file": "backend/src/settings/settings.service.ts", - "source_location": "L39", + "source_location": "L43", "_callable": true, "_origin": "ast", "id": "backend_src_settings_settings_service_settingsservice_getscientificterms", "community": 2, - "community_name": "SettingsController", + "community_name": "Roles", "norm_label": ".getscientificterms()" }, + { + "label": ".getSmsSettings()", + "file_type": "code", + "source_file": "backend/src/settings/settings.service.ts", + "source_location": "L90", + "_callable": true, + "_origin": "ast", + "id": "backend_src_settings_settings_service_settingsservice_getsmssettings", + "community": 2, + "community_name": "Roles", + "norm_label": ".getsmssettings()" + }, { "label": ".getUiTexts()", "file_type": "code", "source_file": "backend/src/settings/settings.service.ts", - "source_location": "L15", + "source_location": "L19", "_callable": true, "_origin": "ast", "id": "backend_src_settings_settings_service_settingsservice_getuitexts", "community": 2, - "community_name": "SettingsController", + "community_name": "Roles", "norm_label": ".getuitexts()" }, + { + "label": ".testSms()", + "file_type": "code", + "source_file": "backend/src/settings/settings.service.ts", + "source_location": "L103", + "_callable": true, + "_origin": "ast", + "id": "backend_src_settings_settings_service_settingsservice_testsms", + "community": 2, + "community_name": "Roles", + "norm_label": ".testsms()" + }, { "label": ".updateCategorySetting()", "file_type": "code", "source_file": "backend/src/settings/settings.service.ts", - "source_location": "L77", + "source_location": "L81", "_callable": true, "_origin": "ast", "id": "backend_src_settings_settings_service_settingsservice_updatecategorysetting", "community": 2, - "community_name": "SettingsController", + "community_name": "Roles", "norm_label": ".updatecategorysetting()" }, + { + "label": ".updateSmsSettings()", + "file_type": "code", + "source_file": "backend/src/settings/settings.service.ts", + "source_location": "L94", + "_callable": true, + "_origin": "ast", + "id": "backend_src_settings_settings_service_settingsservice_updatesmssettings", + "community": 2, + "community_name": "Roles", + "norm_label": ".updatesmssettings()" + }, { "label": ".updateUiText()", "file_type": "code", "source_file": "backend/src/settings/settings.service.ts", - "source_location": "L31", + "source_location": "L35", "_callable": true, "_origin": "ast", "id": "backend_src_settings_settings_service_settingsservice_updateuitext", "community": 2, - "community_name": "SettingsController", + "community_name": "Roles", "norm_label": ".updateuitext()" }, { "label": ".upsertScientificTerm()", "file_type": "code", "source_file": "backend/src/settings/settings.service.ts", - "source_location": "L43", + "source_location": "L47", "_callable": true, "_origin": "ast", "id": "backend_src_settings_settings_service_settingsservice_upsertscientificterm", "community": 2, - "community_name": "SettingsController", + "community_name": "Roles", "norm_label": ".upsertscientificterm()" }, { @@ -6178,148 +6698,40 @@ "norm_label": ".verifyotp()" }, { - "label": ".constructor()", + "label": ".onModuleDestroy()", "file_type": "code", - "source_file": "backend/src/banners/banners.controller.ts", - "source_location": "L22", - "_callable": true, - "_origin": "ast", - "id": "backend_src_banners_banners_controller_bannerscontroller_constructor", - "community": 21, - "community_name": "Banner Management Controller", - "norm_label": ".constructor()" - }, - { - "label": ".create()", - "file_type": "code", - "source_file": "backend/src/banners/banners.controller.ts", - "source_location": "L35", - "_callable": true, - "_origin": "ast", - "id": "backend_src_banners_banners_controller_bannerscontroller_create", - "community": 21, - "community_name": "Banner Management Controller", - "norm_label": ".create()" - }, - { - "label": ".findAll()", - "file_type": "code", - "source_file": "backend/src/banners/banners.controller.ts", - "source_location": "L26", - "_callable": true, - "_origin": "ast", - "id": "backend_src_banners_banners_controller_bannerscontroller_findall", - "community": 21, - "community_name": "Banner Management Controller", - "norm_label": ".findall()" - }, - { - "label": ".remove()", - "file_type": "code", - "source_file": "backend/src/banners/banners.controller.ts", - "source_location": "L62", - "_callable": true, - "_origin": "ast", - "id": "backend_src_banners_banners_controller_bannerscontroller_remove", - "community": 21, - "community_name": "Banner Management Controller", - "norm_label": ".remove()" - }, - { - "label": ".reorder()", - "file_type": "code", - "source_file": "backend/src/banners/banners.controller.ts", - "source_location": "L44", - "_callable": true, - "_origin": "ast", - "id": "backend_src_banners_banners_controller_bannerscontroller_reorder", - "community": 21, - "community_name": "Banner Management Controller", - "norm_label": ".reorder()" - }, - { - "label": ".update()", - "file_type": "code", - "source_file": "backend/src/banners/banners.controller.ts", - "source_location": "L53", - "_callable": true, - "_origin": "ast", - "id": "backend_src_banners_banners_controller_bannerscontroller_update", - "community": 21, - "community_name": "Banner Management Controller", - "norm_label": ".update()" - }, - { - "label": ".constructor()", - "file_type": "code", - "source_file": "backend/src/banners/banners.service.ts", - "source_location": "L7", - "_callable": true, - "_origin": "ast", - "id": "backend_src_banners_banners_service_bannersservice_constructor", - "community": 21, - "community_name": "Banner Management Controller", - "norm_label": ".constructor()" - }, - { - "label": ".create()", - "file_type": "code", - "source_file": "backend/src/banners/banners.service.ts", + "source_file": "backend/src/redis/redis.service.ts", "source_location": "L15", "_callable": true, "_origin": "ast", - "id": "backend_src_banners_banners_service_bannersservice_create", + "id": "backend_src_redis_redis_service_redisservice_onmoduledestroy", "community": 21, - "community_name": "Banner Management Controller", - "norm_label": ".create()" + "community_name": "auth.service.ts", + "norm_label": ".onmoduledestroy()" }, { - "label": ".findAll()", + "label": ".onModuleInit()", "file_type": "code", - "source_file": "backend/src/banners/banners.service.ts", - "source_location": "L9", + "source_file": "backend/src/redis/redis.service.ts", + "source_location": "L8", "_callable": true, "_origin": "ast", - "id": "backend_src_banners_banners_service_bannersservice_findall", + "id": "backend_src_redis_redis_service_redisservice_onmoduleinit", "community": 21, - "community_name": "Banner Management Controller", - "norm_label": ".findall()" + "community_name": "auth.service.ts", + "norm_label": ".onmoduleinit()" }, { - "label": ".remove()", + "label": ".set()", "file_type": "code", - "source_file": "backend/src/banners/banners.service.ts", - "source_location": "L32", + "source_file": "backend/src/redis/redis.service.ts", + "source_location": "L19", "_callable": true, "_origin": "ast", - "id": "backend_src_banners_banners_service_bannersservice_remove", + "id": "backend_src_redis_redis_service_redisservice_set", "community": 21, - "community_name": "Banner Management Controller", - "norm_label": ".remove()" - }, - { - "label": ".reorder()", - "file_type": "code", - "source_file": "backend/src/banners/banners.service.ts", - "source_location": "L40", - "_callable": true, - "_origin": "ast", - "id": "backend_src_banners_banners_service_bannersservice_reorder", - "community": 21, - "community_name": "Banner Management Controller", - "norm_label": ".reorder()" - }, - { - "label": ".update()", - "file_type": "code", - "source_file": "backend/src/banners/banners.service.ts", - "source_location": "L21", - "_callable": true, - "_origin": "ast", - "id": "backend_src_banners_banners_service_bannersservice_update", - "community": 21, - "community_name": "Banner Management Controller", - "norm_label": ".update()" + "community_name": "auth.service.ts", + "norm_label": ".set()" }, { "label": ".findAll()", @@ -6354,7 +6766,7 @@ "_origin": "ast", "id": "backend_src_admin_media_controller_mediacontroller_constructor", "community": 22, - "community_name": "Media Upload Controller", + "community_name": "MediaController", "norm_label": ".constructor()" }, { @@ -6366,7 +6778,7 @@ "_origin": "ast", "id": "backend_src_admin_media_controller_mediacontroller_deletemedia", "community": 22, - "community_name": "Media Upload Controller", + "community_name": "MediaController", "norm_label": ".deletemedia()" }, { @@ -6378,7 +6790,7 @@ "_origin": "ast", "id": "backend_src_admin_media_controller_mediacontroller_getallmedia", "community": 22, - "community_name": "Media Upload Controller", + "community_name": "MediaController", "norm_label": ".getallmedia()" }, { @@ -6390,7 +6802,7 @@ "_origin": "ast", "id": "backend_src_admin_media_controller_mediacontroller_updatemedia", "community": 22, - "community_name": "Media Upload Controller", + "community_name": "MediaController", "norm_label": ".updatemedia()" }, { @@ -6402,7 +6814,7 @@ "_origin": "ast", "id": "backend_src_admin_media_controller_mediacontroller_uploadfile", "community": 22, - "community_name": "Media Upload Controller", + "community_name": "MediaController", "norm_label": ".uploadfile()" }, { @@ -6414,7 +6826,7 @@ "_origin": "ast", "id": "backend_src_admin_media_service_mediaservice_constructor", "community": 22, - "community_name": "Media Upload Controller", + "community_name": "MediaController", "norm_label": ".constructor()" }, { @@ -6426,7 +6838,7 @@ "_origin": "ast", "id": "backend_src_admin_media_service_mediaservice_deletemedia", "community": 22, - "community_name": "Media Upload Controller", + "community_name": "MediaController", "norm_label": ".deletemedia()" }, { @@ -6438,7 +6850,7 @@ "_origin": "ast", "id": "backend_src_admin_media_service_mediaservice_getallmedia", "community": 22, - "community_name": "Media Upload Controller", + "community_name": "MediaController", "norm_label": ".getallmedia()" }, { @@ -6450,7 +6862,7 @@ "_origin": "ast", "id": "backend_src_admin_media_service_mediaservice_updatemedia", "community": 22, - "community_name": "Media Upload Controller", + "community_name": "MediaController", "norm_label": ".updatemedia()" }, { @@ -6462,7 +6874,7 @@ "_origin": "ast", "id": "backend_src_admin_media_service_mediaservice_uploadfile", "community": 22, - "community_name": "Media Upload Controller", + "community_name": "MediaController", "norm_label": ".uploadfile()" }, { @@ -6609,30 +7021,6 @@ "community_name": "Ingredient Management Controller", "norm_label": ".update()" }, - { - "label": "App()", - "file_type": "code", - "source_file": "frontend/admin-panel/src/App.tsx", - "source_location": "L17", - "_callable": true, - "_origin": "ast", - "id": "frontend_admin_panel_src_app_app", - "community": 24, - "community_name": "Admin Dashboard Components", - "norm_label": "app()" - }, - { - "label": "SuspenseFallback()", - "file_type": "code", - "source_file": "frontend/admin-panel/src/App.tsx", - "source_location": "L6", - "_callable": true, - "_origin": "ast", - "id": "frontend_admin_panel_src_app_suspensefallback", - "community": 24, - "community_name": "Admin Dashboard Components", - "norm_label": "suspensefallback()" - }, { "label": "ContactSubmissions()", "file_type": "code", @@ -6642,7 +7030,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_contactsubmissions_contactsubmissions", "community": 24, - "community_name": "Admin Dashboard Components", + "community_name": "adminRoutes.tsx", "norm_label": "contactsubmissions()" }, { @@ -6654,21 +7042,45 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_dashboard_dashboard", "community": 24, - "community_name": "Admin Dashboard Components", + "community_name": "adminRoutes.tsx", "norm_label": "dashboard()" }, + { + "label": "FinancialSettingsPage()", + "file_type": "code", + "source_file": "frontend/admin-panel/src/pages/FinancialSettingsPage.tsx", + "source_location": "L8", + "_callable": true, + "_origin": "ast", + "id": "frontend_admin_panel_src_pages_financialsettingspage_financialsettingspage", + "community": 24, + "community_name": "adminRoutes.tsx", + "norm_label": "financialsettingspage()" + }, { "label": "Settings()", "file_type": "code", "source_file": "frontend/admin-panel/src/pages/Settings.tsx", - "source_location": "L7", + "source_location": "L8", "_callable": true, "_origin": "ast", "id": "frontend_admin_panel_src_pages_settings_settings", "community": 24, - "community_name": "Admin Dashboard Components", + "community_name": "adminRoutes.tsx", "norm_label": "settings()" }, + { + "label": "SmsSettingsPage()", + "file_type": "code", + "source_file": "frontend/admin-panel/src/pages/SmsSettingsPage.tsx", + "source_location": "L54", + "_callable": true, + "_origin": "ast", + "id": "frontend_admin_panel_src_pages_smssettingspage_smssettingspage", + "community": 24, + "community_name": "adminRoutes.tsx", + "norm_label": "smssettingspage()" + }, { "label": "UITexts()", "file_type": "code", @@ -6678,69 +7090,9 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_uitexts_uitexts", "community": 24, - "community_name": "Admin Dashboard Components", + "community_name": "adminRoutes.tsx", "norm_label": "uitexts()" }, - { - "label": ".constructor()", - "file_type": "code", - "source_file": "backend/src/admin/blogs.service.ts", - "source_location": "L13", - "_callable": true, - "_origin": "ast", - "id": "backend_src_admin_blogs_service_blogsservice_constructor", - "community": 25, - "community_name": "admin.module.ts", - "norm_label": ".constructor()" - }, - { - "label": ".createBlog()", - "file_type": "code", - "source_file": "backend/src/admin/blogs.service.ts", - "source_location": "L46", - "_callable": true, - "_origin": "ast", - "id": "backend_src_admin_blogs_service_blogsservice_createblog", - "community": 25, - "community_name": "admin.module.ts", - "norm_label": ".createblog()" - }, - { - "label": ".deleteBlog()", - "file_type": "code", - "source_file": "backend/src/admin/blogs.service.ts", - "source_location": "L61", - "_callable": true, - "_origin": "ast", - "id": "backend_src_admin_blogs_service_blogsservice_deleteblog", - "community": 25, - "community_name": "admin.module.ts", - "norm_label": ".deleteblog()" - }, - { - "label": ".getBlogs()", - "file_type": "code", - "source_file": "backend/src/admin/blogs.service.ts", - "source_location": "L15", - "_callable": true, - "_origin": "ast", - "id": "backend_src_admin_blogs_service_blogsservice_getblogs", - "community": 25, - "community_name": "admin.module.ts", - "norm_label": ".getblogs()" - }, - { - "label": ".updateBlog()", - "file_type": "code", - "source_file": "backend/src/admin/blogs.service.ts", - "source_location": "L55", - "_callable": true, - "_origin": "ast", - "id": "backend_src_admin_blogs_service_blogsservice_updateblog", - "community": 25, - "community_name": "admin.module.ts", - "norm_label": ".updateblog()" - }, { "label": ".constructor()", "file_type": "code", @@ -6825,6 +7177,318 @@ "community_name": "admin.module.ts", "norm_label": ".getdashboardreports()" }, + { + "label": ".addPattern()", + "file_type": "code", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L221", + "_callable": true, + "_origin": "ast", + "id": "backend_src_common_services_sms_service_smsservice_addpattern", + "community": 26, + "community_name": "SmsService", + "norm_label": ".addpattern()" + }, + { + "label": ".constructor()", + "file_type": "code", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L42", + "_callable": true, + "_origin": "ast", + "id": "backend_src_common_services_sms_service_smsservice_constructor", + "community": 26, + "community_name": "SmsService", + "norm_label": ".constructor()" + }, + { + "label": ".editPattern()", + "file_type": "code", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L286", + "_callable": true, + "_origin": "ast", + "id": "backend_src_common_services_sms_service_smsservice_editpattern", + "community": 26, + "community_name": "SmsService", + "norm_label": ".editpattern()" + }, + { + "label": ".getPatterns()", + "file_type": "code", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L146", + "_callable": true, + "_origin": "ast", + "id": "backend_src_common_services_sms_service_smsservice_getpatterns", + "community": 26, + "community_name": "SmsService", + "norm_label": ".getpatterns()" + }, + { + "label": ".getSmsConfig()", + "file_type": "code", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L47", + "_callable": true, + "_origin": "ast", + "id": "backend_src_common_services_sms_service_smsservice_getsmsconfig", + "community": 26, + "community_name": "SmsService", + "norm_label": ".getsmsconfig()" + }, + { + "label": ".parsePatternsXml()", + "file_type": "code", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L114", + "_callable": true, + "_origin": "ast", + "id": "backend_src_common_services_sms_service_smsservice_parsepatternsxml", + "community": 26, + "community_name": "SmsService", + "norm_label": ".parsepatternsxml()" + }, + { + "label": ".postAsmx()", + "file_type": "code", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L83", + "_callable": true, + "_origin": "ast", + "id": "backend_src_common_services_sms_service_smsservice_postasmx", + "community": 26, + "community_name": "SmsService", + "norm_label": ".postasmx()" + }, + { + "label": ".saveLocalPattern()", + "file_type": "code", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L331", + "_callable": true, + "_origin": "ast", + "id": "backend_src_common_services_sms_service_smsservice_savelocalpattern", + "community": 26, + "community_name": "SmsService", + "norm_label": ".savelocalpattern()" + }, + { + "label": ".sendB2bNotification()", + "file_type": "code", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L565", + "_callable": true, + "_origin": "ast", + "id": "backend_src_common_services_sms_service_smsservice_sendb2bnotification", + "community": 26, + "community_name": "SmsService", + "norm_label": ".sendb2bnotification()" + }, + { + "label": ".sendOrderConfirmation()", + "file_type": "code", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L533", + "_callable": true, + "_origin": "ast", + "id": "backend_src_common_services_sms_service_smsservice_sendorderconfirmation", + "community": 26, + "community_name": "SmsService", + "norm_label": ".sendorderconfirmation()" + }, + { + "label": ".sendOtp()", + "file_type": "code", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L521", + "_callable": true, + "_origin": "ast", + "id": "backend_src_common_services_sms_service_smsservice_sendotp", + "community": 26, + "community_name": "SmsService", + "norm_label": ".sendotp()" + }, + { + "label": ".sendPatternSms()", + "file_type": "code", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L370", + "_callable": true, + "_origin": "ast", + "id": "backend_src_common_services_sms_service_smsservice_sendpatternsms", + "community": 26, + "community_name": "SmsService", + "norm_label": ".sendpatternsms()" + }, + { + "label": ".sendPetCareReminder()", + "file_type": "code", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L580", + "_callable": true, + "_origin": "ast", + "id": "backend_src_common_services_sms_service_smsservice_sendpetcarereminder", + "community": 26, + "community_name": "SmsService", + "norm_label": ".sendpetcarereminder()" + }, + { + "label": ".sendShippingNotification()", + "file_type": "code", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L549", + "_callable": true, + "_origin": "ast", + "id": "backend_src_common_services_sms_service_smsservice_sendshippingnotification", + "community": 26, + "community_name": "SmsService", + "norm_label": ".sendshippingnotification()" + }, + { + "label": ".sendSms()", + "file_type": "code", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L597", + "_callable": true, + "_origin": "ast", + "id": "backend_src_common_services_sms_service_smsservice_sendsms", + "community": 26, + "community_name": "SmsService", + "norm_label": ".sendsms()" + }, + { + "label": ".testSms()", + "file_type": "code", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L445", + "_callable": true, + "_origin": "ast", + "id": "backend_src_common_services_sms_service_smsservice_testsms", + "community": 26, + "community_name": "SmsService", + "norm_label": ".testsms()" + }, + { + "label": ".updateLocalPattern()", + "file_type": "code", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L349", + "_callable": true, + "_origin": "ast", + "id": "backend_src_common_services_sms_service_smsservice_updatelocalpattern", + "community": 26, + "community_name": "SmsService", + "norm_label": ".updatelocalpattern()" + }, + { + "label": ".adminLogin()", + "file_type": "code", + "source_file": "backend/src/auth/auth.service.ts", + "source_location": "L192", + "_callable": true, + "_origin": "ast", + "id": "backend_src_auth_auth_service_authservice_adminlogin", + "community": 265, + "community_name": "AuthService", + "norm_label": ".adminlogin()" + }, + { + "label": ".constructor()", + "file_type": "code", + "source_file": "backend/src/auth/auth.service.ts", + "source_location": "L31", + "_callable": true, + "_origin": "ast", + "id": "backend_src_auth_auth_service_authservice_constructor", + "community": 265, + "community_name": "AuthService", + "norm_label": ".constructor()" + }, + { + "label": ".login()", + "file_type": "code", + "source_file": "backend/src/auth/auth.service.ts", + "source_location": "L152", + "_callable": true, + "_origin": "ast", + "id": "backend_src_auth_auth_service_authservice_login", + "community": 265, + "community_name": "AuthService", + "norm_label": ".login()" + }, + { + "label": ".register()", + "file_type": "code", + "source_file": "backend/src/auth/auth.service.ts", + "source_location": "L103", + "_callable": true, + "_origin": "ast", + "id": "backend_src_auth_auth_service_authservice_register", + "community": 265, + "community_name": "AuthService", + "norm_label": ".register()" + }, + { + "label": ".sendOtp()", + "file_type": "code", + "source_file": "backend/src/auth/auth.service.ts", + "source_location": "L38", + "_callable": true, + "_origin": "ast", + "id": "backend_src_auth_auth_service_authservice_sendotp", + "community": 265, + "community_name": "AuthService", + "norm_label": ".sendotp()" + }, + { + "label": ".verifyOtp()", + "file_type": "code", + "source_file": "backend/src/auth/auth.service.ts", + "source_location": "L63", + "_callable": true, + "_origin": "ast", + "id": "backend_src_auth_auth_service_authservice_verifyotp", + "community": 265, + "community_name": "AuthService", + "norm_label": ".verifyotp()" + }, + { + "label": ".del()", + "file_type": "code", + "source_file": "backend/src/redis/redis.service.ts", + "source_location": "L31", + "_callable": true, + "_origin": "ast", + "id": "backend_src_redis_redis_service_redisservice_del", + "community": 265, + "community_name": "AuthService", + "norm_label": ".del()" + }, + { + "label": ".findAll()", + "file_type": "code", + "source_file": "backend/src/products/products.controller.ts", + "source_location": "L31", + "_callable": true, + "_origin": "ast", + "id": "backend_src_products_products_controller_productscontroller_findall", + "community": 267, + "community_name": "GetProductsDto", + "norm_label": ".findall()" + }, + { + "label": ".findAll()", + "file_type": "code", + "source_file": "backend/src/products/products.service.ts", + "source_location": "L10", + "_callable": true, + "_origin": "ast", + "id": "backend_src_products_products_service_productsservice_findall", + "community": 267, + "community_name": "GetProductsDto", + "norm_label": ".findall()" + }, { "label": ".constructor()", "file_type": "code", @@ -6945,6 +7609,30 @@ "community_name": "Prescription Review Controller", "norm_label": ".review()" }, + { + "label": "App()", + "file_type": "code", + "source_file": "frontend/admin-panel/src/App.tsx", + "source_location": "L17", + "_callable": true, + "_origin": "ast", + "id": "frontend_admin_panel_src_app_app", + "community": 271, + "community_name": "App.tsx", + "norm_label": "app()" + }, + { + "label": "SuspenseFallback()", + "file_type": "code", + "source_file": "frontend/admin-panel/src/App.tsx", + "source_location": "L6", + "_callable": true, + "_origin": "ast", + "id": "frontend_admin_panel_src_app_suspensefallback", + "community": 271, + "community_name": "App.tsx", + "norm_label": "suspensefallback()" + }, { "label": ".constructor()", "file_type": "code", @@ -7422,7 +8110,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_components_layout_layout", "community": 30, - "community_name": "Admin Sidebar and Layout", + "community_name": "src/services/api.ts", "norm_label": "layout()" }, { @@ -7434,19 +8122,19 @@ "_origin": "ast", "id": "frontend_admin_panel_src_components_protectedroute_protectedroute", "community": 30, - "community_name": "Admin Sidebar and Layout", + "community_name": "src/services/api.ts", "norm_label": "protectedroute()" }, { "label": "Sidebar()", "file_type": "code", "source_file": "frontend/admin-panel/src/components/Sidebar.tsx", - "source_location": "L64", + "source_location": "L65", "_callable": true, "_origin": "ast", "id": "frontend_admin_panel_src_components_sidebar_sidebar", "community": 30, - "community_name": "Admin Sidebar and Layout", + "community_name": "src/services/api.ts", "norm_label": "sidebar()" }, { @@ -7458,9 +8146,21 @@ "_origin": "ast", "id": "frontend_admin_panel_src_components_topbar_topbar", "community": 30, - "community_name": "Admin Sidebar and Layout", + "community_name": "src/services/api.ts", "norm_label": "topbar()" }, + { + "label": "B2BManager()", + "file_type": "code", + "source_file": "frontend/admin-panel/src/pages/B2BManager.tsx", + "source_location": "L8", + "_callable": true, + "_origin": "ast", + "id": "frontend_admin_panel_src_pages_b2bmanager_b2bmanager", + "community": 30, + "community_name": "src/services/api.ts", + "norm_label": "b2bmanager()" + }, { "label": "Login()", "file_type": "code", @@ -7470,7 +8170,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_login_login", "community": 30, - "community_name": "Admin Sidebar and Layout", + "community_name": "src/services/api.ts", "norm_label": "login()" }, { @@ -7482,9 +8182,21 @@ "_origin": "ast", "id": "frontend_admin_panel_src_services_api_processqueue", "community": 30, - "community_name": "Admin Sidebar and Layout", + "community_name": "src/services/api.ts", "norm_label": "processqueue()" }, + { + "label": "MediaSelector()", + "file_type": "code", + "source_file": "frontend/admin-panel/src/components/ui/MediaSelector.tsx", + "source_location": "L24", + "_callable": true, + "_origin": "ast", + "id": "frontend_admin_panel_src_components_ui_mediaselector_mediaselector", + "community": 31, + "community_name": "Spinner.tsx", + "norm_label": "mediaselector()" + }, { "label": "Spinner()", "file_type": "code", @@ -7494,21 +8206,9 @@ "_origin": "ast", "id": "frontend_admin_panel_src_components_ui_spinner_spinner", "community": 31, - "community_name": "Admin Settings Managers", + "community_name": "Spinner.tsx", "norm_label": "spinner()" }, - { - "label": "B2BManager()", - "file_type": "code", - "source_file": "frontend/admin-panel/src/pages/B2BManager.tsx", - "source_location": "L8", - "_callable": true, - "_origin": "ast", - "id": "frontend_admin_panel_src_pages_b2bmanager_b2bmanager", - "community": 31, - "community_name": "Admin Settings Managers", - "norm_label": "b2bmanager()" - }, { "label": "BannersManager()", "file_type": "code", @@ -7518,20 +8218,56 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_bannersmanager_bannersmanager", "community": 31, - "community_name": "Admin Settings Managers", + "community_name": "Spinner.tsx", "norm_label": "bannersmanager()" }, { - "label": "FinancialSettingsPage()", + "label": "Categories()", "file_type": "code", - "source_file": "frontend/admin-panel/src/pages/FinancialSettingsPage.tsx", + "source_file": "frontend/admin-panel/src/pages/Categories.tsx", + "source_location": "L22", + "_callable": true, + "_origin": "ast", + "id": "frontend_admin_panel_src_pages_categories_categories", + "community": 31, + "community_name": "Spinner.tsx", + "norm_label": "categories()" + }, + { + "label": "IngredientsManager()", + "file_type": "code", + "source_file": "frontend/admin-panel/src/pages/IngredientsManager.tsx", + "source_location": "L10", + "_callable": true, + "_origin": "ast", + "id": "frontend_admin_panel_src_pages_ingredientsmanager_ingredientsmanager", + "community": 31, + "community_name": "Spinner.tsx", + "norm_label": "ingredientsmanager()" + }, + { + "label": "MediaManager()", + "file_type": "code", + "source_file": "frontend/admin-panel/src/pages/Media.tsx", + "source_location": "L22", + "_callable": true, + "_origin": "ast", + "id": "frontend_admin_panel_src_pages_media_mediamanager", + "community": 31, + "community_name": "Spinner.tsx", + "norm_label": "mediamanager()" + }, + { + "label": "PrescriptionsManager()", + "file_type": "code", + "source_file": "frontend/admin-panel/src/pages/PrescriptionsManager.tsx", "source_location": "L8", "_callable": true, "_origin": "ast", - "id": "frontend_admin_panel_src_pages_financialsettingspage_financialsettingspage", + "id": "frontend_admin_panel_src_pages_prescriptionsmanager_prescriptionsmanager", "community": 31, - "community_name": "Admin Settings Managers", - "norm_label": "financialsettingspage()" + "community_name": "Spinner.tsx", + "norm_label": "prescriptionsmanager()" }, { "label": "SeoSettingsPage()", @@ -7542,21 +8278,9 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_seosettingspage_seosettingspage", "community": 31, - "community_name": "Admin Settings Managers", + "community_name": "Spinner.tsx", "norm_label": "seosettingspage()" }, - { - "label": "SmartAdvisorManager()", - "file_type": "code", - "source_file": "frontend/admin-panel/src/pages/SmartAdvisorManager.tsx", - "source_location": "L9", - "_callable": true, - "_origin": "ast", - "id": "frontend_admin_panel_src_pages_smartadvisormanager_smartadvisormanager", - "community": 31, - "community_name": "Admin Settings Managers", - "norm_label": "smartadvisormanager()" - }, { "label": "SystemSettingsPage()", "file_type": "code", @@ -7566,7 +8290,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_systemsettingspage_systemsettingspage", "community": 31, - "community_name": "Admin Settings Managers", + "community_name": "Spinner.tsx", "norm_label": "systemsettingspage()" }, { @@ -7578,7 +8302,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_testimonialsmanager_testimonialsmanager", "community": 31, - "community_name": "Admin Settings Managers", + "community_name": "Spinner.tsx", "norm_label": "testimonialsmanager()" }, { @@ -7725,18 +8449,6 @@ "community_name": "useCartStore", "norm_label": "searchresultspage()" }, - { - "label": ".sendOrderConfirmation()", - "file_type": "code", - "source_file": "backend/src/common/services/sms.service.ts", - "source_location": "L107", - "_callable": true, - "_origin": "ast", - "id": "backend_src_common_services_sms_service_smsservice_sendorderconfirmation", - "community": 33, - "community_name": "ZibalService", - "norm_label": ".sendorderconfirmation()" - }, { "label": ".constructor()", "file_type": "code", @@ -8214,7 +8926,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_components_ui_confirmmodal_confirmmodal", "community": 38, - "community_name": "CMS and Media Modals", + "community_name": "ConfirmModal.tsx", "norm_label": "confirmmodal()" }, { @@ -8226,20 +8938,20 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_cms_cms", "community": 38, - "community_name": "CMS and Media Modals", + "community_name": "ConfirmModal.tsx", "norm_label": "cms()" }, { - "label": "MediaManager()", + "label": "SmartAdvisorManager()", "file_type": "code", - "source_file": "frontend/admin-panel/src/pages/Media.tsx", - "source_location": "L22", + "source_file": "frontend/admin-panel/src/pages/SmartAdvisorManager.tsx", + "source_location": "L9", "_callable": true, "_origin": "ast", - "id": "frontend_admin_panel_src_pages_media_mediamanager", + "id": "frontend_admin_panel_src_pages_smartadvisormanager_smartadvisormanager", "community": 38, - "community_name": "CMS and Media Modals", - "norm_label": "mediamanager()" + "community_name": "ConfirmModal.tsx", + "norm_label": "smartadvisormanager()" }, { "label": "fetchVideosList()", @@ -8250,7 +8962,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_videos_fetchvideoslist", "community": 38, - "community_name": "CMS and Media Modals", + "community_name": "ConfirmModal.tsx", "norm_label": "fetchvideoslist()" }, { @@ -8262,7 +8974,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_videos_videos", "community": 38, - "community_name": "CMS and Media Modals", + "community_name": "ConfirmModal.tsx", "norm_label": "videos()" }, { @@ -8274,7 +8986,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_wholesaleapplications_wholesaleapplications", "community": 38, - "community_name": "CMS and Media Modals", + "community_name": "ConfirmModal.tsx", "norm_label": "wholesaleapplications()" }, { @@ -8286,7 +8998,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_wiki_wiki", "community": 38, - "community_name": "CMS and Media Modals", + "community_name": "ConfirmModal.tsx", "norm_label": "wiki()" }, { @@ -8298,7 +9010,7 @@ "_origin": "ast", "id": "backend_src_cms_cms_controller_cmscontroller_constructor", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": ".constructor()" }, { @@ -8310,7 +9022,7 @@ "_origin": "ast", "id": "backend_src_cms_cms_controller_cmscontroller_createherobanner", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": ".createherobanner()" }, { @@ -8322,7 +9034,7 @@ "_origin": "ast", "id": "backend_src_cms_cms_controller_cmscontroller_createsmartadvisorrule", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": ".createsmartadvisorrule()" }, { @@ -8334,7 +9046,7 @@ "_origin": "ast", "id": "backend_src_cms_cms_controller_cmscontroller_createvettestimonial", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": ".createvettestimonial()" }, { @@ -8346,7 +9058,7 @@ "_origin": "ast", "id": "backend_src_cms_cms_controller_cmscontroller_deleteherobanner", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": ".deleteherobanner()" }, { @@ -8358,7 +9070,7 @@ "_origin": "ast", "id": "backend_src_cms_cms_controller_cmscontroller_deletesmartadvisorrule", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": ".deletesmartadvisorrule()" }, { @@ -8370,7 +9082,7 @@ "_origin": "ast", "id": "backend_src_cms_cms_controller_cmscontroller_deletevettestimonial", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": ".deletevettestimonial()" }, { @@ -8382,7 +9094,7 @@ "_origin": "ast", "id": "backend_src_cms_cms_controller_cmscontroller_getherobanners", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": ".getherobanners()" }, { @@ -8394,7 +9106,7 @@ "_origin": "ast", "id": "backend_src_cms_cms_controller_cmscontroller_getsmartadvisorrules", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": ".getsmartadvisorrules()" }, { @@ -8406,7 +9118,7 @@ "_origin": "ast", "id": "backend_src_cms_cms_controller_cmscontroller_getvettestimonials", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": ".getvettestimonials()" }, { @@ -8418,7 +9130,7 @@ "_origin": "ast", "id": "backend_src_cms_cms_controller_cmscontroller_updateherobanner", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": ".updateherobanner()" }, { @@ -8430,7 +9142,7 @@ "_origin": "ast", "id": "backend_src_cms_cms_controller_cmscontroller_updatesmartadvisorrule", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": ".updatesmartadvisorrule()" }, { @@ -8442,7 +9154,7 @@ "_origin": "ast", "id": "backend_src_cms_cms_controller_cmscontroller_updatevettestimonial", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": ".updatevettestimonial()" }, { @@ -8454,7 +9166,7 @@ "_origin": "ast", "id": "backend_src_cms_cms_service_cmsservice_constructor", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": ".constructor()" }, { @@ -8466,7 +9178,7 @@ "_origin": "ast", "id": "backend_src_cms_cms_service_cmsservice_createherobanner", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": ".createherobanner()" }, { @@ -8478,7 +9190,7 @@ "_origin": "ast", "id": "backend_src_cms_cms_service_cmsservice_createsmartadvisorrule", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": ".createsmartadvisorrule()" }, { @@ -8490,7 +9202,7 @@ "_origin": "ast", "id": "backend_src_cms_cms_service_cmsservice_createvettestimonial", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": ".createvettestimonial()" }, { @@ -8502,7 +9214,7 @@ "_origin": "ast", "id": "backend_src_cms_cms_service_cmsservice_deleteherobanner", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": ".deleteherobanner()" }, { @@ -8514,7 +9226,7 @@ "_origin": "ast", "id": "backend_src_cms_cms_service_cmsservice_deletesmartadvisorrule", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": ".deletesmartadvisorrule()" }, { @@ -8526,7 +9238,7 @@ "_origin": "ast", "id": "backend_src_cms_cms_service_cmsservice_deletevettestimonial", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": ".deletevettestimonial()" }, { @@ -8538,7 +9250,7 @@ "_origin": "ast", "id": "backend_src_cms_cms_service_cmsservice_getherobanners", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": ".getherobanners()" }, { @@ -8550,7 +9262,7 @@ "_origin": "ast", "id": "backend_src_cms_cms_service_cmsservice_getsmartadvisorrules", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": ".getsmartadvisorrules()" }, { @@ -8562,7 +9274,7 @@ "_origin": "ast", "id": "backend_src_cms_cms_service_cmsservice_getvettestimonials", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": ".getvettestimonials()" }, { @@ -8574,7 +9286,7 @@ "_origin": "ast", "id": "backend_src_cms_cms_service_cmsservice_updateherobanner", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": ".updateherobanner()" }, { @@ -8586,7 +9298,7 @@ "_origin": "ast", "id": "backend_src_cms_cms_service_cmsservice_updatesmartadvisorrule", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": ".updatesmartadvisorrule()" }, { @@ -8598,7 +9310,7 @@ "_origin": "ast", "id": "backend_src_cms_cms_service_cmsservice_updatevettestimonial", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": ".updatevettestimonial()" }, { @@ -8670,7 +9382,7 @@ "_origin": "ast", "id": "backend_src_wholesale_wholesale_controller_wholesalecontroller_applyforwholesale", "community": 42, - "community_name": "WholesaleApplyDto", + "community_name": "WholesaleService", "norm_label": ".applyforwholesale()" }, { @@ -8682,7 +9394,7 @@ "_origin": "ast", "id": "backend_src_wholesale_wholesale_controller_wholesalecontroller_approvewholesalerequest", "community": 42, - "community_name": "WholesaleApplyDto", + "community_name": "WholesaleService", "norm_label": ".approvewholesalerequest()" }, { @@ -8694,7 +9406,7 @@ "_origin": "ast", "id": "backend_src_wholesale_wholesale_controller_wholesalecontroller_constructor", "community": 42, - "community_name": "WholesaleApplyDto", + "community_name": "WholesaleService", "norm_label": ".constructor()" }, { @@ -8706,7 +9418,7 @@ "_origin": "ast", "id": "backend_src_wholesale_wholesale_controller_wholesalecontroller_getwholesalerequests", "community": 42, - "community_name": "WholesaleApplyDto", + "community_name": "WholesaleService", "norm_label": ".getwholesalerequests()" }, { @@ -8718,7 +9430,7 @@ "_origin": "ast", "id": "backend_src_wholesale_wholesale_controller_wholesalecontroller_rejectwholesalerequest", "community": 42, - "community_name": "WholesaleApplyDto", + "community_name": "WholesaleService", "norm_label": ".rejectwholesalerequest()" }, { @@ -8730,7 +9442,7 @@ "_origin": "ast", "id": "backend_src_wholesale_wholesale_service_wholesaleservice_applyforwholesale", "community": 42, - "community_name": "WholesaleApplyDto", + "community_name": "WholesaleService", "norm_label": ".applyforwholesale()" }, { @@ -8742,7 +9454,7 @@ "_origin": "ast", "id": "backend_src_wholesale_wholesale_service_wholesaleservice_approvewholesalerequest", "community": 42, - "community_name": "WholesaleApplyDto", + "community_name": "WholesaleService", "norm_label": ".approvewholesalerequest()" }, { @@ -8754,7 +9466,7 @@ "_origin": "ast", "id": "backend_src_wholesale_wholesale_service_wholesaleservice_constructor", "community": 42, - "community_name": "WholesaleApplyDto", + "community_name": "WholesaleService", "norm_label": ".constructor()" }, { @@ -8766,7 +9478,7 @@ "_origin": "ast", "id": "backend_src_wholesale_wholesale_service_wholesaleservice_getwholesalerequests", "community": 42, - "community_name": "WholesaleApplyDto", + "community_name": "WholesaleService", "norm_label": ".getwholesalerequests()" }, { @@ -8778,7 +9490,7 @@ "_origin": "ast", "id": "backend_src_wholesale_wholesale_service_wholesaleservice_rejectwholesalerequest", "community": 42, - "community_name": "WholesaleApplyDto", + "community_name": "WholesaleService", "norm_label": ".rejectwholesalerequest()" }, { @@ -8985,30 +9697,6 @@ "community_name": "Home Data Module", "norm_label": ".gethomedata()" }, - { - "label": ".sendSms()", - "file_type": "code", - "source_file": "backend/src/common/services/sms.service.ts", - "source_location": "L182", - "_callable": true, - "_origin": "ast", - "id": "backend_src_common_services_sms_service_smsservice_sendsms", - "community": 5, - "community_name": "OrdersService", - "norm_label": ".sendsms()" - }, - { - "label": ".constructor()", - "file_type": "code", - "source_file": "backend/src/orders/orders.controller.ts", - "source_location": "L55", - "_callable": true, - "_origin": "ast", - "id": "backend_src_orders_orders_controller_orderscontroller_constructor", - "community": 5, - "community_name": "OrdersService", - "norm_label": ".constructor()" - }, { "label": ".create()", "file_type": "code", @@ -9018,7 +9706,7 @@ "_origin": "ast", "id": "backend_src_orders_orders_controller_orderscontroller_create", "community": 5, - "community_name": "OrdersService", + "community_name": ".create", "norm_label": ".create()" }, { @@ -9030,7 +9718,7 @@ "_origin": "ast", "id": "backend_src_orders_orders_controller_orderscontroller_findall", "community": 5, - "community_name": "OrdersService", + "community_name": ".create", "norm_label": ".findall()" }, { @@ -9042,7 +9730,7 @@ "_origin": "ast", "id": "backend_src_orders_orders_controller_orderscontroller_findone", "community": 5, - "community_name": "OrdersService", + "community_name": ".create", "norm_label": ".findone()" }, { @@ -9054,45 +9742,9 @@ "_origin": "ast", "id": "backend_src_orders_orders_controller_orderscontroller_validatecoupon", "community": 5, - "community_name": "OrdersService", + "community_name": ".create", "norm_label": ".validatecoupon()" }, - { - "label": ".checkAndSendRefillReminders()", - "file_type": "code", - "source_file": "backend/src/orders/orders.service.ts", - "source_location": "L368", - "_callable": true, - "_origin": "ast", - "id": "backend_src_orders_orders_service_ordersservice_checkandsendrefillreminders", - "community": 5, - "community_name": "OrdersService", - "norm_label": ".checkandsendrefillreminders()" - }, - { - "label": ".constructor()", - "file_type": "code", - "source_file": "backend/src/orders/orders.service.ts", - "source_location": "L14", - "_callable": true, - "_origin": "ast", - "id": "backend_src_orders_orders_service_ordersservice_constructor", - "community": 5, - "community_name": "OrdersService", - "norm_label": ".constructor()" - }, - { - "label": ".create()", - "file_type": "code", - "source_file": "backend/src/orders/orders.service.ts", - "source_location": "L100", - "_callable": true, - "_origin": "ast", - "id": "backend_src_orders_orders_service_ordersservice_create", - "community": 5, - "community_name": "OrdersService", - "norm_label": ".create()" - }, { "label": ".findAllByUser()", "file_type": "code", @@ -9102,7 +9754,7 @@ "_origin": "ast", "id": "backend_src_orders_orders_service_ordersservice_findallbyuser", "community": 5, - "community_name": "OrdersService", + "community_name": ".create", "norm_label": ".findallbyuser()" }, { @@ -9114,33 +9766,9 @@ "_origin": "ast", "id": "backend_src_orders_orders_service_ordersservice_findone", "community": 5, - "community_name": "OrdersService", + "community_name": ".create", "norm_label": ".findone()" }, - { - "label": ".generateTrackingNumber()", - "file_type": "code", - "source_file": "backend/src/orders/orders.service.ts", - "source_location": "L19", - "_callable": true, - "_origin": "ast", - "id": "backend_src_orders_orders_service_ordersservice_generatetrackingnumber", - "community": 5, - "community_name": "OrdersService", - "norm_label": ".generatetrackingnumber()" - }, - { - "label": ".validateCoupon()", - "file_type": "code", - "source_file": "backend/src/orders/orders.service.ts", - "source_location": "L26", - "_callable": true, - "_origin": "ast", - "id": "backend_src_orders_orders_service_ordersservice_validatecoupon", - "community": 5, - "community_name": "OrdersService", - "norm_label": ".validatecoupon()" - }, { "label": "main()", "file_type": "code", @@ -9417,78 +10045,6 @@ "community_name": "PrismaService", "norm_label": ".constructor()" }, - { - "label": ".constructor()", - "file_type": "code", - "source_file": "backend/src/auth/auth.service.ts", - "source_location": "L31", - "_callable": true, - "_origin": "ast", - "id": "backend_src_auth_auth_service_authservice_constructor", - "community": 59, - "community_name": "PrismaService", - "norm_label": ".constructor()" - }, - { - "label": ".sendB2bNotification()", - "file_type": "code", - "source_file": "backend/src/common/services/sms.service.ts", - "source_location": "L145", - "_callable": true, - "_origin": "ast", - "id": "backend_src_common_services_sms_service_smsservice_sendb2bnotification", - "community": 59, - "community_name": "PrismaService", - "norm_label": ".sendb2bnotification()" - }, - { - "label": ".sendPatternSms()", - "file_type": "code", - "source_file": "backend/src/common/services/sms.service.ts", - "source_location": "L24", - "_callable": true, - "_origin": "ast", - "id": "backend_src_common_services_sms_service_smsservice_sendpatternsms", - "community": 59, - "community_name": "PrismaService", - "norm_label": ".sendpatternsms()" - }, - { - "label": ".sendPetCareReminder()", - "file_type": "code", - "source_file": "backend/src/common/services/sms.service.ts", - "source_location": "L163", - "_callable": true, - "_origin": "ast", - "id": "backend_src_common_services_sms_service_smsservice_sendpetcarereminder", - "community": 59, - "community_name": "PrismaService", - "norm_label": ".sendpetcarereminder()" - }, - { - "label": ".sendShippingNotification()", - "file_type": "code", - "source_file": "backend/src/common/services/sms.service.ts", - "source_location": "L126", - "_callable": true, - "_origin": "ast", - "id": "backend_src_common_services_sms_service_smsservice_sendshippingnotification", - "community": 59, - "community_name": "PrismaService", - "norm_label": ".sendshippingnotification()" - }, - { - "label": ".updateStatus()", - "file_type": "code", - "source_file": "backend/src/orders/orders.service.ts", - "source_location": "L290", - "_callable": true, - "_origin": "ast", - "id": "backend_src_orders_orders_service_ordersservice_updatestatus", - "community": 59, - "community_name": "PrismaService", - "norm_label": ".updatestatus()" - }, { "label": ".onModuleDestroy()", "file_type": "code", @@ -9513,222 +10069,6 @@ "community_name": "PrismaService", "norm_label": ".onmoduleinit()" }, - { - "label": ".onModuleDestroy()", - "file_type": "code", - "source_file": "backend/src/redis/redis.service.ts", - "source_location": "L15", - "_callable": true, - "_origin": "ast", - "id": "backend_src_redis_redis_service_redisservice_onmoduledestroy", - "community": 59, - "community_name": "PrismaService", - "norm_label": ".onmoduledestroy()" - }, - { - "label": ".onModuleInit()", - "file_type": "code", - "source_file": "backend/src/redis/redis.service.ts", - "source_location": "L8", - "_callable": true, - "_origin": "ast", - "id": "backend_src_redis_redis_service_redisservice_onmoduleinit", - "community": 59, - "community_name": "PrismaService", - "norm_label": ".onmoduleinit()" - }, - { - "label": ".set()", - "file_type": "code", - "source_file": "backend/src/redis/redis.service.ts", - "source_location": "L19", - "_callable": true, - "_origin": "ast", - "id": "backend_src_redis_redis_service_redisservice_set", - "community": 59, - "community_name": "PrismaService", - "norm_label": ".set()" - }, - { - "label": ".adminLogin()", - "file_type": "code", - "source_file": "backend/src/auth/auth.controller.ts", - "source_location": "L129", - "_callable": true, - "_origin": "ast", - "id": "backend_src_auth_auth_controller_authcontroller_adminlogin", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": ".adminlogin()" - }, - { - "label": ".constructor()", - "file_type": "code", - "source_file": "backend/src/auth/auth.controller.ts", - "source_location": "L32", - "_callable": true, - "_origin": "ast", - "id": "backend_src_auth_auth_controller_authcontroller_constructor", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": ".constructor()" - }, - { - "label": ".login()", - "file_type": "code", - "source_file": "backend/src/auth/auth.controller.ts", - "source_location": "L120", - "_callable": true, - "_origin": "ast", - "id": "backend_src_auth_auth_controller_authcontroller_login", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": ".login()" - }, - { - "label": ".register()", - "file_type": "code", - "source_file": "backend/src/auth/auth.controller.ts", - "source_location": "L111", - "_callable": true, - "_origin": "ast", - "id": "backend_src_auth_auth_controller_authcontroller_register", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": ".register()" - }, - { - "label": ".sendOtp()", - "file_type": "code", - "source_file": "backend/src/auth/auth.controller.ts", - "source_location": "L59", - "_callable": true, - "_origin": "ast", - "id": "backend_src_auth_auth_controller_authcontroller_sendotp", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": ".sendotp()" - }, - { - "label": ".verifyOtp()", - "file_type": "code", - "source_file": "backend/src/auth/auth.controller.ts", - "source_location": "L100", - "_callable": true, - "_origin": "ast", - "id": "backend_src_auth_auth_controller_authcontroller_verifyotp", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": ".verifyotp()" - }, - { - "label": ".adminLogin()", - "file_type": "code", - "source_file": "backend/src/auth/auth.service.ts", - "source_location": "L192", - "_callable": true, - "_origin": "ast", - "id": "backend_src_auth_auth_service_authservice_adminlogin", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": ".adminlogin()" - }, - { - "label": ".login()", - "file_type": "code", - "source_file": "backend/src/auth/auth.service.ts", - "source_location": "L152", - "_callable": true, - "_origin": "ast", - "id": "backend_src_auth_auth_service_authservice_login", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": ".login()" - }, - { - "label": ".register()", - "file_type": "code", - "source_file": "backend/src/auth/auth.service.ts", - "source_location": "L103", - "_callable": true, - "_origin": "ast", - "id": "backend_src_auth_auth_service_authservice_register", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": ".register()" - }, - { - "label": ".sendOtp()", - "file_type": "code", - "source_file": "backend/src/auth/auth.service.ts", - "source_location": "L38", - "_callable": true, - "_origin": "ast", - "id": "backend_src_auth_auth_service_authservice_sendotp", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": ".sendotp()" - }, - { - "label": ".verifyOtp()", - "file_type": "code", - "source_file": "backend/src/auth/auth.service.ts", - "source_location": "L63", - "_callable": true, - "_origin": "ast", - "id": "backend_src_auth_auth_service_authservice_verifyotp", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": ".verifyotp()" - }, - { - "label": ".sendOtp()", - "file_type": "code", - "source_file": "backend/src/common/services/sms.service.ts", - "source_location": "L92", - "_callable": true, - "_origin": "ast", - "id": "backend_src_common_services_sms_service_smsservice_sendotp", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": ".sendotp()" - }, - { - "label": ".del()", - "file_type": "code", - "source_file": "backend/src/redis/redis.service.ts", - "source_location": "L31", - "_callable": true, - "_origin": "ast", - "id": "backend_src_redis_redis_service_redisservice_del", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": ".del()" - }, - { - "label": ".findAllAdmin()", - "file_type": "code", - "source_file": "backend/src/pets/pets.service.ts", - "source_location": "L49", - "_callable": true, - "_origin": "ast", - "id": "backend_src_pets_pets_service_petsservice_findalladmin", - "community": 61, - "community_name": "PaginationDto", - "norm_label": ".findalladmin()" - }, - { - "label": ".findAllByUser()", - "file_type": "code", - "source_file": "backend/src/pets/pets.service.ts", - "source_location": "L109", - "_callable": true, - "_origin": "ast", - "id": "backend_src_pets_pets_service_petsservice_findallbyuser", - "community": 61, - "community_name": "PaginationDto", - "norm_label": ".findallbyuser()" - }, { "label": ".constructor()", "file_type": "code", @@ -9822,7 +10162,7 @@ "_origin": "ast", "id": "backend_src_admin_wiki_service_wikiservice_constructor", "community": 64, - "community_name": "pagination.dto.ts", + "community_name": "WikiService", "norm_label": ".constructor()" }, { @@ -9834,7 +10174,7 @@ "_origin": "ast", "id": "backend_src_admin_wiki_service_wikiservice_createterm", "community": 64, - "community_name": "pagination.dto.ts", + "community_name": "WikiService", "norm_label": ".createterm()" }, { @@ -9846,7 +10186,7 @@ "_origin": "ast", "id": "backend_src_admin_wiki_service_wikiservice_deleteterm", "community": 64, - "community_name": "pagination.dto.ts", + "community_name": "WikiService", "norm_label": ".deleteterm()" }, { @@ -9858,7 +10198,7 @@ "_origin": "ast", "id": "backend_src_admin_wiki_service_wikiservice_getterms", "community": 64, - "community_name": "pagination.dto.ts", + "community_name": "WikiService", "norm_label": ".getterms()" }, { @@ -9870,7 +10210,7 @@ "_origin": "ast", "id": "backend_src_admin_wiki_service_wikiservice_updateterm", "community": 64, - "community_name": "pagination.dto.ts", + "community_name": "WikiService", "norm_label": ".updateterm()" }, { @@ -9910,100 +10250,88 @@ "norm_label": ".gethello()" }, { - "label": ".addHealthLog()", + "label": ".constructor()", "file_type": "code", - "source_file": "backend/src/pets/pets.service.ts", - "source_location": "L260", + "source_file": "backend/src/orders/orders.controller.ts", + "source_location": "L55", "_callable": true, "_origin": "ast", - "id": "backend_src_pets_pets_service_petsservice_addhealthlog", + "id": "backend_src_orders_orders_controller_orderscontroller_constructor", "community": 68, - "community_name": "Pet Business Logic", - "norm_label": ".addhealthlog()" + "community_name": "OrdersService", + "norm_label": ".constructor()" }, { - "label": ".addReminder()", + "label": ".checkAndSendRefillReminders()", "file_type": "code", - "source_file": "backend/src/pets/pets.service.ts", - "source_location": "L198", + "source_file": "backend/src/orders/orders.service.ts", + "source_location": "L368", "_callable": true, "_origin": "ast", - "id": "backend_src_pets_pets_service_petsservice_addreminder", + "id": "backend_src_orders_orders_service_ordersservice_checkandsendrefillreminders", "community": 68, - "community_name": "Pet Business Logic", - "norm_label": ".addreminder()" + "community_name": "OrdersService", + "norm_label": ".checkandsendrefillreminders()" }, { "label": ".constructor()", "file_type": "code", - "source_file": "backend/src/pets/pets.service.ts", - "source_location": "L24", + "source_file": "backend/src/orders/orders.service.ts", + "source_location": "L14", "_callable": true, "_origin": "ast", - "id": "backend_src_pets_pets_service_petsservice_constructor", + "id": "backend_src_orders_orders_service_ordersservice_constructor", "community": 68, - "community_name": "Pet Business Logic", + "community_name": "OrdersService", "norm_label": ".constructor()" }, { "label": ".create()", "file_type": "code", - "source_file": "backend/src/pets/pets.service.ts", - "source_location": "L26", + "source_file": "backend/src/orders/orders.service.ts", + "source_location": "L100", "_callable": true, "_origin": "ast", - "id": "backend_src_pets_pets_service_petsservice_create", + "id": "backend_src_orders_orders_service_ordersservice_create", "community": 68, - "community_name": "Pet Business Logic", + "community_name": "OrdersService", "norm_label": ".create()" }, { - "label": ".findOne()", + "label": ".generateTrackingNumber()", "file_type": "code", - "source_file": "backend/src/pets/pets.service.ts", - "source_location": "L150", + "source_file": "backend/src/orders/orders.service.ts", + "source_location": "L19", "_callable": true, "_origin": "ast", - "id": "backend_src_pets_pets_service_petsservice_findone", + "id": "backend_src_orders_orders_service_ordersservice_generatetrackingnumber", "community": 68, - "community_name": "Pet Business Logic", - "norm_label": ".findone()" + "community_name": "OrdersService", + "norm_label": ".generatetrackingnumber()" }, { - "label": ".remove()", + "label": ".updateStatus()", "file_type": "code", - "source_file": "backend/src/pets/pets.service.ts", - "source_location": "L191", + "source_file": "backend/src/orders/orders.service.ts", + "source_location": "L290", "_callable": true, "_origin": "ast", - "id": "backend_src_pets_pets_service_petsservice_remove", + "id": "backend_src_orders_orders_service_ordersservice_updatestatus", "community": 68, - "community_name": "Pet Business Logic", - "norm_label": ".remove()" + "community_name": "OrdersService", + "norm_label": ".updatestatus()" }, { - "label": ".toggleReminder()", + "label": ".validateCoupon()", "file_type": "code", - "source_file": "backend/src/pets/pets.service.ts", - "source_location": "L211", + "source_file": "backend/src/orders/orders.service.ts", + "source_location": "L26", "_callable": true, "_origin": "ast", - "id": "backend_src_pets_pets_service_petsservice_togglereminder", + "id": "backend_src_orders_orders_service_ordersservice_validatecoupon", "community": 68, - "community_name": "Pet Business Logic", - "norm_label": ".togglereminder()" - }, - { - "label": ".update()", - "file_type": "code", - "source_file": "backend/src/pets/pets.service.ts", - "source_location": "L161", - "_callable": true, - "_origin": "ast", - "id": "backend_src_pets_pets_service_petsservice_update", - "community": 68, - "community_name": "Pet Business Logic", - "norm_label": ".update()" + "community_name": "OrdersService", + "norm_label": ".validatecoupon()" }, { "label": "CustomTooltip()", @@ -11053,6 +11381,259 @@ "community_name": "AdminService", "norm_label": "isstring" }, + { + "label": "create-health-log.dto.ts", + "file_type": "code", + "source_file": "backend/src/pets/dto/create-health-log.dto.ts", + "source_location": "L1", + "_origin": "ast", + "id": "backend_src_pets_dto_create_health_log_dto", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": "create-health-log.dto.ts" + }, + { + "label": "ApiProperty", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_pets_dto_create_health_log_dto_ts_apiproperty", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": "apiproperty" + }, + { + "label": "ApiPropertyOptional", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_pets_dto_create_health_log_dto_ts_apipropertyoptional", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": "apipropertyoptional" + }, + { + "label": "IsNotEmpty", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_pets_dto_create_health_log_dto_ts_isnotempty", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": "isnotempty" + }, + { + "label": "IsOptional", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_pets_dto_create_health_log_dto_ts_isoptional", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": "isoptional" + }, + { + "label": "IsString", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_pets_dto_create_health_log_dto_ts_isstring", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": "isstring" + }, + { + "label": "create-pet.dto.ts", + "file_type": "code", + "source_file": "backend/src/pets/dto/create-pet.dto.ts", + "source_location": "L1", + "_origin": "ast", + "id": "backend_src_pets_dto_create_pet_dto", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": "create-pet.dto.ts" + }, + { + "label": "ApiProperty", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_pets_dto_create_pet_dto_ts_apiproperty", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": "apiproperty" + }, + { + "label": "ApiPropertyOptional", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_pets_dto_create_pet_dto_ts_apipropertyoptional", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": "apipropertyoptional" + }, + { + "label": "IsArray", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_pets_dto_create_pet_dto_ts_isarray", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": "isarray" + }, + { + "label": "IsNotEmpty", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_pets_dto_create_pet_dto_ts_isnotempty", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": "isnotempty" + }, + { + "label": "IsNumber", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_pets_dto_create_pet_dto_ts_isnumber", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": "isnumber" + }, + { + "label": "IsOptional", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_pets_dto_create_pet_dto_ts_isoptional", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": "isoptional" + }, + { + "label": "IsString", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_pets_dto_create_pet_dto_ts_isstring", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": "isstring" + }, + { + "label": "create-reminder.dto.ts", + "file_type": "code", + "source_file": "backend/src/pets/dto/create-reminder.dto.ts", + "source_location": "L1", + "_origin": "ast", + "id": "backend_src_pets_dto_create_reminder_dto", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": "create-reminder.dto.ts" + }, + { + "label": "ApiProperty", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_pets_dto_create_reminder_dto_ts_apiproperty", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": "apiproperty" + }, + { + "label": "ApiPropertyOptional", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_pets_dto_create_reminder_dto_ts_apipropertyoptional", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": "apipropertyoptional" + }, + { + "label": "IsNotEmpty", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_pets_dto_create_reminder_dto_ts_isnotempty", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": "isnotempty" + }, + { + "label": "IsOptional", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_pets_dto_create_reminder_dto_ts_isoptional", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": "isoptional" + }, + { + "label": "IsString", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_pets_dto_create_reminder_dto_ts_isstring", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": "isstring" + }, + { + "label": "update-pet.dto.ts", + "file_type": "code", + "source_file": "backend/src/pets/dto/update-pet.dto.ts", + "source_location": "L1", + "_origin": "ast", + "id": "backend_src_pets_dto_update_pet_dto", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": "update-pet.dto.ts" + }, + { + "label": "pets/pets.controller.ts", + "file_type": "code", + "source_file": "backend/src/pets/pets.controller.ts", + "source_location": "L1", + "_origin": "ast", + "id": "backend_src_pets_pets_controller", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": "pets/pets.controller.ts" + }, + { + "label": "pets.controller.spec.ts", + "file_type": "code", + "source_file": "backend/src/pets/pets.controller.spec.ts", + "source_location": "L1", + "_origin": "ast", + "id": "backend_src_pets_pets_controller_spec", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": "pets.controller.spec.ts" + }, { "label": "ApiBadRequestResponse", "file_type": "code", @@ -11061,7 +11642,7 @@ "_origin": "ast", "id": "backend_src_pets_pets_controller_ts_apibadrequestresponse", "community": 1, - "community_name": "Pet Management Controller", + "community_name": "pets/pets.controller.ts", "norm_label": "apibadrequestresponse" }, { @@ -11072,7 +11653,7 @@ "_origin": "ast", "id": "backend_src_pets_pets_controller_ts_apibearerauth", "community": 1, - "community_name": "Pet Management Controller", + "community_name": "pets/pets.controller.ts", "norm_label": "apibearerauth" }, { @@ -11083,7 +11664,7 @@ "_origin": "ast", "id": "backend_src_pets_pets_controller_ts_apicreatedresponse", "community": 1, - "community_name": "Pet Management Controller", + "community_name": "pets/pets.controller.ts", "norm_label": "apicreatedresponse" }, { @@ -11094,7 +11675,7 @@ "_origin": "ast", "id": "backend_src_pets_pets_controller_ts_apinotfoundresponse", "community": 1, - "community_name": "Pet Management Controller", + "community_name": "pets/pets.controller.ts", "norm_label": "apinotfoundresponse" }, { @@ -11105,7 +11686,7 @@ "_origin": "ast", "id": "backend_src_pets_pets_controller_ts_apiokresponse", "community": 1, - "community_name": "Pet Management Controller", + "community_name": "pets/pets.controller.ts", "norm_label": "apiokresponse" }, { @@ -11116,7 +11697,7 @@ "_origin": "ast", "id": "backend_src_pets_pets_controller_ts_apioperation", "community": 1, - "community_name": "Pet Management Controller", + "community_name": "pets/pets.controller.ts", "norm_label": "apioperation" }, { @@ -11127,7 +11708,7 @@ "_origin": "ast", "id": "backend_src_pets_pets_controller_ts_apitags", "community": 1, - "community_name": "Pet Management Controller", + "community_name": "pets/pets.controller.ts", "norm_label": "apitags" }, { @@ -11138,7 +11719,7 @@ "_origin": "ast", "id": "backend_src_pets_pets_controller_ts_body", "community": 1, - "community_name": "Pet Management Controller", + "community_name": "pets/pets.controller.ts", "norm_label": "body" }, { @@ -11149,7 +11730,7 @@ "_origin": "ast", "id": "backend_src_pets_pets_controller_ts_controller", "community": 1, - "community_name": "Pet Management Controller", + "community_name": "pets/pets.controller.ts", "norm_label": "controller" }, { @@ -11160,7 +11741,7 @@ "_origin": "ast", "id": "backend_src_pets_pets_controller_ts_delete", "community": 1, - "community_name": "Pet Management Controller", + "community_name": "pets/pets.controller.ts", "norm_label": "delete" }, { @@ -11171,7 +11752,7 @@ "_origin": "ast", "id": "backend_src_pets_pets_controller_ts_get", "community": 1, - "community_name": "Pet Management Controller", + "community_name": "pets/pets.controller.ts", "norm_label": "get" }, { @@ -11182,7 +11763,7 @@ "_origin": "ast", "id": "backend_src_pets_pets_controller_ts_param", "community": 1, - "community_name": "Pet Management Controller", + "community_name": "pets/pets.controller.ts", "norm_label": "param" }, { @@ -11193,7 +11774,7 @@ "_origin": "ast", "id": "backend_src_pets_pets_controller_ts_patch", "community": 1, - "community_name": "Pet Management Controller", + "community_name": "pets/pets.controller.ts", "norm_label": "patch" }, { @@ -11204,7 +11785,7 @@ "_origin": "ast", "id": "backend_src_pets_pets_controller_ts_post", "community": 1, - "community_name": "Pet Management Controller", + "community_name": "pets/pets.controller.ts", "norm_label": "post" }, { @@ -11215,7 +11796,7 @@ "_origin": "ast", "id": "backend_src_pets_pets_controller_ts_query", "community": 1, - "community_name": "Pet Management Controller", + "community_name": "pets/pets.controller.ts", "norm_label": "query" }, { @@ -11226,7 +11807,7 @@ "_origin": "ast", "id": "backend_src_pets_pets_controller_ts_req", "community": 1, - "community_name": "Pet Management Controller", + "community_name": "pets/pets.controller.ts", "norm_label": "req" }, { @@ -11237,9 +11818,53 @@ "_origin": "ast", "id": "backend_src_pets_pets_controller_ts_useguards", "community": 1, - "community_name": "Pet Management Controller", + "community_name": "pets/pets.controller.ts", "norm_label": "useguards" }, + { + "label": "pets.module.ts", + "file_type": "code", + "source_file": "backend/src/pets/pets.module.ts", + "source_location": "L1", + "_origin": "ast", + "id": "backend_src_pets_pets_module", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": "pets.module.ts" + }, + { + "label": "Module", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_pets_pets_module_ts_module", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": "module" + }, + { + "label": "pets/pets.service.ts", + "file_type": "code", + "source_file": "backend/src/pets/pets.service.ts", + "source_location": "L1", + "_origin": "ast", + "id": "backend_src_pets_pets_service", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": "pets/pets.service.ts" + }, + { + "label": "Injectable", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_pets_pets_service_ts_injectable", + "community": 1, + "community_name": "pets/pets.controller.ts", + "norm_label": "injectable" + }, { "label": "SmartAdvisor.tsx", "file_type": "code", @@ -11730,26 +12355,70 @@ "norm_label": "why it matters" }, { - "label": "typescript-eslint", + "label": "ApiBadRequestResponse", "file_type": "code", - "source_file": "frontend/admin-panel/package.json", - "source_location": "L39", + "source_file": "", + "source_location": "", "_origin": "ast", - "id": "frontend_admin_panel_package_devdependencies_typescript_eslint", + "id": "backend_src_auth_auth_controller_ts_apibadrequestresponse", "community": 103, - "community_name": "typescript-eslint", - "norm_label": "typescript-eslint" + "community_name": ".adminLogin", + "norm_label": "apibadrequestresponse" }, { - "label": "typescript-eslint", - "file_type": "concept", - "source_file": "frontend/admin-panel/package.json", - "source_location": "L39", + "label": "ApiOkResponse", + "file_type": "code", + "source_file": "", + "source_location": "", "_origin": "ast", - "id": "frontend_admin_panel_package_json_typescript_eslint", + "id": "backend_src_auth_auth_controller_ts_apiokresponse", "community": 103, - "community_name": "typescript-eslint", - "norm_label": "typescript-eslint" + "community_name": ".adminLogin", + "norm_label": "apiokresponse" + }, + { + "label": "ApiOperation", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_auth_auth_controller_ts_apioperation", + "community": 103, + "community_name": ".adminLogin", + "norm_label": "apioperation" + }, + { + "label": "Body", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_auth_auth_controller_ts_body", + "community": 103, + "community_name": ".adminLogin", + "norm_label": "body" + }, + { + "label": "Post", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_auth_auth_controller_ts_post", + "community": 103, + "community_name": ".adminLogin", + "norm_label": "post" + }, + { + "label": "HttpCode", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "httpcode", + "community": 103, + "community_name": ".adminLogin", + "norm_label": "httpcode" }, { "label": "20260526160916_add_ui_texts_and_scientific_terms/migration.sql", @@ -12445,70 +13114,70 @@ "norm_label": "manifestentries" }, { - "label": "create-reminder.dto.ts", + "label": "auth.controller.spec.ts", "file_type": "code", - "source_file": "backend/src/pets/dto/create-reminder.dto.ts", + "source_file": "backend/src/auth/auth.controller.spec.ts", "source_location": "L1", "_origin": "ast", - "id": "backend_src_pets_dto_create_reminder_dto", + "id": "backend_src_auth_auth_controller_spec", "community": 117, - "community_name": "Pet Reminder DTOs", - "norm_label": "create-reminder.dto.ts" + "community_name": "AuthController", + "norm_label": "auth.controller.spec.ts" }, { - "label": "ApiProperty", + "label": "ApiTags", "file_type": "code", "source_file": "", "source_location": "", "_origin": "ast", - "id": "backend_src_pets_dto_create_reminder_dto_ts_apiproperty", + "id": "backend_src_auth_auth_controller_ts_apitags", "community": 117, - "community_name": "Pet Reminder DTOs", - "norm_label": "apiproperty" + "community_name": "AuthController", + "norm_label": "apitags" }, { - "label": "ApiPropertyOptional", + "label": "Controller", "file_type": "code", "source_file": "", "source_location": "", "_origin": "ast", - "id": "backend_src_pets_dto_create_reminder_dto_ts_apipropertyoptional", + "id": "backend_src_auth_auth_controller_ts_controller", "community": 117, - "community_name": "Pet Reminder DTOs", - "norm_label": "apipropertyoptional" + "community_name": "AuthController", + "norm_label": "controller" }, { - "label": "IsNotEmpty", + "label": "auth.module.ts", + "file_type": "code", + "source_file": "backend/src/auth/auth.module.ts", + "source_location": "L1", + "_origin": "ast", + "id": "backend_src_auth_auth_module", + "community": 117, + "community_name": "AuthController", + "norm_label": "auth.module.ts" + }, + { + "label": "Module", "file_type": "code", "source_file": "", "source_location": "", "_origin": "ast", - "id": "backend_src_pets_dto_create_reminder_dto_ts_isnotempty", + "id": "backend_src_auth_auth_module_ts_module", "community": 117, - "community_name": "Pet Reminder DTOs", - "norm_label": "isnotempty" + "community_name": "AuthController", + "norm_label": "module" }, { - "label": "IsOptional", + "label": "Module", "file_type": "code", "source_file": "", "source_location": "", "_origin": "ast", - "id": "backend_src_pets_dto_create_reminder_dto_ts_isoptional", + "id": "backend_src_users_users_module_ts_module", "community": 117, - "community_name": "Pet Reminder DTOs", - "norm_label": "isoptional" - }, - { - "label": "IsString", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_pets_dto_create_reminder_dto_ts_isstring", - "community": 117, - "community_name": "Pet Reminder DTOs", - "norm_label": "isstring" + "community_name": "AuthController", + "norm_label": "module" }, { "label": "11-code-quality-audit.md", @@ -14633,17 +15302,6 @@ "community_name": "What You Must Do When Invoked", "norm_label": "what you must do when invoked" }, - { - "label": "MediaSelector.tsx", - "file_type": "code", - "source_file": "frontend/admin-panel/src/components/ui/MediaSelector.tsx", - "source_location": "L1", - "_origin": "ast", - "id": "frontend_admin_panel_src_components_ui_mediaselector", - "community": 13, - "community_name": "Media and Blog UI Components", - "norm_label": "mediaselector.tsx" - }, { "label": "Pagination.tsx", "file_type": "code", @@ -14652,7 +15310,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_components_ui_pagination", "community": 13, - "community_name": "Media and Blog UI Components", + "community_name": "Products.tsx", "norm_label": "pagination.tsx" }, { @@ -14663,31 +15321,9 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_blogs", "community": 13, - "community_name": "Media and Blog UI Components", + "community_name": "Products.tsx", "norm_label": "blogs.tsx" }, - { - "label": "Categories.tsx", - "file_type": "code", - "source_file": "frontend/admin-panel/src/pages/Categories.tsx", - "source_location": "L1", - "_origin": "ast", - "id": "frontend_admin_panel_src_pages_categories", - "community": 13, - "community_name": "Media and Blog UI Components", - "norm_label": "categories.tsx" - }, - { - "label": "IngredientsManager.tsx", - "file_type": "code", - "source_file": "frontend/admin-panel/src/pages/IngredientsManager.tsx", - "source_location": "L1", - "_origin": "ast", - "id": "frontend_admin_panel_src_pages_ingredientsmanager", - "community": 13, - "community_name": "Media and Blog UI Components", - "norm_label": "ingredientsmanager.tsx" - }, { "label": "Pets.tsx", "file_type": "code", @@ -14696,20 +15332,9 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_pets", "community": 13, - "community_name": "Media and Blog UI Components", + "community_name": "Products.tsx", "norm_label": "pets.tsx" }, - { - "label": "PrescriptionsManager.tsx", - "file_type": "code", - "source_file": "frontend/admin-panel/src/pages/PrescriptionsManager.tsx", - "source_location": "L1", - "_origin": "ast", - "id": "frontend_admin_panel_src_pages_prescriptionsmanager", - "community": 13, - "community_name": "Media and Blog UI Components", - "norm_label": "prescriptionsmanager.tsx" - }, { "label": "Products.tsx", "file_type": "code", @@ -14718,7 +15343,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_products", "community": 13, - "community_name": "Media and Blog UI Components", + "community_name": "Products.tsx", "norm_label": "products.tsx" }, { @@ -14729,31 +15354,9 @@ "_origin": "ast", "id": "frontend_admin_panel_src_routes_adminroutes_blogs", "community": 13, - "community_name": "Media and Blog UI Components", + "community_name": "Products.tsx", "norm_label": "blogs" }, - { - "label": "Categories", - "file_type": "code", - "source_file": "frontend/admin-panel/src/routes/adminRoutes.tsx", - "source_location": "L17", - "_origin": "ast", - "id": "frontend_admin_panel_src_routes_adminroutes_categories", - "community": 13, - "community_name": "Media and Blog UI Components", - "norm_label": "categories" - }, - { - "label": "IngredientsManager", - "file_type": "code", - "source_file": "frontend/admin-panel/src/routes/adminRoutes.tsx", - "source_location": "L30", - "_origin": "ast", - "id": "frontend_admin_panel_src_routes_adminroutes_ingredientsmanager", - "community": 13, - "community_name": "Media and Blog UI Components", - "norm_label": "ingredientsmanager" - }, { "label": "Pets", "file_type": "code", @@ -14762,20 +15365,9 @@ "_origin": "ast", "id": "frontend_admin_panel_src_routes_adminroutes_pets", "community": 13, - "community_name": "Media and Blog UI Components", + "community_name": "Products.tsx", "norm_label": "pets" }, - { - "label": "PrescriptionsManager", - "file_type": "code", - "source_file": "frontend/admin-panel/src/routes/adminRoutes.tsx", - "source_location": "L31", - "_origin": "ast", - "id": "frontend_admin_panel_src_routes_adminroutes_prescriptionsmanager", - "community": 13, - "community_name": "Media and Blog UI Components", - "norm_label": "prescriptionsmanager" - }, { "label": "Products", "file_type": "code", @@ -14784,41 +15376,41 @@ "_origin": "ast", "id": "frontend_admin_panel_src_routes_adminroutes_products", "community": 13, - "community_name": "Media and Blog UI Components", + "community_name": "Products.tsx", "norm_label": "products" }, { - "label": "BASE_DOMAIN", + "label": "admin/blogs.controller.ts", "file_type": "code", - "source_file": "frontend/admin-panel/src/services/api.ts", - "source_location": "L7", - "_origin": "ast", - "id": "frontend_admin_panel_src_services_api_base_domain", - "community": 13, - "community_name": "Media and Blog UI Components", - "norm_label": "base_domain" - }, - { - "label": "categories.controller.ts", - "file_type": "code", - "source_file": "backend/src/admin/categories.controller.ts", + "source_file": "backend/src/admin/blogs.controller.ts", "source_location": "L1", "_origin": "ast", - "id": "backend_src_admin_categories_controller", + "id": "backend_src_admin_blogs_controller", "community": 130, - "community_name": "Roles", - "norm_label": "categories.controller.ts" + "community_name": "JwtAuthGuard", + "norm_label": "admin/blogs.controller.ts" }, { - "label": "media.controller.ts", + "label": "admin/pets.controller.ts", "file_type": "code", - "source_file": "backend/src/admin/media.controller.ts", + "source_file": "backend/src/admin/pets.controller.ts", "source_location": "L1", "_origin": "ast", - "id": "backend_src_admin_media_controller", + "id": "backend_src_admin_pets_controller", "community": 130, - "community_name": "Roles", - "norm_label": "media.controller.ts" + "community_name": "JwtAuthGuard", + "norm_label": "admin/pets.controller.ts" + }, + { + "label": "admin/wiki.controller.ts", + "file_type": "code", + "source_file": "backend/src/admin/wiki.controller.ts", + "source_location": "L1", + "_origin": "ast", + "id": "backend_src_admin_wiki_controller", + "community": 130, + "community_name": "JwtAuthGuard", + "norm_label": "admin/wiki.controller.ts" }, { "label": "jwt-auth.guard.ts", @@ -14828,7 +15420,7 @@ "_origin": "ast", "id": "backend_src_auth_jwt_auth_guard", "community": 130, - "community_name": "Roles", + "community_name": "JwtAuthGuard", "norm_label": "jwt-auth.guard.ts" }, { @@ -14839,7 +15431,7 @@ "_origin": "ast", "id": "backend_src_auth_jwt_auth_guard_ts_injectable", "community": 130, - "community_name": "Roles", + "community_name": "JwtAuthGuard", "norm_label": "injectable" }, { @@ -14850,7 +15442,7 @@ "_origin": "ast", "id": "backend_src_auth_roles_decorator", "community": 130, - "community_name": "Roles", + "community_name": "JwtAuthGuard", "norm_label": "auth/roles.decorator.ts" }, { @@ -14861,7 +15453,7 @@ "_origin": "ast", "id": "backend_src_auth_roles_guard", "community": 130, - "community_name": "Roles", + "community_name": "JwtAuthGuard", "norm_label": "auth/roles.guard.ts" }, { @@ -14872,7 +15464,7 @@ "_origin": "ast", "id": "backend_src_b2b_b2b_controller", "community": 130, - "community_name": "Roles", + "community_name": "JwtAuthGuard", "norm_label": "b2b.controller.ts" }, { @@ -14883,20 +15475,9 @@ "_origin": "ast", "id": "backend_src_banners_banners_controller", "community": 130, - "community_name": "Roles", + "community_name": "JwtAuthGuard", "norm_label": "banners.controller.ts" }, - { - "label": "cms.controller.ts", - "file_type": "code", - "source_file": "backend/src/cms/cms.controller.ts", - "source_location": "L1", - "_origin": "ast", - "id": "backend_src_cms_cms_controller", - "community": 130, - "community_name": "Roles", - "norm_label": "cms.controller.ts" - }, { "label": "decorators/roles.decorator.ts", "file_type": "code", @@ -14905,7 +15486,7 @@ "_origin": "ast", "id": "backend_src_common_decorators_roles_decorator", "community": 130, - "community_name": "Roles", + "community_name": "JwtAuthGuard", "norm_label": "decorators/roles.decorator.ts" }, { @@ -14916,7 +15497,7 @@ "_origin": "ast", "id": "backend_src_common_decorators_roles_decorator_roles_key", "community": 130, - "community_name": "Roles", + "community_name": "JwtAuthGuard", "norm_label": "roles_key" }, { @@ -14927,7 +15508,7 @@ "_origin": "ast", "id": "backend_src_common_guards_roles_guard", "community": 130, - "community_name": "Roles", + "community_name": "JwtAuthGuard", "norm_label": "guards/roles.guard.ts" }, { @@ -14938,7 +15519,7 @@ "_origin": "ast", "id": "backend_src_common_guards_roles_guard_spec", "community": 130, - "community_name": "Roles", + "community_name": "JwtAuthGuard", "norm_label": "roles.guard.spec.ts" }, { @@ -14949,7 +15530,7 @@ "_origin": "ast", "id": "backend_src_common_guards_roles_guard_ts_injectable", "community": 130, - "community_name": "Roles", + "community_name": "JwtAuthGuard", "norm_label": "injectable" }, { @@ -14960,7 +15541,7 @@ "_origin": "ast", "id": "backend_src_contact_contact_controller", "community": 130, - "community_name": "Roles", + "community_name": "JwtAuthGuard", "norm_label": "contact.controller.ts" }, { @@ -14971,7 +15552,7 @@ "_origin": "ast", "id": "backend_src_ingredients_ingredients_controller", "community": 130, - "community_name": "Roles", + "community_name": "JwtAuthGuard", "norm_label": "ingredients.controller.ts" }, { @@ -14982,7 +15563,7 @@ "_origin": "ast", "id": "backend_src_prescriptions_prescriptions_controller", "community": 130, - "community_name": "Roles", + "community_name": "JwtAuthGuard", "norm_label": "prescriptions.controller.ts" }, { @@ -14993,7 +15574,7 @@ "_origin": "ast", "id": "backend_src_settings_settings_controller", "community": 130, - "community_name": "Roles", + "community_name": "JwtAuthGuard", "norm_label": "settings.controller.ts" }, { @@ -15004,7 +15585,7 @@ "_origin": "ast", "id": "backend_src_settings_settings_controller_spec", "community": 130, - "community_name": "Roles", + "community_name": "JwtAuthGuard", "norm_label": "settings.controller.spec.ts" }, { @@ -15015,7 +15596,7 @@ "_origin": "ast", "id": "backend_src_smart_advisor_smart_advisor_controller", "community": 130, - "community_name": "Roles", + "community_name": "JwtAuthGuard", "norm_label": "smart-advisor.controller.ts" }, { @@ -15026,7 +15607,7 @@ "_origin": "ast", "id": "backend_src_testimonials_testimonials_controller", "community": 130, - "community_name": "Roles", + "community_name": "JwtAuthGuard", "norm_label": "testimonials.controller.ts" }, { @@ -15037,7 +15618,7 @@ "_origin": "ast", "id": "backend_src_wholesale_wholesale_controller", "community": 130, - "community_name": "Roles", + "community_name": "JwtAuthGuard", "norm_label": "wholesale.controller.ts" }, { @@ -16449,26 +17030,26 @@ "norm_label": "your identity" }, { - "label": "@nestjs/cli", + "label": "admin/blogs.service.ts", "file_type": "code", - "source_file": "backend/package.json", - "source_location": "L48", + "source_file": "backend/src/admin/blogs.service.ts", + "source_location": "L1", "_origin": "ast", - "id": "backend_package_devdependencies_nestjs_cli", + "id": "backend_src_admin_blogs_service", "community": 137, - "community_name": "NestJS CLI Tooling", - "norm_label": "@nestjs/cli" + "community_name": "BlogsService", + "norm_label": "admin/blogs.service.ts" }, { - "label": "@nestjs/cli", - "file_type": "concept", - "source_file": "backend/package.json", - "source_location": "L48", + "label": "Injectable", + "file_type": "code", + "source_file": "", + "source_location": "", "_origin": "ast", - "id": "nestjs_cli", + "id": "backend_src_admin_blogs_service_ts_injectable", "community": 137, - "community_name": "NestJS CLI Tooling", - "norm_label": "@nestjs/cli" + "community_name": "BlogsService", + "norm_label": "injectable" }, { "label": "03_product_manager.md", @@ -16877,50 +17458,6 @@ "community_name": "ProductsService", "norm_label": "get-products.dto.ts" }, - { - "label": "ApiPropertyOptional", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_products_dto_get_products_dto_ts_apipropertyoptional", - "community": 14, - "community_name": "ProductsService", - "norm_label": "apipropertyoptional" - }, - { - "label": "IsEnum", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_products_dto_get_products_dto_ts_isenum", - "community": 14, - "community_name": "ProductsService", - "norm_label": "isenum" - }, - { - "label": "IsOptional", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_products_dto_get_products_dto_ts_isoptional", - "community": 14, - "community_name": "ProductsService", - "norm_label": "isoptional" - }, - { - "label": "IsString", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_products_dto_get_products_dto_ts_isstring", - "community": 14, - "community_name": "ProductsService", - "norm_label": "isstring" - }, { "label": "products.controller.ts", "file_type": "code", @@ -17020,17 +17557,6 @@ "community_name": "ProductsService", "norm_label": "patch" }, - { - "label": "Query", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_products_products_controller_ts_query", - "community": 14, - "community_name": "ProductsService", - "norm_label": "query" - }, { "label": "UseGuards", "file_type": "code", @@ -17795,17 +18321,6 @@ "community_name": "devDependencies", "norm_label": "eslint" }, - { - "label": "eslint-config-prettier", - "file_type": "code", - "source_file": "backend/package.json", - "source_location": "L61", - "_origin": "ast", - "id": "backend_package_devdependencies_eslint_config_prettier", - "community": 16, - "community_name": "devDependencies", - "norm_label": "eslint-config-prettier" - }, { "label": "@eslint/js", "file_type": "code", @@ -17828,6 +18343,17 @@ "community_name": "devDependencies", "norm_label": "jest" }, + { + "label": "@nestjs/cli", + "file_type": "code", + "source_file": "backend/package.json", + "source_location": "L48", + "_origin": "ast", + "id": "backend_package_devdependencies_nestjs_cli", + "community": 16, + "community_name": "devDependencies", + "norm_label": "@nestjs/cli" + }, { "label": "@nestjs/schematics", "file_type": "code", @@ -17938,17 +18464,6 @@ "community_name": "devDependencies", "norm_label": "typescript-eslint" }, - { - "label": "eslint-config-prettier", - "file_type": "concept", - "source_file": "backend/package.json", - "source_location": "L61", - "_origin": "ast", - "id": "eslint_config_prettier", - "community": 16, - "community_name": "devDependencies", - "norm_label": "eslint-config-prettier" - }, { "label": "jest", "file_type": "concept", @@ -17960,6 +18475,17 @@ "community_name": "devDependencies", "norm_label": "jest" }, + { + "label": "@nestjs/cli", + "file_type": "concept", + "source_file": "backend/package.json", + "source_location": "L48", + "_origin": "ast", + "id": "nestjs_cli", + "community": 16, + "community_name": "devDependencies", + "norm_label": "@nestjs/cli" + }, { "label": "@nestjs/schematics", "file_type": "concept", @@ -18719,6 +19245,17 @@ "community_name": "AppModule", "norm_label": "module" }, + { + "label": "metrics.controller.ts", + "file_type": "code", + "source_file": "backend/src/common/metrics.controller.ts", + "source_location": "L1", + "_origin": "ast", + "id": "backend_src_common_metrics_controller", + "community": 18, + "community_name": "AppModule", + "norm_label": "metrics.controller.ts" + }, { "label": "Controller", "file_type": "code", @@ -20468,6 +21005,149 @@ "community_name": "Operational Rules & Boundaries", "norm_label": "strict input specifications (what files to read)" }, + { + "label": "ApiBearerAuth", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_banners_banners_controller_ts_apibearerauth", + "community": 2, + "community_name": "Roles", + "norm_label": "apibearerauth" + }, + { + "label": "ApiOperation", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_banners_banners_controller_ts_apioperation", + "community": 2, + "community_name": "Roles", + "norm_label": "apioperation" + }, + { + "label": "ApiTags", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_banners_banners_controller_ts_apitags", + "community": 2, + "community_name": "Roles", + "norm_label": "apitags" + }, + { + "label": "Body", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_banners_banners_controller_ts_body", + "community": 2, + "community_name": "Roles", + "norm_label": "body" + }, + { + "label": "Controller", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_banners_banners_controller_ts_controller", + "community": 2, + "community_name": "Roles", + "norm_label": "controller" + }, + { + "label": "Delete", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_banners_banners_controller_ts_delete", + "community": 2, + "community_name": "Roles", + "norm_label": "delete" + }, + { + "label": "Get", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_banners_banners_controller_ts_get", + "community": 2, + "community_name": "Roles", + "norm_label": "get" + }, + { + "label": "Param", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_banners_banners_controller_ts_param", + "community": 2, + "community_name": "Roles", + "norm_label": "param" + }, + { + "label": "Patch", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_banners_banners_controller_ts_patch", + "community": 2, + "community_name": "Roles", + "norm_label": "patch" + }, + { + "label": "Post", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_banners_banners_controller_ts_post", + "community": 2, + "community_name": "Roles", + "norm_label": "post" + }, + { + "label": "Put", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_banners_banners_controller_ts_put", + "community": 2, + "community_name": "Roles", + "norm_label": "put" + }, + { + "label": "UseGuards", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_banners_banners_controller_ts_useguards", + "community": 2, + "community_name": "Roles", + "norm_label": "useguards" + }, + { + "label": "Injectable", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_banners_banners_service_ts_injectable", + "community": 2, + "community_name": "Roles", + "norm_label": "injectable" + }, { "label": "ApiBearerAuth", "file_type": "code", @@ -20476,7 +21156,7 @@ "_origin": "ast", "id": "backend_src_settings_settings_controller_ts_apibearerauth", "community": 2, - "community_name": "SettingsController", + "community_name": "Roles", "norm_label": "apibearerauth" }, { @@ -20487,7 +21167,7 @@ "_origin": "ast", "id": "backend_src_settings_settings_controller_ts_apiokresponse", "community": 2, - "community_name": "SettingsController", + "community_name": "Roles", "norm_label": "apiokresponse" }, { @@ -20498,7 +21178,7 @@ "_origin": "ast", "id": "backend_src_settings_settings_controller_ts_apioperation", "community": 2, - "community_name": "SettingsController", + "community_name": "Roles", "norm_label": "apioperation" }, { @@ -20509,7 +21189,7 @@ "_origin": "ast", "id": "backend_src_settings_settings_controller_ts_apitags", "community": 2, - "community_name": "SettingsController", + "community_name": "Roles", "norm_label": "apitags" }, { @@ -20520,7 +21200,7 @@ "_origin": "ast", "id": "backend_src_settings_settings_controller_ts_body", "community": 2, - "community_name": "SettingsController", + "community_name": "Roles", "norm_label": "body" }, { @@ -20531,7 +21211,7 @@ "_origin": "ast", "id": "backend_src_settings_settings_controller_ts_controller", "community": 2, - "community_name": "SettingsController", + "community_name": "Roles", "norm_label": "controller" }, { @@ -20542,7 +21222,7 @@ "_origin": "ast", "id": "backend_src_settings_settings_controller_ts_delete", "community": 2, - "community_name": "SettingsController", + "community_name": "Roles", "norm_label": "delete" }, { @@ -20553,7 +21233,7 @@ "_origin": "ast", "id": "backend_src_settings_settings_controller_ts_get", "community": 2, - "community_name": "SettingsController", + "community_name": "Roles", "norm_label": "get" }, { @@ -20564,7 +21244,7 @@ "_origin": "ast", "id": "backend_src_settings_settings_controller_ts_param", "community": 2, - "community_name": "SettingsController", + "community_name": "Roles", "norm_label": "param" }, { @@ -20575,9 +21255,20 @@ "_origin": "ast", "id": "backend_src_settings_settings_controller_ts_patch", "community": 2, - "community_name": "SettingsController", + "community_name": "Roles", "norm_label": "patch" }, + { + "label": "Post", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_settings_settings_controller_ts_post", + "community": 2, + "community_name": "Roles", + "norm_label": "post" + }, { "label": "Put", "file_type": "code", @@ -20586,7 +21277,7 @@ "_origin": "ast", "id": "backend_src_settings_settings_controller_ts_put", "community": 2, - "community_name": "SettingsController", + "community_name": "Roles", "norm_label": "put" }, { @@ -20597,31 +21288,9 @@ "_origin": "ast", "id": "backend_src_settings_settings_controller_ts_useguards", "community": 2, - "community_name": "SettingsController", + "community_name": "Roles", "norm_label": "useguards" }, - { - "label": "settings.service.ts", - "file_type": "code", - "source_file": "backend/src/settings/settings.service.ts", - "source_location": "L1", - "_origin": "ast", - "id": "backend_src_settings_settings_service", - "community": 2, - "community_name": "SettingsController", - "norm_label": "settings.service.ts" - }, - { - "label": "settings.service.spec.ts", - "file_type": "code", - "source_file": "backend/src/settings/settings.service.spec.ts", - "source_location": "L1", - "_origin": "ast", - "id": "backend_src_settings_settings_service_spec", - "community": 2, - "community_name": "SettingsController", - "norm_label": "settings.service.spec.ts" - }, { "label": "Injectable", "file_type": "code", @@ -20630,7 +21299,7 @@ "_origin": "ast", "id": "backend_src_settings_settings_service_ts_injectable", "community": 2, - "community_name": "SettingsController", + "community_name": "Roles", "norm_label": "injectable" }, { @@ -21800,136 +22469,103 @@ "norm_label": "strict input specifications (what files to read)" }, { - "label": "ApiBearerAuth", + "label": "admin.service.ts", "file_type": "code", - "source_file": "", - "source_location": "", + "source_file": "backend/src/admin/admin.service.ts", + "source_location": "L1", "_origin": "ast", - "id": "backend_src_banners_banners_controller_ts_apibearerauth", + "id": "backend_src_admin_admin_service", "community": 21, - "community_name": "Banner Management Controller", - "norm_label": "apibearerauth" + "community_name": "auth.service.ts", + "norm_label": "admin.service.ts" }, { - "label": "ApiOperation", + "label": "admin.service.spec.ts", "file_type": "code", - "source_file": "", - "source_location": "", + "source_file": "backend/src/admin/admin.service.spec.ts", + "source_location": "L1", "_origin": "ast", - "id": "backend_src_banners_banners_controller_ts_apioperation", + "id": "backend_src_admin_admin_service_spec", "community": 21, - "community_name": "Banner Management Controller", - "norm_label": "apioperation" + "community_name": "auth.service.ts", + "norm_label": "admin.service.spec.ts" }, { - "label": "ApiTags", + "label": "auth.service.ts", "file_type": "code", - "source_file": "", - "source_location": "", + "source_file": "backend/src/auth/auth.service.ts", + "source_location": "L1", "_origin": "ast", - "id": "backend_src_banners_banners_controller_ts_apitags", + "id": "backend_src_auth_auth_service", "community": 21, - "community_name": "Banner Management Controller", - "norm_label": "apitags" + "community_name": "auth.service.ts", + "norm_label": "auth.service.ts" }, { - "label": "Body", + "label": "auth.service.spec.ts", "file_type": "code", - "source_file": "", - "source_location": "", + "source_file": "backend/src/auth/auth.service.spec.ts", + "source_location": "L1", "_origin": "ast", - "id": "backend_src_banners_banners_controller_ts_body", + "id": "backend_src_auth_auth_service_spec", "community": 21, - "community_name": "Banner Management Controller", - "norm_label": "body" + "community_name": "auth.service.ts", + "norm_label": "auth.service.spec.ts" }, { - "label": "Controller", + "label": "redis.module.ts", "file_type": "code", - "source_file": "", - "source_location": "", + "source_file": "backend/src/redis/redis.module.ts", + "source_location": "L1", "_origin": "ast", - "id": "backend_src_banners_banners_controller_ts_controller", + "id": "backend_src_redis_redis_module", "community": 21, - "community_name": "Banner Management Controller", - "norm_label": "controller" + "community_name": "auth.service.ts", + "norm_label": "redis.module.ts" }, { - "label": "Delete", + "label": "Global", "file_type": "code", "source_file": "", "source_location": "", "_origin": "ast", - "id": "backend_src_banners_banners_controller_ts_delete", + "id": "backend_src_redis_redis_module_ts_global", "community": 21, - "community_name": "Banner Management Controller", - "norm_label": "delete" + "community_name": "auth.service.ts", + "norm_label": "global" }, { - "label": "Get", + "label": "Module", "file_type": "code", "source_file": "", "source_location": "", "_origin": "ast", - "id": "backend_src_banners_banners_controller_ts_get", + "id": "backend_src_redis_redis_module_ts_module", "community": 21, - "community_name": "Banner Management Controller", - "norm_label": "get" + "community_name": "auth.service.ts", + "norm_label": "module" }, { - "label": "Param", + "label": "redis.service.ts", "file_type": "code", - "source_file": "", - "source_location": "", + "source_file": "backend/src/redis/redis.service.ts", + "source_location": "L1", "_origin": "ast", - "id": "backend_src_banners_banners_controller_ts_param", + "id": "backend_src_redis_redis_service", "community": 21, - "community_name": "Banner Management Controller", - "norm_label": "param" + "community_name": "auth.service.ts", + "norm_label": "redis.service.ts" }, { - "label": "Patch", + "label": "redis.service.spec.ts", "file_type": "code", - "source_file": "", - "source_location": "", + "source_file": "backend/src/redis/redis.service.spec.ts", + "source_location": "L1", "_origin": "ast", - "id": "backend_src_banners_banners_controller_ts_patch", + "id": "backend_src_redis_redis_service_spec", "community": 21, - "community_name": "Banner Management Controller", - "norm_label": "patch" - }, - { - "label": "Post", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_banners_banners_controller_ts_post", - "community": 21, - "community_name": "Banner Management Controller", - "norm_label": "post" - }, - { - "label": "Put", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_banners_banners_controller_ts_put", - "community": 21, - "community_name": "Banner Management Controller", - "norm_label": "put" - }, - { - "label": "UseGuards", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_banners_banners_controller_ts_useguards", - "community": 21, - "community_name": "Banner Management Controller", - "norm_label": "useguards" + "community_name": "auth.service.ts", + "norm_label": "redis.service.spec.ts" }, { "label": "Injectable", @@ -21937,9 +22573,9 @@ "source_file": "", "source_location": "", "_origin": "ast", - "id": "backend_src_banners_banners_service_ts_injectable", + "id": "backend_src_redis_redis_service_ts_injectable", "community": 21, - "community_name": "Banner Management Controller", + "community_name": "auth.service.ts", "norm_label": "injectable" }, { @@ -22778,6 +23414,17 @@ "community_name": "Project Health Audit Report", "norm_label": "project health audit report" }, + { + "label": "media.controller.ts", + "file_type": "code", + "source_file": "backend/src/admin/media.controller.ts", + "source_location": "L1", + "_origin": "ast", + "id": "backend_src_admin_media_controller", + "community": 22, + "community_name": "MediaController", + "norm_label": "media.controller.ts" + }, { "label": "ApiBearerAuth", "file_type": "code", @@ -22786,7 +23433,7 @@ "_origin": "ast", "id": "backend_src_admin_media_controller_ts_apibearerauth", "community": 22, - "community_name": "Media Upload Controller", + "community_name": "MediaController", "norm_label": "apibearerauth" }, { @@ -22797,7 +23444,7 @@ "_origin": "ast", "id": "backend_src_admin_media_controller_ts_apioperation", "community": 22, - "community_name": "Media Upload Controller", + "community_name": "MediaController", "norm_label": "apioperation" }, { @@ -22808,7 +23455,7 @@ "_origin": "ast", "id": "backend_src_admin_media_controller_ts_apitags", "community": 22, - "community_name": "Media Upload Controller", + "community_name": "MediaController", "norm_label": "apitags" }, { @@ -22819,7 +23466,7 @@ "_origin": "ast", "id": "backend_src_admin_media_controller_ts_body", "community": 22, - "community_name": "Media Upload Controller", + "community_name": "MediaController", "norm_label": "body" }, { @@ -22830,7 +23477,7 @@ "_origin": "ast", "id": "backend_src_admin_media_controller_ts_controller", "community": 22, - "community_name": "Media Upload Controller", + "community_name": "MediaController", "norm_label": "controller" }, { @@ -22841,7 +23488,7 @@ "_origin": "ast", "id": "backend_src_admin_media_controller_ts_delete", "community": 22, - "community_name": "Media Upload Controller", + "community_name": "MediaController", "norm_label": "delete" }, { @@ -22852,7 +23499,7 @@ "_origin": "ast", "id": "backend_src_admin_media_controller_ts_get", "community": 22, - "community_name": "Media Upload Controller", + "community_name": "MediaController", "norm_label": "get" }, { @@ -22863,7 +23510,7 @@ "_origin": "ast", "id": "backend_src_admin_media_controller_ts_param", "community": 22, - "community_name": "Media Upload Controller", + "community_name": "MediaController", "norm_label": "param" }, { @@ -22874,7 +23521,7 @@ "_origin": "ast", "id": "backend_src_admin_media_controller_ts_post", "community": 22, - "community_name": "Media Upload Controller", + "community_name": "MediaController", "norm_label": "post" }, { @@ -22885,7 +23532,7 @@ "_origin": "ast", "id": "backend_src_admin_media_controller_ts_put", "community": 22, - "community_name": "Media Upload Controller", + "community_name": "MediaController", "norm_label": "put" }, { @@ -22896,9 +23543,20 @@ "_origin": "ast", "id": "backend_src_admin_media_controller_ts_useguards", "community": 22, - "community_name": "Media Upload Controller", + "community_name": "MediaController", "norm_label": "useguards" }, + { + "label": "media.service.ts", + "file_type": "code", + "source_file": "backend/src/admin/media.service.ts", + "source_location": "L1", + "_origin": "ast", + "id": "backend_src_admin_media_service", + "community": 22, + "community_name": "MediaController", + "norm_label": "media.service.ts" + }, { "label": "Injectable", "file_type": "code", @@ -22907,7 +23565,7 @@ "_origin": "ast", "id": "backend_src_admin_media_service_ts_injectable", "community": 22, - "community_name": "Media Upload Controller", + "community_name": "MediaController", "norm_label": "injectable" }, { @@ -22918,7 +23576,7 @@ "_origin": "ast", "id": "uploadedfile", "community": 22, - "community_name": "Media Upload Controller", + "community_name": "MediaController", "norm_label": "uploadedfile" }, { @@ -22929,7 +23587,7 @@ "_origin": "ast", "id": "useinterceptors", "community": 22, - "community_name": "Media Upload Controller", + "community_name": "MediaController", "norm_label": "useinterceptors" }, { @@ -23944,28 +24602,6 @@ "community_name": "globals", "norm_label": "globals" }, - { - "label": "App.tsx", - "file_type": "code", - "source_file": "frontend/admin-panel/src/App.tsx", - "source_location": "L1", - "_origin": "ast", - "id": "frontend_admin_panel_src_app", - "community": 24, - "community_name": "Admin Dashboard Components", - "norm_label": "app.tsx" - }, - { - "label": "main.tsx", - "file_type": "code", - "source_file": "frontend/admin-panel/src/main.tsx", - "source_location": "L1", - "_origin": "ast", - "id": "frontend_admin_panel_src_main", - "community": 24, - "community_name": "Admin Dashboard Components", - "norm_label": "main.tsx" - }, { "label": "ContactSubmissions.tsx", "file_type": "code", @@ -23974,7 +24610,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_contactsubmissions", "community": 24, - "community_name": "Admin Dashboard Components", + "community_name": "adminRoutes.tsx", "norm_label": "contactsubmissions.tsx" }, { @@ -23985,9 +24621,20 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_dashboard", "community": 24, - "community_name": "Admin Dashboard Components", + "community_name": "adminRoutes.tsx", "norm_label": "dashboard.tsx" }, + { + "label": "FinancialSettingsPage.tsx", + "file_type": "code", + "source_file": "frontend/admin-panel/src/pages/FinancialSettingsPage.tsx", + "source_location": "L1", + "_origin": "ast", + "id": "frontend_admin_panel_src_pages_financialsettingspage", + "community": 24, + "community_name": "adminRoutes.tsx", + "norm_label": "financialsettingspage.tsx" + }, { "label": "Settings.tsx", "file_type": "code", @@ -23996,9 +24643,20 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_settings", "community": 24, - "community_name": "Admin Dashboard Components", + "community_name": "adminRoutes.tsx", "norm_label": "settings.tsx" }, + { + "label": "SmsSettingsPage.tsx", + "file_type": "code", + "source_file": "frontend/admin-panel/src/pages/SmsSettingsPage.tsx", + "source_location": "L1", + "_origin": "ast", + "id": "frontend_admin_panel_src_pages_smssettingspage", + "community": 24, + "community_name": "adminRoutes.tsx", + "norm_label": "smssettingspage.tsx" + }, { "label": "UITexts.tsx", "file_type": "code", @@ -24007,7 +24665,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_uitexts", "community": 24, - "community_name": "Admin Dashboard Components", + "community_name": "adminRoutes.tsx", "norm_label": "uitexts.tsx" }, { @@ -24018,7 +24676,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_uitexts_group_page_map", "community": 24, - "community_name": "Admin Dashboard Components", + "community_name": "adminRoutes.tsx", "norm_label": "group_page_map" }, { @@ -24029,7 +24687,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_uitexts_groups", "community": 24, - "community_name": "Admin Dashboard Components", + "community_name": "adminRoutes.tsx", "norm_label": "groups" }, { @@ -24040,7 +24698,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_uitexts_page_tabs", "community": 24, - "community_name": "Admin Dashboard Components", + "community_name": "adminRoutes.tsx", "norm_label": "page_tabs" }, { @@ -24051,7 +24709,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_routes_adminroutes", "community": 24, - "community_name": "Admin Dashboard Components", + "community_name": "adminRoutes.tsx", "norm_label": "adminroutes.tsx" }, { @@ -24062,7 +24720,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_routes_adminroutes_contactsubmissions", "community": 24, - "community_name": "Admin Dashboard Components", + "community_name": "adminRoutes.tsx", "norm_label": "contactsubmissions" }, { @@ -24073,19 +24731,19 @@ "_origin": "ast", "id": "frontend_admin_panel_src_routes_adminroutes_dashboard", "community": 24, - "community_name": "Admin Dashboard Components", + "community_name": "adminRoutes.tsx", "norm_label": "dashboard" }, { - "label": "router", + "label": "FinancialSettingsPage", "file_type": "code", "source_file": "frontend/admin-panel/src/routes/adminRoutes.tsx", - "source_location": "L43", + "source_location": "L34", "_origin": "ast", - "id": "frontend_admin_panel_src_routes_adminroutes_router", + "id": "frontend_admin_panel_src_routes_adminroutes_financialsettingspage", "community": 24, - "community_name": "Admin Dashboard Components", - "norm_label": "router" + "community_name": "adminRoutes.tsx", + "norm_label": "financialsettingspage" }, { "label": "Settings", @@ -24095,9 +24753,20 @@ "_origin": "ast", "id": "frontend_admin_panel_src_routes_adminroutes_settings", "community": 24, - "community_name": "Admin Dashboard Components", + "community_name": "adminRoutes.tsx", "norm_label": "settings" }, + { + "label": "SmsSettingsPage", + "file_type": "code", + "source_file": "frontend/admin-panel/src/routes/adminRoutes.tsx", + "source_location": "L36", + "_origin": "ast", + "id": "frontend_admin_panel_src_routes_adminroutes_smssettingspage", + "community": 24, + "community_name": "adminRoutes.tsx", + "norm_label": "smssettingspage" + }, { "label": "UITexts", "file_type": "code", @@ -24106,9 +24775,20 @@ "_origin": "ast", "id": "frontend_admin_panel_src_routes_adminroutes_uitexts", "community": 24, - "community_name": "Admin Dashboard Components", + "community_name": "adminRoutes.tsx", "norm_label": "uitexts" }, + { + "label": "api", + "file_type": "code", + "source_file": "frontend/admin-panel/src/services/api.ts", + "source_location": "L23", + "_origin": "ast", + "id": "frontend_admin_panel_src_services_api_api", + "community": 24, + "community_name": "adminRoutes.tsx", + "norm_label": "api" + }, { "label": "prettier", "file_type": "code", @@ -24352,48 +25032,26 @@ "norm_label": "module" }, { - "label": "admin/blogs.controller.ts", + "label": "categories.controller.ts", "file_type": "code", - "source_file": "backend/src/admin/blogs.controller.ts", + "source_file": "backend/src/admin/categories.controller.ts", "source_location": "L1", "_origin": "ast", - "id": "backend_src_admin_blogs_controller", + "id": "backend_src_admin_categories_controller", "community": 25, "community_name": "admin.module.ts", - "norm_label": "admin/blogs.controller.ts" + "norm_label": "categories.controller.ts" }, { - "label": "admin/blogs.service.ts", + "label": "categories.service.ts", "file_type": "code", - "source_file": "backend/src/admin/blogs.service.ts", + "source_file": "backend/src/admin/categories.service.ts", "source_location": "L1", "_origin": "ast", - "id": "backend_src_admin_blogs_service", + "id": "backend_src_admin_categories_service", "community": 25, "community_name": "admin.module.ts", - "norm_label": "admin/blogs.service.ts" - }, - { - "label": "Injectable", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_admin_blogs_service_ts_injectable", - "community": 25, - "community_name": "admin.module.ts", - "norm_label": "injectable" - }, - { - "label": "admin/pets.controller.ts", - "file_type": "code", - "source_file": "backend/src/admin/pets.controller.ts", - "source_location": "L1", - "_origin": "ast", - "id": "backend_src_admin_pets_controller", - "community": 25, - "community_name": "admin.module.ts", - "norm_label": "admin/pets.controller.ts" + "norm_label": "categories.service.ts" }, { "label": "admin/pets.service.ts", @@ -24516,39 +25174,6 @@ "community_name": "admin.module.ts", "norm_label": "injectable" }, - { - "label": "redis.module.ts", - "file_type": "code", - "source_file": "backend/src/redis/redis.module.ts", - "source_location": "L1", - "_origin": "ast", - "id": "backend_src_redis_redis_module", - "community": 25, - "community_name": "admin.module.ts", - "norm_label": "redis.module.ts" - }, - { - "label": "Global", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_redis_redis_module_ts_global", - "community": 25, - "community_name": "admin.module.ts", - "norm_label": "global" - }, - { - "label": "Module", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_redis_redis_module_ts_module", - "community": 25, - "community_name": "admin.module.ts", - "norm_label": "module" - }, { "label": "eslint-plugin-react-refresh", "file_type": "code", @@ -24748,158 +25373,15 @@ "norm_label": "axios" }, { - "label": "create-pet.dto.ts", - "file_type": "code", - "source_file": "backend/src/pets/dto/create-pet.dto.ts", - "source_location": "L1", - "_origin": "ast", - "id": "backend_src_pets_dto_create_pet_dto", - "community": 26, - "community_name": "Pet DTOs and Controller", - "norm_label": "create-pet.dto.ts" - }, - { - "label": "ApiProperty", + "label": "Injectable", "file_type": "code", "source_file": "", "source_location": "", "_origin": "ast", - "id": "backend_src_pets_dto_create_pet_dto_ts_apiproperty", + "id": "backend_src_common_services_sms_service_ts_injectable", "community": 26, - "community_name": "Pet DTOs and Controller", - "norm_label": "apiproperty" - }, - { - "label": "ApiPropertyOptional", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_pets_dto_create_pet_dto_ts_apipropertyoptional", - "community": 26, - "community_name": "Pet DTOs and Controller", - "norm_label": "apipropertyoptional" - }, - { - "label": "IsArray", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_pets_dto_create_pet_dto_ts_isarray", - "community": 26, - "community_name": "Pet DTOs and Controller", - "norm_label": "isarray" - }, - { - "label": "IsNotEmpty", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_pets_dto_create_pet_dto_ts_isnotempty", - "community": 26, - "community_name": "Pet DTOs and Controller", - "norm_label": "isnotempty" - }, - { - "label": "IsNumber", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_pets_dto_create_pet_dto_ts_isnumber", - "community": 26, - "community_name": "Pet DTOs and Controller", - "norm_label": "isnumber" - }, - { - "label": "IsOptional", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_pets_dto_create_pet_dto_ts_isoptional", - "community": 26, - "community_name": "Pet DTOs and Controller", - "norm_label": "isoptional" - }, - { - "label": "IsString", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_pets_dto_create_pet_dto_ts_isstring", - "community": 26, - "community_name": "Pet DTOs and Controller", - "norm_label": "isstring" - }, - { - "label": "update-pet.dto.ts", - "file_type": "code", - "source_file": "backend/src/pets/dto/update-pet.dto.ts", - "source_location": "L1", - "_origin": "ast", - "id": "backend_src_pets_dto_update_pet_dto", - "community": 26, - "community_name": "Pet DTOs and Controller", - "norm_label": "update-pet.dto.ts" - }, - { - "label": "pets/pets.controller.ts", - "file_type": "code", - "source_file": "backend/src/pets/pets.controller.ts", - "source_location": "L1", - "_origin": "ast", - "id": "backend_src_pets_pets_controller", - "community": 26, - "community_name": "Pet DTOs and Controller", - "norm_label": "pets/pets.controller.ts" - }, - { - "label": "pets.controller.spec.ts", - "file_type": "code", - "source_file": "backend/src/pets/pets.controller.spec.ts", - "source_location": "L1", - "_origin": "ast", - "id": "backend_src_pets_pets_controller_spec", - "community": 26, - "community_name": "Pet DTOs and Controller", - "norm_label": "pets.controller.spec.ts" - }, - { - "label": "pets.module.ts", - "file_type": "code", - "source_file": "backend/src/pets/pets.module.ts", - "source_location": "L1", - "_origin": "ast", - "id": "backend_src_pets_pets_module", - "community": 26, - "community_name": "Pet DTOs and Controller", - "norm_label": "pets.module.ts" - }, - { - "label": "Module", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_pets_pets_module_ts_module", - "community": 26, - "community_name": "Pet DTOs and Controller", - "norm_label": "module" - }, - { - "label": "pets/pets.service.ts", - "file_type": "code", - "source_file": "backend/src/pets/pets.service.ts", - "source_location": "L1", - "_origin": "ast", - "id": "backend_src_pets_pets_service", - "community": 26, - "community_name": "Pet DTOs and Controller", - "norm_label": "pets/pets.service.ts" + "community_name": "SmsService", + "norm_label": "injectable" }, { "label": "admin-panel/public/fonts/sahel-font-v3.4.0/CHANGELOG.md", @@ -24956,6 +25438,303 @@ "community_name": "tailwindcss", "norm_label": "tailwindcss" }, + { + "label": "Injectable", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_auth_auth_service_ts_injectable", + "community": 265, + "community_name": "AuthService", + "norm_label": "injectable" + }, + { + "label": "register.dto.ts", + "file_type": "code", + "source_file": "backend/src/auth/dto/register.dto.ts", + "source_location": "L1", + "_origin": "ast", + "id": "backend_src_auth_dto_register_dto", + "community": 266, + "community_name": "RegisterDto", + "norm_label": "register.dto.ts" + }, + { + "label": "ApiProperty", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_auth_dto_register_dto_ts_apiproperty", + "community": 266, + "community_name": "RegisterDto", + "norm_label": "apiproperty" + }, + { + "label": "ApiPropertyOptional", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_auth_dto_register_dto_ts_apipropertyoptional", + "community": 266, + "community_name": "RegisterDto", + "norm_label": "apipropertyoptional" + }, + { + "label": "IsEmail", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_auth_dto_register_dto_ts_isemail", + "community": 266, + "community_name": "RegisterDto", + "norm_label": "isemail" + }, + { + "label": "IsNotEmpty", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_auth_dto_register_dto_ts_isnotempty", + "community": 266, + "community_name": "RegisterDto", + "norm_label": "isnotempty" + }, + { + "label": "IsOptional", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_auth_dto_register_dto_ts_isoptional", + "community": 266, + "community_name": "RegisterDto", + "norm_label": "isoptional" + }, + { + "label": "IsString", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_auth_dto_register_dto_ts_isstring", + "community": 266, + "community_name": "RegisterDto", + "norm_label": "isstring" + }, + { + "label": "MinLength", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_auth_dto_register_dto_ts_minlength", + "community": 266, + "community_name": "RegisterDto", + "norm_label": "minlength" + }, + { + "label": "ApiPropertyOptional", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_products_dto_get_products_dto_ts_apipropertyoptional", + "community": 267, + "community_name": "GetProductsDto", + "norm_label": "apipropertyoptional" + }, + { + "label": "IsEnum", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_products_dto_get_products_dto_ts_isenum", + "community": 267, + "community_name": "GetProductsDto", + "norm_label": "isenum" + }, + { + "label": "IsOptional", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_products_dto_get_products_dto_ts_isoptional", + "community": 267, + "community_name": "GetProductsDto", + "norm_label": "isoptional" + }, + { + "label": "IsString", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_products_dto_get_products_dto_ts_isstring", + "community": 267, + "community_name": "GetProductsDto", + "norm_label": "isstring" + }, + { + "label": "Query", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_products_products_controller_ts_query", + "community": 267, + "community_name": "GetProductsDto", + "norm_label": "query" + }, + { + "label": "wholesale-apply.dto.ts", + "file_type": "code", + "source_file": "backend/src/wholesale/dto/wholesale-apply.dto.ts", + "source_location": "L1", + "_origin": "ast", + "id": "backend_src_wholesale_dto_wholesale_apply_dto", + "community": 268, + "community_name": "WholesaleApplyDto", + "norm_label": "wholesale-apply.dto.ts" + }, + { + "label": "ApiProperty", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_wholesale_dto_wholesale_apply_dto_ts_apiproperty", + "community": 268, + "community_name": "WholesaleApplyDto", + "norm_label": "apiproperty" + }, + { + "label": "ApiPropertyOptional", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_wholesale_dto_wholesale_apply_dto_ts_apipropertyoptional", + "community": 268, + "community_name": "WholesaleApplyDto", + "norm_label": "apipropertyoptional" + }, + { + "label": "IsNotEmpty", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_wholesale_dto_wholesale_apply_dto_ts_isnotempty", + "community": 268, + "community_name": "WholesaleApplyDto", + "norm_label": "isnotempty" + }, + { + "label": "IsOptional", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_wholesale_dto_wholesale_apply_dto_ts_isoptional", + "community": 268, + "community_name": "WholesaleApplyDto", + "norm_label": "isoptional" + }, + { + "label": "IsString", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_wholesale_dto_wholesale_apply_dto_ts_isstring", + "community": 268, + "community_name": "WholesaleApplyDto", + "norm_label": "isstring" + }, + { + "label": "wholesale.service.ts", + "file_type": "code", + "source_file": "backend/src/wholesale/wholesale.service.ts", + "source_location": "L1", + "_origin": "ast", + "id": "backend_src_wholesale_wholesale_service", + "community": 268, + "community_name": "WholesaleApplyDto", + "norm_label": "wholesale.service.ts" + }, + { + "label": "admin-login.dto.ts", + "file_type": "code", + "source_file": "backend/src/auth/dto/admin-login.dto.ts", + "source_location": "L1", + "_origin": "ast", + "id": "backend_src_auth_dto_admin_login_dto", + "community": 269, + "community_name": "AdminLoginDto", + "norm_label": "admin-login.dto.ts" + }, + { + "label": "ApiProperty", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_auth_dto_admin_login_dto_ts_apiproperty", + "community": 269, + "community_name": "AdminLoginDto", + "norm_label": "apiproperty" + }, + { + "label": "IsEmail", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_auth_dto_admin_login_dto_ts_isemail", + "community": 269, + "community_name": "AdminLoginDto", + "norm_label": "isemail" + }, + { + "label": "IsNotEmpty", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_auth_dto_admin_login_dto_ts_isnotempty", + "community": 269, + "community_name": "AdminLoginDto", + "norm_label": "isnotempty" + }, + { + "label": "IsString", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_auth_dto_admin_login_dto_ts_isstring", + "community": 269, + "community_name": "AdminLoginDto", + "norm_label": "isstring" + }, + { + "label": "MinLength", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_auth_dto_admin_login_dto_ts_minlength", + "community": 269, + "community_name": "AdminLoginDto", + "norm_label": "minlength" + }, { "label": "ApiBearerAuth", "file_type": "code", @@ -25088,6 +25867,204 @@ "community_name": "Prescription Review Controller", "norm_label": "injectable" }, + { + "label": "verify-otp.dto.ts", + "file_type": "code", + "source_file": "backend/src/auth/dto/verify-otp.dto.ts", + "source_location": "L1", + "_origin": "ast", + "id": "backend_src_auth_dto_verify_otp_dto", + "community": 270, + "community_name": "VerifyOtpDto", + "norm_label": "verify-otp.dto.ts" + }, + { + "label": "ApiProperty", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_auth_dto_verify_otp_dto_ts_apiproperty", + "community": 270, + "community_name": "VerifyOtpDto", + "norm_label": "apiproperty" + }, + { + "label": "IsNotEmpty", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_auth_dto_verify_otp_dto_ts_isnotempty", + "community": 270, + "community_name": "VerifyOtpDto", + "norm_label": "isnotempty" + }, + { + "label": "IsString", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_auth_dto_verify_otp_dto_ts_isstring", + "community": 270, + "community_name": "VerifyOtpDto", + "norm_label": "isstring" + }, + { + "label": "Matches", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_auth_dto_verify_otp_dto_ts_matches", + "community": 270, + "community_name": "VerifyOtpDto", + "norm_label": "matches" + }, + { + "label": "Length", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "length", + "community": 270, + "community_name": "VerifyOtpDto", + "norm_label": "length" + }, + { + "label": "App.tsx", + "file_type": "code", + "source_file": "frontend/admin-panel/src/App.tsx", + "source_location": "L1", + "_origin": "ast", + "id": "frontend_admin_panel_src_app", + "community": 271, + "community_name": "App.tsx", + "norm_label": "app.tsx" + }, + { + "label": "main.tsx", + "file_type": "code", + "source_file": "frontend/admin-panel/src/main.tsx", + "source_location": "L1", + "_origin": "ast", + "id": "frontend_admin_panel_src_main", + "community": 271, + "community_name": "App.tsx", + "norm_label": "main.tsx" + }, + { + "label": "router", + "file_type": "code", + "source_file": "frontend/admin-panel/src/routes/adminRoutes.tsx", + "source_location": "L44", + "_origin": "ast", + "id": "frontend_admin_panel_src_routes_adminroutes_router", + "community": 271, + "community_name": "App.tsx", + "norm_label": "router" + }, + { + "label": "IsNotEmpty", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_orders_orders_controller_ts_isnotempty", + "community": 272, + "community_name": "ValidateCouponDto", + "norm_label": "isnotempty" + }, + { + "label": "IsNumber", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_orders_orders_controller_ts_isnumber", + "community": 272, + "community_name": "ValidateCouponDto", + "norm_label": "isnumber" + }, + { + "label": "IsString", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_orders_orders_controller_ts_isstring", + "community": 272, + "community_name": "ValidateCouponDto", + "norm_label": "isstring" + }, + { + "label": "AGENTS.md", + "file_type": "document", + "source_file": "AGENTS.md", + "source_location": "L1", + "_origin": "ast", + "id": "agents", + "community": 273, + "community_name": "AGENTS.md", + "norm_label": "agents.md" + }, + { + "label": "graphify", + "file_type": "document", + "source_file": "AGENTS.md", + "source_location": "L1", + "_origin": "ast", + "id": "agents_graphify", + "community": 273, + "community_name": "AGENTS.md", + "norm_label": "graphify" + }, + { + "label": "eslint-config-prettier", + "file_type": "code", + "source_file": "backend/package.json", + "source_location": "L61", + "_origin": "ast", + "id": "backend_package_devdependencies_eslint_config_prettier", + "community": 274, + "community_name": "eslint-config-prettier", + "norm_label": "eslint-config-prettier" + }, + { + "label": "eslint-config-prettier", + "file_type": "concept", + "source_file": "backend/package.json", + "source_location": "L61", + "_origin": "ast", + "id": "eslint_config_prettier", + "community": 274, + "community_name": "eslint-config-prettier", + "norm_label": "eslint-config-prettier" + }, + { + "label": "globals", + "file_type": "code", + "source_file": "frontend/admin-panel/package.json", + "source_location": "L35", + "_origin": "ast", + "id": "frontend_admin_panel_package_devdependencies_globals", + "community": 275, + "community_name": "globals", + "norm_label": "globals" + }, + { + "label": "globals", + "file_type": "concept", + "source_file": "frontend/admin-panel/package.json", + "source_location": "L35", + "_origin": "ast", + "id": "frontend_admin_panel_package_json_globals", + "community": 275, + "community_name": "globals", + "norm_label": "globals" + }, { "label": "ApiBearerAuth", "file_type": "code", @@ -25352,28 +26329,6 @@ "community_name": "Testimonials Management Controller", "norm_label": "injectable" }, - { - "label": "auth.module.ts", - "file_type": "code", - "source_file": "backend/src/auth/auth.module.ts", - "source_location": "L1", - "_origin": "ast", - "id": "backend_src_auth_auth_module", - "community": 3, - "community_name": "UsersService", - "norm_label": "auth.module.ts" - }, - { - "label": "Module", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_auth_auth_module_ts_module", - "community": 3, - "community_name": "UsersService", - "norm_label": "module" - }, { "label": "jwt.strategy.ts", "file_type": "code", @@ -25727,15 +26682,15 @@ "norm_label": "users.module.ts" }, { - "label": "Module", + "label": "users.service.ts", "file_type": "code", - "source_file": "", - "source_location": "", + "source_file": "backend/src/users/users.service.ts", + "source_location": "L1", "_origin": "ast", - "id": "backend_src_users_users_module_ts_module", + "id": "backend_src_users_users_service", "community": 3, "community_name": "UsersService", - "norm_label": "module" + "norm_label": "users.service.ts" }, { "label": "Injectable", @@ -25756,7 +26711,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_components_layout", "community": 30, - "community_name": "Admin Sidebar and Layout", + "community_name": "src/services/api.ts", "norm_label": "layout.tsx" }, { @@ -25767,7 +26722,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_components_protectedroute", "community": 30, - "community_name": "Admin Sidebar and Layout", + "community_name": "src/services/api.ts", "norm_label": "protectedroute.tsx" }, { @@ -25778,7 +26733,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_components_sidebar", "community": 30, - "community_name": "Admin Sidebar and Layout", + "community_name": "src/services/api.ts", "norm_label": "sidebar.tsx" }, { @@ -25789,7 +26744,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_components_sidebar_menugroups", "community": 30, - "community_name": "Admin Sidebar and Layout", + "community_name": "src/services/api.ts", "norm_label": "menugroups" }, { @@ -25800,7 +26755,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_components_topbar", "community": 30, - "community_name": "Admin Sidebar and Layout", + "community_name": "src/services/api.ts", "norm_label": "topbar.tsx" }, { @@ -25811,9 +26766,20 @@ "_origin": "ast", "id": "frontend_admin_panel_src_components_topbar_searchable_pages", "community": 30, - "community_name": "Admin Sidebar and Layout", + "community_name": "src/services/api.ts", "norm_label": "searchable_pages" }, + { + "label": "B2BManager.tsx", + "file_type": "code", + "source_file": "frontend/admin-panel/src/pages/B2BManager.tsx", + "source_location": "L1", + "_origin": "ast", + "id": "frontend_admin_panel_src_pages_b2bmanager", + "community": 30, + "community_name": "src/services/api.ts", + "norm_label": "b2bmanager.tsx" + }, { "label": "Login.tsx", "file_type": "code", @@ -25822,9 +26788,20 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_login", "community": 30, - "community_name": "Admin Sidebar and Layout", + "community_name": "src/services/api.ts", "norm_label": "login.tsx" }, + { + "label": "B2BManager", + "file_type": "code", + "source_file": "frontend/admin-panel/src/routes/adminRoutes.tsx", + "source_location": "L32", + "_origin": "ast", + "id": "frontend_admin_panel_src_routes_adminroutes_b2bmanager", + "community": 30, + "community_name": "src/services/api.ts", + "norm_label": "b2bmanager" + }, { "label": "src/services/api.ts", "file_type": "code", @@ -25833,20 +26810,9 @@ "_origin": "ast", "id": "frontend_admin_panel_src_services_api", "community": 30, - "community_name": "Admin Sidebar and Layout", + "community_name": "src/services/api.ts", "norm_label": "src/services/api.ts" }, - { - "label": "api", - "file_type": "code", - "source_file": "frontend/admin-panel/src/services/api.ts", - "source_location": "L23", - "_origin": "ast", - "id": "frontend_admin_panel_src_services_api_api", - "community": 30, - "community_name": "Admin Sidebar and Layout", - "norm_label": "api" - }, { "label": "failedQueue", "file_type": "code", @@ -25855,7 +26821,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_services_api_failedqueue", "community": 30, - "community_name": "Admin Sidebar and Layout", + "community_name": "src/services/api.ts", "norm_label": "failedqueue" }, { @@ -25866,7 +26832,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_store_adminauthstore", "community": 30, - "community_name": "Admin Sidebar and Layout", + "community_name": "src/services/api.ts", "norm_label": "adminauthstore.ts" }, { @@ -25877,9 +26843,31 @@ "_origin": "ast", "id": "frontend_admin_panel_src_store_adminauthstore_useadminauthstore", "community": 30, - "community_name": "Admin Sidebar and Layout", + "community_name": "src/services/api.ts", "norm_label": "useadminauthstore" }, + { + "label": "admin.ts", + "file_type": "code", + "source_file": "frontend/admin-panel/src/types/admin.ts", + "source_location": "L1", + "_origin": "ast", + "id": "frontend_admin_panel_src_types_admin", + "community": 30, + "community_name": "src/services/api.ts", + "norm_label": "admin.ts" + }, + { + "label": "MediaSelector.tsx", + "file_type": "code", + "source_file": "frontend/admin-panel/src/components/ui/MediaSelector.tsx", + "source_location": "L1", + "_origin": "ast", + "id": "frontend_admin_panel_src_components_ui_mediaselector", + "community": 31, + "community_name": "Spinner.tsx", + "norm_label": "mediaselector.tsx" + }, { "label": "Spinner.tsx", "file_type": "code", @@ -25888,20 +26876,9 @@ "_origin": "ast", "id": "frontend_admin_panel_src_components_ui_spinner", "community": 31, - "community_name": "Admin Settings Managers", + "community_name": "Spinner.tsx", "norm_label": "spinner.tsx" }, - { - "label": "B2BManager.tsx", - "file_type": "code", - "source_file": "frontend/admin-panel/src/pages/B2BManager.tsx", - "source_location": "L1", - "_origin": "ast", - "id": "frontend_admin_panel_src_pages_b2bmanager", - "community": 31, - "community_name": "Admin Settings Managers", - "norm_label": "b2bmanager.tsx" - }, { "label": "BannersManager.tsx", "file_type": "code", @@ -25910,19 +26887,52 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_bannersmanager", "community": 31, - "community_name": "Admin Settings Managers", + "community_name": "Spinner.tsx", "norm_label": "bannersmanager.tsx" }, { - "label": "FinancialSettingsPage.tsx", + "label": "Categories.tsx", "file_type": "code", - "source_file": "frontend/admin-panel/src/pages/FinancialSettingsPage.tsx", + "source_file": "frontend/admin-panel/src/pages/Categories.tsx", "source_location": "L1", "_origin": "ast", - "id": "frontend_admin_panel_src_pages_financialsettingspage", + "id": "frontend_admin_panel_src_pages_categories", "community": 31, - "community_name": "Admin Settings Managers", - "norm_label": "financialsettingspage.tsx" + "community_name": "Spinner.tsx", + "norm_label": "categories.tsx" + }, + { + "label": "IngredientsManager.tsx", + "file_type": "code", + "source_file": "frontend/admin-panel/src/pages/IngredientsManager.tsx", + "source_location": "L1", + "_origin": "ast", + "id": "frontend_admin_panel_src_pages_ingredientsmanager", + "community": 31, + "community_name": "Spinner.tsx", + "norm_label": "ingredientsmanager.tsx" + }, + { + "label": "Media.tsx", + "file_type": "code", + "source_file": "frontend/admin-panel/src/pages/Media.tsx", + "source_location": "L1", + "_origin": "ast", + "id": "frontend_admin_panel_src_pages_media", + "community": 31, + "community_name": "Spinner.tsx", + "norm_label": "media.tsx" + }, + { + "label": "PrescriptionsManager.tsx", + "file_type": "code", + "source_file": "frontend/admin-panel/src/pages/PrescriptionsManager.tsx", + "source_location": "L1", + "_origin": "ast", + "id": "frontend_admin_panel_src_pages_prescriptionsmanager", + "community": 31, + "community_name": "Spinner.tsx", + "norm_label": "prescriptionsmanager.tsx" }, { "label": "SeoSettingsPage.tsx", @@ -25932,20 +26942,9 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_seosettingspage", "community": 31, - "community_name": "Admin Settings Managers", + "community_name": "Spinner.tsx", "norm_label": "seosettingspage.tsx" }, - { - "label": "SmartAdvisorManager.tsx", - "file_type": "code", - "source_file": "frontend/admin-panel/src/pages/SmartAdvisorManager.tsx", - "source_location": "L1", - "_origin": "ast", - "id": "frontend_admin_panel_src_pages_smartadvisormanager", - "community": 31, - "community_name": "Admin Settings Managers", - "norm_label": "smartadvisormanager.tsx" - }, { "label": "SystemSettingsPage.tsx", "file_type": "code", @@ -25954,7 +26953,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_systemsettingspage", "community": 31, - "community_name": "Admin Settings Managers", + "community_name": "Spinner.tsx", "norm_label": "systemsettingspage.tsx" }, { @@ -25965,20 +26964,9 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_testimonialsmanager", "community": 31, - "community_name": "Admin Settings Managers", + "community_name": "Spinner.tsx", "norm_label": "testimonialsmanager.tsx" }, - { - "label": "B2BManager", - "file_type": "code", - "source_file": "frontend/admin-panel/src/routes/adminRoutes.tsx", - "source_location": "L32", - "_origin": "ast", - "id": "frontend_admin_panel_src_routes_adminroutes_b2bmanager", - "community": 31, - "community_name": "Admin Settings Managers", - "norm_label": "b2bmanager" - }, { "label": "BannersManager", "file_type": "code", @@ -25987,19 +26975,52 @@ "_origin": "ast", "id": "frontend_admin_panel_src_routes_adminroutes_bannersmanager", "community": 31, - "community_name": "Admin Settings Managers", + "community_name": "Spinner.tsx", "norm_label": "bannersmanager" }, { - "label": "FinancialSettingsPage", + "label": "Categories", "file_type": "code", "source_file": "frontend/admin-panel/src/routes/adminRoutes.tsx", - "source_location": "L34", + "source_location": "L17", "_origin": "ast", - "id": "frontend_admin_panel_src_routes_adminroutes_financialsettingspage", + "id": "frontend_admin_panel_src_routes_adminroutes_categories", "community": 31, - "community_name": "Admin Settings Managers", - "norm_label": "financialsettingspage" + "community_name": "Spinner.tsx", + "norm_label": "categories" + }, + { + "label": "IngredientsManager", + "file_type": "code", + "source_file": "frontend/admin-panel/src/routes/adminRoutes.tsx", + "source_location": "L30", + "_origin": "ast", + "id": "frontend_admin_panel_src_routes_adminroutes_ingredientsmanager", + "community": 31, + "community_name": "Spinner.tsx", + "norm_label": "ingredientsmanager" + }, + { + "label": "Media", + "file_type": "code", + "source_file": "frontend/admin-panel/src/routes/adminRoutes.tsx", + "source_location": "L22", + "_origin": "ast", + "id": "frontend_admin_panel_src_routes_adminroutes_media", + "community": 31, + "community_name": "Spinner.tsx", + "norm_label": "media" + }, + { + "label": "PrescriptionsManager", + "file_type": "code", + "source_file": "frontend/admin-panel/src/routes/adminRoutes.tsx", + "source_location": "L31", + "_origin": "ast", + "id": "frontend_admin_panel_src_routes_adminroutes_prescriptionsmanager", + "community": 31, + "community_name": "Spinner.tsx", + "norm_label": "prescriptionsmanager" }, { "label": "SeoSettingsPage", @@ -26009,20 +27030,9 @@ "_origin": "ast", "id": "frontend_admin_panel_src_routes_adminroutes_seosettingspage", "community": 31, - "community_name": "Admin Settings Managers", + "community_name": "Spinner.tsx", "norm_label": "seosettingspage" }, - { - "label": "SmartAdvisorManager", - "file_type": "code", - "source_file": "frontend/admin-panel/src/routes/adminRoutes.tsx", - "source_location": "L28", - "_origin": "ast", - "id": "frontend_admin_panel_src_routes_adminroutes_smartadvisormanager", - "community": 31, - "community_name": "Admin Settings Managers", - "norm_label": "smartadvisormanager" - }, { "label": "SystemSettingsPage", "file_type": "code", @@ -26031,7 +27041,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_routes_adminroutes_systemsettingspage", "community": 31, - "community_name": "Admin Settings Managers", + "community_name": "Spinner.tsx", "norm_label": "systemsettingspage" }, { @@ -26042,19 +27052,19 @@ "_origin": "ast", "id": "frontend_admin_panel_src_routes_adminroutes_testimonialsmanager", "community": 31, - "community_name": "Admin Settings Managers", + "community_name": "Spinner.tsx", "norm_label": "testimonialsmanager" }, { - "label": "admin.ts", + "label": "BASE_DOMAIN", "file_type": "code", - "source_file": "frontend/admin-panel/src/types/admin.ts", - "source_location": "L1", + "source_file": "frontend/admin-panel/src/services/api.ts", + "source_location": "L7", "_origin": "ast", - "id": "frontend_admin_panel_src_types_admin", + "id": "frontend_admin_panel_src_services_api_base_domain", "community": 31, - "community_name": "Admin Settings Managers", - "norm_label": "admin.ts" + "community_name": "Spinner.tsx", + "norm_label": "base_domain" }, { "label": "[id]/page.tsx", @@ -27252,7 +28262,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_components_ui_confirmmodal", "community": 38, - "community_name": "CMS and Media Modals", + "community_name": "ConfirmModal.tsx", "norm_label": "confirmmodal.tsx" }, { @@ -27263,19 +28273,19 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_cms", "community": 38, - "community_name": "CMS and Media Modals", + "community_name": "ConfirmModal.tsx", "norm_label": "cms.tsx" }, { - "label": "Media.tsx", + "label": "SmartAdvisorManager.tsx", "file_type": "code", - "source_file": "frontend/admin-panel/src/pages/Media.tsx", + "source_file": "frontend/admin-panel/src/pages/SmartAdvisorManager.tsx", "source_location": "L1", "_origin": "ast", - "id": "frontend_admin_panel_src_pages_media", + "id": "frontend_admin_panel_src_pages_smartadvisormanager", "community": 38, - "community_name": "CMS and Media Modals", - "norm_label": "media.tsx" + "community_name": "ConfirmModal.tsx", + "norm_label": "smartadvisormanager.tsx" }, { "label": "Videos.tsx", @@ -27285,7 +28295,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_videos", "community": 38, - "community_name": "CMS and Media Modals", + "community_name": "ConfirmModal.tsx", "norm_label": "videos.tsx" }, { @@ -27296,7 +28306,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_wholesaleapplications", "community": 38, - "community_name": "CMS and Media Modals", + "community_name": "ConfirmModal.tsx", "norm_label": "wholesaleapplications.tsx" }, { @@ -27307,7 +28317,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_pages_wiki", "community": 38, - "community_name": "CMS and Media Modals", + "community_name": "ConfirmModal.tsx", "norm_label": "wiki.tsx" }, { @@ -27318,19 +28328,19 @@ "_origin": "ast", "id": "frontend_admin_panel_src_routes_adminroutes_cms", "community": 38, - "community_name": "CMS and Media Modals", + "community_name": "ConfirmModal.tsx", "norm_label": "cms" }, { - "label": "Media", + "label": "SmartAdvisorManager", "file_type": "code", "source_file": "frontend/admin-panel/src/routes/adminRoutes.tsx", - "source_location": "L22", + "source_location": "L28", "_origin": "ast", - "id": "frontend_admin_panel_src_routes_adminroutes_media", + "id": "frontend_admin_panel_src_routes_adminroutes_smartadvisormanager", "community": 38, - "community_name": "CMS and Media Modals", - "norm_label": "media" + "community_name": "ConfirmModal.tsx", + "norm_label": "smartadvisormanager" }, { "label": "Videos", @@ -27340,7 +28350,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_routes_adminroutes_videos", "community": 38, - "community_name": "CMS and Media Modals", + "community_name": "ConfirmModal.tsx", "norm_label": "videos" }, { @@ -27351,7 +28361,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_routes_adminroutes_wholesaleapplications", "community": 38, - "community_name": "CMS and Media Modals", + "community_name": "ConfirmModal.tsx", "norm_label": "wholesaleapplications" }, { @@ -27362,7 +28372,7 @@ "_origin": "ast", "id": "frontend_admin_panel_src_routes_adminroutes_wiki", "community": 38, - "community_name": "CMS and Media Modals", + "community_name": "ConfirmModal.tsx", "norm_label": "wiki" }, { @@ -27816,6 +28826,17 @@ "community_name": "dependencies", "norm_label": "swagger-ui-express" }, + { + "label": "cms.controller.ts", + "file_type": "code", + "source_file": "backend/src/cms/cms.controller.ts", + "source_location": "L1", + "_origin": "ast", + "id": "backend_src_cms_cms_controller", + "community": 4, + "community_name": "CmsController", + "norm_label": "cms.controller.ts" + }, { "label": "ApiBearerAuth", "file_type": "code", @@ -27824,7 +28845,7 @@ "_origin": "ast", "id": "backend_src_cms_cms_controller_ts_apibearerauth", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": "apibearerauth" }, { @@ -27835,7 +28856,7 @@ "_origin": "ast", "id": "backend_src_cms_cms_controller_ts_apioperation", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": "apioperation" }, { @@ -27846,7 +28867,7 @@ "_origin": "ast", "id": "backend_src_cms_cms_controller_ts_apitags", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": "apitags" }, { @@ -27857,7 +28878,7 @@ "_origin": "ast", "id": "backend_src_cms_cms_controller_ts_body", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": "body" }, { @@ -27868,7 +28889,7 @@ "_origin": "ast", "id": "backend_src_cms_cms_controller_ts_controller", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": "controller" }, { @@ -27879,7 +28900,7 @@ "_origin": "ast", "id": "backend_src_cms_cms_controller_ts_delete", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": "delete" }, { @@ -27890,7 +28911,7 @@ "_origin": "ast", "id": "backend_src_cms_cms_controller_ts_get", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": "get" }, { @@ -27901,7 +28922,7 @@ "_origin": "ast", "id": "backend_src_cms_cms_controller_ts_param", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": "param" }, { @@ -27912,7 +28933,7 @@ "_origin": "ast", "id": "backend_src_cms_cms_controller_ts_post", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": "post" }, { @@ -27923,7 +28944,7 @@ "_origin": "ast", "id": "backend_src_cms_cms_controller_ts_put", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": "put" }, { @@ -27934,7 +28955,7 @@ "_origin": "ast", "id": "backend_src_cms_cms_controller_ts_useguards", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": "useguards" }, { @@ -27945,7 +28966,7 @@ "_origin": "ast", "id": "backend_src_cms_cms_service", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": "cms.service.ts" }, { @@ -27956,7 +28977,7 @@ "_origin": "ast", "id": "backend_src_cms_cms_service_ts_injectable", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": "injectable" }, { @@ -27967,7 +28988,7 @@ "_origin": "ast", "id": "backend_src_cms_dto_cms_dto", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": "cms.dto.ts" }, { @@ -27978,7 +28999,7 @@ "_origin": "ast", "id": "backend_src_cms_dto_cms_dto_ts_apiproperty", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": "apiproperty" }, { @@ -27989,7 +29010,7 @@ "_origin": "ast", "id": "backend_src_cms_dto_cms_dto_ts_apipropertyoptional", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": "apipropertyoptional" }, { @@ -28000,7 +29021,7 @@ "_origin": "ast", "id": "backend_src_cms_dto_cms_dto_ts_isboolean", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": "isboolean" }, { @@ -28011,7 +29032,7 @@ "_origin": "ast", "id": "backend_src_cms_dto_cms_dto_ts_isnumber", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": "isnumber" }, { @@ -28022,7 +29043,7 @@ "_origin": "ast", "id": "backend_src_cms_dto_cms_dto_ts_isoptional", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": "isoptional" }, { @@ -28033,7 +29054,7 @@ "_origin": "ast", "id": "backend_src_cms_dto_cms_dto_ts_isstring", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": "isstring" }, { @@ -28044,7 +29065,7 @@ "_origin": "ast", "id": "isuuid", "community": 4, - "community_name": "CMS Content Management", + "community_name": "CmsController", "norm_label": "isuuid" }, { @@ -28432,72 +29453,6 @@ "community_name": "Admin Blog Controller", "norm_label": "useguards" }, - { - "label": "wholesale-apply.dto.ts", - "file_type": "code", - "source_file": "backend/src/wholesale/dto/wholesale-apply.dto.ts", - "source_location": "L1", - "_origin": "ast", - "id": "backend_src_wholesale_dto_wholesale_apply_dto", - "community": 42, - "community_name": "WholesaleApplyDto", - "norm_label": "wholesale-apply.dto.ts" - }, - { - "label": "ApiProperty", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_wholesale_dto_wholesale_apply_dto_ts_apiproperty", - "community": 42, - "community_name": "WholesaleApplyDto", - "norm_label": "apiproperty" - }, - { - "label": "ApiPropertyOptional", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_wholesale_dto_wholesale_apply_dto_ts_apipropertyoptional", - "community": 42, - "community_name": "WholesaleApplyDto", - "norm_label": "apipropertyoptional" - }, - { - "label": "IsNotEmpty", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_wholesale_dto_wholesale_apply_dto_ts_isnotempty", - "community": 42, - "community_name": "WholesaleApplyDto", - "norm_label": "isnotempty" - }, - { - "label": "IsOptional", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_wholesale_dto_wholesale_apply_dto_ts_isoptional", - "community": 42, - "community_name": "WholesaleApplyDto", - "norm_label": "isoptional" - }, - { - "label": "IsString", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_wholesale_dto_wholesale_apply_dto_ts_isstring", - "community": 42, - "community_name": "WholesaleApplyDto", - "norm_label": "isstring" - }, { "label": "ApiBearerAuth", "file_type": "code", @@ -28506,7 +29461,7 @@ "_origin": "ast", "id": "backend_src_wholesale_wholesale_controller_ts_apibearerauth", "community": 42, - "community_name": "WholesaleApplyDto", + "community_name": "WholesaleService", "norm_label": "apibearerauth" }, { @@ -28517,7 +29472,7 @@ "_origin": "ast", "id": "backend_src_wholesale_wholesale_controller_ts_apioperation", "community": 42, - "community_name": "WholesaleApplyDto", + "community_name": "WholesaleService", "norm_label": "apioperation" }, { @@ -28528,7 +29483,7 @@ "_origin": "ast", "id": "backend_src_wholesale_wholesale_controller_ts_apitags", "community": 42, - "community_name": "WholesaleApplyDto", + "community_name": "WholesaleService", "norm_label": "apitags" }, { @@ -28539,7 +29494,7 @@ "_origin": "ast", "id": "backend_src_wholesale_wholesale_controller_ts_body", "community": 42, - "community_name": "WholesaleApplyDto", + "community_name": "WholesaleService", "norm_label": "body" }, { @@ -28550,7 +29505,7 @@ "_origin": "ast", "id": "backend_src_wholesale_wholesale_controller_ts_controller", "community": 42, - "community_name": "WholesaleApplyDto", + "community_name": "WholesaleService", "norm_label": "controller" }, { @@ -28561,7 +29516,7 @@ "_origin": "ast", "id": "backend_src_wholesale_wholesale_controller_ts_get", "community": 42, - "community_name": "WholesaleApplyDto", + "community_name": "WholesaleService", "norm_label": "get" }, { @@ -28572,7 +29527,7 @@ "_origin": "ast", "id": "backend_src_wholesale_wholesale_controller_ts_param", "community": 42, - "community_name": "WholesaleApplyDto", + "community_name": "WholesaleService", "norm_label": "param" }, { @@ -28583,7 +29538,7 @@ "_origin": "ast", "id": "backend_src_wholesale_wholesale_controller_ts_post", "community": 42, - "community_name": "WholesaleApplyDto", + "community_name": "WholesaleService", "norm_label": "post" }, { @@ -28594,7 +29549,7 @@ "_origin": "ast", "id": "backend_src_wholesale_wholesale_controller_ts_put", "community": 42, - "community_name": "WholesaleApplyDto", + "community_name": "WholesaleService", "norm_label": "put" }, { @@ -28605,7 +29560,7 @@ "_origin": "ast", "id": "backend_src_wholesale_wholesale_controller_ts_request", "community": 42, - "community_name": "WholesaleApplyDto", + "community_name": "WholesaleService", "norm_label": "request" }, { @@ -28616,20 +29571,9 @@ "_origin": "ast", "id": "backend_src_wholesale_wholesale_controller_ts_useguards", "community": 42, - "community_name": "WholesaleApplyDto", + "community_name": "WholesaleService", "norm_label": "useguards" }, - { - "label": "wholesale.service.ts", - "file_type": "code", - "source_file": "backend/src/wholesale/wholesale.service.ts", - "source_location": "L1", - "_origin": "ast", - "id": "backend_src_wholesale_wholesale_service", - "community": 42, - "community_name": "WholesaleApplyDto", - "norm_label": "wholesale.service.ts" - }, { "label": "Injectable", "file_type": "code", @@ -28638,7 +29582,7 @@ "_origin": "ast", "id": "backend_src_wholesale_wholesale_service_ts_injectable", "community": 42, - "community_name": "WholesaleApplyDto", + "community_name": "WholesaleService", "norm_label": "injectable" }, { @@ -29433,17 +30377,6 @@ "community_name": "devDependencies", "norm_label": "@eslint/js" }, - { - "label": "globals", - "file_type": "code", - "source_file": "frontend/admin-panel/package.json", - "source_location": "L35", - "_origin": "ast", - "id": "frontend_admin_panel_package_devdependencies_globals", - "community": 49, - "community_name": "devDependencies", - "norm_label": "globals" - }, { "label": "postcss", "file_type": "code", @@ -29488,6 +30421,17 @@ "community_name": "devDependencies", "norm_label": "@types/react-dom" }, + { + "label": "typescript-eslint", + "file_type": "code", + "source_file": "frontend/admin-panel/package.json", + "source_location": "L39", + "_origin": "ast", + "id": "frontend_admin_panel_package_devdependencies_typescript_eslint", + "community": 49, + "community_name": "devDependencies", + "norm_label": "typescript-eslint" + }, { "label": "@vitejs/plugin-react", "file_type": "code", @@ -29532,17 +30476,6 @@ "community_name": "devDependencies", "norm_label": "@eslint/js" }, - { - "label": "globals", - "file_type": "concept", - "source_file": "frontend/admin-panel/package.json", - "source_location": "L35", - "_origin": "ast", - "id": "frontend_admin_panel_package_json_globals", - "community": 49, - "community_name": "devDependencies", - "norm_label": "globals" - }, { "label": "@types/node", "file_type": "concept", @@ -29576,6 +30509,17 @@ "community_name": "devDependencies", "norm_label": "@types/react-dom" }, + { + "label": "typescript-eslint", + "file_type": "concept", + "source_file": "frontend/admin-panel/package.json", + "source_location": "L39", + "_origin": "ast", + "id": "frontend_admin_panel_package_json_typescript_eslint", + "community": 49, + "community_name": "devDependencies", + "norm_label": "typescript-eslint" + }, { "label": "@vitejs/plugin-react", "file_type": "concept", @@ -29598,116 +30542,6 @@ "community_name": "devDependencies", "norm_label": "postcss" }, - { - "label": "create-order.dto.ts", - "file_type": "code", - "source_file": "backend/src/orders/dto/create-order.dto.ts", - "source_location": "L1", - "_origin": "ast", - "id": "backend_src_orders_dto_create_order_dto", - "community": 5, - "community_name": "OrdersService", - "norm_label": "create-order.dto.ts" - }, - { - "label": "ApiProperty", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_orders_dto_create_order_dto_ts_apiproperty", - "community": 5, - "community_name": "OrdersService", - "norm_label": "apiproperty" - }, - { - "label": "ApiPropertyOptional", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_orders_dto_create_order_dto_ts_apipropertyoptional", - "community": 5, - "community_name": "OrdersService", - "norm_label": "apipropertyoptional" - }, - { - "label": "IsArray", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_orders_dto_create_order_dto_ts_isarray", - "community": 5, - "community_name": "OrdersService", - "norm_label": "isarray" - }, - { - "label": "IsNotEmpty", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_orders_dto_create_order_dto_ts_isnotempty", - "community": 5, - "community_name": "OrdersService", - "norm_label": "isnotempty" - }, - { - "label": "IsNumber", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_orders_dto_create_order_dto_ts_isnumber", - "community": 5, - "community_name": "OrdersService", - "norm_label": "isnumber" - }, - { - "label": "IsOptional", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_orders_dto_create_order_dto_ts_isoptional", - "community": 5, - "community_name": "OrdersService", - "norm_label": "isoptional" - }, - { - "label": "IsString", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_orders_dto_create_order_dto_ts_isstring", - "community": 5, - "community_name": "OrdersService", - "norm_label": "isstring" - }, - { - "label": "Type", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_orders_dto_create_order_dto_ts_type", - "community": 5, - "community_name": "OrdersService", - "norm_label": "type" - }, - { - "label": "orders.controller.spec.ts", - "file_type": "code", - "source_file": "backend/src/orders/orders.controller.spec.ts", - "source_location": "L1", - "_origin": "ast", - "id": "backend_src_orders_orders_controller_spec", - "community": 5, - "community_name": "OrdersService", - "norm_label": "orders.controller.spec.ts" - }, { "label": "ApiBadRequestResponse", "file_type": "code", @@ -29716,20 +30550,9 @@ "_origin": "ast", "id": "backend_src_orders_orders_controller_ts_apibadrequestresponse", "community": 5, - "community_name": "OrdersService", + "community_name": ".create", "norm_label": "apibadrequestresponse" }, - { - "label": "ApiBearerAuth", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_orders_orders_controller_ts_apibearerauth", - "community": 5, - "community_name": "OrdersService", - "norm_label": "apibearerauth" - }, { "label": "ApiCreatedResponse", "file_type": "code", @@ -29738,7 +30561,7 @@ "_origin": "ast", "id": "backend_src_orders_orders_controller_ts_apicreatedresponse", "community": 5, - "community_name": "OrdersService", + "community_name": ".create", "norm_label": "apicreatedresponse" }, { @@ -29749,7 +30572,7 @@ "_origin": "ast", "id": "backend_src_orders_orders_controller_ts_apinotfoundresponse", "community": 5, - "community_name": "OrdersService", + "community_name": ".create", "norm_label": "apinotfoundresponse" }, { @@ -29760,7 +30583,7 @@ "_origin": "ast", "id": "backend_src_orders_orders_controller_ts_apiokresponse", "community": 5, - "community_name": "OrdersService", + "community_name": ".create", "norm_label": "apiokresponse" }, { @@ -29771,20 +30594,9 @@ "_origin": "ast", "id": "backend_src_orders_orders_controller_ts_apioperation", "community": 5, - "community_name": "OrdersService", + "community_name": ".create", "norm_label": "apioperation" }, - { - "label": "ApiTags", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_orders_orders_controller_ts_apitags", - "community": 5, - "community_name": "OrdersService", - "norm_label": "apitags" - }, { "label": "Body", "file_type": "code", @@ -29793,20 +30605,9 @@ "_origin": "ast", "id": "backend_src_orders_orders_controller_ts_body", "community": 5, - "community_name": "OrdersService", + "community_name": ".create", "norm_label": "body" }, - { - "label": "Controller", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_orders_orders_controller_ts_controller", - "community": 5, - "community_name": "OrdersService", - "norm_label": "controller" - }, { "label": "Get", "file_type": "code", @@ -29815,7 +30616,7 @@ "_origin": "ast", "id": "backend_src_orders_orders_controller_ts_get", "community": 5, - "community_name": "OrdersService", + "community_name": ".create", "norm_label": "get" }, { @@ -29826,7 +30627,7 @@ "_origin": "ast", "id": "backend_src_orders_orders_controller_ts_param", "community": 5, - "community_name": "OrdersService", + "community_name": ".create", "norm_label": "param" }, { @@ -29837,7 +30638,7 @@ "_origin": "ast", "id": "backend_src_orders_orders_controller_ts_post", "community": 5, - "community_name": "OrdersService", + "community_name": ".create", "norm_label": "post" }, { @@ -29848,7 +30649,7 @@ "_origin": "ast", "id": "backend_src_orders_orders_controller_ts_query", "community": 5, - "community_name": "OrdersService", + "community_name": ".create", "norm_label": "query" }, { @@ -29859,42 +30660,9 @@ "_origin": "ast", "id": "backend_src_orders_orders_controller_ts_req", "community": 5, - "community_name": "OrdersService", + "community_name": ".create", "norm_label": "req" }, - { - "label": "UseGuards", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_orders_orders_controller_ts_useguards", - "community": 5, - "community_name": "OrdersService", - "norm_label": "useguards" - }, - { - "label": "Injectable", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_orders_orders_service_ts_injectable", - "community": 5, - "community_name": "OrdersService", - "norm_label": "injectable" - }, - { - "label": "ValidateNested", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "validatenested", - "community": 5, - "community_name": "OrdersService", - "norm_label": "validatenested" - }, { "label": "seed.ts", "file_type": "code", @@ -31171,105 +31939,6 @@ "community_name": "Pet Management API", "norm_label": "useguards" }, - { - "label": "admin.service.ts", - "file_type": "code", - "source_file": "backend/src/admin/admin.service.ts", - "source_location": "L1", - "_origin": "ast", - "id": "backend_src_admin_admin_service", - "community": 59, - "community_name": "PrismaService", - "norm_label": "admin.service.ts" - }, - { - "label": "admin.service.spec.ts", - "file_type": "code", - "source_file": "backend/src/admin/admin.service.spec.ts", - "source_location": "L1", - "_origin": "ast", - "id": "backend_src_admin_admin_service_spec", - "community": 59, - "community_name": "PrismaService", - "norm_label": "admin.service.spec.ts" - }, - { - "label": "categories.service.ts", - "file_type": "code", - "source_file": "backend/src/admin/categories.service.ts", - "source_location": "L1", - "_origin": "ast", - "id": "backend_src_admin_categories_service", - "community": 59, - "community_name": "PrismaService", - "norm_label": "categories.service.ts" - }, - { - "label": "media.service.ts", - "file_type": "code", - "source_file": "backend/src/admin/media.service.ts", - "source_location": "L1", - "_origin": "ast", - "id": "backend_src_admin_media_service", - "community": 59, - "community_name": "PrismaService", - "norm_label": "media.service.ts" - }, - { - "label": "auth.service.ts", - "file_type": "code", - "source_file": "backend/src/auth/auth.service.ts", - "source_location": "L1", - "_origin": "ast", - "id": "backend_src_auth_auth_service", - "community": 59, - "community_name": "PrismaService", - "norm_label": "auth.service.ts" - }, - { - "label": "auth.service.spec.ts", - "file_type": "code", - "source_file": "backend/src/auth/auth.service.spec.ts", - "source_location": "L1", - "_origin": "ast", - "id": "backend_src_auth_auth_service_spec", - "community": 59, - "community_name": "PrismaService", - "norm_label": "auth.service.spec.ts" - }, - { - "label": "b2b.service.ts", - "file_type": "code", - "source_file": "backend/src/b2b/b2b.service.ts", - "source_location": "L1", - "_origin": "ast", - "id": "backend_src_b2b_b2b_service", - "community": 59, - "community_name": "PrismaService", - "norm_label": "b2b.service.ts" - }, - { - "label": "banners.service.ts", - "file_type": "code", - "source_file": "backend/src/banners/banners.service.ts", - "source_location": "L1", - "_origin": "ast", - "id": "backend_src_banners_banners_service", - "community": 59, - "community_name": "PrismaService", - "norm_label": "banners.service.ts" - }, - { - "label": "metrics.controller.ts", - "file_type": "code", - "source_file": "backend/src/common/metrics.controller.ts", - "source_location": "L1", - "_origin": "ast", - "id": "backend_src_common_metrics_controller", - "community": 59, - "community_name": "PrismaService", - "norm_label": "metrics.controller.ts" - }, { "label": "sms.service.ts", "file_type": "code", @@ -31281,17 +31950,6 @@ "community_name": "PrismaService", "norm_label": "sms.service.ts" }, - { - "label": "Injectable", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_common_services_sms_service_ts_injectable", - "community": 59, - "community_name": "PrismaService", - "norm_label": "injectable" - }, { "label": "contact.service.ts", "file_type": "code", @@ -31304,15 +31962,15 @@ "norm_label": "contact.service.ts" }, { - "label": "ingredients.service.ts", + "label": "orders.service.ts", "file_type": "code", - "source_file": "backend/src/ingredients/ingredients.service.ts", + "source_file": "backend/src/orders/orders.service.ts", "source_location": "L1", "_origin": "ast", - "id": "backend_src_ingredients_ingredients_service", + "id": "backend_src_orders_orders_service", "community": 59, "community_name": "PrismaService", - "norm_label": "ingredients.service.ts" + "norm_label": "orders.service.ts" }, { "label": "orders.service.spec.ts", @@ -31358,17 +32016,6 @@ "community_name": "PrismaService", "norm_label": "pets.service.spec.ts" }, - { - "label": "prescriptions.service.ts", - "file_type": "code", - "source_file": "backend/src/prescriptions/prescriptions.service.ts", - "source_location": "L1", - "_origin": "ast", - "id": "backend_src_prescriptions_prescriptions_service", - "community": 59, - "community_name": "PrismaService", - "norm_label": "prescriptions.service.ts" - }, { "label": "prisma.service.ts", "file_type": "code", @@ -31392,70 +32039,26 @@ "norm_label": "injectable" }, { - "label": "redis.service.ts", + "label": "settings.service.ts", "file_type": "code", - "source_file": "backend/src/redis/redis.service.ts", + "source_file": "backend/src/settings/settings.service.ts", "source_location": "L1", "_origin": "ast", - "id": "backend_src_redis_redis_service", + "id": "backend_src_settings_settings_service", "community": 59, "community_name": "PrismaService", - "norm_label": "redis.service.ts" + "norm_label": "settings.service.ts" }, { - "label": "redis.service.spec.ts", + "label": "settings.service.spec.ts", "file_type": "code", - "source_file": "backend/src/redis/redis.service.spec.ts", + "source_file": "backend/src/settings/settings.service.spec.ts", "source_location": "L1", "_origin": "ast", - "id": "backend_src_redis_redis_service_spec", + "id": "backend_src_settings_settings_service_spec", "community": 59, "community_name": "PrismaService", - "norm_label": "redis.service.spec.ts" - }, - { - "label": "Injectable", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_redis_redis_service_ts_injectable", - "community": 59, - "community_name": "PrismaService", - "norm_label": "injectable" - }, - { - "label": "smart-advisor.service.ts", - "file_type": "code", - "source_file": "backend/src/smart-advisor/smart-advisor.service.ts", - "source_location": "L1", - "_origin": "ast", - "id": "backend_src_smart_advisor_smart_advisor_service", - "community": 59, - "community_name": "PrismaService", - "norm_label": "smart-advisor.service.ts" - }, - { - "label": "testimonials.service.ts", - "file_type": "code", - "source_file": "backend/src/testimonials/testimonials.service.ts", - "source_location": "L1", - "_origin": "ast", - "id": "backend_src_testimonials_testimonials_service", - "community": 59, - "community_name": "PrismaService", - "norm_label": "testimonials.service.ts" - }, - { - "label": "users.service.ts", - "file_type": "code", - "source_file": "backend/src/users/users.service.ts", - "source_location": "L1", - "_origin": "ast", - "id": "backend_src_users_users_service", - "community": 59, - "community_name": "PrismaService", - "norm_label": "users.service.ts" + "norm_label": "settings.service.spec.ts" }, { "label": "users.service.spec.ts", @@ -31490,171 +32093,6 @@ "community_name": "auth.controller.ts", "norm_label": "auth.controller.ts" }, - { - "label": "auth.controller.spec.ts", - "file_type": "code", - "source_file": "backend/src/auth/auth.controller.spec.ts", - "source_location": "L1", - "_origin": "ast", - "id": "backend_src_auth_auth_controller_spec", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": "auth.controller.spec.ts" - }, - { - "label": "ApiBadRequestResponse", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_auth_auth_controller_ts_apibadrequestresponse", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": "apibadrequestresponse" - }, - { - "label": "ApiOkResponse", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_auth_auth_controller_ts_apiokresponse", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": "apiokresponse" - }, - { - "label": "ApiOperation", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_auth_auth_controller_ts_apioperation", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": "apioperation" - }, - { - "label": "ApiTags", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_auth_auth_controller_ts_apitags", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": "apitags" - }, - { - "label": "Body", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_auth_auth_controller_ts_body", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": "body" - }, - { - "label": "Controller", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_auth_auth_controller_ts_controller", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": "controller" - }, - { - "label": "Post", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_auth_auth_controller_ts_post", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": "post" - }, - { - "label": "Injectable", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_auth_auth_service_ts_injectable", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": "injectable" - }, - { - "label": "admin-login.dto.ts", - "file_type": "code", - "source_file": "backend/src/auth/dto/admin-login.dto.ts", - "source_location": "L1", - "_origin": "ast", - "id": "backend_src_auth_dto_admin_login_dto", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": "admin-login.dto.ts" - }, - { - "label": "ApiProperty", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_auth_dto_admin_login_dto_ts_apiproperty", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": "apiproperty" - }, - { - "label": "IsEmail", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_auth_dto_admin_login_dto_ts_isemail", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": "isemail" - }, - { - "label": "IsNotEmpty", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_auth_dto_admin_login_dto_ts_isnotempty", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": "isnotempty" - }, - { - "label": "IsString", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_auth_dto_admin_login_dto_ts_isstring", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": "isstring" - }, - { - "label": "MinLength", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_auth_dto_admin_login_dto_ts_minlength", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": "minlength" - }, { "label": "login.dto.ts", "file_type": "code", @@ -31710,94 +32148,6 @@ "community_name": "auth.controller.ts", "norm_label": "minlength" }, - { - "label": "register.dto.ts", - "file_type": "code", - "source_file": "backend/src/auth/dto/register.dto.ts", - "source_location": "L1", - "_origin": "ast", - "id": "backend_src_auth_dto_register_dto", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": "register.dto.ts" - }, - { - "label": "ApiProperty", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_auth_dto_register_dto_ts_apiproperty", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": "apiproperty" - }, - { - "label": "ApiPropertyOptional", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_auth_dto_register_dto_ts_apipropertyoptional", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": "apipropertyoptional" - }, - { - "label": "IsEmail", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_auth_dto_register_dto_ts_isemail", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": "isemail" - }, - { - "label": "IsNotEmpty", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_auth_dto_register_dto_ts_isnotempty", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": "isnotempty" - }, - { - "label": "IsOptional", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_auth_dto_register_dto_ts_isoptional", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": "isoptional" - }, - { - "label": "IsString", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_auth_dto_register_dto_ts_isstring", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": "isstring" - }, - { - "label": "MinLength", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_auth_dto_register_dto_ts_minlength", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": "minlength" - }, { "label": "send-otp.dto.ts", "file_type": "code", @@ -31853,83 +32203,6 @@ "community_name": "auth.controller.ts", "norm_label": "matches" }, - { - "label": "verify-otp.dto.ts", - "file_type": "code", - "source_file": "backend/src/auth/dto/verify-otp.dto.ts", - "source_location": "L1", - "_origin": "ast", - "id": "backend_src_auth_dto_verify_otp_dto", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": "verify-otp.dto.ts" - }, - { - "label": "ApiProperty", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_auth_dto_verify_otp_dto_ts_apiproperty", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": "apiproperty" - }, - { - "label": "IsNotEmpty", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_auth_dto_verify_otp_dto_ts_isnotempty", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": "isnotempty" - }, - { - "label": "IsString", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_auth_dto_verify_otp_dto_ts_isstring", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": "isstring" - }, - { - "label": "Matches", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_auth_dto_verify_otp_dto_ts_matches", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": "matches" - }, - { - "label": "HttpCode", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "httpcode", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": "httpcode" - }, - { - "label": "Length", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "length", - "community": 6, - "community_name": "auth.controller.ts", - "norm_label": "length" - }, { "label": "jest", "file_type": "code", @@ -32073,6 +32346,17 @@ "community_name": "Jest Testing Config", "norm_label": "**/*.(t|j)s" }, + { + "label": "pagination.dto.ts", + "file_type": "code", + "source_file": "backend/src/common/dto/pagination.dto.ts", + "source_location": "L1", + "_origin": "ast", + "id": "backend_src_common_dto_pagination_dto", + "community": 61, + "community_name": "PaginationDto", + "norm_label": "pagination.dto.ts" + }, { "label": "ApiPropertyOptional", "file_type": "code", @@ -32634,17 +32918,6 @@ "community_name": "FE-001", "norm_label": "why it matters" }, - { - "label": "admin/wiki.controller.ts", - "file_type": "code", - "source_file": "backend/src/admin/wiki.controller.ts", - "source_location": "L1", - "_origin": "ast", - "id": "backend_src_admin_wiki_controller", - "community": 64, - "community_name": "pagination.dto.ts", - "norm_label": "admin/wiki.controller.ts" - }, { "label": "admin/wiki.service.ts", "file_type": "code", @@ -32653,7 +32926,7 @@ "_origin": "ast", "id": "backend_src_admin_wiki_service", "community": 64, - "community_name": "pagination.dto.ts", + "community_name": "WikiService", "norm_label": "admin/wiki.service.ts" }, { @@ -32664,97 +32937,9 @@ "_origin": "ast", "id": "backend_src_admin_wiki_service_ts_injectable", "community": 64, - "community_name": "pagination.dto.ts", + "community_name": "WikiService", "norm_label": "injectable" }, - { - "label": "pagination.dto.ts", - "file_type": "code", - "source_file": "backend/src/common/dto/pagination.dto.ts", - "source_location": "L1", - "_origin": "ast", - "id": "backend_src_common_dto_pagination_dto", - "community": 64, - "community_name": "pagination.dto.ts", - "norm_label": "pagination.dto.ts" - }, - { - "label": "orders.controller.ts", - "file_type": "code", - "source_file": "backend/src/orders/orders.controller.ts", - "source_location": "L1", - "_origin": "ast", - "id": "backend_src_orders_orders_controller", - "community": 64, - "community_name": "pagination.dto.ts", - "norm_label": "orders.controller.ts" - }, - { - "label": "IsNotEmpty", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_orders_orders_controller_ts_isnotempty", - "community": 64, - "community_name": "pagination.dto.ts", - "norm_label": "isnotempty" - }, - { - "label": "IsNumber", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_orders_orders_controller_ts_isnumber", - "community": 64, - "community_name": "pagination.dto.ts", - "norm_label": "isnumber" - }, - { - "label": "IsString", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_orders_orders_controller_ts_isstring", - "community": 64, - "community_name": "pagination.dto.ts", - "norm_label": "isstring" - }, - { - "label": "orders.module.ts", - "file_type": "code", - "source_file": "backend/src/orders/orders.module.ts", - "source_location": "L1", - "_origin": "ast", - "id": "backend_src_orders_orders_module", - "community": 64, - "community_name": "pagination.dto.ts", - "norm_label": "orders.module.ts" - }, - { - "label": "Module", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "backend_src_orders_orders_module_ts_module", - "community": 64, - "community_name": "pagination.dto.ts", - "norm_label": "module" - }, - { - "label": "orders.service.ts", - "file_type": "code", - "source_file": "backend/src/orders/orders.service.ts", - "source_location": "L1", - "_origin": "ast", - "id": "backend_src_orders_orders_service", - "community": 64, - "community_name": "pagination.dto.ts", - "norm_label": "orders.service.ts" - }, { "label": "rules/graphify.md", "file_type": "document", @@ -33030,15 +33215,103 @@ "community_name": "dependencies", "norm_label": "sonner" }, + { + "label": "orders.controller.ts", + "file_type": "code", + "source_file": "backend/src/orders/orders.controller.ts", + "source_location": "L1", + "_origin": "ast", + "id": "backend_src_orders_orders_controller", + "community": 68, + "community_name": "OrdersService", + "norm_label": "orders.controller.ts" + }, + { + "label": "orders.controller.spec.ts", + "file_type": "code", + "source_file": "backend/src/orders/orders.controller.spec.ts", + "source_location": "L1", + "_origin": "ast", + "id": "backend_src_orders_orders_controller_spec", + "community": 68, + "community_name": "OrdersService", + "norm_label": "orders.controller.spec.ts" + }, + { + "label": "ApiBearerAuth", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_orders_orders_controller_ts_apibearerauth", + "community": 68, + "community_name": "OrdersService", + "norm_label": "apibearerauth" + }, + { + "label": "ApiTags", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_orders_orders_controller_ts_apitags", + "community": 68, + "community_name": "OrdersService", + "norm_label": "apitags" + }, + { + "label": "Controller", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_orders_orders_controller_ts_controller", + "community": 68, + "community_name": "OrdersService", + "norm_label": "controller" + }, + { + "label": "UseGuards", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_orders_orders_controller_ts_useguards", + "community": 68, + "community_name": "OrdersService", + "norm_label": "useguards" + }, + { + "label": "orders.module.ts", + "file_type": "code", + "source_file": "backend/src/orders/orders.module.ts", + "source_location": "L1", + "_origin": "ast", + "id": "backend_src_orders_orders_module", + "community": 68, + "community_name": "OrdersService", + "norm_label": "orders.module.ts" + }, + { + "label": "Module", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_orders_orders_module_ts_module", + "community": 68, + "community_name": "OrdersService", + "norm_label": "module" + }, { "label": "Injectable", "file_type": "code", "source_file": "", "source_location": "", "_origin": "ast", - "id": "backend_src_pets_pets_service_ts_injectable", + "id": "backend_src_orders_orders_service_ts_injectable", "community": 68, - "community_name": "Pet Business Logic", + "community_name": "OrdersService", "norm_label": "injectable" }, { @@ -33184,6 +33457,17 @@ "community_name": "app.module.ts", "norm_label": "module" }, + { + "label": "b2b.service.ts", + "file_type": "code", + "source_file": "backend/src/b2b/b2b.service.ts", + "source_location": "L1", + "_origin": "ast", + "id": "backend_src_b2b_b2b_service", + "community": 7, + "community_name": "app.module.ts", + "norm_label": "b2b.service.ts" + }, { "label": "banners.module.ts", "file_type": "code", @@ -33206,6 +33490,17 @@ "community_name": "app.module.ts", "norm_label": "module" }, + { + "label": "banners.service.ts", + "file_type": "code", + "source_file": "backend/src/banners/banners.service.ts", + "source_location": "L1", + "_origin": "ast", + "id": "backend_src_banners_banners_service", + "community": 7, + "community_name": "app.module.ts", + "norm_label": "banners.service.ts" + }, { "label": "cms.module.ts", "file_type": "code", @@ -33305,6 +33600,17 @@ "community_name": "app.module.ts", "norm_label": "module" }, + { + "label": "ingredients.service.ts", + "file_type": "code", + "source_file": "backend/src/ingredients/ingredients.service.ts", + "source_location": "L1", + "_origin": "ast", + "id": "backend_src_ingredients_ingredients_service", + "community": 7, + "community_name": "app.module.ts", + "norm_label": "ingredients.service.ts" + }, { "label": "payment.module.ts", "file_type": "code", @@ -33349,6 +33655,17 @@ "community_name": "app.module.ts", "norm_label": "module" }, + { + "label": "prescriptions.service.ts", + "file_type": "code", + "source_file": "backend/src/prescriptions/prescriptions.service.ts", + "source_location": "L1", + "_origin": "ast", + "id": "backend_src_prescriptions_prescriptions_service", + "community": 7, + "community_name": "app.module.ts", + "norm_label": "prescriptions.service.ts" + }, { "label": "prisma.module.ts", "file_type": "code", @@ -33426,6 +33743,17 @@ "community_name": "app.module.ts", "norm_label": "module" }, + { + "label": "smart-advisor.service.ts", + "file_type": "code", + "source_file": "backend/src/smart-advisor/smart-advisor.service.ts", + "source_location": "L1", + "_origin": "ast", + "id": "backend_src_smart_advisor_smart_advisor_service", + "community": 7, + "community_name": "app.module.ts", + "norm_label": "smart-advisor.service.ts" + }, { "label": "testimonials.module.ts", "file_type": "code", @@ -33448,6 +33776,17 @@ "community_name": "app.module.ts", "norm_label": "module" }, + { + "label": "testimonials.service.ts", + "file_type": "code", + "source_file": "backend/src/testimonials/testimonials.service.ts", + "source_location": "L1", + "_origin": "ast", + "id": "backend_src_testimonials_testimonials_service", + "community": 7, + "community_name": "app.module.ts", + "norm_label": "testimonials.service.ts" + }, { "label": "wholesale.module.ts", "file_type": "code", @@ -33724,15 +34063,15 @@ "norm_label": "version" }, { - "label": "create-health-log.dto.ts", + "label": "create-order.dto.ts", "file_type": "code", - "source_file": "backend/src/pets/dto/create-health-log.dto.ts", + "source_file": "backend/src/orders/dto/create-order.dto.ts", "source_location": "L1", "_origin": "ast", - "id": "backend_src_pets_dto_create_health_log_dto", + "id": "backend_src_orders_dto_create_order_dto", "community": 74, - "community_name": "Health Log DTOs", - "norm_label": "create-health-log.dto.ts" + "community_name": "CreateOrderDto", + "norm_label": "create-order.dto.ts" }, { "label": "ApiProperty", @@ -33740,9 +34079,9 @@ "source_file": "", "source_location": "", "_origin": "ast", - "id": "backend_src_pets_dto_create_health_log_dto_ts_apiproperty", + "id": "backend_src_orders_dto_create_order_dto_ts_apiproperty", "community": 74, - "community_name": "Health Log DTOs", + "community_name": "CreateOrderDto", "norm_label": "apiproperty" }, { @@ -33751,31 +34090,53 @@ "source_file": "", "source_location": "", "_origin": "ast", - "id": "backend_src_pets_dto_create_health_log_dto_ts_apipropertyoptional", + "id": "backend_src_orders_dto_create_order_dto_ts_apipropertyoptional", "community": 74, - "community_name": "Health Log DTOs", + "community_name": "CreateOrderDto", "norm_label": "apipropertyoptional" }, + { + "label": "IsArray", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_orders_dto_create_order_dto_ts_isarray", + "community": 74, + "community_name": "CreateOrderDto", + "norm_label": "isarray" + }, { "label": "IsNotEmpty", "file_type": "code", "source_file": "", "source_location": "", "_origin": "ast", - "id": "backend_src_pets_dto_create_health_log_dto_ts_isnotempty", + "id": "backend_src_orders_dto_create_order_dto_ts_isnotempty", "community": 74, - "community_name": "Health Log DTOs", + "community_name": "CreateOrderDto", "norm_label": "isnotempty" }, + { + "label": "IsNumber", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_orders_dto_create_order_dto_ts_isnumber", + "community": 74, + "community_name": "CreateOrderDto", + "norm_label": "isnumber" + }, { "label": "IsOptional", "file_type": "code", "source_file": "", "source_location": "", "_origin": "ast", - "id": "backend_src_pets_dto_create_health_log_dto_ts_isoptional", + "id": "backend_src_orders_dto_create_order_dto_ts_isoptional", "community": 74, - "community_name": "Health Log DTOs", + "community_name": "CreateOrderDto", "norm_label": "isoptional" }, { @@ -33784,11 +34145,33 @@ "source_file": "", "source_location": "", "_origin": "ast", - "id": "backend_src_pets_dto_create_health_log_dto_ts_isstring", + "id": "backend_src_orders_dto_create_order_dto_ts_isstring", "community": 74, - "community_name": "Health Log DTOs", + "community_name": "CreateOrderDto", "norm_label": "isstring" }, + { + "label": "Type", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "backend_src_orders_dto_create_order_dto_ts_type", + "community": 74, + "community_name": "CreateOrderDto", + "norm_label": "type" + }, + { + "label": "ValidateNested", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "validatenested", + "community": 74, + "community_name": "CreateOrderDto", + "norm_label": "validatenested" + }, { "label": "ErrorBoundary.tsx", "file_type": "code", @@ -36296,7 +36679,127 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "backend/src/common/services/sms.service.ts", - "source_location": "L153", + "source_location": "L222", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_common_services_sms_service_smsservice_addpattern", + "target": "backend_src_common_services_sms_service_smsservice_getsmsconfig", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L232", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_common_services_sms_service_smsservice_addpattern", + "target": "backend_src_common_services_sms_service_smsservice_postasmx", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L245", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_common_services_sms_service_smsservice_addpattern", + "target": "backend_src_common_services_sms_service_smsservice_savelocalpattern", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L287", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_common_services_sms_service_smsservice_editpattern", + "target": "backend_src_common_services_sms_service_smsservice_getsmsconfig", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L297", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_common_services_sms_service_smsservice_editpattern", + "target": "backend_src_common_services_sms_service_smsservice_postasmx", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L308", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_common_services_sms_service_smsservice_editpattern", + "target": "backend_src_common_services_sms_service_smsservice_updatelocalpattern", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L147", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_common_services_sms_service_smsservice_getpatterns", + "target": "backend_src_common_services_sms_service_smsservice_getsmsconfig", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L152", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_common_services_sms_service_smsservice_getpatterns", + "target": "backend_src_common_services_sms_service_smsservice_postasmx", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L156", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_common_services_sms_service_smsservice_getpatterns", + "target": "backend_src_common_services_sms_service_smsservice_parsepatternsxml", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L569", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_common_services_sms_service_smsservice_sendb2bnotification", + "target": "backend_src_common_services_sms_service_smsservice_getsmsconfig", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L570", "weight": 1.0, "_origin": "ast", "source": "backend_src_common_services_sms_service_smsservice_sendb2bnotification", @@ -36308,7 +36811,19 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "backend/src/common/services/sms.service.ts", - "source_location": "L116", + "source_location": "L538", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_common_services_sms_service_smsservice_sendorderconfirmation", + "target": "backend_src_common_services_sms_service_smsservice_getsmsconfig", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L539", "weight": 1.0, "_origin": "ast", "source": "backend_src_common_services_sms_service_smsservice_sendorderconfirmation", @@ -36320,7 +36835,19 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "backend/src/common/services/sms.service.ts", - "source_location": "L97", + "source_location": "L522", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_common_services_sms_service_smsservice_sendotp", + "target": "backend_src_common_services_sms_service_smsservice_getsmsconfig", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L523", "weight": 1.0, "_origin": "ast", "source": "backend_src_common_services_sms_service_smsservice_sendotp", @@ -36332,7 +36859,31 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "backend/src/common/services/sms.service.ts", - "source_location": "L172", + "source_location": "L371", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_common_services_sms_service_smsservice_sendpatternsms", + "target": "backend_src_common_services_sms_service_smsservice_getsmsconfig", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L585", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_common_services_sms_service_smsservice_sendpetcarereminder", + "target": "backend_src_common_services_sms_service_smsservice_getsmsconfig", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L587", "weight": 1.0, "_origin": "ast", "source": "backend_src_common_services_sms_service_smsservice_sendpetcarereminder", @@ -36344,13 +36895,49 @@ "context": "call", "confidence": "EXTRACTED", "source_file": "backend/src/common/services/sms.service.ts", - "source_location": "L135", + "source_location": "L554", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_common_services_sms_service_smsservice_sendshippingnotification", + "target": "backend_src_common_services_sms_service_smsservice_getsmsconfig", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L555", "weight": 1.0, "_origin": "ast", "source": "backend_src_common_services_sms_service_smsservice_sendshippingnotification", "target": "backend_src_common_services_sms_service_smsservice_sendpatternsms", "confidence_score": 1.0 }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L598", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_common_services_sms_service_smsservice_sendsms", + "target": "backend_src_common_services_sms_service_smsservice_getsmsconfig", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L446", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_common_services_sms_service_smsservice_testsms", + "target": "backend_src_common_services_sms_service_smsservice_getsmsconfig", + "confidence_score": 1.0 + }, { "relation": "calls", "context": "call", @@ -36597,7 +37184,7 @@ "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "frontend/admin-panel/src/components/Sidebar.tsx", - "source_location": "L68", + "source_location": "L69", "weight": 1.0, "_origin": "ast", "source": "frontend_admin_panel_src_components_sidebar_sidebar", @@ -42691,7 +43278,7 @@ "relation": "references", "confidence": "EXTRACTED", "source_file": "backend/src/common/services/sms.service.ts", - "source_location": "L15", + "source_location": "L38", "weight": 1.0, "context": "decorator", "_origin": "ast", @@ -46099,7 +46686,7 @@ "relation": "references", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L23", + "source_location": "L24", "weight": 1.0, "context": "decorator", "_origin": "ast", @@ -46111,7 +46698,7 @@ "relation": "references", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L24", + "source_location": "L25", "weight": 1.0, "context": "decorator", "_origin": "ast", @@ -46123,14 +46710,74 @@ "relation": "references", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L66", + "source_location": "L171", "weight": 1.0, "context": "decorator", "_origin": "ast", - "source": "backend_src_settings_settings_controller_settingscontroller_deletescientificterm", + "source": "backend_src_settings_settings_controller_settingscontroller_addpattern", "target": "backend_src_settings_settings_controller_ts_useguards", "confidence_score": 1.0 }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L172", + "weight": 1.0, + "context": "decorator", + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller_addpattern", + "target": "backend_src_common_decorators_roles_decorator_roles", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L173", + "weight": 1.0, + "context": "decorator", + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller_addpattern", + "target": "backend_src_settings_settings_controller_ts_apibearerauth", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L174", + "weight": 1.0, + "context": "decorator", + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller_addpattern", + "target": "backend_src_settings_settings_controller_ts_post", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L175", + "weight": 1.0, + "context": "decorator", + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller_addpattern", + "target": "backend_src_settings_settings_controller_ts_apioperation", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L179", + "weight": 1.0, + "context": "decorator", + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller_addpattern", + "target": "backend_src_settings_settings_controller_ts_body", + "confidence_score": 1.0 + }, { "relation": "references", "confidence": "EXTRACTED", @@ -46140,7 +46787,7 @@ "context": "decorator", "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_deletescientificterm", - "target": "backend_src_common_decorators_roles_decorator_roles", + "target": "backend_src_settings_settings_controller_ts_useguards", "confidence_score": 1.0 }, { @@ -46152,7 +46799,7 @@ "context": "decorator", "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_deletescientificterm", - "target": "backend_src_settings_settings_controller_ts_apibearerauth", + "target": "backend_src_common_decorators_roles_decorator_roles", "confidence_score": 1.0 }, { @@ -46164,7 +46811,7 @@ "context": "decorator", "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_deletescientificterm", - "target": "backend_src_settings_settings_controller_ts_delete", + "target": "backend_src_settings_settings_controller_ts_apibearerauth", "confidence_score": 1.0 }, { @@ -46176,7 +46823,7 @@ "context": "decorator", "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_deletescientificterm", - "target": "backend_src_settings_settings_controller_ts_apioperation", + "target": "backend_src_settings_settings_controller_ts_delete", "confidence_score": 1.0 }, { @@ -46188,6 +46835,18 @@ "context": "decorator", "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_deletescientificterm", + "target": "backend_src_settings_settings_controller_ts_apioperation", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L72", + "weight": 1.0, + "context": "decorator", + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller_deletescientificterm", "target": "backend_src_settings_settings_controller_ts_param", "confidence_score": 1.0 }, @@ -46195,14 +46854,86 @@ "relation": "references", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L92", + "source_location": "L184", "weight": 1.0, "context": "decorator", "_origin": "ast", - "source": "backend_src_settings_settings_controller_settingscontroller_getfinancialsettings", + "source": "backend_src_settings_settings_controller_settingscontroller_editpattern", "target": "backend_src_settings_settings_controller_ts_useguards", "confidence_score": 1.0 }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L185", + "weight": 1.0, + "context": "decorator", + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller_editpattern", + "target": "backend_src_common_decorators_roles_decorator_roles", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L186", + "weight": 1.0, + "context": "decorator", + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller_editpattern", + "target": "backend_src_settings_settings_controller_ts_apibearerauth", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L187", + "weight": 1.0, + "context": "decorator", + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller_editpattern", + "target": "backend_src_settings_settings_controller_ts_put", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L188", + "weight": 1.0, + "context": "decorator", + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller_editpattern", + "target": "backend_src_settings_settings_controller_ts_apioperation", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L190", + "weight": 1.0, + "context": "decorator", + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller_editpattern", + "target": "backend_src_settings_settings_controller_ts_param", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L191", + "weight": 1.0, + "context": "decorator", + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller_editpattern", + "target": "backend_src_settings_settings_controller_ts_body", + "confidence_score": 1.0 + }, { "relation": "references", "confidence": "EXTRACTED", @@ -46212,7 +46943,7 @@ "context": "decorator", "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_getfinancialsettings", - "target": "backend_src_common_decorators_roles_decorator_roles", + "target": "backend_src_settings_settings_controller_ts_useguards", "confidence_score": 1.0 }, { @@ -46224,7 +46955,7 @@ "context": "decorator", "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_getfinancialsettings", - "target": "backend_src_settings_settings_controller_ts_apibearerauth", + "target": "backend_src_common_decorators_roles_decorator_roles", "confidence_score": 1.0 }, { @@ -46236,7 +46967,7 @@ "context": "decorator", "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_getfinancialsettings", - "target": "backend_src_settings_settings_controller_ts_get", + "target": "backend_src_settings_settings_controller_ts_apibearerauth", "confidence_score": 1.0 }, { @@ -46248,6 +46979,18 @@ "context": "decorator", "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_getfinancialsettings", + "target": "backend_src_settings_settings_controller_ts_get", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L97", + "weight": 1.0, + "context": "decorator", + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller_getfinancialsettings", "target": "backend_src_settings_settings_controller_ts_apioperation", "confidence_score": 1.0 }, @@ -46255,14 +46998,62 @@ "relation": "references", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L48", + "source_location": "L162", "weight": 1.0, "context": "decorator", "_origin": "ast", - "source": "backend_src_settings_settings_controller_settingscontroller_getscientificterms", + "source": "backend_src_settings_settings_controller_settingscontroller_getpatterns", + "target": "backend_src_settings_settings_controller_ts_useguards", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L163", + "weight": 1.0, + "context": "decorator", + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller_getpatterns", + "target": "backend_src_common_decorators_roles_decorator_roles", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L164", + "weight": 1.0, + "context": "decorator", + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller_getpatterns", + "target": "backend_src_settings_settings_controller_ts_apibearerauth", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L165", + "weight": 1.0, + "context": "decorator", + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller_getpatterns", "target": "backend_src_settings_settings_controller_ts_get", "confidence_score": 1.0 }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L166", + "weight": 1.0, + "context": "decorator", + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller_getpatterns", + "target": "backend_src_settings_settings_controller_ts_apioperation", + "confidence_score": 1.0 + }, { "relation": "references", "confidence": "EXTRACTED", @@ -46272,19 +47063,19 @@ "context": "decorator", "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_getscientificterms", - "target": "backend_src_settings_settings_controller_ts_apioperation", + "target": "backend_src_settings_settings_controller_ts_get", "confidence_score": 1.0 }, { "relation": "references", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L76", + "source_location": "L50", "weight": 1.0, "context": "decorator", "_origin": "ast", - "source": "backend_src_settings_settings_controller_settingscontroller_getseosettings", - "target": "backend_src_settings_settings_controller_ts_get", + "source": "backend_src_settings_settings_controller_settingscontroller_getscientificterms", + "target": "backend_src_settings_settings_controller_ts_apioperation", "confidence_score": 1.0 }, { @@ -46296,6 +47087,18 @@ "context": "decorator", "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_getseosettings", + "target": "backend_src_settings_settings_controller_ts_get", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L78", + "weight": 1.0, + "context": "decorator", + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller_getseosettings", "target": "backend_src_settings_settings_controller_ts_apioperation", "confidence_score": 1.0 }, @@ -46303,14 +47106,62 @@ "relation": "references", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L111", + "source_location": "L131", "weight": 1.0, "context": "decorator", "_origin": "ast", - "source": "backend_src_settings_settings_controller_settingscontroller_getsystemsettings", + "source": "backend_src_settings_settings_controller_settingscontroller_getsmssettings", "target": "backend_src_settings_settings_controller_ts_useguards", "confidence_score": 1.0 }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L132", + "weight": 1.0, + "context": "decorator", + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller_getsmssettings", + "target": "backend_src_common_decorators_roles_decorator_roles", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L133", + "weight": 1.0, + "context": "decorator", + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller_getsmssettings", + "target": "backend_src_settings_settings_controller_ts_apibearerauth", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L134", + "weight": 1.0, + "context": "decorator", + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller_getsmssettings", + "target": "backend_src_settings_settings_controller_ts_get", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L135", + "weight": 1.0, + "context": "decorator", + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller_getsmssettings", + "target": "backend_src_settings_settings_controller_ts_apioperation", + "confidence_score": 1.0 + }, { "relation": "references", "confidence": "EXTRACTED", @@ -46320,7 +47171,7 @@ "context": "decorator", "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_getsystemsettings", - "target": "backend_src_common_decorators_roles_decorator_roles", + "target": "backend_src_settings_settings_controller_ts_useguards", "confidence_score": 1.0 }, { @@ -46332,7 +47183,7 @@ "context": "decorator", "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_getsystemsettings", - "target": "backend_src_settings_settings_controller_ts_apibearerauth", + "target": "backend_src_common_decorators_roles_decorator_roles", "confidence_score": 1.0 }, { @@ -46344,7 +47195,7 @@ "context": "decorator", "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_getsystemsettings", - "target": "backend_src_settings_settings_controller_ts_get", + "target": "backend_src_settings_settings_controller_ts_apibearerauth", "confidence_score": 1.0 }, { @@ -46356,19 +47207,19 @@ "context": "decorator", "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_getsystemsettings", - "target": "backend_src_settings_settings_controller_ts_apioperation", + "target": "backend_src_settings_settings_controller_ts_get", "confidence_score": 1.0 }, { "relation": "references", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L28", + "source_location": "L116", "weight": 1.0, "context": "decorator", "_origin": "ast", - "source": "backend_src_settings_settings_controller_settingscontroller_getuitexts", - "target": "backend_src_settings_settings_controller_ts_get", + "source": "backend_src_settings_settings_controller_settingscontroller_getsystemsettings", + "target": "backend_src_settings_settings_controller_ts_apioperation", "confidence_score": 1.0 }, { @@ -46380,7 +47231,7 @@ "context": "decorator", "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_getuitexts", - "target": "backend_src_settings_settings_controller_ts_apioperation", + "target": "backend_src_settings_settings_controller_ts_get", "confidence_score": 1.0 }, { @@ -46392,6 +47243,18 @@ "context": "decorator", "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_getuitexts", + "target": "backend_src_settings_settings_controller_ts_apioperation", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L31", + "weight": 1.0, + "context": "decorator", + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller_getuitexts", "target": "backend_src_settings_settings_controller_ts_apiokresponse", "confidence_score": 1.0 }, @@ -46399,14 +47262,74 @@ "relation": "references", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L101", + "source_location": "L149", "weight": 1.0, "context": "decorator", "_origin": "ast", - "source": "backend_src_settings_settings_controller_settingscontroller_updatefinancialsettings", + "source": "backend_src_settings_settings_controller_settingscontroller_testsms", "target": "backend_src_settings_settings_controller_ts_useguards", "confidence_score": 1.0 }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L150", + "weight": 1.0, + "context": "decorator", + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller_testsms", + "target": "backend_src_common_decorators_roles_decorator_roles", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L151", + "weight": 1.0, + "context": "decorator", + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller_testsms", + "target": "backend_src_settings_settings_controller_ts_apibearerauth", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L152", + "weight": 1.0, + "context": "decorator", + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller_testsms", + "target": "backend_src_settings_settings_controller_ts_post", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L153", + "weight": 1.0, + "context": "decorator", + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller_testsms", + "target": "backend_src_settings_settings_controller_ts_apioperation", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L157", + "weight": 1.0, + "context": "decorator", + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller_testsms", + "target": "backend_src_settings_settings_controller_ts_body", + "confidence_score": 1.0 + }, { "relation": "references", "confidence": "EXTRACTED", @@ -46416,7 +47339,7 @@ "context": "decorator", "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_updatefinancialsettings", - "target": "backend_src_common_decorators_roles_decorator_roles", + "target": "backend_src_settings_settings_controller_ts_useguards", "confidence_score": 1.0 }, { @@ -46428,7 +47351,7 @@ "context": "decorator", "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_updatefinancialsettings", - "target": "backend_src_settings_settings_controller_ts_apibearerauth", + "target": "backend_src_common_decorators_roles_decorator_roles", "confidence_score": 1.0 }, { @@ -46440,7 +47363,7 @@ "context": "decorator", "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_updatefinancialsettings", - "target": "backend_src_settings_settings_controller_ts_patch", + "target": "backend_src_settings_settings_controller_ts_apibearerauth", "confidence_score": 1.0 }, { @@ -46452,7 +47375,7 @@ "context": "decorator", "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_updatefinancialsettings", - "target": "backend_src_settings_settings_controller_ts_apioperation", + "target": "backend_src_settings_settings_controller_ts_patch", "confidence_score": 1.0 }, { @@ -46464,19 +47387,19 @@ "context": "decorator", "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_updatefinancialsettings", - "target": "backend_src_settings_settings_controller_ts_body", + "target": "backend_src_settings_settings_controller_ts_apioperation", "confidence_score": 1.0 }, { "relation": "references", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L82", + "source_location": "L107", "weight": 1.0, "context": "decorator", "_origin": "ast", - "source": "backend_src_settings_settings_controller_settingscontroller_updateseosettings", - "target": "backend_src_settings_settings_controller_ts_useguards", + "source": "backend_src_settings_settings_controller_settingscontroller_updatefinancialsettings", + "target": "backend_src_settings_settings_controller_ts_body", "confidence_score": 1.0 }, { @@ -46488,7 +47411,7 @@ "context": "decorator", "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_updateseosettings", - "target": "backend_src_common_decorators_roles_decorator_roles", + "target": "backend_src_settings_settings_controller_ts_useguards", "confidence_score": 1.0 }, { @@ -46500,7 +47423,7 @@ "context": "decorator", "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_updateseosettings", - "target": "backend_src_settings_settings_controller_ts_apibearerauth", + "target": "backend_src_common_decorators_roles_decorator_roles", "confidence_score": 1.0 }, { @@ -46512,7 +47435,7 @@ "context": "decorator", "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_updateseosettings", - "target": "backend_src_settings_settings_controller_ts_patch", + "target": "backend_src_settings_settings_controller_ts_apibearerauth", "confidence_score": 1.0 }, { @@ -46524,7 +47447,7 @@ "context": "decorator", "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_updateseosettings", - "target": "backend_src_settings_settings_controller_ts_apioperation", + "target": "backend_src_settings_settings_controller_ts_patch", "confidence_score": 1.0 }, { @@ -46536,6 +47459,18 @@ "context": "decorator", "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_updateseosettings", + "target": "backend_src_settings_settings_controller_ts_apioperation", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L88", + "weight": 1.0, + "context": "decorator", + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller_updateseosettings", "target": "backend_src_settings_settings_controller_ts_body", "confidence_score": 1.0 }, @@ -46543,14 +47478,74 @@ "relation": "references", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L120", + "source_location": "L140", "weight": 1.0, "context": "decorator", "_origin": "ast", - "source": "backend_src_settings_settings_controller_settingscontroller_updatesystemsettings", + "source": "backend_src_settings_settings_controller_settingscontroller_updatesmssettings", "target": "backend_src_settings_settings_controller_ts_useguards", "confidence_score": 1.0 }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L141", + "weight": 1.0, + "context": "decorator", + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller_updatesmssettings", + "target": "backend_src_common_decorators_roles_decorator_roles", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L142", + "weight": 1.0, + "context": "decorator", + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller_updatesmssettings", + "target": "backend_src_settings_settings_controller_ts_apibearerauth", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L143", + "weight": 1.0, + "context": "decorator", + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller_updatesmssettings", + "target": "backend_src_settings_settings_controller_ts_patch", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L144", + "weight": 1.0, + "context": "decorator", + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller_updatesmssettings", + "target": "backend_src_settings_settings_controller_ts_apioperation", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L145", + "weight": 1.0, + "context": "decorator", + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller_updatesmssettings", + "target": "backend_src_settings_settings_controller_ts_body", + "confidence_score": 1.0 + }, { "relation": "references", "confidence": "EXTRACTED", @@ -46560,7 +47555,7 @@ "context": "decorator", "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_updatesystemsettings", - "target": "backend_src_common_decorators_roles_decorator_roles", + "target": "backend_src_settings_settings_controller_ts_useguards", "confidence_score": 1.0 }, { @@ -46572,7 +47567,7 @@ "context": "decorator", "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_updatesystemsettings", - "target": "backend_src_settings_settings_controller_ts_apibearerauth", + "target": "backend_src_common_decorators_roles_decorator_roles", "confidence_score": 1.0 }, { @@ -46584,7 +47579,7 @@ "context": "decorator", "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_updatesystemsettings", - "target": "backend_src_settings_settings_controller_ts_patch", + "target": "backend_src_settings_settings_controller_ts_apibearerauth", "confidence_score": 1.0 }, { @@ -46596,7 +47591,7 @@ "context": "decorator", "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_updatesystemsettings", - "target": "backend_src_settings_settings_controller_ts_apioperation", + "target": "backend_src_settings_settings_controller_ts_patch", "confidence_score": 1.0 }, { @@ -46608,19 +47603,19 @@ "context": "decorator", "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_updatesystemsettings", - "target": "backend_src_settings_settings_controller_ts_body", + "target": "backend_src_settings_settings_controller_ts_apioperation", "confidence_score": 1.0 }, { "relation": "references", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L38", + "source_location": "L126", "weight": 1.0, "context": "decorator", "_origin": "ast", - "source": "backend_src_settings_settings_controller_settingscontroller_updateuitext", - "target": "backend_src_settings_settings_controller_ts_useguards", + "source": "backend_src_settings_settings_controller_settingscontroller_updatesystemsettings", + "target": "backend_src_settings_settings_controller_ts_body", "confidence_score": 1.0 }, { @@ -46632,7 +47627,7 @@ "context": "decorator", "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_updateuitext", - "target": "backend_src_common_decorators_roles_decorator_roles", + "target": "backend_src_settings_settings_controller_ts_useguards", "confidence_score": 1.0 }, { @@ -46644,7 +47639,7 @@ "context": "decorator", "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_updateuitext", - "target": "backend_src_settings_settings_controller_ts_apibearerauth", + "target": "backend_src_common_decorators_roles_decorator_roles", "confidence_score": 1.0 }, { @@ -46656,7 +47651,7 @@ "context": "decorator", "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_updateuitext", - "target": "backend_src_settings_settings_controller_ts_patch", + "target": "backend_src_settings_settings_controller_ts_apibearerauth", "confidence_score": 1.0 }, { @@ -46668,7 +47663,7 @@ "context": "decorator", "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_updateuitext", - "target": "backend_src_settings_settings_controller_ts_put", + "target": "backend_src_settings_settings_controller_ts_patch", "confidence_score": 1.0 }, { @@ -46680,7 +47675,7 @@ "context": "decorator", "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_updateuitext", - "target": "backend_src_settings_settings_controller_ts_apioperation", + "target": "backend_src_settings_settings_controller_ts_put", "confidence_score": 1.0 }, { @@ -46692,6 +47687,18 @@ "context": "decorator", "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_updateuitext", + "target": "backend_src_settings_settings_controller_ts_apioperation", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L45", + "weight": 1.0, + "context": "decorator", + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller_updateuitext", "target": "backend_src_settings_settings_controller_ts_body", "confidence_score": 1.0 }, @@ -46699,7 +47706,7 @@ "relation": "references", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L44", + "source_location": "L45", "weight": 1.0, "context": "decorator", "_origin": "ast", @@ -46711,7 +47718,7 @@ "relation": "references", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L54", + "source_location": "L55", "weight": 1.0, "context": "decorator", "_origin": "ast", @@ -46723,7 +47730,7 @@ "relation": "references", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L55", + "source_location": "L56", "weight": 1.0, "context": "decorator", "_origin": "ast", @@ -46735,7 +47742,7 @@ "relation": "references", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L56", + "source_location": "L57", "weight": 1.0, "context": "decorator", "_origin": "ast", @@ -46747,7 +47754,7 @@ "relation": "references", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L57", + "source_location": "L58", "weight": 1.0, "context": "decorator", "_origin": "ast", @@ -46759,7 +47766,7 @@ "relation": "references", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L58", + "source_location": "L59", "weight": 1.0, "context": "decorator", "_origin": "ast", @@ -46771,7 +47778,7 @@ "relation": "references", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L60", + "source_location": "L61", "weight": 1.0, "context": "decorator", "_origin": "ast", @@ -46783,7 +47790,7 @@ "relation": "references", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L61", + "source_location": "L62", "weight": 1.0, "context": "decorator", "_origin": "ast", @@ -46807,7 +47814,7 @@ "relation": "references", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.service.ts", - "source_location": "L11", + "source_location": "L12", "weight": 1.0, "context": "decorator", "_origin": "ast", @@ -49631,6 +50638,19 @@ "target": "frontend_admin_panel_src_pages_smartadvisormanager", "confidence_score": 1.0 }, + { + "relation": "imports_from", + "context": "import", + "deferred": true, + "confidence": "EXTRACTED", + "source_file": "frontend/admin-panel/src/routes/adminRoutes.tsx", + "source_location": "L36", + "weight": 1.0, + "_origin": "ast", + "source": "frontend_admin_panel_src_routes_adminroutes_smssettingspage", + "target": "frontend_admin_panel_src_pages_smssettingspage", + "confidence_score": 1.0 + }, { "relation": "imports_from", "context": "import", @@ -52484,6 +53504,18 @@ "target": "backend_src_prisma_prisma_service_prismaservice", "confidence_score": 1.0 }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L3", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_common_services_sms_service", + "target": "backend_src_prisma_prisma_service_prismaservice", + "confidence_score": 1.0 + }, { "relation": "imports", "context": "import", @@ -53749,7 +54781,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L12", + "source_location": "L13", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_controller", @@ -53761,7 +54793,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L12", + "source_location": "L13", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_controller", @@ -53773,7 +54805,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L13", + "source_location": "L14", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_controller", @@ -53785,7 +54817,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L14", + "source_location": "L15", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_controller", @@ -53797,7 +54829,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L15", + "source_location": "L16", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_controller", @@ -53912,6 +54944,18 @@ "target": "backend_src_prisma_prisma_service_prismaservice", "confidence_score": 1.0 }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.service.ts", + "source_location": "L4", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_settings_settings_service", + "target": "backend_src_common_services_sms_service_smsservice", + "confidence_score": 1.0 + }, { "relation": "imports", "context": "import", @@ -56041,7 +57085,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/admin-panel/src/pages/Settings.tsx", - "source_location": "L4", + "source_location": "L5", "weight": 1.0, "_origin": "ast", "source": "frontend_admin_panel_src_pages_settings", @@ -56053,7 +57097,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/admin-panel/src/pages/Settings.tsx", - "source_location": "L5", + "source_location": "L6", "weight": 1.0, "_origin": "ast", "source": "frontend_admin_panel_src_pages_settings", @@ -56120,6 +57164,30 @@ "target": "frontend_admin_panel_src_types_admin_smartadvisorrule", "confidence_score": 1.0 }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "frontend/admin-panel/src/pages/SmsSettingsPage.tsx", + "source_location": "L30", + "weight": 1.0, + "_origin": "ast", + "source": "frontend_admin_panel_src_pages_smssettingspage", + "target": "frontend_admin_panel_src_services_api_api", + "confidence_score": 1.0 + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "frontend/admin-panel/src/pages/SmsSettingsPage.tsx", + "source_location": "L31", + "weight": 1.0, + "_origin": "ast", + "source": "frontend_admin_panel_src_pages_smssettingspage", + "target": "frontend_admin_panel_src_components_ui_spinner_spinner", + "confidence_score": 1.0 + }, { "relation": "imports", "context": "import", @@ -61400,6 +62468,18 @@ "target": "backend_src_prisma_prisma_service", "confidence_score": 1.0 }, + { + "relation": "imports_from", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L3", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_common_services_sms_service", + "target": "backend_src_prisma_prisma_service", + "confidence_score": 1.0 + }, { "relation": "imports_from", "context": "import", @@ -62653,7 +63733,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L12", + "source_location": "L13", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_controller", @@ -62665,7 +63745,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L13", + "source_location": "L14", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_controller", @@ -62677,7 +63757,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L14", + "source_location": "L15", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_controller", @@ -62689,7 +63769,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L15", + "source_location": "L16", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_controller", @@ -62804,6 +63884,18 @@ "target": "backend_src_prisma_prisma_service", "confidence_score": 1.0 }, + { + "relation": "imports_from", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.service.ts", + "source_location": "L4", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_settings_settings_service", + "target": "backend_src_common_services_sms_service", + "confidence_score": 1.0 + }, { "relation": "imports_from", "context": "import", @@ -64477,7 +65569,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/admin-panel/src/pages/Settings.tsx", - "source_location": "L4", + "source_location": "L5", "weight": 1.0, "_origin": "ast", "source": "frontend_admin_panel_src_pages_settings", @@ -64489,7 +65581,7 @@ "context": "import", "confidence": "EXTRACTED", "source_file": "frontend/admin-panel/src/pages/Settings.tsx", - "source_location": "L5", + "source_location": "L6", "weight": 1.0, "_origin": "ast", "source": "frontend_admin_panel_src_pages_settings", @@ -64544,6 +65636,30 @@ "target": "frontend_admin_panel_src_types_admin", "confidence_score": 1.0 }, + { + "relation": "imports_from", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "frontend/admin-panel/src/pages/SmsSettingsPage.tsx", + "source_location": "L30", + "weight": 1.0, + "_origin": "ast", + "source": "frontend_admin_panel_src_pages_smssettingspage", + "target": "frontend_admin_panel_src_services_api", + "confidence_score": 1.0 + }, + { + "relation": "imports_from", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "frontend/admin-panel/src/pages/SmsSettingsPage.tsx", + "source_location": "L31", + "weight": 1.0, + "_origin": "ast", + "source": "frontend_admin_panel_src_pages_smssettingspage", + "target": "frontend_admin_panel_src_components_ui_spinner", + "confidence_score": 1.0 + }, { "relation": "imports_from", "context": "import", @@ -68228,6 +69344,18 @@ "target": "backend_src_prisma_prisma_service_prismaservice", "confidence_score": 1.0 }, + { + "relation": "references", + "context": "parameter_type", + "confidence": "EXTRACTED", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L42", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_common_services_sms_service_smsservice_constructor", + "target": "backend_src_prisma_prisma_service_prismaservice", + "confidence_score": 1.0 + }, { "relation": "references", "context": "parameter_type", @@ -68749,7 +69877,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L26", + "source_location": "L27", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_constructor", @@ -68761,7 +69889,7 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L59", + "source_location": "L60", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_upsertscientificterm", @@ -68773,7 +69901,19 @@ "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.service.ts", - "source_location": "L13", + "source_location": "L14", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_settings_settings_service_settingsservice_constructor", + "target": "backend_src_common_services_sms_service_smsservice", + "confidence_score": 1.0 + }, + { + "relation": "references", + "context": "parameter_type", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.service.ts", + "source_location": "L14", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_service_settingsservice_constructor", @@ -69128,6 +70268,17 @@ "target": "backend_src_common_dto_pagination_dto_paginationdto", "confidence_score": 1.0 }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "AGENTS.md", + "source_location": "L1", + "weight": 1.0, + "_origin": "ast", + "source": "agents", + "target": "agents_graphify", + "confidence_score": 1.0 + }, { "relation": "contains", "confidence": "EXTRACTED", @@ -74522,7 +75673,29 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/src/common/services/sms.service.ts", - "source_location": "L10", + "source_location": "L11", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_common_services_sms_service", + "target": "backend_src_common_services_sms_service_smsconfig", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L23", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_common_services_sms_service", + "target": "backend_src_common_services_sms_service_melipayamakpattern", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L32", "weight": 1.0, "_origin": "ast", "source": "backend_src_common_services_sms_service", @@ -74533,7 +75706,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/src/common/services/sms.service.ts", - "source_location": "L16", + "source_location": "L39", "weight": 1.0, "_origin": "ast", "source": "backend_src_common_services_sms_service", @@ -74544,7 +75717,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/src/common/services/sms.service.ts", - "source_location": "L4", + "source_location": "L5", "weight": 1.0, "_origin": "ast", "source": "backend_src_common_services_sms_service", @@ -75171,7 +76344,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L25", + "source_location": "L26", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_controller", @@ -75193,7 +76366,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.service.ts", - "source_location": "L12", + "source_location": "L13", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_service", @@ -75204,7 +76377,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.service.ts", - "source_location": "L5", + "source_location": "L6", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_service", @@ -82277,7 +83450,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/admin-panel/src/components/Sidebar.tsx", - "source_location": "L59", + "source_location": "L60", "weight": 1.0, "_origin": "ast", "source": "frontend_admin_panel_src_components_sidebar", @@ -82288,7 +83461,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/admin-panel/src/components/Sidebar.tsx", - "source_location": "L64", + "source_location": "L65", "weight": 1.0, "_origin": "ast", "source": "frontend_admin_panel_src_components_sidebar", @@ -82948,7 +84121,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/admin-panel/src/pages/Settings.tsx", - "source_location": "L7", + "source_location": "L8", "weight": 1.0, "_origin": "ast", "source": "frontend_admin_panel_src_pages_settings", @@ -82966,6 +84139,39 @@ "target": "frontend_admin_panel_src_pages_smartadvisormanager_smartadvisormanager", "confidence_score": 1.0 }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "frontend/admin-panel/src/pages/SmsSettingsPage.tsx", + "source_location": "L33", + "weight": 1.0, + "_origin": "ast", + "source": "frontend_admin_panel_src_pages_smssettingspage", + "target": "frontend_admin_panel_src_pages_smssettingspage_smsconfigstate", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "frontend/admin-panel/src/pages/SmsSettingsPage.tsx", + "source_location": "L45", + "weight": 1.0, + "_origin": "ast", + "source": "frontend_admin_panel_src_pages_smssettingspage", + "target": "frontend_admin_panel_src_pages_smssettingspage_patternitem", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "frontend/admin-panel/src/pages/SmsSettingsPage.tsx", + "source_location": "L54", + "weight": 1.0, + "_origin": "ast", + "source": "frontend_admin_panel_src_pages_smssettingspage", + "target": "frontend_admin_panel_src_pages_smssettingspage_smssettingspage", + "confidence_score": 1.0 + }, { "relation": "contains", "confidence": "EXTRACTED", @@ -83432,7 +84638,18 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/admin-panel/src/routes/adminRoutes.tsx", - "source_location": "L37", + "source_location": "L36", + "weight": 1.0, + "_origin": "ast", + "source": "frontend_admin_panel_src_routes_adminroutes", + "target": "frontend_admin_panel_src_routes_adminroutes_smssettingspage", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "frontend/admin-panel/src/routes/adminRoutes.tsx", + "source_location": "L38", "weight": 1.0, "_origin": "ast", "source": "frontend_admin_panel_src_routes_adminroutes", @@ -83443,7 +84660,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "frontend/admin-panel/src/routes/adminRoutes.tsx", - "source_location": "L43", + "source_location": "L44", "weight": 1.0, "_origin": "ast", "source": "frontend_admin_panel_src_routes_adminroutes", @@ -87559,6 +88776,15 @@ "target": "frontend_admin_panel_src_pages_smartadvisormanager", "confidence_score": 1.0 }, + { + "relation": "dynamic_import", + "confidence": "EXTRACTED", + "source_file": "frontend/admin-panel/src/routes/adminRoutes.tsx", + "_origin": "ast", + "source": "frontend_admin_panel_src_routes_adminroutes", + "target": "frontend_admin_panel_src_pages_smssettingspage", + "confidence_score": 1.0 + }, { "relation": "dynamic_import", "confidence": "EXTRACTED", @@ -89712,62 +90938,73 @@ "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/src/common/services/sms.service.ts", - "source_location": "L107", + "source_location": "L114", "weight": 1.0, "_origin": "ast", "source": "backend_src_common_services_sms_service_smsservice", - "target": "backend_src_common_services_sms_service_smsservice_sendorderconfirmation", + "target": "backend_src_common_services_sms_service_smsservice_parsepatternsxml", "confidence_score": 1.0 }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/src/common/services/sms.service.ts", - "source_location": "L126", + "source_location": "L146", "weight": 1.0, "_origin": "ast", "source": "backend_src_common_services_sms_service_smsservice", - "target": "backend_src_common_services_sms_service_smsservice_sendshippingnotification", + "target": "backend_src_common_services_sms_service_smsservice_getpatterns", "confidence_score": 1.0 }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/src/common/services/sms.service.ts", - "source_location": "L145", + "source_location": "L221", "weight": 1.0, "_origin": "ast", "source": "backend_src_common_services_sms_service_smsservice", - "target": "backend_src_common_services_sms_service_smsservice_sendb2bnotification", + "target": "backend_src_common_services_sms_service_smsservice_addpattern", "confidence_score": 1.0 }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/src/common/services/sms.service.ts", - "source_location": "L163", + "source_location": "L286", "weight": 1.0, "_origin": "ast", "source": "backend_src_common_services_sms_service_smsservice", - "target": "backend_src_common_services_sms_service_smsservice_sendpetcarereminder", + "target": "backend_src_common_services_sms_service_smsservice_editpattern", "confidence_score": 1.0 }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/src/common/services/sms.service.ts", - "source_location": "L182", + "source_location": "L331", "weight": 1.0, "_origin": "ast", "source": "backend_src_common_services_sms_service_smsservice", - "target": "backend_src_common_services_sms_service_smsservice_sendsms", + "target": "backend_src_common_services_sms_service_smsservice_savelocalpattern", "confidence_score": 1.0 }, { "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/src/common/services/sms.service.ts", - "source_location": "L24", + "source_location": "L349", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_common_services_sms_service_smsservice", + "target": "backend_src_common_services_sms_service_smsservice_updatelocalpattern", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L370", "weight": 1.0, "_origin": "ast", "source": "backend_src_common_services_sms_service_smsservice", @@ -89778,13 +91015,112 @@ "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/src/common/services/sms.service.ts", - "source_location": "L92", + "source_location": "L42", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_common_services_sms_service_smsservice", + "target": "backend_src_common_services_sms_service_smsservice_constructor", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L445", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_common_services_sms_service_smsservice", + "target": "backend_src_common_services_sms_service_smsservice_testsms", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L47", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_common_services_sms_service_smsservice", + "target": "backend_src_common_services_sms_service_smsservice_getsmsconfig", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L521", "weight": 1.0, "_origin": "ast", "source": "backend_src_common_services_sms_service_smsservice", "target": "backend_src_common_services_sms_service_smsservice_sendotp", "confidence_score": 1.0 }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L533", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_common_services_sms_service_smsservice", + "target": "backend_src_common_services_sms_service_smsservice_sendorderconfirmation", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L549", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_common_services_sms_service_smsservice", + "target": "backend_src_common_services_sms_service_smsservice_sendshippingnotification", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L565", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_common_services_sms_service_smsservice", + "target": "backend_src_common_services_sms_service_smsservice_sendb2bnotification", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L580", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_common_services_sms_service_smsservice", + "target": "backend_src_common_services_sms_service_smsservice_sendpetcarereminder", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L597", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_common_services_sms_service_smsservice", + "target": "backend_src_common_services_sms_service_smsservice_sendsms", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "backend/src/common/services/sms.service.ts", + "source_location": "L83", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_common_services_sms_service_smsservice", + "target": "backend_src_common_services_sms_service_smsservice_postasmx", + "confidence_score": 1.0 + }, { "relation": "method", "confidence": "EXTRACTED", @@ -91087,7 +92423,7 @@ "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L106", + "source_location": "L107", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller", @@ -91098,7 +92434,7 @@ "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L116", + "source_location": "L117", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller", @@ -91109,7 +92445,7 @@ "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L125", + "source_location": "L126", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller", @@ -91120,7 +92456,73 @@ "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L26", + "source_location": "L136", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller", + "target": "backend_src_settings_settings_controller_settingscontroller_getsmssettings", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L145", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller", + "target": "backend_src_settings_settings_controller_settingscontroller_updatesmssettings", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L154", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller", + "target": "backend_src_settings_settings_controller_settingscontroller_testsms", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L167", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller", + "target": "backend_src_settings_settings_controller_settingscontroller_getpatterns", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L176", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller", + "target": "backend_src_settings_settings_controller_settingscontroller_addpattern", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L189", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller", + "target": "backend_src_settings_settings_controller_settingscontroller_editpattern", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L27", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller", @@ -91131,7 +92533,7 @@ "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L34", + "source_location": "L35", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller", @@ -91142,7 +92544,7 @@ "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L44", + "source_location": "L45", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller", @@ -91153,7 +92555,7 @@ "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L50", + "source_location": "L51", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller", @@ -91164,7 +92566,7 @@ "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L59", + "source_location": "L60", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller", @@ -91175,7 +92577,7 @@ "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L71", + "source_location": "L72", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller", @@ -91186,7 +92588,7 @@ "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L78", + "source_location": "L79", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller", @@ -91197,7 +92599,7 @@ "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L87", + "source_location": "L88", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller", @@ -91208,7 +92610,7 @@ "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L97", + "source_location": "L98", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller", @@ -91219,7 +92621,51 @@ "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.service.ts", - "source_location": "L13", + "source_location": "L103", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_settings_settings_service_settingsservice", + "target": "backend_src_settings_settings_service_settingsservice_testsms", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.service.ts", + "source_location": "L107", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_settings_settings_service_settingsservice", + "target": "backend_src_settings_settings_service_settingsservice_getpatterns", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.service.ts", + "source_location": "L111", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_settings_settings_service_settingsservice", + "target": "backend_src_settings_settings_service_settingsservice_addpattern", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.service.ts", + "source_location": "L115", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_settings_settings_service_settingsservice", + "target": "backend_src_settings_settings_service_settingsservice_editpattern", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.service.ts", + "source_location": "L14", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_service_settingsservice", @@ -91230,7 +92676,7 @@ "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.service.ts", - "source_location": "L15", + "source_location": "L19", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_service_settingsservice", @@ -91241,7 +92687,7 @@ "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.service.ts", - "source_location": "L31", + "source_location": "L35", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_service_settingsservice", @@ -91252,7 +92698,7 @@ "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.service.ts", - "source_location": "L39", + "source_location": "L43", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_service_settingsservice", @@ -91263,7 +92709,7 @@ "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.service.ts", - "source_location": "L43", + "source_location": "L47", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_service_settingsservice", @@ -91274,7 +92720,7 @@ "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.service.ts", - "source_location": "L64", + "source_location": "L68", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_service_settingsservice", @@ -91285,7 +92731,7 @@ "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.service.ts", - "source_location": "L70", + "source_location": "L74", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_service_settingsservice", @@ -91296,13 +92742,35 @@ "relation": "method", "confidence": "EXTRACTED", "source_file": "backend/src/settings/settings.service.ts", - "source_location": "L77", + "source_location": "L81", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_service_settingsservice", "target": "backend_src_settings_settings_service_settingsservice_updatecategorysetting", "confidence_score": 1.0 }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.service.ts", + "source_location": "L90", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_settings_settings_service_settingsservice", + "target": "backend_src_settings_settings_service_settingsservice_getsmssettings", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "backend/src/settings/settings.service.ts", + "source_location": "L94", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_settings_settings_service_settingsservice", + "target": "backend_src_settings_settings_service_settingsservice_updatesmssettings", + "confidence_score": 1.0 + }, { "relation": "method", "confidence": "EXTRACTED", @@ -93947,7 +95415,19 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L72", + "source_location": "L181", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller_addpattern", + "target": "backend_src_settings_settings_service_settingsservice_addpattern" + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L73", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_deletescientificterm", @@ -93959,7 +95439,19 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L98", + "source_location": "L193", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller_editpattern", + "target": "backend_src_settings_settings_service_settingsservice_editpattern" + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L99", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_getfinancialsettings", @@ -93971,7 +95463,19 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L51", + "source_location": "L168", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller_getpatterns", + "target": "backend_src_settings_settings_service_settingsservice_getpatterns" + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L52", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_getscientificterms", @@ -93983,7 +95487,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L79", + "source_location": "L80", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_getseosettings", @@ -93995,7 +95499,19 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L117", + "source_location": "L137", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller_getsmssettings", + "target": "backend_src_settings_settings_service_settingsservice_getsmssettings" + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L118", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_getsystemsettings", @@ -94007,7 +95523,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L35", + "source_location": "L36", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_getuitexts", @@ -94019,7 +95535,19 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L107", + "source_location": "L159", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller_testsms", + "target": "backend_src_settings_settings_service_settingsservice_testsms" + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L108", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_updatefinancialsettings", @@ -94031,7 +95559,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L88", + "source_location": "L89", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_updateseosettings", @@ -94043,7 +95571,19 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L126", + "source_location": "L146", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_settings_settings_controller_settingscontroller_updatesmssettings", + "target": "backend_src_settings_settings_service_settingsservice_updatesmssettings" + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "backend/src/settings/settings.controller.ts", + "source_location": "L127", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_updatesystemsettings", @@ -94055,7 +95595,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L45", + "source_location": "L46", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_updateuitext", @@ -94067,12 +95607,72 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "backend/src/settings/settings.controller.ts", - "source_location": "L63", + "source_location": "L64", "weight": 1.0, "_origin": "ast", "source": "backend_src_settings_settings_controller_settingscontroller_upsertscientificterm", "target": "backend_src_settings_settings_service_settingsservice_upsertscientificterm" }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "backend/src/settings/settings.service.ts", + "source_location": "L112", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_settings_settings_service_settingsservice_addpattern", + "target": "backend_src_common_services_sms_service_smsservice_addpattern" + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "backend/src/settings/settings.service.ts", + "source_location": "L116", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_settings_settings_service_settingsservice_editpattern", + "target": "backend_src_common_services_sms_service_smsservice_editpattern" + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "backend/src/settings/settings.service.ts", + "source_location": "L108", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_settings_settings_service_settingsservice_getpatterns", + "target": "backend_src_common_services_sms_service_smsservice_getpatterns" + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "backend/src/settings/settings.service.ts", + "source_location": "L91", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_settings_settings_service_settingsservice_getsmssettings", + "target": "backend_src_common_services_sms_service_smsservice_getsmsconfig" + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "backend/src/settings/settings.service.ts", + "source_location": "L104", + "weight": 1.0, + "_origin": "ast", + "source": "backend_src_settings_settings_service_settingsservice_testsms", + "target": "backend_src_common_services_sms_service_smsservice_testsms" + }, { "relation": "calls", "context": "call", @@ -94529,5 +96129,5 @@ "source_file": "scripts/compose.prod.yml" } ], - "built_at_commit": "03900e726aa1b531fb07c331f526c0e99774772d" + "built_at_commit": "0934b4f3afabdfa0705262782147cfb2175dfff5" } \ No newline at end of file diff --git a/graphify-out/2026-08-16/manifest.json b/graphify-out/2026-08-16/manifest.json index cfbcb5b..d6c3427 100644 --- a/graphify-out/2026-08-16/manifest.json +++ b/graphify-out/2026-08-16/manifest.json @@ -1,2167 +1,2167 @@ { ".ai_agency/orchestrate.py": { "mtime": 1785148022.0726626, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "43b4b40901868f1bdfd470cf58f40760", "semantic_hash": "43b4b40901868f1bdfd470cf58f40760" }, ".gitea/scripts/with-vpn.sh": { "mtime": 1786799852.1263163, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "451f307a9e42d2240949e7bf39de6667", "semantic_hash": "451f307a9e42d2240949e7bf39de6667" }, "backend/eslint.config.mjs": { "mtime": 1786799852.1343892, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "f442cf2ef8ccf6398d424127422ae23f", "semantic_hash": "f442cf2ef8ccf6398d424127422ae23f" }, "backend/nest-cli.json": { "mtime": 1783764561.6027174, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "b6c9c4b64b7092bea720263a47b574cf", "semantic_hash": "b6c9c4b64b7092bea720263a47b574cf" }, "backend/package.json": { "mtime": 1786799852.1419044, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "75fb7e1c2e31d365e0c695218dc746e1", "semantic_hash": "75fb7e1c2e31d365e0c695218dc746e1" }, "backend/prisma/migrations/20260526145407_init/migration.sql": { "mtime": 1783764561.6120076, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "12a9a675c12bc5ff2d2c3164f803f0ad", "semantic_hash": "12a9a675c12bc5ff2d2c3164f803f0ad" }, "backend/prisma/migrations/20260526160916_add_ui_texts_and_scientific_terms/migration.sql": { "mtime": 1783764561.6134257, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "50977e705726df3fb0f30bd1d3af101b", "semantic_hash": "50977e705726df3fb0f30bd1d3af101b" }, "backend/prisma/scientificTerms.ts": { "mtime": 1785325924.6348126, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "4c449cfeea573afd27cdfd1cdc72d4f3", "semantic_hash": "4c449cfeea573afd27cdfd1cdc72d4f3" }, "backend/prisma/seed-blogs.ts": { "mtime": 1783856792.411456, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "160902e0fe8bc3806f0e94f8e9bbe47a", "semantic_hash": "160902e0fe8bc3806f0e94f8e9bbe47a" }, "backend/prisma/seed-custom.ts": { "mtime": 1786799852.144902, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "23cefb1ea3fc60be141520fd50e3f9f9", "semantic_hash": "23cefb1ea3fc60be141520fd50e3f9f9" }, "backend/prisma/seed-home.ts": { "mtime": 1785327951.1452029, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "e272137f6854ae5645af76e5c52ece55", "semantic_hash": "e272137f6854ae5645af76e5c52ece55" }, "backend/prisma/seed-products.ts": { "mtime": 1786799852.148418, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "66efefdedd1aa162fc58f99923e09e60", "semantic_hash": "66efefdedd1aa162fc58f99923e09e60" }, "backend/prisma/seed-ui-texts.ts": { "mtime": 1786799852.1511903, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "f20d2a934aca5f8512b9f24a92b0e963", "semantic_hash": "f20d2a934aca5f8512b9f24a92b0e963" }, "backend/prisma/seed-wiki.ts": { "mtime": 1783764561.6248367, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "aa4f4e153ac032eb1bcfefb134f90fbd", "semantic_hash": "aa4f4e153ac032eb1bcfefb134f90fbd" }, "backend/prisma/seed.ts": { "mtime": 1786799852.1548822, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "ebeb6ce10f7897192f5e0afc1e24f18c", "semantic_hash": "ebeb6ce10f7897192f5e0afc1e24f18c" }, "backend/prisma/tsconfig.seed.json": { "mtime": 1785327951.1507204, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "5e8b5f1db8f4760d887b13adc4ef35ad", "semantic_hash": "5e8b5f1db8f4760d887b13adc4ef35ad" }, "backend/scripts/generate-openapi.ts": { "mtime": 1786799852.1563904, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "d218cbaae6150ad3a35c162c1a3c02a3", "semantic_hash": "d218cbaae6150ad3a35c162c1a3c02a3" }, "backend/src/admin/admin.controller.spec.ts": { "mtime": 1786799852.1573997, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "05370741c60e581754191c00baf87596", "semantic_hash": "05370741c60e581754191c00baf87596" }, "backend/src/admin/admin.controller.ts": { "mtime": 1786799852.1619034, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "9b9b4d26047b34313357a22658763315", "semantic_hash": "9b9b4d26047b34313357a22658763315" }, "backend/src/admin/admin.module.ts": { "mtime": 1785327951.155252, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "374c3b3227a53230e5992454dd06c07a", "semantic_hash": "374c3b3227a53230e5992454dd06c07a" }, "backend/src/admin/admin.service.spec.ts": { "mtime": 1786799852.1629112, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "0c0360ca02380ad75b9e551cffe11a96", "semantic_hash": "0c0360ca02380ad75b9e551cffe11a96" }, "backend/src/admin/admin.service.ts": { "mtime": 1786799852.1669104, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "7e3b2dc31b1f47bd8c1cb6d35e719e6d", "semantic_hash": "7e3b2dc31b1f47bd8c1cb6d35e719e6d" }, "backend/src/admin/blogs.controller.ts": { "mtime": 1786799852.1701918, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "27d72d1d471239afaba45fe45429b8ee", "semantic_hash": "27d72d1d471239afaba45fe45429b8ee" }, "backend/src/admin/blogs.service.ts": { "mtime": 1786799852.171191, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "1b9fa7006c8ebfa19f2f34f7790a235a", "semantic_hash": "1b9fa7006c8ebfa19f2f34f7790a235a" }, "backend/src/admin/categories.controller.ts": { "mtime": 1786799852.1741924, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "e6322c19042382028966e6eb8dce7c62", "semantic_hash": "e6322c19042382028966e6eb8dce7c62" }, "backend/src/admin/categories.service.ts": { "mtime": 1786799852.1751943, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "7c6b626454aa53d5a3458b5ca738a97c", "semantic_hash": "7c6b626454aa53d5a3458b5ca738a97c" }, "backend/src/admin/dto/admin-query.dto.ts": { "mtime": 1786799852.1787064, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "0a3e421ccf508d1a50ec1cfa8c92a4f9", "semantic_hash": "0a3e421ccf508d1a50ec1cfa8c92a4f9" }, "backend/src/admin/media.controller.ts": { "mtime": 1786799852.18221, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "2474d9cd33e465fba581f17d3d31d091", "semantic_hash": "2474d9cd33e465fba581f17d3d31d091" }, "backend/src/admin/media.service.ts": { "mtime": 1786799852.185216, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "a2cd467f4d85a10459c24d32ce408aae", "semantic_hash": "a2cd467f4d85a10459c24d32ce408aae" }, "backend/src/admin/pets.controller.ts": { "mtime": 1786799852.1862173, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "8734d47651b112f7f1682f629dc4c7b1", "semantic_hash": "8734d47651b112f7f1682f629dc4c7b1" }, "backend/src/admin/pets.service.ts": { "mtime": 1786799852.1887312, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "bfa8e824ecb26c7651be32d34aa3bd9b", "semantic_hash": "bfa8e824ecb26c7651be32d34aa3bd9b" }, "backend/src/admin/reports.controller.ts": { "mtime": 1783764561.642147, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "bf74156968541f38f105fa01454b312a", "semantic_hash": "bf74156968541f38f105fa01454b312a" }, "backend/src/admin/reports.service.ts": { "mtime": 1786799852.189731, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "c4dd8ce40cb75cdd9298cc7cdb7402d4", "semantic_hash": "c4dd8ce40cb75cdd9298cc7cdb7402d4" }, "backend/src/admin/wiki.controller.ts": { "mtime": 1786799852.1917324, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "8b7c8559d6ed6bb2c220d9abd4f622b1", "semantic_hash": "8b7c8559d6ed6bb2c220d9abd4f622b1" }, "backend/src/admin/wiki.service.ts": { "mtime": 1786799852.193324, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "ed627a21f3b767e9855511afefa5273c", "semantic_hash": "ed627a21f3b767e9855511afefa5273c" }, "backend/src/app.controller.spec.ts": { "mtime": 1783764561.6448398, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "4a1c0e1133dbda6f6e8f3e60d984eddf", "semantic_hash": "4a1c0e1133dbda6f6e8f3e60d984eddf" }, "backend/src/app.controller.ts": { "mtime": 1783764561.645849, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "3ab0e83b7d93b85ea489ab994ec79ea1", "semantic_hash": "3ab0e83b7d93b85ea489ab994ec79ea1" }, "backend/src/app.module.ts": { "mtime": 1786867397.6545608, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "c385cb6a93c6b44b9261dedbfb51f987", "semantic_hash": "" }, "backend/src/app.service.ts": { "mtime": 1783764561.6488404, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "cd3fb7836f10de08a725ee1fd4ab36fe", "semantic_hash": "cd3fb7836f10de08a725ee1fd4ab36fe" }, "backend/src/auth/auth.controller.spec.ts": { "mtime": 1785327951.179468, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "7531d00aaa85a80f27e175071ce21c89", "semantic_hash": "7531d00aaa85a80f27e175071ce21c89" }, "backend/src/auth/auth.controller.ts": { "mtime": 1786799852.1998441, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "c2833ed070bf2865ad694c31b0cccd4f", "semantic_hash": "c2833ed070bf2865ad694c31b0cccd4f" }, "backend/src/auth/auth.module.ts": { "mtime": 1786799852.2008438, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "4151fce5f4c5904ee1765e46ecabb084", "semantic_hash": "4151fce5f4c5904ee1765e46ecabb084" }, "backend/src/auth/auth.service.spec.ts": { "mtime": 1786799852.2018433, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "a67a2c622e438a8bbc4014657abc0558", "semantic_hash": "a67a2c622e438a8bbc4014657abc0558" }, "backend/src/auth/auth.service.ts": { "mtime": 1786806867.1729865, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "aebb96de301fff9a729dc6809c9fb8ab", "semantic_hash": "aebb96de301fff9a729dc6809c9fb8ab" }, "backend/src/auth/dto/admin-login.dto.ts": { "mtime": 1786799852.2053578, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "87c2d45e824b94fc06e1a86f433d0435", "semantic_hash": "87c2d45e824b94fc06e1a86f433d0435" }, "backend/src/auth/dto/login.dto.ts": { "mtime": 1783764561.659109, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "9941767ad430851531a9f049c2b65ed5", "semantic_hash": "9941767ad430851531a9f049c2b65ed5" }, "backend/src/auth/dto/register.dto.ts": { "mtime": 1785327951.186477, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "6165fdad9219dee4390732a7f6504e4a", "semantic_hash": "6165fdad9219dee4390732a7f6504e4a" }, "backend/src/auth/dto/send-otp.dto.ts": { "mtime": 1783764561.6611066, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "a99015984cd1320cbd36719809f69d3b", "semantic_hash": "a99015984cd1320cbd36719809f69d3b" }, "backend/src/auth/dto/verify-otp.dto.ts": { "mtime": 1783764561.662112, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "8bc250f7ca73e6cbe4cfa01a99a3c032", "semantic_hash": "8bc250f7ca73e6cbe4cfa01a99a3c032" }, "backend/src/auth/jwt-auth.guard.ts": { "mtime": 1786799852.2058628, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "f98f32eaf66499355a5e61632ac82aa5", "semantic_hash": "f98f32eaf66499355a5e61632ac82aa5" }, "backend/src/auth/jwt.strategy.ts": { "mtime": 1786799852.2068708, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "d09473fa550281720c27958e2a73e7e6", "semantic_hash": "d09473fa550281720c27958e2a73e7e6" }, "backend/src/auth/roles.decorator.ts": { "mtime": 1786799852.2083795, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "0d86f61ddaab0d2f4d5f9b331a5e2541", "semantic_hash": "0d86f61ddaab0d2f4d5f9b331a5e2541" }, "backend/src/auth/roles.guard.ts": { "mtime": 1786799852.2090034, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "10b31496903f54383d35b90a55c3e84a", "semantic_hash": "10b31496903f54383d35b90a55c3e84a" }, "backend/src/b2b/b2b.controller.ts": { "mtime": 1786799852.2120132, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "6f0d65aee6b69a67e8d3d14fb1bf7823", "semantic_hash": "6f0d65aee6b69a67e8d3d14fb1bf7823" }, "backend/src/b2b/b2b.module.ts": { "mtime": 1786799852.2120132, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "b1777d0004a54e8f89328879a20aa171", "semantic_hash": "b1777d0004a54e8f89328879a20aa171" }, "backend/src/b2b/b2b.service.ts": { "mtime": 1786799852.2140093, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "d025e172746789d44802755b8bb441bf", "semantic_hash": "d025e172746789d44802755b8bb441bf" }, "backend/src/banners/banners.controller.ts": { "mtime": 1786799852.2150102, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "30e1fba8ef3e98e127cf400aac0f71e8", "semantic_hash": "30e1fba8ef3e98e127cf400aac0f71e8" }, "backend/src/banners/banners.module.ts": { "mtime": 1786799852.2160103, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "3dca61f7cf64dfb5f827469c7f14c655", "semantic_hash": "3dca61f7cf64dfb5f827469c7f14c655" }, "backend/src/banners/banners.service.ts": { "mtime": 1786799852.2160103, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "777061ff84dc642fee69803ce9ac2de9", "semantic_hash": "777061ff84dc642fee69803ce9ac2de9" }, "backend/src/blogs/blogs.controller.ts": { "mtime": 1786799852.21801, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "bf17d5731c6a433e3f119a001462dca6", "semantic_hash": "bf17d5731c6a433e3f119a001462dca6" }, "backend/src/blogs/blogs.module.ts": { "mtime": 1783764561.665678, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "3fc38d55e03319844c6c8cbb3017364b", "semantic_hash": "3fc38d55e03319844c6c8cbb3017364b" }, "backend/src/blogs/blogs.service.ts": { "mtime": 1786799852.21901, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "f5b5232ac11a40796b37224fe7de8454", "semantic_hash": "f5b5232ac11a40796b37224fe7de8454" }, "backend/src/blogs/dto/create-blog.dto.ts": { "mtime": 1783764561.671557, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "a1938b347011dd71bfd99801b7453305", "semantic_hash": "a1938b347011dd71bfd99801b7453305" }, "backend/src/blogs/dto/update-blog.dto.ts": { "mtime": 1783764561.6737125, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "15612098d2a3cac84249518465104370", "semantic_hash": "15612098d2a3cac84249518465104370" }, "backend/src/blogs/entities/blog.entity.ts": { "mtime": 1783764561.675101, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "7fadae161e6d38110bdc8ce71f9f1bdd", "semantic_hash": "7fadae161e6d38110bdc8ce71f9f1bdd" }, "backend/src/cms/cms.controller.ts": { "mtime": 1785327951.196913, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "72482ba30a017f8ed1ef26b423eb83d1", "semantic_hash": "72482ba30a017f8ed1ef26b423eb83d1" }, "backend/src/cms/cms.module.ts": { "mtime": 1785148022.206298, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "831ca7e3ee288322e05ddeeb1b02229d", "semantic_hash": "831ca7e3ee288322e05ddeeb1b02229d" }, "backend/src/cms/cms.service.ts": { "mtime": 1785327951.1979403, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "f9da5085411e9fe60ab0c35fb852ef56", "semantic_hash": "f9da5085411e9fe60ab0c35fb852ef56" }, "backend/src/cms/dto/cms.dto.ts": { "mtime": 1785327951.1999955, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "b91b502820b503e4ca63dd36028608d5", "semantic_hash": "b91b502820b503e4ca63dd36028608d5" }, "backend/src/common/decorators/roles.decorator.ts": { "mtime": 1786799852.2205224, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "155f61ea03e3ef7d3d5e2fee554f8428", "semantic_hash": "155f61ea03e3ef7d3d5e2fee554f8428" }, "backend/src/common/dto/pagination.dto.ts": { "mtime": 1785327951.201989, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "6e66fdace411feba9d947fe0f678c900", "semantic_hash": "6e66fdace411feba9d947fe0f678c900" }, "backend/src/common/filters/http-exception.filter.ts": { "mtime": 1786799852.2245283, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "674165aa2cd1e2f65039f2a7774234bb", "semantic_hash": "674165aa2cd1e2f65039f2a7774234bb" }, "backend/src/common/filters/prisma-exception.filter.ts": { "mtime": 1785330913.1437092, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "ab7ab9b4007e538b6451777dbca63d23", "semantic_hash": "ab7ab9b4007e538b6451777dbca63d23" }, "backend/src/common/guards/roles.guard.spec.ts": { "mtime": 1786799852.2255569, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "0ee2661808205a0bb03a45d4cbca4472", "semantic_hash": "0ee2661808205a0bb03a45d4cbca4472" }, "backend/src/common/guards/roles.guard.ts": { "mtime": 1786799852.2265651, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "72eadcd106153ccaad697234d8c0d281", "semantic_hash": "72eadcd106153ccaad697234d8c0d281" }, "backend/src/common/interceptors/decimal.interceptor.spec.ts": { "mtime": 1786799852.2275658, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "bbf53de234b9963923c3163a10cd8e17", "semantic_hash": "bbf53de234b9963923c3163a10cd8e17" }, "backend/src/common/interceptors/decimal.interceptor.ts": { "mtime": 1786799852.2275658, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "71f8f0bfa748a8cbeb5f4627f972261d", "semantic_hash": "71f8f0bfa748a8cbeb5f4627f972261d" }, "backend/src/common/metrics.controller.ts": { "mtime": 1786799852.229073, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "6380f2c18000ac46235e7adde60329dc", "semantic_hash": "6380f2c18000ac46235e7adde60329dc" }, "backend/src/common/schemas/error-response.schema.ts": { "mtime": 1785330913.1447015, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "e2d4a690aa006a63ad617d2c21c7d11d", "semantic_hash": "e2d4a690aa006a63ad617d2c21c7d11d" }, "backend/src/common/schemas/paginated-response.schema.ts": { "mtime": 1786799852.2300823, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "6ea7e2edc0ab662b3f244e0ffb8e5f19", "semantic_hash": "6ea7e2edc0ab662b3f244e0ffb8e5f19" }, "backend/src/common/services/sms.service.ts": { - "mtime": 1786806849.0582976, - "seen": 1786867610.8018034, - "ast_hash": "985a8b4a9872f6404ba98237bb64d2d9", - "semantic_hash": "985a8b4a9872f6404ba98237bb64d2d9" + "mtime": 1786868465.1420019, + "seen": 1786868582.9483573, + "ast_hash": "8ae27038407a5b5b914e4eed2c9070bc", + "semantic_hash": "" }, "backend/src/common/sms.module.ts": { "mtime": 1785330750.996125, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "c2621fbe872597ca7fbc23fc7e261665", "semantic_hash": "c2621fbe872597ca7fbc23fc7e261665" }, "backend/src/contact/contact.controller.ts": { "mtime": 1786799852.2345963, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "1fa2ff3dd39a3cd23860f5e2ec4f351f", "semantic_hash": "1fa2ff3dd39a3cd23860f5e2ec4f351f" }, "backend/src/contact/contact.module.ts": { "mtime": 1786799852.236599, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "3522066b9bc0d12c79ee13138ec94a23", "semantic_hash": "3522066b9bc0d12c79ee13138ec94a23" }, "backend/src/contact/contact.service.ts": { "mtime": 1786799852.236599, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "b5d9c828871c871995ce79f56081f565", "semantic_hash": "b5d9c828871c871995ce79f56081f565" }, "backend/src/home/dto/create-home.dto.ts": { "mtime": 1783764561.6823654, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "b20293c0606e764e43e19412e8b94e58", "semantic_hash": "b20293c0606e764e43e19412e8b94e58" }, "backend/src/home/dto/update-home.dto.ts": { "mtime": 1783764561.6823654, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "fdbec5105f68e9ef5edca26c91c2a01b", "semantic_hash": "fdbec5105f68e9ef5edca26c91c2a01b" }, "backend/src/home/entities/home.entity.ts": { "mtime": 1783764561.6848848, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "f7e5b57b1dbb4fa28600ebdd5c86a73c", "semantic_hash": "f7e5b57b1dbb4fa28600ebdd5c86a73c" }, "backend/src/home/home.controller.ts": { "mtime": 1785327951.2120874, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "3474997a729a3a47f1872f489c28e70e", "semantic_hash": "3474997a729a3a47f1872f489c28e70e" }, "backend/src/home/home.module.ts": { "mtime": 1783764561.687108, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "b8671f0d293617cf95cc2e9aef8ab11a", "semantic_hash": "b8671f0d293617cf95cc2e9aef8ab11a" }, "backend/src/home/home.service.ts": { "mtime": 1785327951.2140872, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "20073496a83b447238b4e8ab793573ec", "semantic_hash": "20073496a83b447238b4e8ab793573ec" }, "backend/src/ingredients/ingredients.controller.ts": { "mtime": 1786799852.2375965, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "b591e9eeddc544d5224bbf8dc747f71e", "semantic_hash": "b591e9eeddc544d5224bbf8dc747f71e" }, "backend/src/ingredients/ingredients.module.ts": { "mtime": 1786799852.2385964, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "928f762b562c624011ca6c7e72543d0d", "semantic_hash": "928f762b562c624011ca6c7e72543d0d" }, "backend/src/ingredients/ingredients.service.ts": { "mtime": 1786799852.2401083, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "7d07a0fb1cdebe81d9ecef7604701bed", "semantic_hash": "7d07a0fb1cdebe81d9ecef7604701bed" }, "backend/src/main.ts": { "mtime": 1786799852.243122, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "4057fda9133919c881b316973109ea18", "semantic_hash": "4057fda9133919c881b316973109ea18" }, "backend/src/orders/dto/create-order.dto.ts": { "mtime": 1785327951.218626, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "de9e39544ff4cfbbc8233318b2b71c67", "semantic_hash": "de9e39544ff4cfbbc8233318b2b71c67" }, "backend/src/orders/orders.controller.spec.ts": { "mtime": 1785327951.2196276, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "03aae30c09648646afbd6f8862d2d12b", "semantic_hash": "03aae30c09648646afbd6f8862d2d12b" }, "backend/src/orders/orders.controller.ts": { "mtime": 1786799852.2451172, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "521989f02a231963b2e59201cc5c53f9", "semantic_hash": "521989f02a231963b2e59201cc5c53f9" }, "backend/src/orders/orders.module.ts": { "mtime": 1783764561.6975982, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "10e4c03ae468f0412d882306bdb20401", "semantic_hash": "10e4c03ae468f0412d882306bdb20401" }, "backend/src/orders/orders.service.spec.ts": { "mtime": 1786799852.2461178, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "977cf4033204a7b27252a939aa57664f", "semantic_hash": "977cf4033204a7b27252a939aa57664f" }, "backend/src/orders/orders.service.ts": { "mtime": 1786867405.6071382, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "464d0504b32c416bc4553c38333b1006", "semantic_hash": "" }, "backend/src/pets/dto/create-health-log.dto.ts": { "mtime": 1785327951.2294433, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "da823d24eecce83c17760374fbc99131", "semantic_hash": "da823d24eecce83c17760374fbc99131" }, "backend/src/pets/dto/create-pet.dto.ts": { "mtime": 1785327951.2309487, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "22e442118c4b4c44d887a9e72bf416e2", "semantic_hash": "22e442118c4b4c44d887a9e72bf416e2" }, "backend/src/pets/dto/create-reminder.dto.ts": { "mtime": 1785327951.2319582, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "61e74b013460e406bd10197b3d3a95df", "semantic_hash": "61e74b013460e406bd10197b3d3a95df" }, "backend/src/pets/dto/update-pet.dto.ts": { "mtime": 1783764561.7095575, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "a2086bbebe7ca2718d4933b9828b456d", "semantic_hash": "a2086bbebe7ca2718d4933b9828b456d" }, "backend/src/pets/pets.controller.spec.ts": { "mtime": 1786799852.2481189, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "ea25cbbc55569e44ea0ceaf8c7af5111", "semantic_hash": "ea25cbbc55569e44ea0ceaf8c7af5111" }, "backend/src/pets/pets.controller.ts": { "mtime": 1786799852.2491202, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "2828621e5d0f3ecf777205e612350864", "semantic_hash": "2828621e5d0f3ecf777205e612350864" }, "backend/src/pets/pets.module.ts": { "mtime": 1783764561.71447, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "1e30ca9c5823c33d4f3266d5b48fee01", "semantic_hash": "1e30ca9c5823c33d4f3266d5b48fee01" }, "backend/src/pets/pets.service.spec.ts": { "mtime": 1785327951.238208, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "49e5e2df9d623a5510db8d9c3eefdbd5", "semantic_hash": "49e5e2df9d623a5510db8d9c3eefdbd5" }, "backend/src/pets/pets.service.ts": { "mtime": 1786799852.2501173, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "f34775f4106e2ac19efff3a9b140db3f", "semantic_hash": "f34775f4106e2ac19efff3a9b140db3f" }, "backend/src/prescriptions/prescriptions.controller.ts": { "mtime": 1786799852.2537484, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "3b657f5cac989600c165b8eac3a6a2af", "semantic_hash": "3b657f5cac989600c165b8eac3a6a2af" }, "backend/src/prescriptions/prescriptions.module.ts": { "mtime": 1786799852.2544656, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "43a45adbc46a68b880deba40a89f8262", "semantic_hash": "43a45adbc46a68b880deba40a89f8262" }, "backend/src/prescriptions/prescriptions.service.ts": { "mtime": 1786799852.2565627, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "90413255985e7097e225067a1bf2cb3d", "semantic_hash": "90413255985e7097e225067a1bf2cb3d" }, "backend/src/prisma/prisma.module.ts": { "mtime": 1783764561.7181997, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "3505a1831c78f0a9475e4ce0f0092410", "semantic_hash": "3505a1831c78f0a9475e4ce0f0092410" }, "backend/src/prisma/prisma.service.ts": { "mtime": 1785327951.2412095, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "f3eee7e045708ad54099bf275985a1a3", "semantic_hash": "f3eee7e045708ad54099bf275985a1a3" }, "backend/src/products/dto/get-products.dto.ts": { "mtime": 1786799852.2602715, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "bed3d5bd69f866349bfc408bfea60e78", "semantic_hash": "bed3d5bd69f866349bfc408bfea60e78" }, "backend/src/products/products.controller.spec.ts": { "mtime": 1785327951.243281, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "6fde28604e799d5c5c0d2c6c2fcb4372", "semantic_hash": "6fde28604e799d5c5c0d2c6c2fcb4372" }, "backend/src/products/products.controller.ts": { "mtime": 1786799852.2612817, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "db015311d34c7985c1c4ab818070b297", "semantic_hash": "db015311d34c7985c1c4ab818070b297" }, "backend/src/products/products.module.ts": { "mtime": 1783764561.7236724, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "a70b434bb1a044adf542a78cd9461264", "semantic_hash": "a70b434bb1a044adf542a78cd9461264" }, "backend/src/products/products.service.spec.ts": { "mtime": 1786799852.2632794, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "8a76d805cab28967eec85b1cd03d608c", "semantic_hash": "8a76d805cab28967eec85b1cd03d608c" }, "backend/src/products/products.service.ts": { "mtime": 1786799852.264283, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "f182bf1a9e4c5fb214e1cfad82ff5015", "semantic_hash": "f182bf1a9e4c5fb214e1cfad82ff5015" }, "backend/src/redis/redis.module.ts": { "mtime": 1783764561.727662, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "0856864a521a862369a89de9b2d3c9f0", "semantic_hash": "0856864a521a862369a89de9b2d3c9f0" }, "backend/src/redis/redis.service.spec.ts": { "mtime": 1783764561.7286723, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "f3a16f7f1721be9e6ddb7ddd2949ea6c", "semantic_hash": "f3a16f7f1721be9e6ddb7ddd2949ea6c" }, "backend/src/redis/redis.service.ts": { "mtime": 1786799852.2652795, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "61ce0d75a93deb28b103b05bf82ebb18", "semantic_hash": "61ce0d75a93deb28b103b05bf82ebb18" }, "backend/src/seo/seo.controller.ts": { "mtime": 1785327951.2472832, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "4c11a3beaa94a769acf206bf9ff279b0", "semantic_hash": "4c11a3beaa94a769acf206bf9ff279b0" }, "backend/src/seo/seo.module.ts": { "mtime": 1785148022.268581, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "4160982445b855a6406e8713e95bf91b", "semantic_hash": "4160982445b855a6406e8713e95bf91b" }, "backend/src/seo/seo.service.ts": { "mtime": 1785327951.2482803, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "37a024bc45689db9ba8b8f7f9cd540b0", "semantic_hash": "37a024bc45689db9ba8b8f7f9cd540b0" }, "backend/src/settings/settings.controller.spec.ts": { "mtime": 1786799852.2672803, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "91d945ac11e32d343e37c8c265e6dbc4", "semantic_hash": "91d945ac11e32d343e37c8c265e6dbc4" }, "backend/src/settings/settings.controller.ts": { - "mtime": 1786799852.2704334, - "seen": 1786867610.8018034, - "ast_hash": "3e56ffb7ca849fe323ad17314e8ad8ba", - "semantic_hash": "3e56ffb7ca849fe323ad17314e8ad8ba" + "mtime": 1786868479.4935088, + "seen": 1786868582.9483573, + "ast_hash": "f1d2d0e2491c344e43f5cfd0f2cfb2a4", + "semantic_hash": "" }, "backend/src/settings/settings.module.ts": { "mtime": 1783764561.7355156, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "b84a45f92537de41c7c3821847271004", "semantic_hash": "b84a45f92537de41c7c3821847271004" }, "backend/src/settings/settings.service.spec.ts": { "mtime": 1783764561.7368565, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "06de60c1699a6f72858da21e9c6bf45a", "semantic_hash": "06de60c1699a6f72858da21e9c6bf45a" }, "backend/src/settings/settings.service.ts": { - "mtime": 1786799852.273441, - "seen": 1786867610.8018034, - "ast_hash": "ed14daad3ddb80e6c1d7d80b622b7d6a", - "semantic_hash": "ed14daad3ddb80e6c1d7d80b622b7d6a" + "mtime": 1786868471.687074, + "seen": 1786868582.9483573, + "ast_hash": "b15eb59a1488fdbf7dc0e3d8e38a323f", + "semantic_hash": "" }, "backend/src/smart-advisor/smart-advisor.controller.ts": { "mtime": 1786799852.2754414, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "eacb4fc2f3d82eb3833f4b04d851d4c3", "semantic_hash": "eacb4fc2f3d82eb3833f4b04d851d4c3" }, "backend/src/smart-advisor/smart-advisor.module.ts": { "mtime": 1786799852.2764418, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "40d2882f5f8a0733c940c754631be24b", "semantic_hash": "40d2882f5f8a0733c940c754631be24b" }, "backend/src/smart-advisor/smart-advisor.service.ts": { "mtime": 1786799852.2774403, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "1824f7151599e310cd2de7435e345afe", "semantic_hash": "1824f7151599e310cd2de7435e345afe" }, "backend/src/testimonials/testimonials.controller.ts": { "mtime": 1786799852.2794418, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "07d866d58d6cbba997122eaa38dcb36c", "semantic_hash": "07d866d58d6cbba997122eaa38dcb36c" }, "backend/src/testimonials/testimonials.module.ts": { "mtime": 1786799852.2794418, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "e2778d19b65d66f61d35f1a98333c873", "semantic_hash": "e2778d19b65d66f61d35f1a98333c873" }, "backend/src/testimonials/testimonials.service.ts": { "mtime": 1786799852.2814713, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "c22a3a4af898925abe30968a54a906c7", "semantic_hash": "c22a3a4af898925abe30968a54a906c7" }, "backend/src/users/dto/address.dto.ts": { "mtime": 1783764561.7398715, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "d42a8da106b862f8934b4268e5974025", "semantic_hash": "d42a8da106b862f8934b4268e5974025" }, "backend/src/users/dto/update-profile.dto.ts": { "mtime": 1783764561.7428684, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "167f1c8b7d1c23dd8bd7b42874df49fe", "semantic_hash": "167f1c8b7d1c23dd8bd7b42874df49fe" }, "backend/src/users/users.controller.spec.ts": { "mtime": 1785327951.2537966, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "8879233da361926bf496aa33fc24a0a4", "semantic_hash": "8879233da361926bf496aa33fc24a0a4" }, "backend/src/users/users.controller.ts": { "mtime": 1786799852.2824814, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "0c14b005ce0dddc5c6be9fb33672c659", "semantic_hash": "0c14b005ce0dddc5c6be9fb33672c659" }, "backend/src/users/users.module.ts": { "mtime": 1783764561.7481544, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "6a22d47a72af32e6726ff5025c1d6f0b", "semantic_hash": "6a22d47a72af32e6726ff5025c1d6f0b" }, "backend/src/users/users.service.spec.ts": { "mtime": 1786799852.2834806, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "f94ef87eb1f8de11ecd622f47181dbb7", "semantic_hash": "f94ef87eb1f8de11ecd622f47181dbb7" }, "backend/src/users/users.service.ts": { "mtime": 1786799852.2851145, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "2716fde6af68a135164ac38bdbd5433a", "semantic_hash": "2716fde6af68a135164ac38bdbd5433a" }, "backend/src/videos/dto/create-video.dto.ts": { "mtime": 1785327951.2638545, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "93c3df7389d26042b25983d869ea30e9", "semantic_hash": "93c3df7389d26042b25983d869ea30e9" }, "backend/src/videos/dto/get-videos-query.dto.ts": { "mtime": 1786799852.2876434, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "22029a395d4906dec82a0472af9827a2", "semantic_hash": "22029a395d4906dec82a0472af9827a2" }, "backend/src/videos/videos.controller.ts": { "mtime": 1786799852.2911532, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "64de50207aa54dc4d9866fb41a3cf11e", "semantic_hash": "64de50207aa54dc4d9866fb41a3cf11e" }, "backend/src/videos/videos.module.ts": { "mtime": 1785148022.3065836, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "79c989585f2c5da29199d914ca54abdf", "semantic_hash": "79c989585f2c5da29199d914ca54abdf" }, "backend/src/videos/videos.service.ts": { "mtime": 1786799852.292168, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "86691b11bb46d333ceb620030936b6dc", "semantic_hash": "86691b11bb46d333ceb620030936b6dc" }, "backend/src/wholesale/dto/wholesale-apply.dto.ts": { "mtime": 1785148022.3176222, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "dda43ea50daed66d9ddf56ff14c2ac31", "semantic_hash": "dda43ea50daed66d9ddf56ff14c2ac31" }, "backend/src/wholesale/wholesale.controller.ts": { "mtime": 1786799852.294177, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "85347767e9b0508aa27c8fc2ada57403", "semantic_hash": "85347767e9b0508aa27c8fc2ada57403" }, "backend/src/wholesale/wholesale.module.ts": { "mtime": 1785148022.3287463, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "431fcacfcaaf5ee3872869c796581db3", "semantic_hash": "431fcacfcaaf5ee3872869c796581db3" }, "backend/src/wholesale/wholesale.service.ts": { "mtime": 1785330913.1492333, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "f17e69107c7ddb8baedfb9fa1177c8a0", "semantic_hash": "f17e69107c7ddb8baedfb9fa1177c8a0" }, "backend/src/wiki/dto/create-wiki.dto.ts": { "mtime": 1783764561.7529333, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "bff0bff5978c808b3f6c7c0471ecc09f", "semantic_hash": "bff0bff5978c808b3f6c7c0471ecc09f" }, "backend/src/wiki/dto/update-wiki.dto.ts": { "mtime": 1783764561.753945, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "aafeafc832089a9d47f2b09c15f5166c", "semantic_hash": "aafeafc832089a9d47f2b09c15f5166c" }, "backend/src/wiki/entities/wiki.entity.ts": { "mtime": 1783764561.7550395, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "0babba8c13baba4a2ad2fd70395060f2", "semantic_hash": "0babba8c13baba4a2ad2fd70395060f2" }, "backend/src/wiki/wiki.controller.ts": { "mtime": 1785327951.2728505, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "ca3a7279ecce06e6747e4b5d1b83f042", "semantic_hash": "ca3a7279ecce06e6747e4b5d1b83f042" }, "backend/src/wiki/wiki.module.ts": { "mtime": 1783764561.756925, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "22c999c57982f13d0526d25d7990b745", "semantic_hash": "22c999c57982f13d0526d25d7990b745" }, "backend/src/wiki/wiki.service.ts": { "mtime": 1786799852.295173, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "4f9a02a302512579c6eaed6e06da679e", "semantic_hash": "4f9a02a302512579c6eaed6e06da679e" }, "backend/test/app-audit-verification.e2e-spec.ts": { "mtime": 1786799852.2961748, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "5df6593dd9fd1f88f2b1e13f44b7b350", "semantic_hash": "5df6593dd9fd1f88f2b1e13f44b7b350" }, "backend/test/app.e2e-spec.ts": { "mtime": 1786799852.297175, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "8373bf2ee758abe47f5681e898cde506", "semantic_hash": "8373bf2ee758abe47f5681e898cde506" }, "backend/tsconfig.build.json": { "mtime": 1783764561.763447, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "d3d6c627ed113034e4138ae830ca9221", "semantic_hash": "d3d6c627ed113034e4138ae830ca9221" }, "backend/tsconfig.json": { "mtime": 1783764561.7640622, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "ae8bbc768a8e7382d2aa46d0c9140f5f", "semantic_hash": "ae8bbc768a8e7382d2aa46d0c9140f5f" }, "docs/audit/build_manifest.js": { "mtime": 1786799852.3383932, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "5865147d3b17e6ddad0be4f4b9dc00d0", "semantic_hash": "5865147d3b17e6ddad0be4f4b9dc00d0" }, "docs/audit/generate_classification.js": { "mtime": 1786799852.3393898, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "01cdce5da0cdc41b49a7e9560a0b8ae9", "semantic_hash": "01cdce5da0cdc41b49a7e9560a0b8ae9" }, "docs/audit/generate_evidence.js": { "mtime": 1786799852.3403902, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "f31d1dafad3e771e9602776460c04761", "semantic_hash": "f31d1dafad3e771e9602776460c04761" }, "docs/audit/generate_ledger.js": { "mtime": 1786799852.3418972, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "c502805af184c8efe08a66030ff0203b", "semantic_hash": "c502805af184c8efe08a66030ff0203b" }, "docs/audit/generate_manifest.js": { "mtime": 1786799852.3418972, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "d9ead302d1023a72718e60261725e429", "semantic_hash": "d9ead302d1023a72718e60261725e429" }, "docs/audit/rebuild_honest_ledger.js": { "mtime": 1786799852.348953, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "5a505fbc55dbabd0557377ce8de0643a", "semantic_hash": "5a505fbc55dbabd0557377ce8de0643a" }, "docs/audit/sync_honest_manifest.js": { "mtime": 1786799852.3499532, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "3f2ec3b689e720b6e50fe4666a9b8bb0", "semantic_hash": "3f2ec3b689e720b6e50fe4666a9b8bb0" }, "docs/audit/sync_manifest.js": { "mtime": 1786799852.3509533, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "7315ba82c162ad4c2a0cec307966c580", "semantic_hash": "7315ba82c162ad4c2a0cec307966c580" }, "docs/audit/validate_evidence_grade.js": { "mtime": 1786799852.351954, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "5f68ed3e8236ececf82e5da4ac47d93b", "semantic_hash": "5f68ed3e8236ececf82e5da4ac47d93b" }, "docs/audit/validate_integrity.js": { "mtime": 1786799852.3529525, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "7bd05a71bd8c0c23db65db5201d3c030", "semantic_hash": "7bd05a71bd8c0c23db65db5201d3c030" }, "frontend/admin-panel/eslint.config.js": { "mtime": 1785651092.991237, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "0355276bc79439afe3c53e3a2470ca1e", "semantic_hash": "0355276bc79439afe3c53e3a2470ca1e" }, "frontend/admin-panel/package.json": { "mtime": 1785570791.953119, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "f9e35fdccbe93fd60b511f72bf414766", "semantic_hash": "f9e35fdccbe93fd60b511f72bf414766" }, "frontend/admin-panel/postcss.config.js": { "mtime": 1783764561.7962818, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "c1ee9ce6a4fe04105dbf8e619390df5e", "semantic_hash": "c1ee9ce6a4fe04105dbf8e619390df5e" }, "frontend/admin-panel/src/App.tsx": { "mtime": 1786799852.3654811, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "140226fcd94080d00f56e2f8b65f95e5", "semantic_hash": "140226fcd94080d00f56e2f8b65f95e5" }, "frontend/admin-panel/src/components/Layout.tsx": { "mtime": 1784621786.9585948, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "e2192f9b6c86f07ff6c6ec9bf9d1cb71", "semantic_hash": "e2192f9b6c86f07ff6c6ec9bf9d1cb71" }, "frontend/admin-panel/src/components/ProtectedRoute.tsx": { "mtime": 1786799852.369164, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "bcb0329847fb25e9fe1e990a30609210", "semantic_hash": "bcb0329847fb25e9fe1e990a30609210" }, "frontend/admin-panel/src/components/Sidebar.tsx": { - "mtime": 1786804735.4326136, - "seen": 1786867610.8018034, - "ast_hash": "64a3437e44e5cc7dd309647ea5b395c9", - "semantic_hash": "64a3437e44e5cc7dd309647ea5b395c9" + "mtime": 1786868200.8843615, + "seen": 1786868582.9483573, + "ast_hash": "58008d2be4f7afa194c361055d910bd8", + "semantic_hash": "" }, "frontend/admin-panel/src/components/Topbar.tsx": { "mtime": 1786799852.3798888, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "d35c14dd456576600e1efdebfdc152b6", "semantic_hash": "d35c14dd456576600e1efdebfdc152b6" }, "frontend/admin-panel/src/components/ui/ConfirmModal.tsx": { "mtime": 1783856792.9765356, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "7cca14d688e9951287951d99ed323c5e", "semantic_hash": "7cca14d688e9951287951d99ed323c5e" }, "frontend/admin-panel/src/components/ui/MediaSelector.tsx": { "mtime": 1786799852.3839262, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "a6edd17cd09ff60025be1bb862834cb3", "semantic_hash": "a6edd17cd09ff60025be1bb862834cb3" }, "frontend/admin-panel/src/components/ui/Pagination.tsx": { "mtime": 1786799852.387442, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "8ab314264c858bcd6cb53fc4c9985cf0", "semantic_hash": "8ab314264c858bcd6cb53fc4c9985cf0" }, "frontend/admin-panel/src/components/ui/Skeleton.tsx": { "mtime": 1783856792.9775357, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "dd6a1fca8a8db341521aa315829143e0", "semantic_hash": "dd6a1fca8a8db341521aa315829143e0" }, "frontend/admin-panel/src/components/ui/Spinner.tsx": { "mtime": 1783856792.9790492, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "32a95c9dc25ac088596fdccd17d7284a", "semantic_hash": "32a95c9dc25ac088596fdccd17d7284a" }, "frontend/admin-panel/src/main.tsx": { "mtime": 1783764561.8293335, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "c5ee78875221dca9ed6b4e4b41e63cea", "semantic_hash": "c5ee78875221dca9ed6b4e4b41e63cea" }, "frontend/admin-panel/src/pages/B2BManager.tsx": { "mtime": 1786799852.3914404, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "6cbd7610d61fa9fc98b797fe2962d3ee", "semantic_hash": "6cbd7610d61fa9fc98b797fe2962d3ee" }, "frontend/admin-panel/src/pages/BannersManager.tsx": { "mtime": 1786799852.392442, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "74ba523d55b81515b32fa279a75ccec9", "semantic_hash": "74ba523d55b81515b32fa279a75ccec9" }, "frontend/admin-panel/src/pages/Blogs.tsx": { "mtime": 1786799852.3959572, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "7e351212d40fc0308c460d6b1bc2a87c", "semantic_hash": "7e351212d40fc0308c460d6b1bc2a87c" }, "frontend/admin-panel/src/pages/CMS.tsx": { "mtime": 1786799852.4009578, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "85f86915c2f77799a2e628c3a5119b3d", "semantic_hash": "85f86915c2f77799a2e628c3a5119b3d" }, "frontend/admin-panel/src/pages/Categories.tsx": { "mtime": 1786799852.4049785, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "6da24d6cce9446f65eca3c8111314b38", "semantic_hash": "6da24d6cce9446f65eca3c8111314b38" }, "frontend/admin-panel/src/pages/ContactSubmissions.tsx": { "mtime": 1786799852.405538, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "203da6d16abc779117c2f0492f7c0922", "semantic_hash": "203da6d16abc779117c2f0492f7c0922" }, "frontend/admin-panel/src/pages/Coupons.tsx": { "mtime": 1786799852.408546, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "a358e523babb2d3719346af8dce1711c", "semantic_hash": "a358e523babb2d3719346af8dce1711c" }, "frontend/admin-panel/src/pages/Dashboard.tsx": { "mtime": 1786799852.4125473, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "2fca7eb934bd2f3916d59d5cb61448fc", "semantic_hash": "2fca7eb934bd2f3916d59d5cb61448fc" }, "frontend/admin-panel/src/pages/FinancialSettingsPage.tsx": { "mtime": 1786799852.4135468, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "24ab13cf2be97d437714697dd0044b14", "semantic_hash": "24ab13cf2be97d437714697dd0044b14" }, "frontend/admin-panel/src/pages/IngredientsManager.tsx": { "mtime": 1786799852.415056, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "f44be0b2944f7184ccd4d55aaa94e48c", "semantic_hash": "f44be0b2944f7184ccd4d55aaa94e48c" }, "frontend/admin-panel/src/pages/Login.tsx": { "mtime": 1786799852.419064, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "3f8678d6df3a6eff5fbb5004da17dedc", "semantic_hash": "3f8678d6df3a6eff5fbb5004da17dedc" }, "frontend/admin-panel/src/pages/Media.tsx": { "mtime": 1786799852.422264, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "a5f04af7a1393abab3d932e231548271", "semantic_hash": "a5f04af7a1393abab3d932e231548271" }, "frontend/admin-panel/src/pages/Orders.tsx": { "mtime": 1786799852.4267843, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "828a26b349a313c73ebefc7040ec314a", "semantic_hash": "828a26b349a313c73ebefc7040ec314a" }, "frontend/admin-panel/src/pages/Pets.tsx": { "mtime": 1786799852.4297843, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "b645e14602c3d8317c03686ae840b22d", "semantic_hash": "b645e14602c3d8317c03686ae840b22d" }, "frontend/admin-panel/src/pages/PrescriptionsManager.tsx": { "mtime": 1786799852.4312904, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "4f8c51718cf84c3eca50cf7a60f89369", "semantic_hash": "4f8c51718cf84c3eca50cf7a60f89369" }, "frontend/admin-panel/src/pages/Products.tsx": { "mtime": 1786799852.4333005, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "ffbec78bed5dc7f9ff201d0cd0c521f1", "semantic_hash": "ffbec78bed5dc7f9ff201d0cd0c521f1" }, "frontend/admin-panel/src/pages/Reports.tsx": { "mtime": 1786799852.4363327, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "0b9ddac1f472b2c36f8ccc0bef436a8d", "semantic_hash": "0b9ddac1f472b2c36f8ccc0bef436a8d" }, "frontend/admin-panel/src/pages/SeoSettingsPage.tsx": { "mtime": 1786799852.4373398, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "adc54efb2ef76944d6cf280f49af64e7", "semantic_hash": "adc54efb2ef76944d6cf280f49af64e7" }, "frontend/admin-panel/src/pages/Settings.tsx": { - "mtime": 1786867457.585078, - "seen": 1786867610.8018034, - "ast_hash": "dead60ca8ff9f2e8d01d454c898c7ed7", + "mtime": 1786868211.2538335, + "seen": 1786868582.9483573, + "ast_hash": "20b30b9533f03e06833757fb61e7e7a0", "semantic_hash": "" }, "frontend/admin-panel/src/pages/SmartAdvisorManager.tsx": { "mtime": 1786799852.4430275, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "f83cad6af9f529abd276d6a2e9e0d83e", "semantic_hash": "f83cad6af9f529abd276d6a2e9e0d83e" }, "frontend/admin-panel/src/pages/SystemSettingsPage.tsx": { "mtime": 1786799852.4440303, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "c5cbadd42e577dd115ac2e11e9b42ae4", "semantic_hash": "c5cbadd42e577dd115ac2e11e9b42ae4" }, "frontend/admin-panel/src/pages/TestimonialsManager.tsx": { "mtime": 1786799852.445028, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "59b99aa7142d9bf249397834a7b5f5e6", "semantic_hash": "59b99aa7142d9bf249397834a7b5f5e6" }, "frontend/admin-panel/src/pages/UITexts.tsx": { "mtime": 1786799852.4485435, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "2eff64a1b05cdfc7ef546f7e401b484a", "semantic_hash": "2eff64a1b05cdfc7ef546f7e401b484a" }, "frontend/admin-panel/src/pages/Users.tsx": { "mtime": 1786799852.4495487, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "16547c6184d7e6c43004d31e8b2167f1", "semantic_hash": "16547c6184d7e6c43004d31e8b2167f1" }, "frontend/admin-panel/src/pages/Videos.tsx": { "mtime": 1786799852.454518, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "103e99d7bcdd703a68e3b8d3400a203b", "semantic_hash": "103e99d7bcdd703a68e3b8d3400a203b" }, "frontend/admin-panel/src/pages/WholesaleApplications.tsx": { "mtime": 1786799852.4578054, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "45657e006d0c25fffc52b91d10f64271", "semantic_hash": "45657e006d0c25fffc52b91d10f64271" }, "frontend/admin-panel/src/pages/Wiki.tsx": { "mtime": 1786799852.4611773, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "8e2b99529570a07aa87e001c1b59c62d", "semantic_hash": "8e2b99529570a07aa87e001c1b59c62d" }, "frontend/admin-panel/src/routes/adminRoutes.tsx": { - "mtime": 1786804792.583281, - "seen": 1786867610.8018034, - "ast_hash": "0938beae109e78af004b4b5819ee5398", - "semantic_hash": "0938beae109e78af004b4b5819ee5398" + "mtime": 1786868192.7399185, + "seen": 1786868582.9483573, + "ast_hash": "1c9bf3282e4cea55531cc7871a1d6056", + "semantic_hash": "" }, "frontend/admin-panel/src/services/api.ts": { "mtime": 1786799852.4670281, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "eb5ea37e0e51ee0e61f589e9895e0dcf", "semantic_hash": "eb5ea37e0e51ee0e61f589e9895e0dcf" }, "frontend/admin-panel/src/store/adminAuthStore.ts": { "mtime": 1786799852.469037, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "a2ca7b287d2c7efe08802b6187d95d67", "semantic_hash": "a2ca7b287d2c7efe08802b6187d95d67" }, "frontend/admin-panel/src/types/admin.ts": { "mtime": 1786799852.4710355, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "c6d1091e6889d1161385bfa915830da7", "semantic_hash": "c6d1091e6889d1161385bfa915830da7" }, "frontend/admin-panel/tailwind.config.js": { "mtime": 1783764561.8617213, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "3346df3fd0a1ea3f84440703bf8fd2cb", "semantic_hash": "3346df3fd0a1ea3f84440703bf8fd2cb" }, "frontend/admin-panel/tsconfig.app.json": { "mtime": 1783764561.86286, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "136630b5accce1ca50663df229534a26", "semantic_hash": "136630b5accce1ca50663df229534a26" }, "frontend/admin-panel/tsconfig.json": { "mtime": 1783764561.8633935, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "a3d39fa780ebff65444de257f291ce6c", "semantic_hash": "a3d39fa780ebff65444de257f291ce6c" }, "frontend/admin-panel/tsconfig.node.json": { "mtime": 1783764561.863923, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "70bdd0a673bcfc0e828080b306e7c680", "semantic_hash": "70bdd0a673bcfc0e828080b306e7c680" }, "frontend/admin-panel/vite.config.ts": { "mtime": 1783764561.864455, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "88439104b3c207f17d33ef3160e3b080", "semantic_hash": "88439104b3c207f17d33ef3160e3b080" }, "frontend/application/app/ClientLayout.tsx": { "mtime": 1786799852.477038, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "c248acff54d7581d3666b58ed11dcef1", "semantic_hash": "c248acff54d7581d3666b58ed11dcef1" }, "frontend/application/app/HomeClient.tsx": { "mtime": 1786799852.4780495, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "efb22cb2e588941eb75214d6d723c436", "semantic_hash": "efb22cb2e588941eb75214d6d723c436" }, "frontend/application/app/about/page.tsx": { "mtime": 1784621786.975134, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "8d66533c4880fd3d4d6bee15697e4d08", "semantic_hash": "8d66533c4880fd3d4d6bee15697e4d08" }, "frontend/application/app/blog/[slug]/page.tsx": { "mtime": 1785148022.4684896, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "8c03336689a063e71ae152026cf0892f", "semantic_hash": "8c03336689a063e71ae152026cf0892f" }, "frontend/application/app/blog/page.tsx": { "mtime": 1786799852.480099, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "46437636945bbdfec951cca713774f42", "semantic_hash": "46437636945bbdfec951cca713774f42" }, "frontend/application/app/catalog/CatalogClient.tsx": { "mtime": 1786799852.4827127, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "5056ab0a3f885602c2503985c7c83830", "semantic_hash": "5056ab0a3f885602c2503985c7c83830" }, "frontend/application/app/catalog/page.tsx": { "mtime": 1785148022.4767063, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "ada39b9821ffa594843ed61ea04f1eb0", "semantic_hash": "ada39b9821ffa594843ed61ea04f1eb0" }, "frontend/application/app/checkout/page.tsx": { "mtime": 1783764561.876443, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "eefc348443a33f175f7de3c1687a3fff", "semantic_hash": "eefc348443a33f175f7de3c1687a3fff" }, "frontend/application/app/checkout/success/[id]/page.tsx": { "mtime": 1783764561.8786683, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "0e0899f968c15078ee01116c3e34d4a4", "semantic_hash": "0e0899f968c15078ee01116c3e34d4a4" }, "frontend/application/app/contact/page.tsx": { "mtime": 1786799852.487043, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "4bbc701ef8f168bdcf8d34e4071ba6a0", "semantic_hash": "4bbc701ef8f168bdcf8d34e4071ba6a0" }, "frontend/application/app/dashboard/page.tsx": { "mtime": 1783764561.880281, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "79abe02613f5ab312577b53db38168eb", "semantic_hash": "79abe02613f5ab312577b53db38168eb" }, "frontend/application/app/error.tsx": { "mtime": 1785148022.478709, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "aea86a6d5b21cbff7bb38f382d1dd82d", "semantic_hash": "aea86a6d5b21cbff7bb38f382d1dd82d" }, "frontend/application/app/layout.tsx": { "mtime": 1786799852.5532281, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "a3b157925ca97709fbe41d0d8e0e05ec", "semantic_hash": "a3b157925ca97709fbe41d0d8e0e05ec" }, "frontend/application/app/loading.tsx": { "mtime": 1785148022.48765, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "daf62321fecabcbf8379d39f84a07c03", "semantic_hash": "daf62321fecabcbf8379d39f84a07c03" }, "frontend/application/app/not-found.tsx": { "mtime": 1783764561.8914113, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "6cada341f40f65b06a39f2a3020d7b96", "semantic_hash": "6cada341f40f65b06a39f2a3020d7b96" }, "frontend/application/app/page.tsx": { "mtime": 1786799852.5602286, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "5ef87474fd2ce0df19d1998afaaea758", "semantic_hash": "5ef87474fd2ce0df19d1998afaaea758" }, "frontend/application/app/privacy/page.tsx": { "mtime": 1784621786.9916842, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "25fae22fdbd6583c2e0776d146d75978", "semantic_hash": "25fae22fdbd6583c2e0776d146d75978" }, "frontend/application/app/profile/page.tsx": { "mtime": 1783764561.8952584, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "69a0aa446fc6e33ede049be8315b7fa8", "semantic_hash": "69a0aa446fc6e33ede049be8315b7fa8" }, "frontend/application/app/robots.ts": { "mtime": 1783764561.8964865, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "f8b1a6952dcb85c5b806412bb696258f", "semantic_hash": "f8b1a6952dcb85c5b806412bb696258f" }, "frontend/application/app/search/page.tsx": { "mtime": 1783856792.9978743, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "ca6052f31fb05a17dbd03935d4bee8b0", "semantic_hash": "ca6052f31fb05a17dbd03935d4bee8b0" }, "frontend/application/app/shop/[slug]/page.tsx": { "mtime": 1786799852.5622275, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "c246bc40af729d3b4e282093a62b4946", "semantic_hash": "c246bc40af729d3b4e282093a62b4946" }, "frontend/application/app/shop/page.tsx": { "mtime": 1784621786.997674, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "ef277292e262e3f811240fef5ec181fd", "semantic_hash": "ef277292e262e3f811240fef5ec181fd" }, "frontend/application/app/sitemap.ts": { "mtime": 1786799852.5657444, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "5c984a6dcdfd01aba2533b384b220911", "semantic_hash": "5c984a6dcdfd01aba2533b384b220911" }, "frontend/application/app/track/page.tsx": { "mtime": 1783764561.9019034, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "b2f026b1789c0220ad7ee1ed7f128a52", "semantic_hash": "b2f026b1789c0220ad7ee1ed7f128a52" }, "frontend/application/app/trust-seals/page.tsx": { "mtime": 1786799852.5684116, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "eb85fe581137c0999dcb37b142bde5ff", "semantic_hash": "eb85fe581137c0999dcb37b142bde5ff" }, "frontend/application/app/videos/page.tsx": { "mtime": 1783764561.9029868, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "cb64705fc742c38d569402b4612ae099", "semantic_hash": "cb64705fc742c38d569402b4612ae099" }, "frontend/application/app/wiki/[slug]/page.tsx": { "mtime": 1784033954.808355, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "e59da3b5246bf697c0e43ba908328a9d", "semantic_hash": "e59da3b5246bf697c0e43ba908328a9d" }, "frontend/application/app/wiki/page.tsx": { "mtime": 1784725668.228643, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "518406a85f36270ed441b72a155d1c2b", "semantic_hash": "518406a85f36270ed441b72a155d1c2b" }, "frontend/application/components/AddressModal.tsx": { "mtime": 1786799852.5711784, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "34e9382058aac3b8ee1d4b3a4dea8be9", "semantic_hash": "34e9382058aac3b8ee1d4b3a4dea8be9" }, "frontend/application/components/ArchivePage.tsx": { "mtime": 1786799852.5742042, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "ea65d8c960258843a1add6efe3b56275", "semantic_hash": "ea65d8c960258843a1add6efe3b56275" }, "frontend/application/components/AuthModal.tsx": { "mtime": 1786799852.5772161, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "ba0ba437402f351b8d6a07aa3489d324", "semantic_hash": "ba0ba437402f351b8d6a07aa3489d324" }, "frontend/application/components/B2BPortal.tsx": { "mtime": 1786799852.5782173, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "53a0aa78829d4eccacf99dc1c1786fbe", "semantic_hash": "53a0aa78829d4eccacf99dc1c1786fbe" }, "frontend/application/components/BackButton.tsx": { "mtime": 1786799852.5973413, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "15f686edeb2a6f99a172ec58e0bfa5c4", "semantic_hash": "15f686edeb2a6f99a172ec58e0bfa5c4" }, "frontend/application/components/BlogPage.tsx": { "mtime": 1785148022.532078, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "aae39f05a18d96d595d74369630b4583", "semantic_hash": "aae39f05a18d96d595d74369630b4583" }, "frontend/application/components/CartDrawer.tsx": { "mtime": 1786799852.5993903, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "f9e7671394cf4888bd196a80ef08b3e4", "semantic_hash": "f9e7671394cf4888bd196a80ef08b3e4" }, "frontend/application/components/CheckoutPage.tsx": { "mtime": 1786867533.3979805, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "8e9220107b0dccadf7ef103ecd63ca49", "semantic_hash": "" }, "frontend/application/components/ContactFormClient.tsx": { "mtime": 1786799852.6065671, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "68fd210a82d1752bbe6f958405684a91", "semantic_hash": "68fd210a82d1752bbe6f958405684a91" }, "frontend/application/components/DeleteConfirmModal.tsx": { "mtime": 1786799852.6087523, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "831b2bddd3e6d156abdac216577e3c4c", "semantic_hash": "831b2bddd3e6d156abdac216577e3c4c" }, "frontend/application/components/EnamadBadge.tsx": { "mtime": 1786799852.612362, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "37c7d2eaa27905307e5b2b147849519c", "semantic_hash": "37c7d2eaa27905307e5b2b147849519c" }, "frontend/application/components/ErrorBoundary.tsx": { "mtime": 1786799852.6145496, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "21b1cf87a9176b9f7902e5fc4f8b6482", "semantic_hash": "21b1cf87a9176b9f7902e5fc4f8b6482" }, "frontend/application/components/ErrorPages.tsx": { "mtime": 1786799852.6194317, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "0a43ad43cec2481781498789ca645377", "semantic_hash": "0a43ad43cec2481781498789ca645377" }, "frontend/application/components/FeaturedProducts.tsx": { "mtime": 1786799852.624407, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "c292634313532d9ca35e6b5e56a95824", "semantic_hash": "c292634313532d9ca35e6b5e56a95824" }, "frontend/application/components/Footer.tsx": { "mtime": 1786799852.6289072, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "b14789de3cd75839de3e5a79fbcd9df6", "semantic_hash": "b14789de3cd75839de3e5a79fbcd9df6" }, "frontend/application/components/Header.tsx": { "mtime": 1786799852.6340363, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "4163fbd9b507e62e4de4a35a1316f301", "semantic_hash": "4163fbd9b507e62e4de4a35a1316f301" }, "frontend/application/components/HeaderButton.tsx": { "mtime": 1786799852.637156, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "5e4679ee49ad04e753de83a405255e44", "semantic_hash": "5e4679ee49ad04e753de83a405255e44" }, "frontend/application/components/Hero.tsx": { "mtime": 1786799852.6417093, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "e053e8d8fbb7cbf0402db1d36101415a", "semantic_hash": "e053e8d8fbb7cbf0402db1d36101415a" }, "frontend/application/components/IngredientWiki.tsx": { "mtime": 1786799852.6534743, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "20124c63f3412095dad564474af9e2fb", "semantic_hash": "20124c63f3412095dad564474af9e2fb" }, "frontend/application/components/LoginModal.tsx": { "mtime": 1786799852.6568933, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "1cff109f015127730974a3e4addd0b94", "semantic_hash": "1cff109f015127730974a3e4addd0b94" }, "frontend/application/components/MaintenancePage.tsx": { "mtime": 1786799852.6593447, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "919066b120387c13de6b04c3277e0795", "semantic_hash": "919066b120387c13de6b04c3277e0795" }, "frontend/application/components/NetworkBanner.tsx": { "mtime": 1786799852.662139, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "17a159f769af90f446309ca321c86805", "semantic_hash": "17a159f769af90f446309ca321c86805" }, "frontend/application/components/OrderDetailsModal.tsx": { "mtime": 1786799852.6638298, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "2adb6ef09a8e8782fce072b5f59fa05c", "semantic_hash": "2adb6ef09a8e8782fce072b5f59fa05c" }, "frontend/application/components/OrderSuccess.tsx": { "mtime": 1786799852.6655424, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "1af189b677cfa054b76f3a1b518113f8", "semantic_hash": "1af189b677cfa054b76f3a1b518113f8" }, "frontend/application/components/OrderTracking.tsx": { "mtime": 1786799852.6671789, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "72aa1aac4c067700f863107f397e233e", "semantic_hash": "72aa1aac4c067700f863107f397e233e" }, "frontend/application/components/PetProfile.tsx": { "mtime": 1786799852.6792285, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "1090e50144fb079e1402b43291089330", "semantic_hash": "1090e50144fb079e1402b43291089330" }, "frontend/application/components/PrescriptionUploadModal.tsx": { "mtime": 1786799852.6865299, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "5dd9e779dc720939777d8ac046285df5", "semantic_hash": "5dd9e779dc720939777d8ac046285df5" }, "frontend/application/components/ProductPage.tsx": { "mtime": 1786799852.6976745, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "0d0adf863fef6b72ef35a2ee1d6afcf5", "semantic_hash": "0d0adf863fef6b72ef35a2ee1d6afcf5" }, "frontend/application/components/SafeImage.tsx": { "mtime": 1786799852.6999815, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "7c4a34cac6869ed133ef7a08200b8502", "semantic_hash": "7c4a34cac6869ed133ef7a08200b8502" }, "frontend/application/components/SearchResultsPage.tsx": { "mtime": 1786799852.7015781, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "a5418e889a76fa054734277bd9a77a3d", "semantic_hash": "a5418e889a76fa054734277bd9a77a3d" }, "frontend/application/components/SearchableSelect.tsx": { "mtime": 1785575516.1555548, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "9a5010afe35da7c9584bf60e69e47002", "semantic_hash": "9a5010afe35da7c9584bf60e69e47002" }, "frontend/application/components/Skeleton.tsx": { "mtime": 1783764561.943997, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "3df12c74c99d1d9ac25dfe620cf2b2c5", "semantic_hash": "3df12c74c99d1d9ac25dfe620cf2b2c5" }, "frontend/application/components/SmartAdvisor.tsx": { "mtime": 1786799852.7075186, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "0c5dcbf06da33c55187c71fbdfcabd20", "semantic_hash": "0c5dcbf06da33c55187c71fbdfcabd20" }, "frontend/application/components/TickerBanner.tsx": { "mtime": 1786799852.7469804, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "dce42f8904655084fea2568508f8d016", "semantic_hash": "dce42f8904655084fea2568508f8d016" }, "frontend/application/components/Tooltip.tsx": { "mtime": 1784631539.4937232, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "42229ec4b8dd64aaeb7ba14902d4490c", "semantic_hash": "42229ec4b8dd64aaeb7ba14902d4490c" }, "frontend/application/components/TopUpModal.tsx": { "mtime": 1786799852.7504473, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "3f8ba34c933878bd2756add90688565a", "semantic_hash": "3f8ba34c933878bd2756add90688565a" }, "frontend/application/components/UserDashboard.tsx": { "mtime": 1786799852.753613, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "d88932ca91cb88f2c03a1f1c37ae1c54", "semantic_hash": "d88932ca91cb88f2c03a1f1c37ae1c54" }, "frontend/application/components/VetGallery.tsx": { "mtime": 1786799852.75513, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "211af812fbf1a1c5154e3af30f200ad0", "semantic_hash": "211af812fbf1a1c5154e3af30f200ad0" }, "frontend/application/components/VideosPage.tsx": { "mtime": 1786799852.7602675, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "2db912131212fa39fe2de2e0c5f76ca6", "semantic_hash": "2db912131212fa39fe2de2e0c5f76ca6" }, "frontend/application/components/__tests__/CartDrawer.test.tsx": { "mtime": 1786799852.7618258, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "6840b24eb0f28d8120a320f0fd466154", "semantic_hash": "6840b24eb0f28d8120a320f0fd466154" }, "frontend/application/components/__tests__/FeaturedProducts.test.tsx": { "mtime": 1786799852.7656322, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "4059af6498e993d64024592623b58a2b", "semantic_hash": "4059af6498e993d64024592623b58a2b" }, "frontend/application/components/__tests__/Footer.test.tsx": { "mtime": 1783856793.038708, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "1fd80c81f43ebdf1f41c2ae6e2eea36b", "semantic_hash": "1fd80c81f43ebdf1f41c2ae6e2eea36b" }, "frontend/application/components/__tests__/Header.test.tsx": { "mtime": 1786799852.770019, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "40d1ba45b7b0272cfc6d4d6addbaf2af", "semantic_hash": "40d1ba45b7b0272cfc6d4d6addbaf2af" }, "frontend/application/components/__tests__/Hero.test.tsx": { "mtime": 1786799852.7760108, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "cba126955eaf2edc40fe24ce0c42d850", "semantic_hash": "cba126955eaf2edc40fe24ce0c42d850" }, "frontend/application/components/__tests__/Tooltip.test.tsx": { "mtime": 1786799852.784349, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "a43df52896070e694d06a2d1ae89a99a", "semantic_hash": "a43df52896070e694d06a2d1ae89a99a" }, "frontend/application/eslint.config.mjs": { "mtime": 1785651092.9934845, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "dfa1f5f6a7037bf39dc510f30b180002", "semantic_hash": "dfa1f5f6a7037bf39dc510f30b180002" }, "frontend/application/lib/data/products.ts": { "mtime": 1786799852.787039, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "3697767252ccccaa971976c5745b3400", "semantic_hash": "3697767252ccccaa971976c5745b3400" }, "frontend/application/lib/data/provinces.ts": { "mtime": 1785571725.610676, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "cd814c89c40909d1da24ac1e01fd99c0", "semantic_hash": "cd814c89c40909d1da24ac1e01fd99c0" }, "frontend/application/lib/data/scientificTerms.ts": { "mtime": 1786799852.788114, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "64a55c4d5fc8ff9c536ac93217abe206", "semantic_hash": "64a55c4d5fc8ff9c536ac93217abe206" }, "frontend/application/lib/hooks/useNetworkStatus.ts": { "mtime": 1786799852.793488, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "d6ece33f5f0149a299c49366f0e314d0", "semantic_hash": "d6ece33f5f0149a299c49366f0e314d0" }, "frontend/application/lib/services/api.ts": { "mtime": 1786799852.7990487, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "69b8ae906ab659bb50c1bf2f6c467f04", "semantic_hash": "69b8ae906ab659bb50c1bf2f6c467f04" }, "frontend/application/lib/services/authService.ts": { "mtime": 1786799852.805497, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "0f57c132db8ae0d210fce59c17b27b98", "semantic_hash": "0f57c132db8ae0d210fce59c17b27b98" }, "frontend/application/lib/services/orderService.ts": { "mtime": 1786799852.8107264, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "5b8b9c867e3db50a9ed5e6b3f765e3b5", "semantic_hash": "5b8b9c867e3db50a9ed5e6b3f765e3b5" }, "frontend/application/lib/services/productService.ts": { "mtime": 1786806825.6113641, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "da9bc3c18de5ec960eef737d2d1037e8", "semantic_hash": "da9bc3c18de5ec960eef737d2d1037e8" }, "frontend/application/lib/services/videoService.ts": { "mtime": 1786799852.818516, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "166f65a9d380ec5e087e1bc53972344b", "semantic_hash": "166f65a9d380ec5e087e1bc53972344b" }, "frontend/application/lib/store/__tests__/cartStore.test.ts": { "mtime": 1786799852.822037, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "741d154ab7044aa24c39b1694dbd9a32", "semantic_hash": "741d154ab7044aa24c39b1694dbd9a32" }, "frontend/application/lib/store/__tests__/settingsStore.test.ts": { "mtime": 1783856793.0438032, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "9ca2a69a162e64abce0658a348454d97", "semantic_hash": "9ca2a69a162e64abce0658a348454d97" }, "frontend/application/lib/store/__tests__/userStore.test.ts": { "mtime": 1786799852.8255477, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "9133574a4b0a49423dadbdc1d8d373b6", "semantic_hash": "9133574a4b0a49423dadbdc1d8d373b6" }, "frontend/application/lib/store/cartStore.ts": { "mtime": 1786799852.8300698, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "4a6686407e1bff03af0c8f163a5ec419", "semantic_hash": "4a6686407e1bff03af0c8f163a5ec419" }, "frontend/application/lib/store/settingsStore.ts": { "mtime": 1783856793.0448127, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "d246700dc1557322985ddb62390e7603", "semantic_hash": "d246700dc1557322985ddb62390e7603" }, "frontend/application/lib/store/uiStore.ts": { "mtime": 1786799852.833588, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "5b78ec13363f2456a9efa6189473f93b", "semantic_hash": "5b78ec13363f2456a9efa6189473f93b" }, "frontend/application/lib/store/usePetStore.ts": { "mtime": 1786799852.8376825, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "dc51acd694e5630c41748fef61303259", "semantic_hash": "dc51acd694e5630c41748fef61303259" }, "frontend/application/lib/store/userStore.ts": { "mtime": 1786799852.8388963, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "cedb9469ff9294f857f599ecda96cac8", "semantic_hash": "cedb9469ff9294f857f599ecda96cac8" }, "frontend/application/lib/types.ts": { "mtime": 1786799852.8401117, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "d4375ccb9e1067339601af5cb0f1ae07", "semantic_hash": "d4375ccb9e1067339601af5cb0f1ae07" }, "frontend/application/lib/utils.ts": { "mtime": 1786799852.847284, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "13d70256fc31437c6a1d3c3450c0d5c6", "semantic_hash": "13d70256fc31437c6a1d3c3450c0d5c6" }, "frontend/application/next.config.ts": { "mtime": 1786806762.8780031, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "edcb26aa9da0f8549c0a46449b2ba92c", "semantic_hash": "edcb26aa9da0f8549c0a46449b2ba92c" }, "frontend/application/package.json": { "mtime": 1786799852.8631322, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "6e05083120e9bf19ace443112d6b54ab", "semantic_hash": "6e05083120e9bf19ace443112d6b54ab" }, "frontend/application/postcss.config.mjs": { "mtime": 1783764561.9882522, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "239f3ebf717465dc636818a1a619398d", "semantic_hash": "239f3ebf717465dc636818a1a619398d" }, "frontend/application/tsconfig.json": { "mtime": 1786799852.86564, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "09df7544350f3ee3b4fe33841d294a86", "semantic_hash": "09df7544350f3ee3b4fe33841d294a86" }, "frontend/application/vitest.config.ts": { "mtime": 1786799852.8686528, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "ee482d93c3e5c516e021b7a68c5fb60b", "semantic_hash": "ee482d93c3e5c516e021b7a68c5fb60b" }, "frontend/application/vitest.setup.ts": { "mtime": 1786799852.8706508, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "4dcc5d7d1d80795a12623d48fc61e3e5", "semantic_hash": "4dcc5d7d1d80795a12623d48fc61e3e5" }, "package.json": { "mtime": 1783856793.674106, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "fcb100aa3caf90be6b494c35499e0049", "semantic_hash": "fcb100aa3caf90be6b494c35499e0049" }, "scripts/backup_db.sh": { "mtime": 1786799852.8767846, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "82cb31279bdfacde5efe978a55256436", "semantic_hash": "82cb31279bdfacde5efe978a55256436" }, "scripts/deploy.sh": { "mtime": 1786806692.0651653, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "eda4f35605687f8babd6e35db28ce2d8", "semantic_hash": "eda4f35605687f8babd6e35db28ce2d8" }, "scripts/open-browsers.js": { "mtime": 1783764562.0287807, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "efcd36af516d969f068285a5d0b81ae3", "semantic_hash": "efcd36af516d969f068285a5d0b81ae3" }, "scripts/start-dev.js": { "mtime": 1783766217.3195245, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "edf922e3c4b62dbe39c6f14fa9285426", "semantic_hash": "edf922e3c4b62dbe39c6f14fa9285426" }, "start.sh": { "mtime": 1784033954.8130803, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "de3176806eab0abd69c6a8ea420b2095", "semantic_hash": "de3176806eab0abd69c6a8ea420b2095" }, "BACKEND_INTEGRATION.md": { "mtime": 1783856792.4074569, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "f92561edbc08ead24f98d9e5b0684fba", "semantic_hash": "f92561edbc08ead24f98d9e5b0684fba" }, "DATABASE_SCHEMA.md": { "mtime": 1783856792.408463, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "8dd82bbe5df52630768aa086549fd42b", "semantic_hash": "8dd82bbe5df52630768aa086549fd42b" }, "README.md": { "mtime": 1785589838.8037524, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "64c762d09306f0dfe798cb19b2710591", "semantic_hash": "64c762d09306f0dfe798cb19b2710591" }, "canina.md": { "mtime": 1785148022.3379133, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "887215b060a4e2af5a4af17e70a6480a", "semantic_hash": "887215b060a4e2af5a4af17e70a6480a" }, "docker-compose.yml": { "mtime": 1785589838.8064058, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "e6f6f86fa2d37b2bd21d85697a298bc5", "semantic_hash": "e6f6f86fa2d37b2bd21d85697a298bc5" }, "docs/01-introduction.md": { "mtime": 1783856792.4282098, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "f992c64c727bca490427152ab1d60d1d", "semantic_hash": "f992c64c727bca490427152ab1d60d1d" }, "docs/02-user-guide.md": { "mtime": 1783856792.4292114, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "0ec4e93928f0a91d557e9c891455ce52", "semantic_hash": "0ec4e93928f0a91d557e9c891455ce52" }, "docs/03-developer-guide.md": { "mtime": 1783764561.7716606, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "14f25993a3a77357739f6cd082c1e566", "semantic_hash": "14f25993a3a77357739f6cd082c1e566" }, "docs/audit/05-architectural-audit.md": { "mtime": 1786799852.3026898, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "ab18a41271f0f845054f52f4dfa715eb", "semantic_hash": "ab18a41271f0f845054f52f4dfa715eb" }, "docs/audit/10-security-audit.md": { "mtime": 1786799852.3079526, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "125471bb12e468a0ddcd9a1dccca1001", "semantic_hash": "125471bb12e468a0ddcd9a1dccca1001" }, "docs/audit/ADR-AUTH-001.md": { "mtime": 1786799852.3326428, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "2616cbbcbbc3d461d3b6ca00195902a9", "semantic_hash": "2616cbbcbbc3d461d3b6ca00195902a9" }, "docs/audit/CROSS_BOUNDARY_DEPENDENCIES.md": { "mtime": 1786799852.3326428, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "6d851d9e754115841a5accab7efcf0dc", "semantic_hash": "6d851d9e754115841a5accab7efcf0dc" }, "docs/audit/FRONTEND_INTEGRATION_REQUIREMENTS.md": { "mtime": 1786799852.3344626, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "d954798dca04d3348b952da02f4df258", "semantic_hash": "d954798dca04d3348b952da02f4df258" }, "docs/audit/MASTER-TASK-BACKLOG.md": { "mtime": 1786799852.3354702, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "0efc4759c15a04ca934ec32bb6b6fa6b", "semantic_hash": "0efc4759c15a04ca934ec32bb6b6fa6b" }, "docs/audit/frontend-route-map.md": { "mtime": 1786799852.3393898, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "88fdef86c48b2164cdcced3e502c073f", "semantic_hash": "88fdef86c48b2164cdcced3e502c073f" }, "docs/audit/phase3-execution-plan.md": { "mtime": 1786799852.3439524, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "15babdd91198793f5b6b791d7a5edd22", "semantic_hash": "15babdd91198793f5b6b791d7a5edd22" }, "docs/backlog.md": { "mtime": 1786799852.3560216, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "cf6eb1a9c1daef121cfb40f1a7771808", "semantic_hash": "cf6eb1a9c1daef121cfb40f1a7771808" }, "frontend/application/AGENTS.md": { "mtime": 1783856792.991235, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "d189261caf03b672e6412927ff1c7394", "semantic_hash": "d189261caf03b672e6412927ff1c7394" }, "frontend/application/public/fonts/shabnam-font-v5.0.1/CHANGELOG.md": { "mtime": 1783856793.2301185, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "eeaf2bb0943a16d43493f706d0867d1f", "semantic_hash": "eeaf2bb0943a16d43493f706d0867d1f" }, "frontend/application/public/fonts/shabnam-font-v5.0.1/README.md": { "mtime": 1783856793.2795427, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "5f851eefeeb4bffff8c5427a289f934d", "semantic_hash": "5f851eefeeb4bffff8c5427a289f934d" }, "frontend/application/public/fonts/vazirmatn-v33.003/AUTHORS.txt": { "mtime": 1783856793.3161557, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "a5c1ec085d5dae2319c659151ffce3f0", "semantic_hash": "a5c1ec085d5dae2319c659151ffce3f0" }, "frontend/application/public/fonts/vazirmatn-v33.003/CHANGELOG.md": { "mtime": 1783856793.3176901, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "e7227ba84ca88111166000065d1bdacb", "semantic_hash": "e7227ba84ca88111166000065d1bdacb" }, "frontend/application/public/fonts/vazirmatn-v33.003/OFL.txt": { "mtime": 1783856793.319422, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "88985b4355a8a44627dde041f10aba75", "semantic_hash": "88985b4355a8a44627dde041f10aba75" }, "frontend/application/public/fonts/vazirmatn-v33.003/README.md": { "mtime": 1783856793.320489, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "e9d11601fc4c77fe3d8d1961d9c5d420", "semantic_hash": "e9d11601fc4c77fe3d8d1961d9c5d420" }, "scripts/compose.prod.yml": { "mtime": 1786799852.8793046, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "9e78c386d32b42112e2aee0db5924f61", "semantic_hash": "9e78c386d32b42112e2aee0db5924f61" }, "scripts/compose.stage.yml": { "mtime": 1786799852.8818057, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "5eb480e9c78e7204b48800867d4c7612", "semantic_hash": "5eb480e9c78e7204b48800867d4c7612" }, "backend/uploads/1781288429353-508765350.jpg": { "mtime": 1783764561.766257, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "ebf86506731de8ec10f2c4ea0ba14609", "semantic_hash": "ebf86506731de8ec10f2c4ea0ba14609" }, "frontend/admin-panel/public/fonts/sahel-font-v3.4.0/sample-variable.gif": { "mtime": 1783856792.5464964, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "9d0c1a4764b2b06807578b33c40838ca", "semantic_hash": "9d0c1a4764b2b06807578b33c40838ca" }, "frontend/admin-panel/public/fonts/shabnam-font-v5.0.1/sample.png": { "mtime": 1783856792.6456678, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "8bca253cfb55f954622145010756efa9", "semantic_hash": "8bca253cfb55f954622145010756efa9" }, "frontend/application/public/assets/images/regenerated_image_1779109861747.png": { "mtime": 1783764562.0141103, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "47111b66c208d1fa0c74877dfc0ee2a5", "semantic_hash": "47111b66c208d1fa0c74877dfc0ee2a5" }, "frontend/application/public/fonts/sahel-font-v3.4.0/sample-variable.gif": { "mtime": 1783856793.2291198, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "9d0c1a4764b2b06807578b33c40838ca", "semantic_hash": "9d0c1a4764b2b06807578b33c40838ca" }, "frontend/application/public/fonts/shabnam-font-v5.0.1/sample.png": { "mtime": 1783856793.3151467, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "8bca253cfb55f954622145010756efa9", "semantic_hash": "8bca253cfb55f954622145010756efa9" }, @@ -2275,655 +2275,655 @@ }, ".ai_agency/AGENCY.md": { "mtime": 1785148021.9796073, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "9a615cfac3d434770f0fa036a32b71f9", "semantic_hash": "" }, ".ai_agency/agents/00_intake.md": { "mtime": 1785148021.984319, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "f1b0d3a7e74c834af83cd068a97bc240", "semantic_hash": "" }, ".ai_agency/agents/01_auditor.md": { "mtime": 1785148021.9877827, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "a41d382a1269c2d6432522485e1b3301", "semantic_hash": "" }, ".ai_agency/agents/02_ceo.md": { "mtime": 1785148021.9983747, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "caf2825294f63004fa58a8b3775f10dc", "semantic_hash": "" }, ".ai_agency/agents/03_product_manager.md": { "mtime": 1785148022.0019681, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "d5a7823925324506c4c0f91534c713cc", "semantic_hash": "" }, ".ai_agency/agents/04_architect.md": { "mtime": 1785148022.004966, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "fa9c501ee0e0f13da21dd138ed9116b3", "semantic_hash": "" }, ".ai_agency/agents/05_dev_backend.md": { "mtime": 1785148022.0124812, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "9753813406d32d60a4f82b62ffc3f00f", "semantic_hash": "" }, ".ai_agency/agents/06_dev_frontend.md": { "mtime": 1785148022.01702, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "061855c65baa90ab44d77285cf1475f2", "semantic_hash": "" }, ".ai_agency/agents/07_qa_engineer.md": { "mtime": 1785148022.0200446, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "fe33c91f65cbfa2a4e9e9e007cd03370", "semantic_hash": "" }, ".ai_agency/agents/08_visual_qa.md": { "mtime": 1785148022.0300832, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "7e8b5e90bb7c668ce961bb1c117d4291", "semantic_hash": "" }, ".ai_agency/agents/09_devops_security.md": { "mtime": 1785148022.0340874, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "f4ce074e72eade7153ee4785ae9a89c6", "semantic_hash": "" }, ".ai_agency/agents/10_tech_writer.md": { "mtime": 1785148022.0370827, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "9315ddc6c2960907d7dda7804c1debac", "semantic_hash": "" }, ".ai_agency/agents/11_deploy.md": { "mtime": 1785148022.0406027, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "0f644be55161acf799ccc0b89ebfaa03", "semantic_hash": "" }, ".ai_agency/agents/12_seo_content.md": { "mtime": 1785148022.048604, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "a053bac412fb66749c22ddfc58882766", "semantic_hash": "" }, ".ai_agency/memory/agent_outputs/README.txt": { "mtime": 1785148022.0521505, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "7b3064fbf48b53032a8d4bfb73ca9ca7", "semantic_hash": "" }, ".ai_agency/memory/scratchpad.md": { "mtime": 1785148022.0651145, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "04648e7db23c144f89cdf78d071a32a0", "semantic_hash": "" }, ".ai_agency/specs/api_contract.md": { "mtime": 1785148022.0776649, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "2641fc7a31d9fe4761dad3ae7c944cb0", "semantic_hash": "" }, ".ai_agency/specs/architecture_spec.md": { "mtime": 1785148022.0822608, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "8763e7670f9cd0281273e139b484e701", "semantic_hash": "" }, ".ai_agency/specs/prd.md": { "mtime": 1785148022.0872517, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "a030931c59700809b29fa5e2dcbaaf18", "semantic_hash": "" }, ".ai_agency/specs/project_health.md": { "mtime": 1785148022.0983145, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "063e14c4ad0f62b79e412580319d6e6a", "semantic_hash": "" }, ".ai_agency/specs/reviews/README.md": { "mtime": 1785148022.105835, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "e68ba8a85edcd2394cb46d8f03fa09b7", "semantic_hash": "" }, ".ai_agency/specs/reviews/backend_review.md": { "mtime": 1785148022.1103623, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "34de73a13f5917bee531b6c2036e6fd6", "semantic_hash": "" }, ".ai_agency/specs/reviews/code_health_review.md": { "mtime": 1785148022.1143596, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "6ac531c22e5d025f50e6375323a52ed7", "semantic_hash": "" }, ".ai_agency/specs/reviews/frontend_review.md": { "mtime": 1785148022.118487, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "0fd2a25383bafe358068544b4fd5e5f9", "semantic_hash": "" }, ".ai_agency/specs/reviews/security_review.md": { "mtime": 1785148022.1214871, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "ed5139209a62a8a4a461b8a0eff9ac02", "semantic_hash": "" }, ".ai_agency/specs/reviews/seo_content_review.md": { "mtime": 1785148022.1315339, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "4cd7283f78877c1a14ff5b682c762702", "semantic_hash": "" }, ".ai_agency/specs/reviews/ux_review.md": { "mtime": 1785148022.1365507, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "4edeb2b914b36277d8381de722df56ef", "semantic_hash": "" }, ".antigravity/instructions.md": { "mtime": 1786864624.907348, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "c232166e6492ba1ed955030b16979b05", "semantic_hash": "" }, ".antigravity/workflows/graphify.md": { "mtime": 1786864553.766438, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "a8a2cc0acba50749dfe19bb2b5d48d59", "semantic_hash": "" }, ".claude/CLAUDE.md": { "mtime": 1786863506.8873787, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "c232166e6492ba1ed955030b16979b05", "semantic_hash": "" }, ".claude/skills/graphify/SKILL.md": { "mtime": 1786863506.8843722, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "3953c31b4ef6d89d3b1cb43f0110817d", "semantic_hash": "" }, ".claude/skills/graphify/references/add-watch.md": { "mtime": 1786863247.327046, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "d59d027fe449f06aa03905a01184e779", "semantic_hash": "" }, ".claude/skills/graphify/references/exports.md": { "mtime": 1786863247.3280432, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "9da2a2152e60a22f07f05fed5158f287", "semantic_hash": "" }, ".claude/skills/graphify/references/extraction-spec.md": { "mtime": 1786863247.3280432, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "42fef56a01698118f7fd722acdadea34", "semantic_hash": "" }, ".claude/skills/graphify/references/github-and-merge.md": { "mtime": 1786863247.3290431, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "cde13df085e4c492aeb7ba298a996d0d", "semantic_hash": "" }, ".claude/skills/graphify/references/hooks.md": { "mtime": 1786863247.3300407, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "3f545db6ce646650bb9de588f5512a27", "semantic_hash": "" }, ".claude/skills/graphify/references/query.md": { "mtime": 1786863247.3300407, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "3c46f8ad006874260614ed8657d02307", "semantic_hash": "" }, ".claude/skills/graphify/references/transcribe.md": { "mtime": 1786863247.3316698, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "67b6a5fa6c0974e18f60db9f8932fbd8", "semantic_hash": "" }, ".claude/skills/graphify/references/update.md": { "mtime": 1786863247.3326788, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "9378bd03d56baaf78bd738ab3848f142", "semantic_hash": "" }, ".gitea/workflows/deploy.yml": { "mtime": 1786799852.129315, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "e953545448e6cd9015ec9d0bba637d7c", "semantic_hash": "" }, "CLAUDE.md": { "mtime": 1786863506.88954, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "8a6643a420fdad6bfb583523bc6cef16", "semantic_hash": "" }, "backend/README.md": { "mtime": 1783764561.6013825, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "f9b30a57e215bc0b63868065fc71a1ac", "semantic_hash": "" }, "docs/04-setup-and-deployment.md": { "mtime": 1783764561.773295, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "140bba5a1f9e94796ca3dd70fa900ace", "semantic_hash": "" }, "docs/05-devops-and-monitoring.md": { "mtime": 1783764561.774446, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "7dade1c1d477d70ced55a7580b812127", "semantic_hash": "" }, "docs/06-testing.md": { "mtime": 1783764561.7749674, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "2ed3cd7f39157774928e65d5cc0588d0", "semantic_hash": "" }, "docs/README.md": { "mtime": 1783856792.4302125, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "b97896a35e6136c3f29770826f9693c6", "semantic_hash": "" }, "docs/audit/00-repository-map.md": { "mtime": 1786799852.2981741, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "5343b55148ced4eed7f13aa32b689936", "semantic_hash": "" }, "docs/audit/01-system-discovery.md": { "mtime": 1786799852.2991743, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "5fcfb853f894f8697b6badb692dfe249", "semantic_hash": "" }, "docs/audit/02-audit-plan.md": { "mtime": 1786799852.3001754, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "d6a5dbf5ddc5fc174e8a041e835481db", "semantic_hash": "" }, "docs/audit/03-baseline-command-plan.md": { "mtime": 1786799852.3001754, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "7d40f368e9ed0f27fa2ef5ad01249ad2", "semantic_hash": "" }, "docs/audit/04-open-questions.md": { "mtime": 1786799852.301682, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "773b455bb84b5df87cfbaa76dfa951f0", "semantic_hash": "" }, "docs/audit/06-storefront-audit.md": { "mtime": 1786799852.3036914, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "7c3aff371cdb919bb885bf4a6f625780", "semantic_hash": "" }, "docs/audit/07-backend-audit.md": { "mtime": 1786799852.30469, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "53927123ba5acca71e57780ca9bd34f9", "semantic_hash": "" }, "docs/audit/08-admin-features-audit.md": { "mtime": 1786799852.3059514, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "d4da7eb2396ad939251ccc541f1fd165", "semantic_hash": "" }, "docs/audit/09-database-audit.md": { "mtime": 1786799852.3069694, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "bdd7e4c3b4723b2006053563ac345819", "semantic_hash": "" }, "docs/audit/11-code-quality-audit.md": { "mtime": 1786799852.308957, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "c48e39113f2334fae743488668ecf618", "semantic_hash": "" }, "docs/audit/12-testing-audit.md": { "mtime": 1786799852.3099525, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "0d1570f5138328d090a43edc1f7bc4f0", "semantic_hash": "" }, "docs/audit/13-devops-audit.md": { "mtime": 1786799852.3109539, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "986acddf4e09ccbe2b8b8f6806bc01d5", "semantic_hash": "" }, "docs/audit/14-documentation-audit.md": { "mtime": 1786799852.311952, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "d1f8496a0dae10993495691dc58098ef", "semantic_hash": "" }, "docs/audit/16-deep-audit-summary.md": { "mtime": 1786799852.313067, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "f17a01bf7b59276d28c6948fd14eafd2", "semantic_hash": "" }, "docs/audit/18-compiler-diagnostic-dispositions.md": { "mtime": 1786799852.315065, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "5b402b064300709c7723a63885894c29", "semantic_hash": "" }, "docs/audit/19-finding-verification-report.md": { "mtime": 1786799852.3160648, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "c3363af4c68792722ebadddc10319f14", "semantic_hash": "" }, "docs/audit/21-phase2-quality-gate-summary.md": { "mtime": 1786799852.318066, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "c336937acd576ee2efc36d67dbaf69e2", "semantic_hash": "" }, "docs/audit/22-tracked-first-party-files.txt": { "mtime": 1786799852.319066, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "3f66b26b7f4217a065ed3d3403fe40fd", "semantic_hash": "" }, "docs/audit/23-untracked-first-party-files.txt": { "mtime": 1786799852.319066, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "9fe0a15ea45d03f8e4ccd0ad786dd9fb", "semantic_hash": "" }, "docs/audit/24-omitted-file-inspection-report.md": { "mtime": 1786799852.3200657, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "6fb068c98fefc544e9ff687c1b3c0351", "semantic_hash": "" }, "docs/audit/26-phase2-integrity-repair-report.md": { "mtime": 1786799852.3220918, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "aecc17ca01002edfbdf472cf4f4aaa4c", "semantic_hash": "" }, "docs/audit/27-all-tracked-repository-files.txt": { "mtime": 1786799852.3230999, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "f35e68d28e4c31002698e68cc18242e3", "semantic_hash": "" }, "docs/audit/31-module-audit-closure.md": { "mtime": 1786799852.3276167, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "b66f589f8c3bd0b53b7d61626eec0985", "semantic_hash": "" }, "docs/audit/33-final-phase2-audit-closure.md": { "mtime": 1786799852.3286169, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "ca898e1caffc2764de11b6a10e84d1ea", "semantic_hash": "" }, "docs/audit/phase3-traceability-matrix.md": { "mtime": 1786799852.3449528, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "40cd32ed7fa433342aa547fa5aa21d86", "semantic_hash": "" }, "docs/audit/phase3.1-backlog-review.md": { "mtime": 1786799852.3459527, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "78810767668f7d90e980648ec8c17869", "semantic_hash": "" }, "docs/audit/phase3.1-change-log.md": { "mtime": 1786799852.3469548, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "eed1734c4a6d1d8464dd63f6cbc33e9f", "semantic_hash": "" }, "docs/audit/phase3.2-change-log.md": { "mtime": 1786799852.3479521, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "b13460f1fa8aaecd88bc007a2c5e2ecb", "semantic_hash": "" }, "docs/audit/phase3.2-implementation-readiness.md": { "mtime": 1786799852.3479521, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "ffe4bce7401d65f9d44e8740d3c2ccf6", "semantic_hash": "" }, "frontend/admin-panel/README.md": { "mtime": 1783764561.7789528, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "f6e3faf55d738cf2affe1b44195f27cf", "semantic_hash": "" }, "frontend/admin-panel/index.html": { "mtime": 1783764561.7805586, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "d836c7a6b7be6d5b04a925b7ad32e539", "semantic_hash": "" }, "frontend/admin-panel/public/fonts/A-Iranian-Sans/A-Iranian-Sans/read me!.txt": { "mtime": 1783856792.435855, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "607f9ca43b12868e8880a0d85831a878", "semantic_hash": "" }, "frontend/admin-panel/public/fonts/IranNastaliq/IranNastaliq/read me!.txt": { "mtime": 1783856792.445365, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "607f9ca43b12868e8880a0d85831a878", "semantic_hash": "" }, "frontend/admin-panel/public/fonts/sahel-font-v3.4.0/CHANGELOG.md": { "mtime": 1783856792.4546044, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "eaa55e166ec4a6b2ee875b746ef049a0", "semantic_hash": "" }, "frontend/admin-panel/public/fonts/sahel-font-v3.4.0/README.md": { "mtime": 1783856792.5025032, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "0e4c260ce354bad51a6a184b5e236424", "semantic_hash": "" }, "frontend/admin-panel/public/fonts/shabnam-font-v5.0.1/CHANGELOG.md": { "mtime": 1783856792.5480056, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "eeaf2bb0943a16d43493f706d0867d1f", "semantic_hash": "" }, "frontend/admin-panel/public/fonts/shabnam-font-v5.0.1/README.md": { "mtime": 1783856792.5951552, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "5f851eefeeb4bffff8c5427a289f934d", "semantic_hash": "" }, "frontend/admin-panel/public/fonts/vazirmatn-v33.003/AUTHORS.txt": { "mtime": 1783856792.646666, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "a5c1ec085d5dae2319c659151ffce3f0", "semantic_hash": "" }, "frontend/admin-panel/public/fonts/vazirmatn-v33.003/CHANGELOG.md": { "mtime": 1783856792.6476717, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "e7227ba84ca88111166000065d1bdacb", "semantic_hash": "" }, "frontend/admin-panel/public/fonts/vazirmatn-v33.003/OFL.txt": { "mtime": 1783856792.6486697, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "88985b4355a8a44627dde041f10aba75", "semantic_hash": "" }, "frontend/admin-panel/public/fonts/vazirmatn-v33.003/README.md": { "mtime": 1783856792.6486697, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "e9d11601fc4c77fe3d8d1961d9c5d420", "semantic_hash": "" }, "frontend/admin-panel/public/fonts/vazirmatn-v33.003/\u0631\u0627\u0647\u0646\u0645\u0627.txt": { "mtime": 1783856792.971535, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "975634eaf84a797674b29e99c311f54a", "semantic_hash": "" }, "frontend/application/CLAUDE.md": { "mtime": 1783764561.8667445, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "5c27369b226fcf2be8a6cfe52224e767", "semantic_hash": "" }, "frontend/application/README.md": { "mtime": 1783764561.8673544, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "f15aaa42d5d299d091b1171097ea56ad", "semantic_hash": "" }, "frontend/application/public/fonts/A-Iranian-Sans/A-Iranian-Sans/read me!.txt": { "mtime": 1783856793.098052, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "607f9ca43b12868e8880a0d85831a878", "semantic_hash": "" }, "frontend/application/public/fonts/IranNastaliq/IranNastaliq/read me!.txt": { "mtime": 1783856793.1076603, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "607f9ca43b12868e8880a0d85831a878", "semantic_hash": "" }, "frontend/application/public/fonts/sahel-font-v3.4.0/CHANGELOG.md": { "mtime": 1783856793.1136606, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "eaa55e166ec4a6b2ee875b746ef049a0", "semantic_hash": "" }, "frontend/application/public/fonts/sahel-font-v3.4.0/README.md": { "mtime": 1783856793.1562517, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "0e4c260ce354bad51a6a184b5e236424", "semantic_hash": "" }, "frontend/application/public/fonts/vazirmatn-v33.003/\u0631\u0627\u0647\u0646\u0645\u0627.txt": { "mtime": 1783856793.6680968, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "975634eaf84a797674b29e99c311f54a", "semantic_hash": "" }, "prometheus.yml": { "mtime": 1783764562.0277793, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "45dc28cd8d9656e7141713ece5a7aa2c", "semantic_hash": "" }, "swagger.yml": { "mtime": 1786799852.8920915, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "34b5e7e5e1b19e6e3596ef669f8a0d0d", "semantic_hash": "" }, "canina.pdf": { "mtime": 1785148022.3708115, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "900fb024ec3b91912a512a96c2a0c0a0", "semantic_hash": "" }, "frontend/admin-panel/public/favicon.svg": { "mtime": 1783764561.7978015, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "7e840862161341271697daa99a40d76b", "semantic_hash": "" }, "frontend/admin-panel/public/icons.svg": { "mtime": 1783764561.7993202, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "3b4fcfcf393eca4d264dca4a4663bc37", "semantic_hash": "" }, "frontend/admin-panel/src/assets/hero.png": { "mtime": 1783764561.812863, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "aead493361b27e7510691c5d7072dfc1", "semantic_hash": "" }, "frontend/admin-panel/src/assets/react.svg": { "mtime": 1783764561.8139248, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "f0402b67b6ce880f65666bb49e841696", "semantic_hash": "" }, "frontend/admin-panel/src/assets/vite.svg": { "mtime": 1783764561.8149958, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "9960a24288958394ac50e57ff638b036", "semantic_hash": "" }, "frontend/application/public/assets/images/hero-section-image.png": { "mtime": 1783856793.0950441, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "a9f359cce82a5ab0a24830ed59a33047", "semantic_hash": "" }, "frontend/application/public/file.svg": { "mtime": 1783764562.0162137, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "d09f95206c3fa0bb9bd9fefabfd0ea71", "semantic_hash": "" }, "frontend/application/public/globe.svg": { "mtime": 1783764562.0167208, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "2aaafa6a49b6563925fe440891e32717", "semantic_hash": "" }, "frontend/application/public/next.svg": { "mtime": 1783764562.0182388, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "8e061864f388b47f33a1c3780831193e", "semantic_hash": "" }, "frontend/application/public/vercel.svg": { "mtime": 1783764562.019253, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "c0af2f507b369b085b35ef4bbe3bcf1e", "semantic_hash": "" }, "frontend/application/public/window.svg": { "mtime": 1783764562.019253, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "a2760511c65806022ad20adf74370ff3", "semantic_hash": "" }, @@ -2935,56 +2935,68 @@ }, ".agents/rules/graphify.md": { "mtime": 1786866620.806811, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "a0e4d192b9e2e17256124dbfc8e24e6a", "semantic_hash": "" }, ".agents/workflows/graphify.md": { "mtime": 1786866620.808812, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "a831cf3669f1e6ab85d8a80ebe655f99", "semantic_hash": "" }, "backend/src/payment/dto/initiate-payment.dto.ts": { "mtime": 1786867357.5585594, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "a097fcbb5846e7cd00e7cb2cefc060bb", "semantic_hash": "" }, "backend/src/payment/dto/verify-payment.dto.ts": { "mtime": 1786867362.7871711, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "3b4c7d30904624c0573a54b8694121c6", "semantic_hash": "" }, "backend/src/payment/payment.controller.ts": { "mtime": 1786867425.063287, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "f70a4fa01b959d0b38ae34bb30a05bf7", "semantic_hash": "" }, "backend/src/payment/payment.module.ts": { "mtime": 1786867389.2055805, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "662492e920bf40b388a81951a720680f", "semantic_hash": "" }, "backend/src/payment/payment.service.ts": { "mtime": 1786867376.815639, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "1ef944cccf000b9462038c1314769c11", "semantic_hash": "" }, "backend/src/payment/zibal.service.ts": { "mtime": 1786867352.921393, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "cb1a32aba7ad8c18f69f931ff0eb1214", "semantic_hash": "" }, "frontend/application/app/payment/verify/page.tsx": { "mtime": 1786867467.6950493, - "seen": 1786867610.8018034, + "seen": 1786868582.9483573, "ast_hash": "688365152da02df01d084819d0797e1e", "semantic_hash": "" + }, + "frontend/admin-panel/src/pages/SmsSettingsPage.tsx": { + "mtime": 1786868502.8634212, + "seen": 1786868582.9483573, + "ast_hash": "f24459780744019a8415c22cc5904094", + "semantic_hash": "" + }, + "AGENTS.md": { + "mtime": 1786867813.0684855, + "seen": 1786868582.9483573, + "ast_hash": "9b31786b637be3c13978bec4c2330752", + "semantic_hash": "" } } \ No newline at end of file diff --git a/graphify-out/GRAPH_REPORT.md b/graphify-out/GRAPH_REPORT.md index b29d1bf..e1bdda5 100644 --- a/graphify-out/GRAPH_REPORT.md +++ b/graphify-out/GRAPH_REPORT.md @@ -1,47 +1,47 @@ # Graph Report - canina (2026-08-16) ## Corpus Check -- 461 files · ~673,005 words +- 461 files · ~675,412 words - Verdict: corpus is large enough that graph structure adds value. ## Summary -- 3199 nodes · 5155 edges · 276 communities (179 shown, 97 thin omitted) -- Extraction: 97% EXTRACTED · 3% INFERRED · 0% AMBIGUOUS · INFERRED: 171 edges (avg confidence: 0.79) +- 3213 nodes · 5194 edges · 268 communities (173 shown, 95 thin omitted) +- Extraction: 97% EXTRACTED · 3% INFERRED · 0% AMBIGUOUS · INFERRED: 177 edges (avg confidence: 0.79) - Token cost: 0 input · 0 output ## Graph Freshness -- Built from commit: `0934b4f3` +- Built from commit: `d8c6aa8d` - Run `git rev-parse HEAD` and compare to check if the graph is stale. - Run `graphify update .` after code changes (no API cost). ## Community Hubs (Navigation) - AdminService -- pets/pets.controller.ts +- PetsController - Roles - UsersService - CmsController -- .create -- auth.controller.ts +- BannersService +- auth.service.ts - app.module.ts - CreateVideoDto - ProductService - SmartAdvisor.tsx - compilerOptions - toPersian -- Products.tsx +- pets/pets.controller.ts - ProductsService - lib/services/api.ts - devDependencies - useSettingsStore -- AppModule +- MetricsController - B2B Inquiry Controller - Category Management Controller -- auth.service.ts +- RedisService - MediaController - Ingredient Management Controller - adminRoutes.tsx - admin.module.ts -- SmsService +- api - Prescription Review Controller - Smart Advisor Controller - Testimonials Management Controller @@ -50,7 +50,7 @@ - useCartStore - ZibalService - main.ts -- ContactService +- payment.controller.ts - Backend TypeScript Config - App TypeScript Config - ConfirmModal.tsx @@ -77,9 +77,9 @@ - PrismaService - Jest Testing Config - PaginationDto -- BlogsController +- WikiController - FE-001 -- WikiService +- PetsService - rules/graphify.md - App Health Controller - dependencies @@ -89,10 +89,10 @@ - Analytics and Report Charts - Task Orchestration Scripts - Backend Package Config -- CreateOrderDto +- CreateHealthLogDto - React Error Boundary - Application Package Config -- WikiController +- .findAll - Error and Not Found Pages - VPN Utility Scripts - NestJS CLI Config @@ -118,7 +118,7 @@ - Network Status Banner - Docker Deployment Scripts - DB-001 -- .adminLogin +- CreateReminderDto - Database Migration Scripts - Scientific Terms Schema - Blog Data Seeding @@ -132,7 +132,7 @@ - Manifest Data Generation - Honest Manifest Synchronization - Manifest Entry Synchronization -- AuthController +- Videos.tsx - TS-001 - TEST-001 - @tailwindcss/postcss @@ -145,14 +145,14 @@ - DEVOPS-001 - DOC-001 - What You Must Do When Invoked -- JwtAuthGuard +- RolesGuard - راهنمای تست سیستم (Software Testing) - Role & Core Objective - Required Review Group Closures - Operational Rules & Boundaries - Operational Rules & Boundaries - 🏢 AI Software Agency — Master Orchestration Protocol v3 -- BlogsService +- @nestjs/cli - Operational Rules & Boundaries - Operational Rules & Boundaries - Bcrypt Type Definitions @@ -222,7 +222,7 @@ - Phase 2 Final Quality Gate Summary Report - Task Modifications Log - Install -- .findAll +- BlogsController - System Discovery - Product Requirement Document (PRD) - Baseline Command Plan & Reconciled Command History @@ -266,23 +266,15 @@ - @types/react - typescript - vitest -- AuthService -- RegisterDto -- GetProductsDto -- WholesaleApplyDto -- AdminLoginDto -- VerifyOtpDto -- App.tsx -- ValidateCouponDto +- typescript-eslint +- wholesale.controller.ts - AGENTS.md -- eslint-config-prettier -- globals ## God Nodes (most connected - your core abstractions) 1. `PrismaService` - 74 edges -2. `Roles()` - 51 edges +2. `Roles()` - 54 edges 3. `PaginationDto` - 39 edges -4. `SmsService` - 34 edges +4. `SmsService` - 38 edges 5. `api` - 33 edges 6. `useSettingsStore` - 33 edges 7. `AdminService` - 31 edges @@ -311,43 +303,43 @@ - **Rastikerdar Font Ecosystem** — frontend_application_public_fonts_shabnam_font_v5_0_1_readme, frontend_application_public_fonts_vazirmatn_v33_003_readme, vazir_font [EXTRACTED 0.95] - **Canina Deployment Stack** — scripts_compose_prod, scripts_compose_stage [EXTRACTED 1.00] -## Communities (276 total, 97 thin omitted) +## Communities (268 total, 95 thin omitted) ### Community 0 - "AdminService" -Cohesion: 0.07 -Nodes (22): AdminController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete (+14 more) +Cohesion: 0.06 +Nodes (24): AdminController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete (+16 more) -### Community 1 - "pets/pets.controller.ts" -Cohesion: 0.05 -Nodes (45): CreateHealthLogDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, CreatePetDto, ApiProperty (+37 more) +### Community 1 - "PetsController" +Cohesion: 0.17 +Nodes (18): PetsController, ApiBadRequestResponse, ApiBearerAuth, ApiCreatedResponse, ApiNotFoundResponse, ApiOkResponse, ApiOperation, ApiTags (+10 more) ### Community 2 - "Roles" -Cohesion: 0.07 -Nodes (32): BannersController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+24 more) +Cohesion: 0.05 +Nodes (31): Roles(), SmsService, Injectable, ContactController, Body, Controller, Get, Param (+23 more) ### Community 3 - "UsersService" -Cohesion: 0.07 -Nodes (34): JwtPayload, JwtStrategy, Injectable, AddressDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNotEmpty (+26 more) +Cohesion: 0.06 +Nodes (37): AuthModule, Module, JwtPayload, JwtStrategy, Injectable, AddressDto, ApiProperty, ApiPropertyOptional (+29 more) ### Community 4 - "CmsController" Cohesion: 0.09 Nodes (24): CmsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+16 more) -### Community 5 - ".create" -Cohesion: 0.18 -Nodes (11): ApiBadRequestResponse, ApiCreatedResponse, ApiNotFoundResponse, ApiOkResponse, ApiOperation, Body, Get, Param (+3 more) +### Community 5 - "BannersService" +Cohesion: 0.13 +Nodes (15): BannersController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+7 more) -### Community 6 - "auth.controller.ts" -Cohesion: 0.18 -Nodes (10): LoginDto, ApiProperty, IsNotEmpty, IsString, MinLength, SendOtpDto, ApiProperty, IsNotEmpty (+2 more) +### Community 6 - "auth.service.ts" +Cohesion: 0.05 +Nodes (44): AuthController, ApiBadRequestResponse, ApiOkResponse, ApiOperation, ApiTags, Body, Controller, Post (+36 more) ### Community 7 - "app.module.ts" -Cohesion: 0.07 -Nodes (28): B2BModule, Module, BannersModule, Module, CmsModule, Module, SmsModule, Global (+20 more) +Cohesion: 0.08 +Nodes (30): AdminModule, Module, BannersModule, Module, CmsModule, Module, SmsModule, Global (+22 more) ### Community 8 - "CreateVideoDto" -Cohesion: 0.07 -Nodes (31): CreateVideoDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNotEmpty, IsOptional, IsString, UpdateVideoDto (+23 more) +Cohesion: 0.08 +Nodes (29): CreateVideoDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNotEmpty, IsOptional, IsString, UpdateVideoDto (+21 more) ### Community 9 - "ProductService" Cohesion: 0.07 @@ -365,13 +357,13 @@ Nodes (32): compilerOptions, allowJs, esModuleInterop, incremental, isolatedModu Cohesion: 0.08 Nodes (37): ClientLayout(), VerifyContent(), AddressModal(), AddressModalProps, AuthModal(), AuthModalProps, B2BPortal(), BackButton() (+29 more) -### Community 13 - "Products.tsx" -Cohesion: 0.15 -Nodes (9): Pagination(), PaginationProps, BlogPost, Pet, Category, Product, Blogs, Pets (+1 more) +### Community 13 - "pets/pets.controller.ts" +Cohesion: 0.16 +Nodes (13): CreatePetDto, ApiProperty, ApiPropertyOptional, IsArray, IsNotEmpty, IsNumber, IsOptional, IsString (+5 more) ### Community 14 - "ProductsService" -Cohesion: 0.12 -Nodes (13): ProductsController, ApiOperation, ApiTags, Body, Controller, Get, Param, Patch (+5 more) +Cohesion: 0.09 +Nodes (19): GetProductsDto, ApiPropertyOptional, IsEnum, IsOptional, IsString, ProductsController, ApiOperation, ApiTags (+11 more) ### Community 15 - "lib/services/api.ts" Cohesion: 0.08 @@ -379,15 +371,15 @@ Nodes (17): metadata, ContactFormClient(), ContactInfoItem, PrescriptionUploadMo ### Community 16 - "devDependencies" Cohesion: 0.09 -Nodes (23): devDependencies, eslint, @eslint/js, jest, @nestjs/cli, @nestjs/schematics, @nestjs/testing, source-map-support (+15 more) +Nodes (23): devDependencies, eslint, eslint-config-prettier, @eslint/js, jest, @nestjs/schematics, @nestjs/testing, source-map-support (+15 more) ### Community 17 - "useSettingsStore" Cohesion: 0.07 Nodes (30): HomeClient(), HomeClientProps, getHomeData(), Home(), metadata, metadata, EnamadBadge(), Footer() (+22 more) -### Community 18 - "AppModule" -Cohesion: 0.12 -Nodes (7): ApiExcludeController, AppModule, Module, MetricsController, Controller, Get, Res +### Community 18 - "MetricsController" +Cohesion: 0.20 +Nodes (5): ApiExcludeController, MetricsController, Controller, Get, Res ### Community 19 - "B2B Inquiry Controller" Cohesion: 0.13 @@ -397,12 +389,12 @@ Nodes (15): B2BController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controlle Cohesion: 0.10 Nodes (16): CategoriesController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete (+8 more) -### Community 21 - "auth.service.ts" -Cohesion: 0.14 -Nodes (10): CouponTargetInput, PaginationQuery, AdminLoginInput, LoginInput, RegisterInput, RedisModule, Global, Module (+2 more) +### Community 21 - "RedisService" +Cohesion: 0.19 +Nodes (5): RedisModule, Global, Module, RedisService, Injectable ### Community 22 - "MediaController" -Cohesion: 0.10 +Cohesion: 0.11 Nodes (16): MediaController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+8 more) ### Community 23 - "Ingredient Management Controller" @@ -410,12 +402,16 @@ Cohesion: 0.13 Nodes (14): IngredientsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more) ### Community 24 - "adminRoutes.tsx" -Cohesion: 0.09 -Nodes (18): ContactInfoItem, ContactSubmission, CategoryDist, DashboardData, PatternItem, SmsConfigState, GROUP_PAGE_MAP, GROUPS (+10 more) +Cohesion: 0.10 +Nodes (14): App(), ContactInfoItem, ContactSubmission, GROUP_PAGE_MAP, GROUPS, PAGE_TABS, AdminRouteConfig, ContactSubmissions (+6 more) ### Community 25 - "admin.module.ts" -Cohesion: 0.09 -Nodes (15): AdminModule, Module, CategoryQuery, PetQuery, PetsService, Injectable, ReportsController, ApiBearerAuth (+7 more) +Cohesion: 0.06 +Nodes (20): BlogQuery, BlogsService, Injectable, PetQuery, PetsService, Injectable, ReportsController, ApiBearerAuth (+12 more) + +### Community 26 - "api" +Cohesion: 0.11 +Nodes (12): HeroBanner, VetTestimonial, CategoryDist, DashboardData, PatternItem, SmsConfigState, SmsLogItem, SmsLogStats (+4 more) ### Community 27 - "Prescription Review Controller" Cohesion: 0.14 @@ -430,28 +426,28 @@ Cohesion: 0.13 Nodes (14): TestimonialsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more) ### Community 30 - "src/services/api.ts" -Cohesion: 0.12 -Nodes (22): Layout(), ProtectedRoute(), menuGroups, Sidebar(), SidebarProps, SEARCHABLE_PAGES, Topbar(), TopbarProps (+14 more) +Cohesion: 0.10 +Nodes (25): Layout(), ProtectedRoute(), menuGroups, Sidebar(), SidebarProps, SEARCHABLE_PAGES, Topbar(), TopbarProps (+17 more) ### Community 31 - "Spinner.tsx" -Cohesion: 0.09 -Nodes (21): Media, MediaSelector(), MediaSelectorProps, Spinner(), Category, Media, BannersManager, Categories (+13 more) +Cohesion: 0.10 +Nodes (19): Media, MediaSelector(), MediaSelectorProps, Spinner(), Category, Product, BannersManager, IngredientsManager (+11 more) ### Community 32 - "useCartStore" Cohesion: 0.12 Nodes (16): metadata, ArchiveProductCard(), ProductCard(), Header(), MENU_ICONS, OrderSuccess(), OrderTracking(), PetProfile() (+8 more) ### Community 33 - "ZibalService" -Cohesion: 0.07 -Nodes (30): InitiatePaymentDto, InitiateWalletTopupDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, ApiPropertyOptional (+22 more) +Cohesion: 0.10 +Nodes (19): PaymentController, ApiBadRequestResponse, ApiBearerAuth, ApiOkResponse, ApiOperation, ApiTags, Body, Controller (+11 more) ### Community 34 - "main.ts" -Cohesion: 0.14 -Nodes (9): CustomHttpExceptionFilter, Catch, PrismaExceptionFilter, Catch, DecimalInterceptor, Injectable, ApiErrorResponse, ErrorDetailField (+1 more) +Cohesion: 0.11 +Nodes (11): AppModule, Module, CustomHttpExceptionFilter, Catch, PrismaExceptionFilter, Catch, DecimalInterceptor, Injectable (+3 more) -### Community 35 - "ContactService" -Cohesion: 0.13 -Nodes (11): ContactController, Body, Controller, Get, Param, Post, Put, Query (+3 more) +### Community 35 - "payment.controller.ts" +Cohesion: 0.23 +Nodes (11): InitiatePaymentDto, InitiateWalletTopupDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, ApiPropertyOptional (+3 more) ### Community 36 - "Backend TypeScript Config" Cohesion: 0.09 @@ -462,8 +458,8 @@ Cohesion: 0.09 Nodes (22): compilerOptions, allowImportingTsExtensions, erasableSyntaxOnly, jsx, lib, module, moduleDetection, moduleResolution (+14 more) ### Community 38 - "ConfirmModal.tsx" -Cohesion: 0.09 -Nodes (17): ConfirmModal(), ConfirmModalProps, HeroBanner, VetTestimonial, fetchVideosList(), Video, Videos(), WholesaleRequest (+9 more) +Cohesion: 0.10 +Nodes (17): ConfirmModal(), ConfirmModalProps, Pagination(), PaginationProps, BlogPost, Category, Media, Pet (+9 more) ### Community 39 - "dependencies" Cohesion: 0.05 @@ -507,7 +503,7 @@ Nodes (10): HomeController, ApiOkResponse, ApiOperation, ApiTags, Controller, Ge ### Community 49 - "devDependencies" Cohesion: 0.11 -Nodes (19): autoprefixer, devDependencies, autoprefixer, eslint, @eslint/js, postcss, @types/node, @types/react (+11 more) +Nodes (19): autoprefixer, devDependencies, autoprefixer, eslint, @eslint/js, globals, postcss, @types/node (+11 more) ### Community 50 - "Database Seeding Logic" Cohesion: 0.17 @@ -546,29 +542,25 @@ Cohesion: 0.15 Nodes (11): PetsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Controller, Delete, Get (+3 more) ### Community 59 - "PrismaService" -Cohesion: 0.12 -Nodes (13): MeliPayamakPattern, MeliPayamakResponse, SendPatternSmsOptions, SmsConfig, CreateContactSubmissionDto, UpdateContactInfoItemDto, ZibalInquiryResponse, ZibalRequestResponse (+5 more) +Cohesion: 0.09 +Nodes (15): CategoryQuery, MeliPayamakPattern, MeliPayamakResponse, SendPatternSmsOptions, SmsConfig, SmsLogQuery, CreateContactSubmissionDto, UpdateContactInfoItemDto (+7 more) ### Community 60 - "Jest Testing Config" Cohesion: 0.15 Nodes (13): jest, collectCoverageFrom, coverageDirectory, moduleFileExtensions, rootDir, testEnvironment, testRegex, transform (+5 more) ### Community 61 - "PaginationDto" -Cohesion: 0.14 -Nodes (13): PaginationDto, SortOrder, ApiPropertyOptional, IsEnum, IsOptional, IsString, Type, Module (+5 more) +Cohesion: 0.12 +Nodes (13): BlogsModule, Module, BlogsService, Injectable, PaginationDto, SortOrder, ApiPropertyOptional, IsEnum (+5 more) -### Community 62 - "BlogsController" +### Community 62 - "WikiController" Cohesion: 0.20 -Nodes (7): BlogsController, ApiTags, Controller, BlogsModule, Module, BlogsService, Injectable +Nodes (7): ApiTags, Controller, WikiController, Module, WikiModule, Injectable, WikiService ### Community 63 - "FE-001" Cohesion: 0.06 Nodes (31): Acceptance Criteria, Affected Application, Affected Files, Alternative Direction, Architecture Overview & Confirmed Strengths, Category, Completion Statement, Confidence (+23 more) -### Community 64 - "WikiService" -Cohesion: 0.22 -Nodes (3): Injectable, WikiQuery, WikiService - ### Community 66 - "App Health Controller" Cohesion: 0.29 Nodes (5): AppController, Controller, Get, AppService, Injectable @@ -578,8 +570,8 @@ Cohesion: 0.12 Nodes (17): dependencies, axios, lucide-react, motion, next, react, react-dom, sonner (+9 more) ### Community 68 - "OrdersService" -Cohesion: 0.15 -Nodes (9): OrdersController, ApiBearerAuth, ApiTags, Controller, UseGuards, OrdersModule, Module, OrdersService (+1 more) +Cohesion: 0.06 +Nodes (35): CreateOrderDto, OrderItemDto, ApiProperty, ApiPropertyOptional, IsArray, IsNotEmpty, IsNumber, IsOptional (+27 more) ### Community 69 - "Integrity Validation Scripts" Cohesion: 0.20 @@ -601,9 +593,9 @@ Nodes (8): cmd_next_task(), cmd_progress(), cmd_reset(), cmd_status(), cmd_unblo Cohesion: 0.22 Nodes (8): author, description, license, name, prisma, seed, private, version -### Community 74 - "CreateOrderDto" -Cohesion: 0.21 -Nodes (11): CreateOrderDto, OrderItemDto, ApiProperty, ApiPropertyOptional, IsArray, IsNotEmpty, IsNumber, IsOptional (+3 more) +### Community 74 - "CreateHealthLogDto" +Cohesion: 0.29 +Nodes (6): CreateHealthLogDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString ### Community 75 - "React Error Boundary" Cohesion: 0.22 @@ -613,9 +605,9 @@ Nodes (3): ErrorBoundary, Props, State Cohesion: 0.22 Nodes (8): name, private, scripts, build, dev, lint, start, version -### Community 77 - "WikiController" -Cohesion: 0.21 -Nodes (9): ApiNotFoundResponse, ApiOkResponse, ApiOperation, ApiTags, Controller, Get, Param, Query (+1 more) +### Community 77 - ".findAll" +Cohesion: 0.32 +Nodes (6): ApiNotFoundResponse, ApiOkResponse, ApiOperation, Get, Param, Query ### Community 79 - "VPN Utility Scripts" Cohesion: 0.62 @@ -677,17 +669,17 @@ Nodes (3): COMPOSE_DOCKER_CLI_BUILD, DOCKER_BUILDKIT, deploy.sh script Cohesion: 0.06 Nodes (31): Acceptance Criteria, Affected Application, Affected Files, Alternative Direction, Category, Completion Statement, Confidence, Database and Data Integrity Audit Report (+23 more) -### Community 103 - ".adminLogin" -Cohesion: 0.55 -Nodes (6): ApiBadRequestResponse, ApiOkResponse, ApiOperation, Body, Post, HttpCode +### Community 103 - "CreateReminderDto" +Cohesion: 0.29 +Nodes (6): CreateReminderDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString ### Community 109 - "Auth Architecture and Planning" Cohesion: 0.67 Nodes (3): ADR-AUTH-001: Admin Panel Authentication Architecture & Token Management, Master Task Backlog (Phase 3.3), Phase 3 Master Execution Plan -### Community 117 - "AuthController" -Cohesion: 0.20 -Nodes (7): AuthController, ApiTags, Controller, AuthModule, Module, Module, UsersModule +### Community 117 - "Videos.tsx" +Cohesion: 0.50 +Nodes (4): fetchVideosList(), Video, Videos(), Videos ### Community 118 - "TS-001" Cohesion: 0.06 @@ -713,9 +705,9 @@ Nodes (31): Acceptance Criteria, Affected Application, Affected Files, Alternati Cohesion: 0.07 Nodes (26): For /graphify add and --watch, For /graphify query, For the commit hook and native CLAUDE.md integration, For --update and --cluster-only, /graphify, Honesty Rules, Interpreter guard for subcommands, Part A - Structural extraction for code files (+18 more) -### Community 130 - "JwtAuthGuard" -Cohesion: 0.19 -Nodes (7): JwtAuthGuard, Injectable, ROLES_KEY, RequestWithUser, RolesGuard, Injectable, UserReqPayload +### Community 130 - "RolesGuard" +Cohesion: 0.23 +Nodes (6): ROLES_KEY, RequestWithUser, RolesGuard, Injectable, UserReqPayload, ScientificTermData ### Community 131 - "راهنمای تست سیستم (Software Testing)" Cohesion: 0.07 @@ -741,10 +733,6 @@ Nodes (18): 1. Framework-Aware Analysis, 2. DOM & Semantic Structure Analysis, 3 Cohesion: 0.11 Nodes (17): Activation, Agent Directory Reference, 🏢 AI Software Agency — Master Orchestration Protocol v3, Phase 1: Specialist Review (All agents read, none write code yet), Phase 2: Master Synthesis (02_product_manager in SYNTHESIS mode), Phase 3: Execution (Same as always), PIPELINE A — New Project (GREENFIELD), PIPELINE B — Review & Improve Existing Project (REVIEW_AND_PLAN) ★ (+9 more) -### Community 137 - "BlogsService" -Cohesion: 0.22 -Nodes (3): BlogQuery, BlogsService, Injectable - ### Community 138 - "Operational Rules & Boundaries" Cohesion: 0.11 Nodes (17): 1. Hierarchical Decomposition Algorithm (3-Tier), 2. Sub-step Definition (Required for all tasks), 3. Brownfield Completeness Rule, 4. Role Assignment Rules, 5. Dependency Tracking (Strict), 6. Priority Assignment, 7. Forbidden Actions, DECOMPOSE MODE — Normal Operation (New Projects) (+9 more) @@ -869,9 +857,9 @@ Nodes (8): 1. `TASK-AUTH-001`, 2. `TASK-FIN-001`, 3. `DECISION-002`, 4. `TASK-VE Cohesion: 0.22 Nodes (8): Arch Linux, bower, Install, npm, Shabnam Font, yarn, طریقه استفاده در صفحات وب:, نمونه متن Sample: -### Community 214 - ".findAll" -Cohesion: 0.32 -Nodes (6): ApiNotFoundResponse, ApiOkResponse, ApiOperation, Get, Param, Query +### Community 214 - "BlogsController" +Cohesion: 0.21 +Nodes (9): BlogsController, ApiNotFoundResponse, ApiOkResponse, ApiOperation, ApiTags, Controller, Get, Param (+1 more) ### Community 215 - "System Discovery" Cohesion: 0.25 @@ -949,49 +937,29 @@ Nodes (3): Expanding the ESLint configuration, React Compiler, React + TypeScrip Cohesion: 0.50 Nodes (3): Deploy on Vercel, Getting Started, Learn More -### Community 266 - "RegisterDto" -Cohesion: 0.22 -Nodes (8): RegisterDto, ApiProperty, ApiPropertyOptional, IsEmail, IsNotEmpty, IsOptional, IsString, MinLength - -### Community 267 - "GetProductsDto" -Cohesion: 0.29 -Nodes (6): GetProductsDto, ApiPropertyOptional, IsEnum, IsOptional, IsString, Query - -### Community 268 - "WholesaleApplyDto" -Cohesion: 0.29 -Nodes (6): ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, WholesaleApplyDto - -### Community 269 - "AdminLoginDto" -Cohesion: 0.29 -Nodes (6): AdminLoginDto, ApiProperty, IsEmail, IsNotEmpty, IsString, MinLength - -### Community 270 - "VerifyOtpDto" -Cohesion: 0.29 -Nodes (6): ApiProperty, IsNotEmpty, IsString, Matches, VerifyOtpDto, Length - -### Community 272 - "ValidateCouponDto" -Cohesion: 0.50 -Nodes (4): IsNotEmpty, IsNumber, IsString, ValidateCouponDto +### Community 268 - "wholesale.controller.ts" +Cohesion: 0.17 +Nodes (8): B2BModule, Module, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, WholesaleApplyDto ## Knowledge Gaps -- **1175 isolated node(s):** `$schema`, `collection`, `sourceRoot`, `deleteOutDir`, `name` (+1170 more) +- **1178 isolated node(s):** `$schema`, `collection`, `sourceRoot`, `deleteOutDir`, `name` (+1173 more) These have ≤1 connection - possible missing edges or undocumented components. -- **97 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. +- **95 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. ## Suggested Questions _Questions this graph is uniquely positioned to answer:_ -- **Why does `ApiResponse` connect `src/services/api.ts` to `pets/pets.controller.ts`, `UsersService`, `OrdersService`, `WikiController`, `ProductsService`, `Home Data Module`, `AuthController`, `BlogsController`?** +- **Why does `ApiResponse` connect `src/services/api.ts` to `PetsController`, `UsersService`, `OrdersService`, `auth.service.ts`, `ProductsService`, `Home Data Module`, `BlogsController`, `WikiController`?** _High betweenness centrality (0.036) - this node is a cross-community bridge._ -- **Why does `Roles()` connect `Roles` to `JwtAuthGuard`, `ContactService`, `CmsController`, `WholesaleService`, `ProductsService`, `B2B Inquiry Controller`, `Ingredient Management Controller`, `Prescription Review Controller`, `Smart Advisor Controller`, `Testimonials Management Controller`?** - _High betweenness centrality (0.026) - this node is a cross-community bridge._ -- **Why does `JwtAuthGuard` connect `JwtAuthGuard` to `AdminService`, `ZibalService`, `pets/pets.controller.ts`, `UsersService`, `CmsController`, `OrdersService`, `CreateVideoDto`, `ProductsService`, `MediaController`, `admin.module.ts`?** +- **Why does `Roles()` connect `Roles` to `RolesGuard`, `CmsController`, `BannersService`, `WholesaleService`, `wholesale.controller.ts`, `ProductsService`, `B2B Inquiry Controller`, `Ingredient Management Controller`, `admin.module.ts`, `Prescription Review Controller`, `Smart Advisor Controller`, `Testimonials Management Controller`?** + _High betweenness centrality (0.024) - this node is a cross-community bridge._ +- **Why does `JwtAuthGuard` connect `admin.module.ts` to `AdminService`, `RolesGuard`, `payment.controller.ts`, `CmsController`, `OrdersService`, `UsersService`, `CreateVideoDto`, `wholesale.controller.ts`, `pets/pets.controller.ts`, `ProductsService`?** _High betweenness centrality (0.023) - this node is a cross-community bridge._ - **What connects `$schema`, `collection`, `sourceRoot` to the rest of the system?** - _1175 weakly-connected nodes found - possible documentation gaps or missing edges._ + _1178 weakly-connected nodes found - possible documentation gaps or missing edges._ - **Should `AdminService` be split into smaller, more focused modules?** - _Cohesion score 0.06690140845070422 - nodes in this community are weakly interconnected._ -- **Should `pets/pets.controller.ts` be split into smaller, more focused modules?** - _Cohesion score 0.0528169014084507 - nodes in this community are weakly interconnected._ + _Cohesion score 0.06414414414414414 - nodes in this community are weakly interconnected._ - **Should `Roles` be split into smaller, more focused modules?** - _Cohesion score 0.06771929824561404 - nodes in this community are weakly interconnected._ \ No newline at end of file + _Cohesion score 0.051446321102698506 - nodes in this community are weakly interconnected._ +- **Should `UsersService` be split into smaller, more focused modules?** + _Cohesion score 0.06093189964157706 - nodes in this community are weakly interconnected._ \ No newline at end of file diff --git a/graphify-out/cache/stat-index.json b/graphify-out/cache/stat-index.json index b2ef218..3eb49b2 100644 --- a/graphify-out/cache/stat-index.json +++ b/graphify-out/cache/stat-index.json @@ -1 +1 @@ -{".ai_agency/AGENCY.md":{"size":8757,"mtime_ns":1785148021979607300,"indexed_at_ns":1786863693890454700,"word_count":1161,"hashes":{".ai_agency/agency.md":"88c7c13583a91fc7e41ce055fede9dce20f181e8d264557808989965e83a9030"}},".ai_agency/agents/00_intake.md":{"size":3819,"mtime_ns":1785148021984319000,"indexed_at_ns":1786863693892455200,"word_count":500,"hashes":{".ai_agency/agents/00_intake.md":"9dc8d7eeda0655717dc5b9d2f8572c47567b88ca88de7e4e5bf59869077ff407"}},".ai_agency/agents/01_auditor.md":{"size":3643,"mtime_ns":1785148021987782800,"indexed_at_ns":1786863693894964400,"word_count":467,"hashes":{".ai_agency/agents/01_auditor.md":"37ae09614034d9b5c855e0132b59a5e3cfd2fc38c54d1a5386fa43ba488c4d4d"}},".ai_agency/agents/02_ceo.md":{"size":2341,"mtime_ns":1785148021998374800,"indexed_at_ns":1786863693896964700,"word_count":294,"hashes":{".ai_agency/agents/02_ceo.md":"b4a76df6483fd52e1b9f1e70765b3f7b6d134dc003ef2ad0cb86b952c869c4a5"}},".ai_agency/agents/03_product_manager.md":{"size":8422,"mtime_ns":1785148022001968200,"indexed_at_ns":1786863693898470300,"word_count":1076,"hashes":{".ai_agency/agents/03_product_manager.md":"1927827474b1dd6fd4976af45b51f1ad3128fe3305c3af22639ab2584e8f0b55"}},".ai_agency/agents/04_architect.md":{"size":3603,"mtime_ns":1785148022004966000,"indexed_at_ns":1786863693899999300,"word_count":448,"hashes":{".ai_agency/agents/04_architect.md":"c96b04d5af093f455fa3c64ae177a69421e8150eb38c70bb8587b5a14e7d3ca8"}},".ai_agency/agents/05_dev_backend.md":{"size":7142,"mtime_ns":1785148022012481200,"indexed_at_ns":1786863693901997700,"word_count":953,"hashes":{".ai_agency/agents/05_dev_backend.md":"143a7c8a6fbedcd837d647efddb9f6b49074583502bd77f24c955bd86a6f3df8"}},".ai_agency/agents/06_dev_frontend.md":{"size":7518,"mtime_ns":1785148022017020100,"indexed_at_ns":1786863693902997800,"word_count":1011,"hashes":{".ai_agency/agents/06_dev_frontend.md":"e69679636d42dd626c7c76ddc96e1ddb656ab5b9ee912b89adcc7a9338f34a0b"}},".ai_agency/agents/07_qa_engineer.md":{"size":3764,"mtime_ns":1785148022020044600,"indexed_at_ns":1786863693905070800,"word_count":507,"hashes":{".ai_agency/agents/07_qa_engineer.md":"2616ef2b3ac39ded45fc669d5b5b140e72953fe61a819966fb040382e9b47d45"}},".ai_agency/agents/08_visual_qa.md":{"size":7910,"mtime_ns":1785148022030083200,"indexed_at_ns":1786863693907111900,"word_count":1121,"hashes":{".ai_agency/agents/08_visual_qa.md":"17a5a74039e8a9d7cb40c5bc3c616c7c92d53401efd92d0675d4bbe5e90572a8"}},".ai_agency/agents/09_devops_security.md":{"size":6825,"mtime_ns":1785148022034087400,"indexed_at_ns":1786863693908113400,"word_count":908,"hashes":{".ai_agency/agents/09_devops_security.md":"315bd3cee954ac3496da8db1b1718b75ab3822ec3a90f99bc77767ca99482edf"}},".ai_agency/agents/10_tech_writer.md":{"size":3119,"mtime_ns":1785148022037082600,"indexed_at_ns":1786863693910113400,"word_count":408,"hashes":{".ai_agency/agents/10_tech_writer.md":"3527b44265fec2472cc20ca4641667e1fa3d38cbc9b2fbf9a946ee1e531e9e37"}},".ai_agency/agents/11_deploy.md":{"size":3956,"mtime_ns":1785148022040602600,"indexed_at_ns":1786863693912113300,"word_count":537,"hashes":{".ai_agency/agents/11_deploy.md":"8169bc98b249cd83ba21551dea082f69dfa6deca5f5e4a7f2739a28746c143f9"}},".ai_agency/agents/12_seo_content.md":{"size":10963,"mtime_ns":1785148022048603900,"indexed_at_ns":1786863693913112900,"word_count":1539,"hashes":{".ai_agency/agents/12_seo_content.md":"2f50eb9db8bf1ad7bc23c7d8c3a4f167a2daafb73f095db9237c5bdb20e7a5f4"}},".ai_agency/memory/agent_outputs/README.txt":{"size":290,"mtime_ns":1785148022052150400,"indexed_at_ns":1786863693914617900,"word_count":34,"hashes":{".ai_agency/memory/agent_outputs/readme.txt":"49b19b781e865081a74a0a87282e6c266e373f443a79e0758ef60a6e644c6e04"}},".ai_agency/memory/backlog.json":{"size":10711,"mtime_ns":1785330750958890900,"indexed_at_ns":1786863680433252400,"word_count":981,"hashes":{".ai_agency/memory/backlog.json":"6bf3150a1877d03d03b368df21b84071381b1bb8cd03e3721fa9f8e6c38355be"}},".ai_agency/memory/scratchpad.md":{"size":1879,"mtime_ns":1785148022065114400,"indexed_at_ns":1786863693916623700,"word_count":249,"hashes":{".ai_agency/memory/scratchpad.md":"9d0f687cf8e95c6335f1efb070da8029878417c28117e3b89aa8536ad70a5b95"}},".ai_agency/memory/state.json":{"size":3654,"mtime_ns":1785330750963913800,"indexed_at_ns":1786863680437228800,"word_count":254,"hashes":{".ai_agency/memory/state.json":"1204676f8f295d89733888bb87936061b7a700df0cc936fbf08fd5269b534e8d"}},".ai_agency/orchestrate.py":{"size":6800,"mtime_ns":1785148022072662500,"indexed_at_ns":1786863680437736800,"word_count":644,"hashes":{".ai_agency/orchestrate.py":"90ec787fdd4c71f5203c56b6899aadcc26e6e0bad0cc576d2f982aa42eed42e1"}},".ai_agency/specs/api_contract.md":{"size":1515,"mtime_ns":1785148022077664900,"indexed_at_ns":1786863693918623100,"word_count":139,"hashes":{".ai_agency/specs/api_contract.md":"ea0911b6a5ad6a908ab707f7553f5f24712c1e198fd79255fa85e3249150e8b4"}},".ai_agency/specs/architecture_spec.md":{"size":790,"mtime_ns":1785148022082260900,"indexed_at_ns":1786863693919623000,"word_count":99,"hashes":{".ai_agency/specs/architecture_spec.md":"6269043f6a144e8ac86ff1db7e014075185e5675a4a0ee23e99e70d88253b8af"}},".ai_agency/specs/prd.md":{"size":724,"mtime_ns":1785148022087251600,"indexed_at_ns":1786863693921188600,"word_count":96,"hashes":{".ai_agency/specs/prd.md":"1c6d5a0ec8a709a2b3aed28225f5fe148ad2d75851d45699187678d055947b11"}},".ai_agency/specs/project_health.md":{"size":444,"mtime_ns":1785148022098314600,"indexed_at_ns":1786863693923194300,"word_count":65,"hashes":{".ai_agency/specs/project_health.md":"677c2f1d35c31d75d935766f154683e0483b08c696117ee612bee1528705c598"}},".ai_agency/specs/reviews/README.md":{"size":1029,"mtime_ns":1785148022105834900,"indexed_at_ns":1786863693924698200,"word_count":117,"hashes":{".ai_agency/specs/reviews/readme.md":"8ceb4cae1ad4c0f660557d827ced970cda8f7d020f8124b624b228174b1b65ab"}},".ai_agency/specs/reviews/backend_review.md":{"size":1430,"mtime_ns":1785148022110362400,"indexed_at_ns":1786863693926808400,"word_count":172,"hashes":{".ai_agency/specs/reviews/backend_review.md":"fca1f8d59c2eab255f7aba246b26731fe53f208e737ccf46035389591900a150"}},".ai_agency/specs/reviews/code_health_review.md":{"size":2193,"mtime_ns":1785148022114359700,"indexed_at_ns":1786863693927808600,"word_count":279,"hashes":{".ai_agency/specs/reviews/code_health_review.md":"532e04465e125183d6dd8f8af61bfc8735a514b3fbbc49069f5f0884155ed93f"}},".ai_agency/specs/reviews/frontend_review.md":{"size":1452,"mtime_ns":1785148022118486900,"indexed_at_ns":1786863693929808600,"word_count":183,"hashes":{".ai_agency/specs/reviews/frontend_review.md":"9f826c0267cad8bd5d342b1f908c927976d9be7da3f75b175331381ef8c8b680"}},".ai_agency/specs/reviews/security_review.md":{"size":874,"mtime_ns":1785148022121487200,"indexed_at_ns":1786863693931808300,"word_count":110,"hashes":{".ai_agency/specs/reviews/security_review.md":"51363e62e919d6772c2b3b9a1a3f3870a5892dae6d408217ed3fb475f72d3f0b"}},".ai_agency/specs/reviews/seo_content_review.md":{"size":1238,"mtime_ns":1785148022131533800,"indexed_at_ns":1786863693932808200,"word_count":156,"hashes":{".ai_agency/specs/reviews/seo_content_review.md":"bc8401649a86585b4061b3ec0f584910c54aad25bc9943392179bc070c07a434"}},".ai_agency/specs/reviews/ux_review.md":{"size":1131,"mtime_ns":1785148022136550700,"indexed_at_ns":1786863693934808700,"word_count":150,"hashes":{".ai_agency/specs/reviews/ux_review.md":"b8a52f324e36fcc2d046cc903a05903057098a67a397ae6442d6c825091f4513"}},".claude/CLAUDE.md":{"size":229,"mtime_ns":1786863506887378800,"indexed_at_ns":1786863693936609300,"word_count":29,"hashes":{".claude/claude.md":"bc13fe68ca2c17442410eba331059e731c5c83c4ea036819b6555449f2f9bd3e"}},".claude/settings.json":{"size":502,"mtime_ns":1786863506896982400,"indexed_at_ns":1786863680440309500,"word_count":38,"hashes":{".claude/settings.json":"7f1d3686b704c4ea28478db0f136f7ad02ad4c443d1d61547195eb41b386e194"}},".claude/skills/graphify/SKILL.md":{"size":43292,"mtime_ns":1786863506884372300,"indexed_at_ns":1786863693937614400,"word_count":5442,"hashes":{".claude/skills/graphify/skill.md":"5b24d39cbbb662ea1cd672839f64b50823e1b7de9b113f542248eac38c70cdf1"}},".claude/skills/graphify/references/add-watch.md":{"size":2486,"mtime_ns":1786863247327045900,"indexed_at_ns":1786863693939614400,"word_count":366,"hashes":{".claude/skills/graphify/references/add-watch.md":"cb5e2f3284265c08c88c08f445b96958b13a9115c0afc0a33206c293d1b1c187"}},".claude/skills/graphify/references/exports.md":{"size":3362,"mtime_ns":1786863247328043300,"indexed_at_ns":1786863693941614100,"word_count":470,"hashes":{".claude/skills/graphify/references/exports.md":"7aa8b606e5c19334b6c9fe62a12fc30eb46c0320d1dbb5726cfda0becdd04a5a"}},".claude/skills/graphify/references/extraction-spec.md":{"size":7960,"mtime_ns":1786863247328043300,"indexed_at_ns":1786863693943614700,"word_count":1038,"hashes":{".claude/skills/graphify/references/extraction-spec.md":"9cf5d515d0d8584aeef36708df34f560078772a568ed599cac5ba20b089e563d"}},".claude/skills/graphify/references/github-and-merge.md":{"size":2177,"mtime_ns":1786863247329043200,"indexed_at_ns":1786863693945118300,"word_count":271,"hashes":{".claude/skills/graphify/references/github-and-merge.md":"609de4b1331ddb2f8c80e97aac0a5de782a373d6f5af858e10a731c20b35c0e2"}},".claude/skills/graphify/references/hooks.md":{"size":1267,"mtime_ns":1786863247330040600,"indexed_at_ns":1786863693946123500,"word_count":193,"hashes":{".claude/skills/graphify/references/hooks.md":"7c7827f2f29d6e2cb6cc6902558dac08380f60c414b4968f83e1bc4e61b3e268"}},".claude/skills/graphify/references/query.md":{"size":13456,"mtime_ns":1786863247330040600,"indexed_at_ns":1786863693947124100,"word_count":1763,"hashes":{".claude/skills/graphify/references/query.md":"54526cc3e2392922d344f14767f09037ef85fb7ec5cc7911b749b35bcb004fbf"}},".claude/skills/graphify/references/transcribe.md":{"size":3173,"mtime_ns":1786863247331669700,"indexed_at_ns":1786863693949631700,"word_count":418,"hashes":{".claude/skills/graphify/references/transcribe.md":"1d5afbaccf36e952e71082591edfc9e4fbd9946eb85b01855a1d0bd810b7623d"}},".claude/skills/graphify/references/update.md":{"size":10425,"mtime_ns":1786863247332678700,"indexed_at_ns":1786863693951631700,"word_count":1196,"hashes":{".claude/skills/graphify/references/update.md":"0249cd6ceae6effdfc7371b51d00c462f51d95700101dcedd36255bab1b4ce7a"}},".gitea/scripts/with-vpn.sh":{"size":1794,"mtime_ns":1786799852126316200,"indexed_at_ns":1786863680441317700,"word_count":208,"hashes":{".gitea/scripts/with-vpn.sh":"9ec013d142e3cf5d7e5f09778fcb06b4b8ea7b394688f9f40b5e74298c76bcf0"}},".gitea/workflows/deploy.yml":{"size":705,"mtime_ns":1786799852129314900,"indexed_at_ns":1786863693953204100,"word_count":66,"hashes":{".gitea/workflows/deploy.yml":"16db5d3c44a232a7d06f48cd831f0029888fe09d01e077f8baa6179418de97c9"}},"BACKEND_INTEGRATION.md":{"size":15570,"mtime_ns":1783856792407456900,"indexed_at_ns":1786863693955111300,"word_count":1521,"hashes":{"backend_integration.md":"e8e295d94e7ede012716ffa00a3897949b7c672220e28934bb3f1b3421b0ada4"}},"CLAUDE.md":{"size":781,"mtime_ns":1786863506889539900,"indexed_at_ns":1786863693956628000,"word_count":106,"hashes":{"claude.md":"b5a5237f0dd262308961666186afbe48d20e935dfee4ce03b818c7badbca2cc4"}},"DATABASE_SCHEMA.md":{"size":15407,"mtime_ns":1783856792408463100,"indexed_at_ns":1786863693957628200,"word_count":1566,"hashes":{"database_schema.md":"f3a6af02ddd27083b48621a20730670aeb6c9e644f526619e1e3f1f84f148862"}},"README.md":{"size":13121,"mtime_ns":1785589838803752400,"indexed_at_ns":1786863693959627800,"word_count":1310,"hashes":{"readme.md":"a436483d430dc94fdecc2b3e51296180ee6c36265dda1d38d40a5ab22a908ff7"}},"backend/README.md":{"size":5028,"mtime_ns":1783764561601382400,"indexed_at_ns":1786863693961627700,"word_count":472,"hashes":{"backend/readme.md":"c3edfd26252566ef2ddee12c91a874b59e03a1656894d3db25209a0e4031010a"}},"backend/eslint.config.mjs":{"size":1301,"mtime_ns":1786799852134389200,"indexed_at_ns":1786863534431014600,"word_count":86},"backend/nest-cli.json":{"size":171,"mtime_ns":1783764561602717300,"indexed_at_ns":1786863680442315200,"word_count":13,"hashes":{"backend/nest-cli.json":"bc5d809c5959501544235473a6c264c5f3ab1100522e852d0a06034f5f00cd6f"}},"backend/package.json":{"size":2799,"mtime_ns":1786799852141904400,"indexed_at_ns":1786863680444315800,"word_count":208,"hashes":{"backend/package.json":"21912a365ea8843084de1956d6e2b9648f640d87071d5fc5eff61c80a61232c0"}},"backend/prisma/migrations/20260526145407_init/migration.sql":{"size":8963,"mtime_ns":1783764561612007600,"indexed_at_ns":1786863680445315600,"word_count":936,"hashes":{"backend/prisma/migrations/20260526145407_init/migration.sql":"d6cc5e861e43bf82dcffe1ad7121fcbe9f74db7901cf204b5058da3132d3c1d2"}},"backend/prisma/migrations/20260526160916_add_ui_texts_and_scientific_terms/migration.sql":{"size":404,"mtime_ns":1783764561613425800,"indexed_at_ns":1786863680446319100,"word_count":48,"hashes":{"backend/prisma/migrations/20260526160916_add_ui_texts_and_scientific_terms/migration.sql":"c564f4aba35d32a733a5837c33664c68c8912277ad9645310f7e8116fbcba741"}},"backend/prisma/scientificTerms.ts":{"size":24298,"mtime_ns":1785325924634812500,"indexed_at_ns":1786863534471369900,"word_count":2294},"backend/prisma/seed-blogs.ts":{"size":6956,"mtime_ns":1783856792411456200,"indexed_at_ns":1786863534478877500,"word_count":620},"backend/prisma/seed-custom.ts":{"size":3836,"mtime_ns":1786799852144902000,"indexed_at_ns":1786863534484541000,"word_count":371},"backend/prisma/seed-home.ts":{"size":3874,"mtime_ns":1785327951145202900,"indexed_at_ns":1786863534491538300,"word_count":374},"backend/prisma/seed-products-data.json":{"size":59316,"mtime_ns":1784621786937006900,"indexed_at_ns":1786863680448315400,"word_count":5730,"hashes":{"backend/prisma/seed-products-data.json":"1082bc2279b9077d9ab461782595bfbc634193ccb2765c7cfff067c29874d795"}},"backend/prisma/seed-products.ts":{"size":28292,"mtime_ns":1786799852148417900,"indexed_at_ns":1786863534503398000,"word_count":2063},"backend/prisma/seed-ui-texts.ts":{"size":9217,"mtime_ns":1786799852151190300,"indexed_at_ns":1786863534511402600,"word_count":755},"backend/prisma/seed-wiki.ts":{"size":2903,"mtime_ns":1783764561624836600,"indexed_at_ns":1786863534518133500,"word_count":273},"backend/prisma/seed.ts":{"size":30472,"mtime_ns":1786799852154882200,"indexed_at_ns":1786863534524646900,"word_count":2632},"backend/prisma/tsconfig.seed.json":{"size":143,"mtime_ns":1785327951150720400,"indexed_at_ns":1786863680449821000,"word_count":13,"hashes":{"backend/prisma/tsconfig.seed.json":"0dd0013121ee9c7935ba92fb0295f64511daf157a8776d3da6bb79a81e0fee78"}},"backend/scripts/generate-openapi.ts":{"size":1385,"mtime_ns":1786799852156390500,"indexed_at_ns":1786863534537298000,"word_count":128},"backend/src/admin/admin.controller.spec.ts":{"size":593,"mtime_ns":1786799852157399700,"indexed_at_ns":1786863534543362400,"word_count":59},"backend/src/admin/admin.controller.ts":{"size":7859,"mtime_ns":1786799852161903300,"indexed_at_ns":1786863534549368400,"word_count":783},"backend/src/admin/admin.module.ts":{"size":1291,"mtime_ns":1785327951155252000,"indexed_at_ns":1786863534557978400,"word_count":131},"backend/src/admin/admin.service.spec.ts":{"size":682,"mtime_ns":1786799852162911100,"indexed_at_ns":1786863534564065100,"word_count":72},"backend/src/admin/admin.service.ts":{"size":17562,"mtime_ns":1786799852166910300,"indexed_at_ns":1786863534569198600,"word_count":1831},"backend/src/admin/blogs.controller.ts":{"size":1840,"mtime_ns":1786799852170191700,"indexed_at_ns":1786863534578222000,"word_count":190},"backend/src/admin/blogs.service.ts":{"size":1810,"mtime_ns":1786799852171191000,"indexed_at_ns":1786863534584725500,"word_count":221},"backend/src/admin/categories.controller.ts":{"size":2187,"mtime_ns":1786799852174192500,"indexed_at_ns":1786863534590311100,"word_count":204},"backend/src/admin/categories.service.ts":{"size":2005,"mtime_ns":1786799852175194300,"indexed_at_ns":1786863534595817200,"word_count":223},"backend/src/admin/dto/admin-query.dto.ts":{"size":634,"mtime_ns":1786799852178706400,"indexed_at_ns":1786863534603325400,"word_count":60},"backend/src/admin/media.controller.ts":{"size":1896,"mtime_ns":1786799852182210000,"indexed_at_ns":1786863534609528900,"word_count":184},"backend/src/admin/media.service.ts":{"size":2095,"mtime_ns":1786799852185216000,"indexed_at_ns":1786863534616040300,"word_count":215},"backend/src/admin/pets.controller.ts":{"size":1195,"mtime_ns":1786799852186217200,"indexed_at_ns":1786863534621612800,"word_count":117},"backend/src/admin/pets.service.ts":{"size":1461,"mtime_ns":1786799852188731200,"indexed_at_ns":1786863534629254900,"word_count":169},"backend/src/admin/reports.controller.ts":{"size":664,"mtime_ns":1783764561642147000,"indexed_at_ns":1786863534634255100,"word_count":66},"backend/src/admin/reports.service.ts":{"size":3399,"mtime_ns":1786799852189730800,"indexed_at_ns":1786863534640768500,"word_count":388},"backend/src/admin/wiki.controller.ts":{"size":1814,"mtime_ns":1786799852191732300,"indexed_at_ns":1786863534647913700,"word_count":179},"backend/src/admin/wiki.service.ts":{"size":1767,"mtime_ns":1786799852193324200,"indexed_at_ns":1786863534654035100,"word_count":195},"backend/src/app.controller.spec.ts":{"size":617,"mtime_ns":1783764561644839700,"indexed_at_ns":1786863534660738600,"word_count":61},"backend/src/app.controller.ts":{"size":274,"mtime_ns":1783764561645849100,"indexed_at_ns":1786863534667244700,"word_count":31},"backend/src/app.module.ts":{"size":3489,"mtime_ns":1786867397654560800,"indexed_at_ns":1786867582319701700,"word_count":332},"backend/src/app.service.ts":{"size":142,"mtime_ns":1783764561648840500,"indexed_at_ns":1786863534680950600,"word_count":19},"backend/src/auth/auth.controller.spec.ts":{"size":1528,"mtime_ns":1785327951179468000,"indexed_at_ns":1786863534687029500,"word_count":149},"backend/src/auth/auth.controller.ts":{"size":4434,"mtime_ns":1786799852199844100,"indexed_at_ns":1786863534694034100,"word_count":382},"backend/src/auth/auth.module.ts":{"size":644,"mtime_ns":1786799852200843900,"indexed_at_ns":1786863534700113900,"word_count":69},"backend/src/auth/auth.service.spec.ts":{"size":4264,"mtime_ns":1786799852201843300,"indexed_at_ns":1786863534705627700,"word_count":379},"backend/src/auth/auth.service.ts":{"size":6752,"mtime_ns":1786806867172986600,"indexed_at_ns":1786863534713700300,"word_count":682},"backend/src/auth/dto/admin-login.dto.ts":{"size":772,"mtime_ns":1786799852205357700,"indexed_at_ns":1786863534720212600,"word_count":82},"backend/src/auth/dto/login.dto.ts":{"size":587,"mtime_ns":1783764561659109000,"indexed_at_ns":1786863534727735200,"word_count":63},"backend/src/auth/dto/register.dto.ts":{"size":1197,"mtime_ns":1785327951186476900,"indexed_at_ns":1786863534732751200,"word_count":115},"backend/src/auth/dto/send-otp.dto.ts":{"size":374,"mtime_ns":1783764561661106500,"indexed_at_ns":1786863534739271500,"word_count":39},"backend/src/auth/dto/verify-otp.dto.ts":{"size":594,"mtime_ns":1783764561662112100,"indexed_at_ns":1786863534745843500,"word_count":64},"backend/src/auth/jwt-auth.guard.ts":{"size":494,"mtime_ns":1786799852205862700,"indexed_at_ns":1786863534751350400,"word_count":58},"backend/src/auth/jwt.strategy.ts":{"size":1089,"mtime_ns":1786799852206870900,"indexed_at_ns":1786863534758565800,"word_count":110},"backend/src/auth/roles.decorator.ts":{"size":54,"mtime_ns":1786799852208379600,"indexed_at_ns":1786863534764578800,"word_count":4},"backend/src/auth/roles.guard.ts":{"size":46,"mtime_ns":1786799852209003400,"indexed_at_ns":1786863534770087500,"word_count":4},"backend/src/b2b/b2b.controller.ts":{"size":2684,"mtime_ns":1786799852212013200,"indexed_at_ns":1786863534777707900,"word_count":246},"backend/src/b2b/b2b.module.ts":{"size":342,"mtime_ns":1786799852212013200,"indexed_at_ns":1786863534783641300,"word_count":38},"backend/src/b2b/b2b.service.ts":{"size":2379,"mtime_ns":1786799852214009300,"indexed_at_ns":1786863534792157000,"word_count":243},"backend/src/banners/banners.controller.ts":{"size":1923,"mtime_ns":1786799852215010200,"indexed_at_ns":1786863534797707700,"word_count":169},"backend/src/banners/banners.module.ts":{"size":374,"mtime_ns":1786799852216010300,"indexed_at_ns":1786863534807022900,"word_count":38},"backend/src/banners/banners.service.ts":{"size":1394,"mtime_ns":1786799852216010300,"indexed_at_ns":1786863534813112700,"word_count":160},"backend/src/blogs/blogs.controller.ts":{"size":1197,"mtime_ns":1786799852218009900,"indexed_at_ns":1786863534819206600,"word_count":108},"backend/src/blogs/blogs.module.ts":{"size":248,"mtime_ns":1783764561665678100,"indexed_at_ns":1786863534825741600,"word_count":28},"backend/src/blogs/blogs.service.ts":{"size":1674,"mtime_ns":1786799852219010000,"indexed_at_ns":1786863534831743000,"word_count":191},"backend/src/blogs/dto/create-blog.dto.ts":{"size":30,"mtime_ns":1783764561671557000,"indexed_at_ns":1786863534838708700,"word_count":4},"backend/src/blogs/dto/update-blog.dto.ts":{"size":164,"mtime_ns":1783764561673712400,"indexed_at_ns":1786863534844735300,"word_count":18},"backend/src/blogs/entities/blog.entity.ts":{"size":21,"mtime_ns":1783764561675101100,"indexed_at_ns":1786863534850735400,"word_count":4},"backend/src/cms/cms.controller.ts":{"size":3521,"mtime_ns":1785327951196913100,"indexed_at_ns":1786863534858244500,"word_count":280},"backend/src/cms/cms.module.ts":{"size":342,"mtime_ns":1785148022206298000,"indexed_at_ns":1786863534864244300,"word_count":38},"backend/src/cms/cms.service.ts":{"size":2501,"mtime_ns":1785327951197940400,"indexed_at_ns":1786863534870502100,"word_count":256},"backend/src/cms/dto/cms.dto.ts":{"size":2357,"mtime_ns":1785327951199995500,"indexed_at_ns":1786863534877728700,"word_count":203},"backend/src/common/decorators/roles.decorator.ts":{"size":157,"mtime_ns":1786799852220522400,"indexed_at_ns":1786863534882729600,"word_count":20},"backend/src/common/dto/pagination.dto.ts":{"size":1188,"mtime_ns":1785327951201988900,"indexed_at_ns":1786863534889612500,"word_count":121},"backend/src/common/filters/http-exception.filter.ts":{"size":4824,"mtime_ns":1786799852224528200,"indexed_at_ns":1786863534896118700,"word_count":468},"backend/src/common/filters/prisma-exception.filter.ts":{"size":2412,"mtime_ns":1785330913143709100,"indexed_at_ns":1786863534903118900,"word_count":228},"backend/src/common/guards/roles.guard.spec.ts":{"size":2426,"mtime_ns":1786799852225556800,"indexed_at_ns":1786863534909695400,"word_count":223},"backend/src/common/guards/roles.guard.ts":{"size":1285,"mtime_ns":1786799852226565200,"indexed_at_ns":1786863534916198700,"word_count":120},"backend/src/common/interceptors/decimal.interceptor.spec.ts":{"size":1677,"mtime_ns":1786799852227565700,"indexed_at_ns":1786863534923711900,"word_count":164},"backend/src/common/interceptors/decimal.interceptor.ts":{"size":1094,"mtime_ns":1786799852227565700,"indexed_at_ns":1786863534929913300,"word_count":118},"backend/src/common/metrics.controller.ts":{"size":2093,"mtime_ns":1786799852229073100,"indexed_at_ns":1786863534936006600,"word_count":206},"backend/src/common/schemas/error-response.schema.ts":{"size":1680,"mtime_ns":1785330913144701500,"indexed_at_ns":1786863534942170300,"word_count":162},"backend/src/common/schemas/paginated-response.schema.ts":{"size":1108,"mtime_ns":1786799852230082200,"indexed_at_ns":1786863534949353300,"word_count":110},"backend/src/common/services/sms.service.ts":{"size":20554,"mtime_ns":1786868465142001900,"indexed_at_ns":1786868556126337000,"word_count":2048},"backend/src/common/sms.module.ts":{"size":204,"mtime_ns":1785330750996125100,"indexed_at_ns":1786863534962381000,"word_count":24},"backend/src/contact/contact.controller.ts":{"size":1990,"mtime_ns":1786799852234596200,"indexed_at_ns":1786863534967884500,"word_count":177},"backend/src/contact/contact.module.ts":{"size":365,"mtime_ns":1786799852236599000,"indexed_at_ns":1786863534974401800,"word_count":38},"backend/src/contact/contact.service.ts":{"size":4698,"mtime_ns":1786799852236599000,"indexed_at_ns":1786863534980086100,"word_count":451},"backend/src/home/dto/create-home.dto.ts":{"size":30,"mtime_ns":1783764561682365300,"indexed_at_ns":1786863534987087100,"word_count":4},"backend/src/home/dto/update-home.dto.ts":{"size":164,"mtime_ns":1783764561682365300,"indexed_at_ns":1786863534992600800,"word_count":18},"backend/src/home/entities/home.entity.ts":{"size":21,"mtime_ns":1783764561684884800,"indexed_at_ns":1786863534999171300,"word_count":4},"backend/src/home/home.controller.ts":{"size":757,"mtime_ns":1785327951212087300,"indexed_at_ns":1786863535004176100,"word_count":69},"backend/src/home/home.module.ts":{"size":241,"mtime_ns":1783764561687108000,"indexed_at_ns":1786863535011491500,"word_count":28},"backend/src/home/home.service.ts":{"size":1372,"mtime_ns":1785327951214087300,"indexed_at_ns":1786863535016491700,"word_count":144},"backend/src/ingredients/ingredients.controller.ts":{"size":1952,"mtime_ns":1786799852237596500,"indexed_at_ns":1786863535024117600,"word_count":165},"backend/src/ingredients/ingredients.module.ts":{"size":406,"mtime_ns":1786799852238596500,"indexed_at_ns":1786863535030195600,"word_count":38},"backend/src/ingredients/ingredients.service.ts":{"size":1526,"mtime_ns":1786799852240108300,"indexed_at_ns":1786863535035320500,"word_count":162},"backend/src/main.ts":{"size":3824,"mtime_ns":1786799852243122100,"indexed_at_ns":1786863535042494800,"word_count":334},"backend/src/orders/dto/create-order.dto.ts":{"size":1899,"mtime_ns":1785327951218626100,"indexed_at_ns":1786863535048494100,"word_count":162},"backend/src/orders/orders.controller.spec.ts":{"size":1910,"mtime_ns":1785327951219627700,"indexed_at_ns":1786863535055560000,"word_count":194},"backend/src/orders/orders.controller.ts":{"size":5398,"mtime_ns":1786799852245117300,"indexed_at_ns":1786863535060553900,"word_count":465},"backend/src/orders/orders.module.ts":{"size":255,"mtime_ns":1783764561697598200,"indexed_at_ns":1786863535066790700,"word_count":28},"backend/src/orders/orders.service.spec.ts":{"size":4974,"mtime_ns":1786799852246117900,"indexed_at_ns":1786863535074585400,"word_count":483},"backend/src/orders/orders.service.ts":{"size":11996,"mtime_ns":1786867405607138200,"indexed_at_ns":1786867582666914800,"word_count":1125},"backend/src/pets/dto/create-health-log.dto.ts":{"size":761,"mtime_ns":1785327951229443300,"indexed_at_ns":1786863535087660400,"word_count":69},"backend/src/pets/dto/create-pet.dto.ts":{"size":1143,"mtime_ns":1785327951230948800,"indexed_at_ns":1786863535094172300,"word_count":104},"backend/src/pets/dto/create-reminder.dto.ts":{"size":810,"mtime_ns":1785327951231958200,"indexed_at_ns":1786863535101315600,"word_count":71},"backend/src/pets/dto/update-pet.dto.ts":{"size":160,"mtime_ns":1783764561709557500,"indexed_at_ns":1786863535107396200,"word_count":18},"backend/src/pets/pets.controller.spec.ts":{"size":2544,"mtime_ns":1786799852248118800,"indexed_at_ns":1786863535113902500,"word_count":269},"backend/src/pets/pets.controller.ts":{"size":7178,"mtime_ns":1786799852249120300,"indexed_at_ns":1786863535119901600,"word_count":657},"backend/src/pets/pets.module.ts":{"size":241,"mtime_ns":1783764561714469800,"indexed_at_ns":1786863535125397200,"word_count":28},"backend/src/pets/pets.service.spec.ts":{"size":2961,"mtime_ns":1785327951238208000,"indexed_at_ns":1786863535132005000,"word_count":272},"backend/src/pets/pets.service.ts":{"size":6978,"mtime_ns":1786799852250117400,"indexed_at_ns":1786863535137713400,"word_count":710},"backend/src/prescriptions/prescriptions.controller.ts":{"size":2356,"mtime_ns":1786799852253748300,"indexed_at_ns":1786863535145222600,"word_count":232},"backend/src/prescriptions/prescriptions.module.ts":{"size":422,"mtime_ns":1786799852254465600,"indexed_at_ns":1786863535151222700,"word_count":38},"backend/src/prescriptions/prescriptions.service.ts":{"size":3529,"mtime_ns":1786799852256562700,"indexed_at_ns":1786863535157446300,"word_count":379},"backend/src/prisma/prisma.module.ts":{"size":210,"mtime_ns":1783764561718199800,"indexed_at_ns":1786863535164330600,"word_count":24},"backend/src/prisma/prisma.service.ts":{"size":354,"mtime_ns":1785327951241209600,"indexed_at_ns":1786863535170609600,"word_count":37},"backend/src/products/dto/get-products.dto.ts":{"size":1320,"mtime_ns":1786799852260271600,"indexed_at_ns":1786863535176492100,"word_count":115},"backend/src/products/products.controller.spec.ts":{"size":1863,"mtime_ns":1785327951243280800,"indexed_at_ns":1786863535183613400,"word_count":166},"backend/src/products/products.controller.ts":{"size":2445,"mtime_ns":1786799852261281700,"indexed_at_ns":1786863535190428600,"word_count":209},"backend/src/products/products.module.ts":{"size":269,"mtime_ns":1783764561723672400,"indexed_at_ns":1786863535197280400,"word_count":28},"backend/src/products/products.service.spec.ts":{"size":1597,"mtime_ns":1786799852263279400,"indexed_at_ns":1786863535202917700,"word_count":154},"backend/src/products/products.service.ts":{"size":6463,"mtime_ns":1786799852264283000,"indexed_at_ns":1786863535210559200,"word_count":668},"backend/src/redis/redis.module.ts":{"size":205,"mtime_ns":1783764561727662100,"indexed_at_ns":1786863535217462500,"word_count":24},"backend/src/redis/redis.service.spec.ts":{"size":1525,"mtime_ns":1783764561728672300,"indexed_at_ns":1786863535222986600,"word_count":145},"backend/src/redis/redis.service.ts":{"size":1120,"mtime_ns":1786799852265279600,"indexed_at_ns":1786863535230726100,"word_count":124},"backend/src/seo/seo.controller.ts":{"size":904,"mtime_ns":1785327951247283200,"indexed_at_ns":1786863535236090400,"word_count":85},"backend/src/seo/seo.module.ts":{"size":342,"mtime_ns":1785148022268580900,"indexed_at_ns":1786863535243640100,"word_count":38},"backend/src/seo/seo.service.ts":{"size":2029,"mtime_ns":1785327951248280300,"indexed_at_ns":1786863535249760000,"word_count":182},"backend/src/settings/settings.controller.spec.ts":{"size":2977,"mtime_ns":1786799852267280300,"indexed_at_ns":1786863535257859100,"word_count":246},"backend/src/settings/settings.controller.ts":{"size":6160,"mtime_ns":1786868479493508700,"indexed_at_ns":1786868556405007400,"word_count":468},"backend/src/settings/settings.module.ts":{"size":382,"mtime_ns":1783764561735515700,"indexed_at_ns":1786863535272121400,"word_count":38},"backend/src/settings/settings.service.spec.ts":{"size":2728,"mtime_ns":1783764561736856500,"indexed_at_ns":1786863535278254000,"word_count":251},"backend/src/settings/settings.service.ts":{"size":2954,"mtime_ns":1786868471687074000,"indexed_at_ns":1786868556420470900,"word_count":303},"backend/src/smart-advisor/smart-advisor.controller.ts":{"size":1821,"mtime_ns":1786799852275441500,"indexed_at_ns":1786863535292219400,"word_count":152},"backend/src/smart-advisor/smart-advisor.module.ts":{"size":416,"mtime_ns":1786799852276441700,"indexed_at_ns":1786863535298401600,"word_count":38},"backend/src/smart-advisor/smart-advisor.service.ts":{"size":1241,"mtime_ns":1786799852277440400,"indexed_at_ns":1786863535304944400,"word_count":131},"backend/src/testimonials/testimonials.controller.ts":{"size":1702,"mtime_ns":1786799852279441800,"indexed_at_ns":1786863535310995900,"word_count":143},"backend/src/testimonials/testimonials.module.ts":{"size":414,"mtime_ns":1786799852279441800,"indexed_at_ns":1786863535317805000,"word_count":38},"backend/src/testimonials/testimonials.service.ts":{"size":1100,"mtime_ns":1786799852281471300,"indexed_at_ns":1786863535324923000,"word_count":121},"backend/src/users/dto/address.dto.ts":{"size":1098,"mtime_ns":1783764561739871500,"indexed_at_ns":1786863535331380200,"word_count":99},"backend/src/users/dto/update-profile.dto.ts":{"size":690,"mtime_ns":1783764561742868400,"indexed_at_ns":1786863535339843600,"word_count":63},"backend/src/users/users.controller.spec.ts":{"size":3333,"mtime_ns":1785327951253796500,"indexed_at_ns":1786863535346781600,"word_count":322},"backend/src/users/users.controller.ts":{"size":6854,"mtime_ns":1786799852282481500,"indexed_at_ns":1786863535353416500,"word_count":590},"backend/src/users/users.module.ts":{"size":275,"mtime_ns":1783764561748154400,"indexed_at_ns":1786863535360908700,"word_count":30},"backend/src/users/users.service.spec.ts":{"size":3817,"mtime_ns":1786799852283480600,"indexed_at_ns":1786863535367156600,"word_count":316},"backend/src/users/users.service.ts":{"size":3967,"mtime_ns":1786799852285114500,"indexed_at_ns":1786863535374001800,"word_count":384},"backend/src/videos/dto/create-video.dto.ts":{"size":1424,"mtime_ns":1785327951263854600,"indexed_at_ns":1786863535381108500,"word_count":115},"backend/src/videos/dto/get-videos-query.dto.ts":{"size":643,"mtime_ns":1786799852287643500,"indexed_at_ns":1786863535387813200,"word_count":77},"backend/src/videos/videos.controller.ts":{"size":1924,"mtime_ns":1786799852291153100,"indexed_at_ns":1786863535393635000,"word_count":173},"backend/src/videos/videos.module.ts":{"size":283,"mtime_ns":1785148022306583700,"indexed_at_ns":1786863535400714100,"word_count":30},"backend/src/videos/videos.service.ts":{"size":2471,"mtime_ns":1786799852292167900,"indexed_at_ns":1786863535407503100,"word_count":266},"backend/src/wholesale/dto/wholesale-apply.dto.ts":{"size":739,"mtime_ns":1785148022317622300,"indexed_at_ns":1786863535413220000,"word_count":66},"backend/src/wholesale/wholesale.controller.ts":{"size":2037,"mtime_ns":1786799852294177000,"indexed_at_ns":1786863535418912100,"word_count":160},"backend/src/wholesale/wholesale.module.ts":{"size":390,"mtime_ns":1785148022328746300,"indexed_at_ns":1786863535425686500,"word_count":38},"backend/src/wholesale/wholesale.service.ts":{"size":2627,"mtime_ns":1785330913149233300,"indexed_at_ns":1786863535431718700,"word_count":266},"backend/src/wiki/dto/create-wiki.dto.ts":{"size":30,"mtime_ns":1783764561752933200,"indexed_at_ns":1786863535439031200,"word_count":4},"backend/src/wiki/dto/update-wiki.dto.ts":{"size":164,"mtime_ns":1783764561753945200,"indexed_at_ns":1786863535446428400,"word_count":18},"backend/src/wiki/entities/wiki.entity.ts":{"size":21,"mtime_ns":1783764561755039400,"indexed_at_ns":1786863535452455400,"word_count":4},"backend/src/wiki/wiki.controller.ts":{"size":1219,"mtime_ns":1785327951272850400,"indexed_at_ns":1786863535458333000,"word_count":110},"backend/src/wiki/wiki.module.ts":{"size":241,"mtime_ns":1783764561756925000,"indexed_at_ns":1786863535464948400,"word_count":28},"backend/src/wiki/wiki.service.ts":{"size":1562,"mtime_ns":1786799852295173000,"indexed_at_ns":1786863535471010700,"word_count":174},"backend/test/app-audit-verification.e2e-spec.ts":{"size":6464,"mtime_ns":1786799852296174700,"indexed_at_ns":1786863535478067000,"word_count":569},"backend/test/app.e2e-spec.ts":{"size":981,"mtime_ns":1786799852297175000,"indexed_at_ns":1786863535484496000,"word_count":83},"backend/test/jest-e2e.json":{"size":183,"mtime_ns":1783764561762911800,"indexed_at_ns":1786863680450825300,"word_count":17,"hashes":{"backend/test/jest-e2e.json":"94091f560937212ad7027afcb77e62e6ac79e3e4cb401c3a16a56e7be4cac721"}},"backend/tsconfig.build.json":{"size":107,"mtime_ns":1783764561763447000,"indexed_at_ns":1786863680451826600,"word_count":10,"hashes":{"backend/tsconfig.build.json":"1f47c7dc3c8b5a15558654f45f21e0f553acc1680046f09dc24428e8538c4f9d"}},"backend/tsconfig.json":{"size":674,"mtime_ns":1783764561764062100,"indexed_at_ns":1786863680453826800,"word_count":47,"hashes":{"backend/tsconfig.json":"68997c6c58b6632c29f2a67be484173ed0026600b80b0d708b68f0e3faf47124"}},"backend/uploads/1781288429353-508765350.jpg":{"size":110246,"mtime_ns":1783764561766257000,"indexed_at_ns":1786863694120021300,"word_count":3882,"hashes":{"backend/uploads/1781288429353-508765350.jpg":"c9e532f0482584a2edf76404b86ef82679e5387079d73c59f10234de24ad5074"}},"canina.md":{"size":21969,"mtime_ns":1785148022337913300,"indexed_at_ns":1786863693962627600,"word_count":1983,"hashes":{"canina.md":"a221eb925b06614751d96581d4e3e2ce90bab577c83fd670f1819464859ab82b"}},"canina.pdf":{"size":2858373,"mtime_ns":1785148022370811500,"indexed_at_ns":1786863694095027500,"word_count":0,"hashes":{"canina.pdf":"a52d90e6dffb96dae468ba96f76239762b341751a6455734d75fadd22f30c87c"}},"docker-compose.yml":{"size":2077,"mtime_ns":1785589838806405700,"indexed_at_ns":1786863693964627800,"word_count":117,"hashes":{"docker-compose.yml":"217a4faba9b605112d77db983cc078a3fce3156b3e13c3c2a863e222049487e0"}},"docs/01-introduction.md":{"size":5543,"mtime_ns":1783856792428209800,"indexed_at_ns":1786863693966131500,"word_count":523,"hashes":{"docs/01-introduction.md":"e778b593daaf5be5abeebda97775520786de1bc4fec8d8f6bd3c784c9bc8a748"}},"docs/02-user-guide.md":{"size":4305,"mtime_ns":1783856792429211400,"indexed_at_ns":1786863693967709400,"word_count":422,"hashes":{"docs/02-user-guide.md":"d2955221ab93e1aba35b100205b4ee7858ea37c85062d871ddef39563bd7aef9"}},"docs/03-developer-guide.md":{"size":6717,"mtime_ns":1783764561771660500,"indexed_at_ns":1786863693969714100,"word_count":678,"hashes":{"docs/03-developer-guide.md":"84a16e17d0433edd8631789bdec3bbd7e6f716059cd064843ed8087eea9e2eeb"}},"docs/04-setup-and-deployment.md":{"size":4023,"mtime_ns":1783764561773294900,"indexed_at_ns":1786863693970713900,"word_count":425,"hashes":{"docs/04-setup-and-deployment.md":"723c6016b1bb499fee2b9f63b2c06a9b12f8e4c664b36ea1431181c333bc814e"}},"docs/05-devops-and-monitoring.md":{"size":3590,"mtime_ns":1783764561774446100,"indexed_at_ns":1786863693972714000,"word_count":374,"hashes":{"docs/05-devops-and-monitoring.md":"53f1f45bbbdd3cf81cb4bc082ef4e49f506627f10f581d3c4b835028d02b5421"}},"docs/06-testing.md":{"size":4214,"mtime_ns":1783764561774967500,"indexed_at_ns":1786863693973713900,"word_count":457,"hashes":{"docs/06-testing.md":"69d50bd5e233f030d8076b55b69599cee201e1c393b7ee1beeb495c304fd4bd3"}},"docs/README.md":{"size":2742,"mtime_ns":1783856792430212600,"indexed_at_ns":1786863693975714200,"word_count":253,"hashes":{"docs/readme.md":"24253bea870e2ba8cc7ecbe0c989f9f61ec2700e2564d016db157824dbd1fa9b"}},"docs/audit/00-repository-map.md":{"size":3171,"mtime_ns":1786799852298174200,"indexed_at_ns":1786863693977222500,"word_count":351,"hashes":{"docs/audit/00-repository-map.md":"dde4a63c991d0f469086a147df03b97d8370cd75fa19cc83af1199f267d7bc55"}},"docs/audit/01-system-discovery.md":{"size":3790,"mtime_ns":1786799852299174400,"indexed_at_ns":1786863693979222500,"word_count":467,"hashes":{"docs/audit/01-system-discovery.md":"6c91253cac025506db71adea33a054f88f4c367ba81fc3cb1b85c2bdcfec5c70"}},"docs/audit/02-audit-plan.md":{"size":5058,"mtime_ns":1786799852300175400,"indexed_at_ns":1786863693980222600,"word_count":530,"hashes":{"docs/audit/02-audit-plan.md":"b623d8f8c2b8a14c1ddca1ad956cd8afc9203f7a94eda8e63fd608bc8e9164d1"}},"docs/audit/03-baseline-command-plan.md":{"size":4904,"mtime_ns":1786799852300175400,"indexed_at_ns":1786863693982222800,"word_count":735,"hashes":{"docs/audit/03-baseline-command-plan.md":"fcf49beae52c69d7e9cf85967f028052fa1a78eaae5a2bb9b18072b0273e80e1"}},"docs/audit/04-open-questions.md":{"size":1690,"mtime_ns":1786799852301682100,"indexed_at_ns":1786863693983784800,"word_count":224,"hashes":{"docs/audit/04-open-questions.md":"02fbd51a9131da0b12122a5280cc6f842c299b436a72b117e2263f011b9ebf9c"}},"docs/audit/05-architectural-audit.md":{"size":4884,"mtime_ns":1786799852302689800,"indexed_at_ns":1786863693984790400,"word_count":560,"hashes":{"docs/audit/05-architectural-audit.md":"8977a5c304b3fe86636579d498a459ac98359c34f1062bf731b02f4602c0e94f"}},"docs/audit/06-storefront-audit.md":{"size":4191,"mtime_ns":1786799852303691400,"indexed_at_ns":1786863693987299500,"word_count":520,"hashes":{"docs/audit/06-storefront-audit.md":"1e2f2d9d867dc553f503ef91b3bd60310202225da12bc7d324e192f4e15d8c38"}},"docs/audit/07-backend-audit.md":{"size":5037,"mtime_ns":1786799852304689900,"indexed_at_ns":1786863693989301000,"word_count":581,"hashes":{"docs/audit/07-backend-audit.md":"0436a967b82026334bf45c9ca677d1e79ce688681bea4dc06a7fd19e2d5a2129"}},"docs/audit/08-admin-features-audit.md":{"size":4222,"mtime_ns":1786799852305951400,"indexed_at_ns":1786863693990300000,"word_count":479,"hashes":{"docs/audit/08-admin-features-audit.md":"dda5b0bae4f843a51274269dcb91d8b65db2f2917d336d511790da4718b05b8d"}},"docs/audit/09-database-audit.md":{"size":4126,"mtime_ns":1786799852306969500,"indexed_at_ns":1786863693992299700,"word_count":521,"hashes":{"docs/audit/09-database-audit.md":"d4f82b84ae6c1899ab4da1310414d993d9c23dcd2759120fbe551f5b8da95a08"}},"docs/audit/10-security-audit.md":{"size":5560,"mtime_ns":1786799852307952600,"indexed_at_ns":1786863693994299500,"word_count":678,"hashes":{"docs/audit/10-security-audit.md":"574df31423bd28b3cd58134e7c7e8780f4e2e46c760a372e0e2592c1e83bba4e"}},"docs/audit/11-code-quality-audit.md":{"size":3379,"mtime_ns":1786799852308957000,"indexed_at_ns":1786863693995299500,"word_count":419,"hashes":{"docs/audit/11-code-quality-audit.md":"b6b9a4845e0bd5674d897c08f5451f8cab4df22722826f7c9d55ca19b94d88da"}},"docs/audit/12-testing-audit.md":{"size":4106,"mtime_ns":1786799852309952600,"indexed_at_ns":1786863693997807500,"word_count":486,"hashes":{"docs/audit/12-testing-audit.md":"8bdf2058520a88de4d08c0635999de8f79fdab83055ef560ca3a865026b6450a"}},"docs/audit/13-devops-audit.md":{"size":3435,"mtime_ns":1786799852310953800,"indexed_at_ns":1786863693999375100,"word_count":440,"hashes":{"docs/audit/13-devops-audit.md":"d21daac201fcfc3a0e27c27348806f3f5d2790071578dcb98e7869cd6e9ec8a9"}},"docs/audit/14-documentation-audit.md":{"size":3311,"mtime_ns":1786799852311952200,"indexed_at_ns":1786863694001567900,"word_count":379,"hashes":{"docs/audit/14-documentation-audit.md":"e64be175bd632a05e37be823621eb8a8f13bdb74887d10f5f20887d41cef5c62"}},"docs/audit/15-raw-findings-index.json":{"size":9909,"mtime_ns":1786799852313066900,"indexed_at_ns":1786863680454829500,"word_count":817,"hashes":{"docs/audit/15-raw-findings-index.json":"3c1e582431f5f25edd2c38285c9d59f83c83d5348eaf0ced91d6e7c94a9afb6d"}},"docs/audit/16-deep-audit-summary.md":{"size":3111,"mtime_ns":1786799852313066900,"indexed_at_ns":1786863694003567300,"word_count":393,"hashes":{"docs/audit/16-deep-audit-summary.md":"8ea08de6ac54dddd9da6de934bc850bb31ab7e3c5470059d02d7f84dd120a0e4"}},"docs/audit/17-source-coverage-manifest.json":{"size":128714,"mtime_ns":1786799852315065000,"indexed_at_ns":1786863680455826100,"word_count":7827,"hashes":{"docs/audit/17-source-coverage-manifest.json":"834e6c341db760439d2e7a9c17531b03c17151ab0f2f16b92aac8a350bcae51d"}},"docs/audit/18-compiler-diagnostic-dispositions.md":{"size":1961,"mtime_ns":1786799852315065000,"indexed_at_ns":1786863694005566900,"word_count":285,"hashes":{"docs/audit/18-compiler-diagnostic-dispositions.md":"246b9164725e89c67c76f2305cd128f0c0f9bfdba46e45e0e958fe92ccdcda53"}},"docs/audit/19-finding-verification-report.md":{"size":5464,"mtime_ns":1786799852316064800,"indexed_at_ns":1786863694007070200,"word_count":753,"hashes":{"docs/audit/19-finding-verification-report.md":"1cd1bc37f9e76ba7e4d4ef82b8565def786abfeb159bc4d822e364e3f2ea694f"}},"docs/audit/20-verified-findings-index.json":{"size":21797,"mtime_ns":1786799852317071400,"indexed_at_ns":1786863680457826600,"word_count":1903,"hashes":{"docs/audit/20-verified-findings-index.json":"b20d0b140bd727faefde9f29aa4d787199dd386464030eecdf58e5a8ab629442"}},"docs/audit/21-phase2-quality-gate-summary.md":{"size":1706,"mtime_ns":1786799852318066000,"indexed_at_ns":1786863694009077900,"word_count":211,"hashes":{"docs/audit/21-phase2-quality-gate-summary.md":"1b117f866e73cd17c43e3a4e856584f03997a3c897d1de9afbd128ff8a86d09e"}},"docs/audit/22-tracked-first-party-files.txt":{"size":4452,"mtime_ns":1786799852319066000,"indexed_at_ns":1786863694010075200,"word_count":139,"hashes":{"docs/audit/22-tracked-first-party-files.txt":"ef7fc17de970cd3f397eea961bcaf76abff15589c0fa13f92b47d42e637231c6"}},"docs/audit/23-untracked-first-party-files.txt":{"size":59,"mtime_ns":1786799852319066000,"indexed_at_ns":1786863694012075400,"word_count":7,"hashes":{"docs/audit/23-untracked-first-party-files.txt":"ffa5caec5c75b4013f7c136efed9e944c705e756f4f26e53da73e871a02d704c"}},"docs/audit/24-omitted-file-inspection-report.md":{"size":2462,"mtime_ns":1786799852320065700,"indexed_at_ns":1786863694014075600,"word_count":227,"hashes":{"docs/audit/24-omitted-file-inspection-report.md":"d4484eea65f1861b9b6a30813d2c233d947c2965a13ed5b399462b80ca9c1513"}},"docs/audit/25-reference-integrity-validation.json":{"size":1002,"mtime_ns":1786799852321571600,"indexed_at_ns":1786863680458826600,"word_count":82,"hashes":{"docs/audit/25-reference-integrity-validation.json":"31b900ed297325cabee3e0804809ecd4229f4427283e449f5d82951bb5ed7fde"}},"docs/audit/26-phase2-integrity-repair-report.md":{"size":3191,"mtime_ns":1786799852322091800,"indexed_at_ns":1786863694015640600,"word_count":385,"hashes":{"docs/audit/26-phase2-integrity-repair-report.md":"2b2f385705db6729fccedc63db0f5709afa23e08a80fc859fe0138b416356cd9"}},"docs/audit/27-all-tracked-repository-files.txt":{"size":4631,"mtime_ns":1786799852323099900,"indexed_at_ns":1786863694017145600,"word_count":148,"hashes":{"docs/audit/27-all-tracked-repository-files.txt":"3f312a5c642e6a27446dc35a6c50dacd10e43c1cc9eeb637a49ba61343ce2b69"}},"docs/audit/28-full-repository-classification.json":{"size":27913,"mtime_ns":1786799852324099500,"indexed_at_ns":1786863680460331400,"word_count":1782,"hashes":{"docs/audit/28-full-repository-classification.json":"bcb50229ceddb267c8839ee69c05f5e5c8c4460485c92849532bcf163c37faa8"}},"docs/audit/29-file-content-evidence.json":{"size":109095,"mtime_ns":1786799852325608100,"indexed_at_ns":1786863680462336500,"word_count":9098,"hashes":{"docs/audit/29-file-content-evidence.json":"c4696525e8ab3c252ff9b6b38d5882225e0a9016698111df28064edbe7bf5124"}},"docs/audit/30-compiler-diagnostics-index.json":{"size":3707,"mtime_ns":1786799852326617100,"indexed_at_ns":1786863680463336700,"word_count":324,"hashes":{"docs/audit/30-compiler-diagnostics-index.json":"85bd1a964e41cc5e615c7260be2beb54b49dd444da40d96ae31e2a33c1c6bc24"}},"docs/audit/31-module-audit-closure.md":{"size":7587,"mtime_ns":1786799852327616800,"indexed_at_ns":1786863694019150200,"word_count":709,"hashes":{"docs/audit/31-module-audit-closure.md":"a1c9d7902131d71cf87a072876cc309ac8dfc7cd6e1f33e9619ac12d99f685ba"}},"docs/audit/32-evidence-grade-validation.json":{"size":1613,"mtime_ns":1786799852328616800,"indexed_at_ns":1786863680464337900,"word_count":123,"hashes":{"docs/audit/32-evidence-grade-validation.json":"12ddcc21ff65a2aa76845935ebc0d8313c39991335356fbe3ae7cdd201251af5"}},"docs/audit/33-final-phase2-audit-closure.md":{"size":2535,"mtime_ns":1786799852328616800,"indexed_at_ns":1786863694020149300,"word_count":271,"hashes":{"docs/audit/33-final-phase2-audit-closure.md":"217cadb664c7f7d27f8f849ea1249dfd88d5398fd2af154fd385c80e4d559bb1"}},"docs/audit/34-repository-observations.json":{"size":594,"mtime_ns":1786799852329618700,"indexed_at_ns":1786863680466336600,"word_count":49,"hashes":{"docs/audit/34-repository-observations.json":"28ce67ed3f5bcc3e5c3c80d73a16a34d8053d570be0af62be8afaffbc9318a27"}},"docs/audit/35-semantic-review-ledger.json":{"size":99353,"mtime_ns":1786799852330616000,"indexed_at_ns":1786863680467338400,"word_count":6011,"hashes":{"docs/audit/35-semantic-review-ledger.json":"ac0529050e87efc9e2b5a6c5b3a2ce6379186b4b07f23d8ec9cebf214ff885ef"}},"docs/audit/36-mandatory-semantic-scope.json":{"size":7960,"mtime_ns":1786799852331617100,"indexed_at_ns":1786863680468337900,"word_count":638,"hashes":{"docs/audit/36-mandatory-semantic-scope.json":"af62db825dd527009b8d79a6edab6ab627fe55303d3f7fd1c2d8e5fab9a8760b"}},"docs/audit/ADR-AUTH-001.md":{"size":3274,"mtime_ns":1786799852332642700,"indexed_at_ns":1786863694022417300,"word_count":398,"hashes":{"docs/audit/adr-auth-001.md":"fd6a6e524d66c57e3f114899323509082af11aa30197a015e1255057c5c3ed98"}},"docs/audit/CROSS_BOUNDARY_DEPENDENCIES.md":{"size":2146,"mtime_ns":1786799852332642700,"indexed_at_ns":1786863694023417200,"word_count":239,"hashes":{"docs/audit/cross_boundary_dependencies.md":"56de72c42fdadf710e0837e0d330dfe36c772602d8f094d0a55dbc5bb16906f3"}},"docs/audit/FRONTEND_INTEGRATION_REQUIREMENTS.md":{"size":15330,"mtime_ns":1786799852334462600,"indexed_at_ns":1786863694025417400,"word_count":1579,"hashes":{"docs/audit/frontend_integration_requirements.md":"2ecb7d2758f566db23ea62035bdb85b27c64064d4a02e24f37db93d204f96102"}},"docs/audit/MASTER-TASK-BACKLOG.md":{"size":30107,"mtime_ns":1786799852335470200,"indexed_at_ns":1786863694026492300,"word_count":3510,"hashes":{"docs/audit/master-task-backlog.md":"6df14e8ae8eca2a7f1d9829a6e9891a89a8565eb5a7362186644208fe8454cdc"}},"docs/audit/audit-state.json":{"size":4135,"mtime_ns":1786799852337382200,"indexed_at_ns":1786863680470337000,"word_count":267,"hashes":{"docs/audit/audit-state.json":"4b804494570a2812170cb8dab35d15da659f57d6e637652328725e956f7d98aa"}},"docs/audit/build_manifest.js":{"size":4060,"mtime_ns":1786799852338393200,"indexed_at_ns":1786863535890477600,"word_count":348},"docs/audit/frontend-route-map.md":{"size":2558,"mtime_ns":1786799852339389800,"indexed_at_ns":1786863694027491500,"word_count":329,"hashes":{"docs/audit/frontend-route-map.md":"e9bf92a931f0727c8054230578943f0fd59cc3ef8f6ac5020155ca42edc93622"}},"docs/audit/generate_classification.js":{"size":2186,"mtime_ns":1786799852339389800,"indexed_at_ns":1786863535904305800,"word_count":204},"docs/audit/generate_evidence.js":{"size":3098,"mtime_ns":1786799852340390100,"indexed_at_ns":1786863535911173400,"word_count":253},"docs/audit/generate_ledger.js":{"size":7648,"mtime_ns":1786799852341897300,"indexed_at_ns":1786863535916686900,"word_count":620},"docs/audit/generate_manifest.js":{"size":6357,"mtime_ns":1786799852341897300,"indexed_at_ns":1786863535923771900,"word_count":489},"docs/audit/master-task-backlog.json":{"size":22336,"mtime_ns":1786799852342906700,"indexed_at_ns":1786863680470841000,"word_count":2071,"hashes":{"docs/audit/master-task-backlog.json":"f1c994d971b4e58165ab9f74f8b69b97c07fe74005f64dc11badf5e287b5fd28"}},"docs/audit/phase3-execution-plan.md":{"size":6007,"mtime_ns":1786799852343952400,"indexed_at_ns":1786863694030823300,"word_count":736,"hashes":{"docs/audit/phase3-execution-plan.md":"ab3bc489bde4c86046d35f87c3fb1320acb4fb15d6a3de2e100b05b510aa23b8"}},"docs/audit/phase3-traceability-matrix.md":{"size":5237,"mtime_ns":1786799852344952800,"indexed_at_ns":1786863694031820000,"word_count":692,"hashes":{"docs/audit/phase3-traceability-matrix.md":"c46b1b09c5f6be7f54ba888652e69698b26d955a8e7c8e4fa19cda8729ee2f7b"}},"docs/audit/phase3.1-backlog-review.md":{"size":9737,"mtime_ns":1786799852345952800,"indexed_at_ns":1786863694033821400,"word_count":1202,"hashes":{"docs/audit/phase3.1-backlog-review.md":"021895bb0b90dd75935ebe0317d3198a2c448ccdd6861b1302cc29735f48da82"}},"docs/audit/phase3.1-change-log.md":{"size":3756,"mtime_ns":1786799852346954800,"indexed_at_ns":1786863694035819500,"word_count":451,"hashes":{"docs/audit/phase3.1-change-log.md":"093d244c2788ead47c69e3068ccf66930ba52e04430bdba87020cb4a4edcb817"}},"docs/audit/phase3.2-change-log.md":{"size":8272,"mtime_ns":1786799852347952200,"indexed_at_ns":1786863694036820300,"word_count":930,"hashes":{"docs/audit/phase3.2-change-log.md":"00bff98e2ae2ef50c4daf265d5f34469f21c244b6dca88b70e1f9ffa17a71d83"}},"docs/audit/phase3.2-implementation-readiness.md":{"size":4694,"mtime_ns":1786799852347952200,"indexed_at_ns":1786863694039141500,"word_count":517,"hashes":{"docs/audit/phase3.2-implementation-readiness.md":"9f1e0335fdc0fa2db0fd5ceaa97e50be85d04bc1ad5d3db1ef74e85de97f71a6"}},"docs/audit/rebuild_honest_ledger.js":{"size":6113,"mtime_ns":1786799852348952900,"indexed_at_ns":1786863535983025100,"word_count":559},"docs/audit/sync_honest_manifest.js":{"size":1213,"mtime_ns":1786799852349953100,"indexed_at_ns":1786863535988627700,"word_count":75},"docs/audit/sync_manifest.js":{"size":997,"mtime_ns":1786799852350953300,"indexed_at_ns":1786863535995415600,"word_count":62},"docs/audit/validate_evidence_grade.js":{"size":6141,"mtime_ns":1786799852351954100,"indexed_at_ns":1786863536001204900,"word_count":526},"docs/audit/validate_integrity.js":{"size":3408,"mtime_ns":1786799852352952400,"indexed_at_ns":1786863536007942000,"word_count":284},"docs/backlog.md":{"size":26175,"mtime_ns":1786799852356021600,"indexed_at_ns":1786863694040141700,"word_count":2834,"hashes":{"docs/backlog.md":"ce0d907773d5af5539aa04f7035555e47424d396ea6e3a821771ad00f813ccd6"}},"frontend/admin-panel/README.md":{"size":2425,"mtime_ns":1783764561778952800,"indexed_at_ns":1786863694042141900,"word_count":212,"hashes":{"frontend/admin-panel/readme.md":"3945c052249ebd020b013303d5921815b52d847bd36c748a03bfdc8eb2a390b8"}},"frontend/admin-panel/eslint.config.js":{"size":591,"mtime_ns":1785651092991236900,"indexed_at_ns":1786863536031757200,"word_count":48},"frontend/admin-panel/index.html":{"size":363,"mtime_ns":1783764561780558500,"indexed_at_ns":1786863694044141700,"word_count":28,"hashes":{"frontend/admin-panel/index.html":"ecdac8ac0b565720712afa18490bdfad1a643a6c50c1d0b93d12b7acbcf5e3c0"}},"frontend/admin-panel/package.json":{"size":1072,"mtime_ns":1785570791953119000,"indexed_at_ns":1786863680472845200,"word_count":84,"hashes":{"frontend/admin-panel/package.json":"6d61fb108392e86320c75b42e69ba7138bdc47bba4883fafbeb6e661cc5f51e4"}},"frontend/admin-panel/postcss.config.js":{"size":91,"mtime_ns":1783764561796281900,"indexed_at_ns":1786863536049792000,"word_count":11},"frontend/admin-panel/public/favicon.svg":{"size":9522,"mtime_ns":1783764561797801500,"indexed_at_ns":1786863694122123200,"word_count":491,"hashes":{"frontend/admin-panel/public/favicon.svg":"57a824acf3d4ba0b152537d3c0e79795502d3589ca99556a2155c81b6dea663a"}},"frontend/admin-panel/public/fonts/A-Iranian-Sans/A-Iranian-Sans/read me!.txt":{"size":281,"mtime_ns":1783856792435855000,"indexed_at_ns":1786863694045693300,"word_count":15,"hashes":{"frontend/admin-panel/public/fonts/a-iranian-sans/a-iranian-sans/read me!.txt":"06bcb5a03a381d231568aa217f4bfc1a4446a7cf6574daf93ee6de8830063c67"}},"frontend/admin-panel/public/fonts/IranNastaliq/IranNastaliq/read me!.txt":{"size":281,"mtime_ns":1783856792445365000,"indexed_at_ns":1786863694046698100,"word_count":15,"hashes":{"frontend/admin-panel/public/fonts/irannastaliq/irannastaliq/read me!.txt":"1653ec43d0db64c9a2d88dd8e064a64e83eee53a97b423ea7a40a865792b38c9"}},"frontend/admin-panel/public/fonts/sahel-font-v3.4.0/CHANGELOG.md":{"size":8519,"mtime_ns":1783856792454604400,"indexed_at_ns":1786863694048714800,"word_count":1077,"hashes":{"frontend/admin-panel/public/fonts/sahel-font-v3.4.0/changelog.md":"4003fe6a71221e735897cfe03ac11bd59ef9951572007763151bf95663256a3d"}},"frontend/admin-panel/public/fonts/sahel-font-v3.4.0/README.md":{"size":4136,"mtime_ns":1783856792502503100,"indexed_at_ns":1786863694050719800,"word_count":366,"hashes":{"frontend/admin-panel/public/fonts/sahel-font-v3.4.0/readme.md":"880beb9c92fd527a098de27bc779b6891a36af98ae994f506a64be199ed50392"}},"frontend/admin-panel/public/fonts/sahel-font-v3.4.0/sample-variable.gif":{"size":236102,"mtime_ns":1783856792546496500,"indexed_at_ns":1786863694123122700,"word_count":10881,"hashes":{"frontend/admin-panel/public/fonts/sahel-font-v3.4.0/sample-variable.gif":"38008ccacda40353e4f29e912e844ee659cde19dd209dfc1d5c3356e291293f5"}},"frontend/admin-panel/public/fonts/shabnam-font-v5.0.1/CHANGELOG.md":{"size":7177,"mtime_ns":1783856792548005600,"indexed_at_ns":1786863694052719700,"word_count":951,"hashes":{"frontend/admin-panel/public/fonts/shabnam-font-v5.0.1/changelog.md":"a735e1b29ad9d3361a0d1ecfd5c1f2f78c200a272918606decc377c469944321"}},"frontend/admin-panel/public/fonts/shabnam-font-v5.0.1/README.md":{"size":3696,"mtime_ns":1783856792595155200,"indexed_at_ns":1786863694054719200,"word_count":283,"hashes":{"frontend/admin-panel/public/fonts/shabnam-font-v5.0.1/readme.md":"3b6e2d78372a72b67e339bfd7331d408f43245840749d2f46df5c356a208fbfd"}},"frontend/admin-panel/public/fonts/shabnam-font-v5.0.1/sample.png":{"size":85019,"mtime_ns":1783856792645667900,"indexed_at_ns":1786863694125692200,"word_count":2615,"hashes":{"frontend/admin-panel/public/fonts/shabnam-font-v5.0.1/sample.png":"9cefee026dc2387d3c887064f2419098a4c9aadd466a42184e90fa30be5e15a7"}},"frontend/admin-panel/public/fonts/vazirmatn-v33.003/AUTHORS.txt":{"size":339,"mtime_ns":1783856792646666000,"indexed_at_ns":1786863694055720100,"word_count":55,"hashes":{"frontend/admin-panel/public/fonts/vazirmatn-v33.003/authors.txt":"e22592748c440a3169adec38d57aecfd813b4b98531bbe14df59076e177a452c"}},"frontend/admin-panel/public/fonts/vazirmatn-v33.003/CHANGELOG.md":{"size":38550,"mtime_ns":1783856792647671700,"indexed_at_ns":1786863694057719800,"word_count":5086,"hashes":{"frontend/admin-panel/public/fonts/vazirmatn-v33.003/changelog.md":"5207a2a148ccfd0338342325a39d9b5b2d39514429c93e0aedf68b21f23fd71e"}},"frontend/admin-panel/public/fonts/vazirmatn-v33.003/OFL.txt":{"size":4391,"mtime_ns":1783856792648669800,"indexed_at_ns":1786863694060176900,"word_count":671,"hashes":{"frontend/admin-panel/public/fonts/vazirmatn-v33.003/ofl.txt":"8e7ede02bc5fcd7aa4d98a7692cd6f37ea85249c2a1a59574575f7ff57b2c984"}},"frontend/admin-panel/public/fonts/vazirmatn-v33.003/README.md":{"size":2339,"mtime_ns":1783856792648669800,"indexed_at_ns":1786863694061738100,"word_count":270,"hashes":{"frontend/admin-panel/public/fonts/vazirmatn-v33.003/readme.md":"0d736c7dd11e89622e7105e6a5958fc3d83ec827b8a00debc0943bc8e3a3d201"}},"frontend/admin-panel/public/fonts/vazirmatn-v33.003/\u0631\u0627\u0647\u0646\u0645\u0627.txt":{"size":211,"mtime_ns":1783856792971535000,"indexed_at_ns":1786863694063234100,"word_count":14,"hashes":{"frontend/admin-panel/public/fonts/vazirmatn-v33.003/\u0631\u0627\u0647\u0646\u0645\u0627.txt":"3c26934ce909cddcd30f32691eac2429205e97f4851b76e0b706da0eb7812c66"}},"frontend/admin-panel/public/icons.svg":{"size":5031,"mtime_ns":1783764561799320300,"indexed_at_ns":1786863694127749600,"word_count":382,"hashes":{"frontend/admin-panel/public/icons.svg":"561374a6f3ff39c2881fc8ab6159875671b9acbaab617f4668819f5a24aa0a85"}},"frontend/admin-panel/src/App.tsx":{"size":1088,"mtime_ns":1786799852365481100,"indexed_at_ns":1786863539542562100,"word_count":99},"frontend/admin-panel/src/assets/hero.png":{"size":13057,"mtime_ns":1783764561812863000,"indexed_at_ns":1786863694128748000,"word_count":437,"hashes":{"frontend/admin-panel/src/assets/hero.png":"9350dcf76831435179214888056799d21b9ec6461f03bcad2fca68fb27dcccd9"}},"frontend/admin-panel/src/assets/react.svg":{"size":4126,"mtime_ns":1783764561813924700,"indexed_at_ns":1786863694131258000,"word_count":366,"hashes":{"frontend/admin-panel/src/assets/react.svg":"3ce66cfff5bb1ef0bc54b14d87fc434fdaa60e3e67406ca0475c8e355daf42c9"}},"frontend/admin-panel/src/assets/vite.svg":{"size":8709,"mtime_ns":1783764561814995700,"indexed_at_ns":1786863694133259500,"word_count":439,"hashes":{"frontend/admin-panel/src/assets/vite.svg":"a3813bb88b8e782e5a04d9d628d2540c4ca7719878f24c62bb3b655861178b41"}},"frontend/admin-panel/src/components/Layout.tsx":{"size":726,"mtime_ns":1784621786958594800,"indexed_at_ns":1786863539569270500,"word_count":69},"frontend/admin-panel/src/components/ProtectedRoute.tsx":{"size":2336,"mtime_ns":1786799852369164100,"indexed_at_ns":1786863539575600400,"word_count":210},"frontend/admin-panel/src/components/Sidebar.tsx":{"size":6383,"mtime_ns":1786868200884361500,"indexed_at_ns":1786868560307643100,"word_count":621},"frontend/admin-panel/src/components/Topbar.tsx":{"size":10713,"mtime_ns":1786799852379888800,"indexed_at_ns":1786863539588322600,"word_count":842},"frontend/admin-panel/src/components/ui/ConfirmModal.tsx":{"size":2076,"mtime_ns":1783856792976535500,"indexed_at_ns":1786863539596831200,"word_count":174},"frontend/admin-panel/src/components/ui/MediaSelector.tsx":{"size":14174,"mtime_ns":1786799852383926100,"indexed_at_ns":1786863539602950400,"word_count":1102},"frontend/admin-panel/src/components/ui/Pagination.tsx":{"size":5510,"mtime_ns":1786799852387442100,"indexed_at_ns":1786863539611144600,"word_count":447},"frontend/admin-panel/src/components/ui/Skeleton.tsx":{"size":178,"mtime_ns":1783856792977535800,"indexed_at_ns":1786863539617717100,"word_count":22},"frontend/admin-panel/src/components/ui/Spinner.tsx":{"size":650,"mtime_ns":1783856792979049200,"indexed_at_ns":1786863539624368900,"word_count":67},"frontend/admin-panel/src/main.tsx":{"size":161,"mtime_ns":1783764561829333600,"indexed_at_ns":1786863539634800100,"word_count":16},"frontend/admin-panel/src/pages/B2BManager.tsx":{"size":25576,"mtime_ns":1786799852391440500,"indexed_at_ns":1786863539640800000,"word_count":1789},"frontend/admin-panel/src/pages/BannersManager.tsx":{"size":19445,"mtime_ns":1786799852392442100,"indexed_at_ns":1786863539649527900,"word_count":1443},"frontend/admin-panel/src/pages/Blogs.tsx":{"size":15530,"mtime_ns":1786799852395957300,"indexed_at_ns":1786863539656035900,"word_count":1186},"frontend/admin-panel/src/pages/CMS.tsx":{"size":10072,"mtime_ns":1786799852400957800,"indexed_at_ns":1786863539663141300,"word_count":805},"frontend/admin-panel/src/pages/Categories.tsx":{"size":15807,"mtime_ns":1786799852404978500,"indexed_at_ns":1786863539670140300,"word_count":1115},"frontend/admin-panel/src/pages/ContactSubmissions.tsx":{"size":12435,"mtime_ns":1786799852405538100,"indexed_at_ns":1786863539677731600,"word_count":859},"frontend/admin-panel/src/pages/Coupons.tsx":{"size":26513,"mtime_ns":1786799852408546000,"indexed_at_ns":1786863539685376000,"word_count":2055},"frontend/admin-panel/src/pages/Dashboard.tsx":{"size":6008,"mtime_ns":1786799852412547400,"indexed_at_ns":1786863539693599100,"word_count":534},"frontend/admin-panel/src/pages/FinancialSettingsPage.tsx":{"size":8142,"mtime_ns":1786799852413546800,"indexed_at_ns":1786863539700597900,"word_count":602},"frontend/admin-panel/src/pages/IngredientsManager.tsx":{"size":18513,"mtime_ns":1786799852415055900,"indexed_at_ns":1786863539708016600,"word_count":1338},"frontend/admin-panel/src/pages/Login.tsx":{"size":11553,"mtime_ns":1786799852419064100,"indexed_at_ns":1786863539715210600,"word_count":838},"frontend/admin-panel/src/pages/Media.tsx":{"size":17993,"mtime_ns":1786799852422264000,"indexed_at_ns":1786863539721767700,"word_count":1378},"frontend/admin-panel/src/pages/Orders.tsx":{"size":33650,"mtime_ns":1786799852426784300,"indexed_at_ns":1786863539729283200,"word_count":2471},"frontend/admin-panel/src/pages/Pets.tsx":{"size":7274,"mtime_ns":1786799852429784400,"indexed_at_ns":1786863539737364200,"word_count":578},"frontend/admin-panel/src/pages/PrescriptionsManager.tsx":{"size":14439,"mtime_ns":1786799852431290500,"indexed_at_ns":1786863539742962900,"word_count":1065},"frontend/admin-panel/src/pages/Products.tsx":{"size":75913,"mtime_ns":1786799852433300500,"indexed_at_ns":1786863539750358600,"word_count":5070},"frontend/admin-panel/src/pages/Reports.tsx":{"size":12375,"mtime_ns":1786799852436332600,"indexed_at_ns":1786863539761984500,"word_count":938},"frontend/admin-panel/src/pages/SeoSettingsPage.tsx":{"size":7367,"mtime_ns":1786799852437339800,"indexed_at_ns":1786863539769563000,"word_count":549},"frontend/admin-panel/src/pages/Settings.tsx":{"size":32670,"mtime_ns":1786868211253833600,"indexed_at_ns":1786868560453618600,"word_count":2107},"frontend/admin-panel/src/pages/SmartAdvisorManager.tsx":{"size":14321,"mtime_ns":1786799852443027400,"indexed_at_ns":1786863539783943500,"word_count":1073},"frontend/admin-panel/src/pages/SystemSettingsPage.tsx":{"size":7931,"mtime_ns":1786799852444030300,"indexed_at_ns":1786863539790462300,"word_count":575},"frontend/admin-panel/src/pages/TestimonialsManager.tsx":{"size":18160,"mtime_ns":1786799852445028000,"indexed_at_ns":1786863539796971000,"word_count":1311},"frontend/admin-panel/src/pages/UITexts.tsx":{"size":14223,"mtime_ns":1786799852448543500,"indexed_at_ns":1786863539804526200,"word_count":1138},"frontend/admin-panel/src/pages/Users.tsx":{"size":20275,"mtime_ns":1786799852449548700,"indexed_at_ns":1786863539812544800,"word_count":1440},"frontend/admin-panel/src/pages/Videos.tsx":{"size":19946,"mtime_ns":1786799852454518100,"indexed_at_ns":1786863539819562800,"word_count":1419},"frontend/admin-panel/src/pages/WholesaleApplications.tsx":{"size":6505,"mtime_ns":1786799852457805400,"indexed_at_ns":1786863539828590300,"word_count":503},"frontend/admin-panel/src/pages/Wiki.tsx":{"size":14794,"mtime_ns":1786799852461177300,"indexed_at_ns":1786863539836149600,"word_count":1144},"frontend/admin-panel/src/routes/adminRoutes.tsx":{"size":4152,"mtime_ns":1786868192739918400,"indexed_at_ns":1786868560507610800,"word_count":443},"frontend/admin-panel/src/services/api.ts":{"size":4519,"mtime_ns":1786799852467028100,"indexed_at_ns":1786863539851115700,"word_count":407},"frontend/admin-panel/src/store/adminAuthStore.ts":{"size":666,"mtime_ns":1786799852469037000,"indexed_at_ns":1786863539858627200,"word_count":65},"frontend/admin-panel/src/types/admin.ts":{"size":3699,"mtime_ns":1786799852471035400,"indexed_at_ns":1786863539866211200,"word_count":410},"frontend/admin-panel/tailwind.config.js":{"size":182,"mtime_ns":1783764561861721300,"indexed_at_ns":1786863539871727500,"word_count":20},"frontend/admin-panel/tsconfig.app.json":{"size":617,"mtime_ns":1783764561862859900,"indexed_at_ns":1786863680473847600,"word_count":47,"hashes":{"frontend/admin-panel/tsconfig.app.json":"b15d934d372b42fef3c150b90ab9dec888deeed53159fb9ebaf3ece2bc6896e9"}},"frontend/admin-panel/tsconfig.json":{"size":119,"mtime_ns":1783764561863393600,"indexed_at_ns":1786863680475351500,"word_count":15,"hashes":{"frontend/admin-panel/tsconfig.json":"7a6c2e21b6eaa2355b4e2ed29db2a767499a88498bde745cdccf3ba8c7f64f2b"}},"frontend/admin-panel/tsconfig.node.json":{"size":591,"mtime_ns":1783764561863923100,"indexed_at_ns":1786863680476356300,"word_count":44,"hashes":{"frontend/admin-panel/tsconfig.node.json":"035a8143cff9651dbb67885756a07cc3f8ed1c5dcbf04a6e2042600b7989d525"}},"frontend/admin-panel/vite.config.ts":{"size":161,"mtime_ns":1783764561864454900,"indexed_at_ns":1786863539894474200,"word_count":18},"frontend/application/AGENTS.md":{"size":764,"mtime_ns":1783856792991235100,"indexed_at_ns":1786863694065612900,"word_count":91,"hashes":{"frontend/application/agents.md":"8eba70f52debc8270c8646515ff27558ddba899a6faf9a1105adf155f8d7937c"}},"frontend/application/CLAUDE.md":{"size":11,"mtime_ns":1783764561866744500,"indexed_at_ns":1786863694066612200,"word_count":1,"hashes":{"frontend/application/claude.md":"0776fbbe8c29c6dc861efa70683090a370ab56dc77c22cb9de74895b4c783320"}},"frontend/application/README.md":{"size":1450,"mtime_ns":1783764561867354300,"indexed_at_ns":1786863694067611900,"word_count":155,"hashes":{"frontend/application/readme.md":"dd829cdf325092d859080ac1db3cbf2cca3198e72834f0f228495ef3c49a2240"}},"frontend/application/app/ClientLayout.tsx":{"size":5212,"mtime_ns":1786799852477037800,"indexed_at_ns":1786863539924327100,"word_count":472},"frontend/application/app/HomeClient.tsx":{"size":12735,"mtime_ns":1786799852478049600,"indexed_at_ns":1786863539930399500,"word_count":816},"frontend/application/app/about/page.tsx":{"size":6033,"mtime_ns":1784621786975133800,"indexed_at_ns":1786863539936404200,"word_count":507},"frontend/application/app/blog/[slug]/page.tsx":{"size":6673,"mtime_ns":1785148022468489700,"indexed_at_ns":1786863539944063600,"word_count":521},"frontend/application/app/blog/page.tsx":{"size":1992,"mtime_ns":1786799852480099000,"indexed_at_ns":1786863539951058400,"word_count":206},"frontend/application/app/catalog/CatalogClient.tsx":{"size":14110,"mtime_ns":1786799852482712700,"indexed_at_ns":1786863539957584200,"word_count":1051},"frontend/application/app/catalog/page.tsx":{"size":1006,"mtime_ns":1785148022476706300,"indexed_at_ns":1786863539966536900,"word_count":99},"frontend/application/app/checkout/page.tsx":{"size":125,"mtime_ns":1783764561876442900,"indexed_at_ns":1786863539973147200,"word_count":13},"frontend/application/app/checkout/success/[id]/page.tsx":{"size":231,"mtime_ns":1783764561878668300,"indexed_at_ns":1786863539980152400,"word_count":31},"frontend/application/app/contact/page.tsx":{"size":1933,"mtime_ns":1786799852487043000,"indexed_at_ns":1786863539986278600,"word_count":169},"frontend/application/app/dashboard/page.tsx":{"size":133,"mtime_ns":1783764561880281000,"indexed_at_ns":1786863539993347900,"word_count":13},"frontend/application/app/error.tsx":{"size":383,"mtime_ns":1785148022478709000,"indexed_at_ns":1786863539998855700,"word_count":50},"frontend/application/app/layout.tsx":{"size":4013,"mtime_ns":1786799852553228200,"indexed_at_ns":1786863540019465500,"word_count":353},"frontend/application/app/loading.tsx":{"size":1373,"mtime_ns":1785148022487650000,"indexed_at_ns":1786863540025491400,"word_count":122},"frontend/application/app/not-found.tsx":{"size":124,"mtime_ns":1783764561891411400,"indexed_at_ns":1786863540032490900,"word_count":15},"frontend/application/app/page.tsx":{"size":2369,"mtime_ns":1786799852560228700,"indexed_at_ns":1786863540038558300,"word_count":224},"frontend/application/app/privacy/page.tsx":{"size":4381,"mtime_ns":1784621786991684200,"indexed_at_ns":1786863540046071000,"word_count":361},"frontend/application/app/profile/page.tsx":{"size":122,"mtime_ns":1783764561895258400,"indexed_at_ns":1786863540054231400,"word_count":13},"frontend/application/app/robots.ts":{"size":404,"mtime_ns":1783764561896486600,"indexed_at_ns":1786863540060459100,"word_count":38},"frontend/application/app/search/page.tsx":{"size":571,"mtime_ns":1783856792997874300,"indexed_at_ns":1786863540066098500,"word_count":65},"frontend/application/app/shop/[slug]/page.tsx":{"size":4447,"mtime_ns":1786799852562227500,"indexed_at_ns":1786863540073028500,"word_count":388},"frontend/application/app/shop/page.tsx":{"size":2031,"mtime_ns":1784621786997674100,"indexed_at_ns":1786863540079596800,"word_count":211},"frontend/application/app/sitemap.ts":{"size":2040,"mtime_ns":1786799852565744400,"indexed_at_ns":1786863540085699800,"word_count":191},"frontend/application/app/track/page.tsx":{"size":129,"mtime_ns":1783764561901903300,"indexed_at_ns":1786863540091699600,"word_count":13},"frontend/application/app/trust-seals/page.tsx":{"size":6736,"mtime_ns":1786799852568411500,"indexed_at_ns":1786863540097779700,"word_count":528},"frontend/application/app/videos/page.tsx":{"size":117,"mtime_ns":1783764561902986700,"indexed_at_ns":1786863540105289000,"word_count":13},"frontend/application/app/wiki/[slug]/page.tsx":{"size":2325,"mtime_ns":1784033954808355000,"indexed_at_ns":1786863540118520300,"word_count":234},"frontend/application/app/wiki/page.tsx":{"size":1250,"mtime_ns":1784725668228642900,"indexed_at_ns":1786863540125027600,"word_count":122},"frontend/application/components/AddressModal.tsx":{"size":16148,"mtime_ns":1786799852571178400,"indexed_at_ns":1786863540130732600,"word_count":1109},"frontend/application/components/ArchivePage.tsx":{"size":34510,"mtime_ns":1786799852574204200,"indexed_at_ns":1786863540138240300,"word_count":2695},"frontend/application/components/AuthModal.tsx":{"size":39030,"mtime_ns":1786799852577216100,"indexed_at_ns":1786863540145360500,"word_count":2580},"frontend/application/components/B2BPortal.tsx":{"size":13970,"mtime_ns":1786799852578217200,"indexed_at_ns":1786863540152482700,"word_count":1088},"frontend/application/components/BackButton.tsx":{"size":1105,"mtime_ns":1786799852597341400,"indexed_at_ns":1786863540159500900,"word_count":116},"frontend/application/components/BlogPage.tsx":{"size":24618,"mtime_ns":1785148022532078100,"indexed_at_ns":1786863540166758800,"word_count":1509},"frontend/application/components/CartDrawer.tsx":{"size":20230,"mtime_ns":1786799852599390300,"indexed_at_ns":1786863540173272000,"word_count":1339},"frontend/application/components/CheckoutPage.tsx":{"size":44228,"mtime_ns":1786867533397980500,"indexed_at_ns":1786867587401038700,"word_count":2941},"frontend/application/components/ContactFormClient.tsx":{"size":10545,"mtime_ns":1786799852606567100,"indexed_at_ns":1786863540189260700,"word_count":775},"frontend/application/components/DeleteConfirmModal.tsx":{"size":2328,"mtime_ns":1786799852608752300,"indexed_at_ns":1786863540195843400,"word_count":195},"frontend/application/components/EnamadBadge.tsx":{"size":1516,"mtime_ns":1786799852612361900,"indexed_at_ns":1786863540202352600,"word_count":114},"frontend/application/components/ErrorBoundary.tsx":{"size":2617,"mtime_ns":1786799852614549600,"indexed_at_ns":1786863540208609600,"word_count":235},"frontend/application/components/ErrorPages.tsx":{"size":2811,"mtime_ns":1786799852619431800,"indexed_at_ns":1786863540215610700,"word_count":243},"frontend/application/components/FeaturedProducts.tsx":{"size":9923,"mtime_ns":1786799852624407000,"indexed_at_ns":1786863540221425100,"word_count":840},"frontend/application/components/Footer.tsx":{"size":12515,"mtime_ns":1786799852628907300,"indexed_at_ns":1786863540227960500,"word_count":847},"frontend/application/components/Header.tsx":{"size":29168,"mtime_ns":1786799852634036200,"indexed_at_ns":1786863540234966400,"word_count":2054},"frontend/application/components/HeaderButton.tsx":{"size":2242,"mtime_ns":1786799852637156100,"indexed_at_ns":1786863540242057800,"word_count":208},"frontend/application/components/Hero.tsx":{"size":13756,"mtime_ns":1786799852641709400,"indexed_at_ns":1786863540248561900,"word_count":1166},"frontend/application/components/IngredientWiki.tsx":{"size":18801,"mtime_ns":1786799852653474400,"indexed_at_ns":1786863540255130300,"word_count":1333},"frontend/application/components/LoginModal.tsx":{"size":13848,"mtime_ns":1786799852656893200,"indexed_at_ns":1786863540264642200,"word_count":1121},"frontend/application/components/MaintenancePage.tsx":{"size":2576,"mtime_ns":1786799852659344700,"indexed_at_ns":1786863540272118800,"word_count":217},"frontend/application/components/NetworkBanner.tsx":{"size":2350,"mtime_ns":1786799852662138900,"indexed_at_ns":1786863540279146900,"word_count":214},"frontend/application/components/OrderDetailsModal.tsx":{"size":19791,"mtime_ns":1786799852663829800,"indexed_at_ns":1786863540285189200,"word_count":1502},"frontend/application/components/OrderSuccess.tsx":{"size":6396,"mtime_ns":1786799852665542300,"indexed_at_ns":1786863540291787200,"word_count":521},"frontend/application/components/OrderTracking.tsx":{"size":9107,"mtime_ns":1786799852667178900,"indexed_at_ns":1786863540298785500,"word_count":663},"frontend/application/components/PetProfile.tsx":{"size":66436,"mtime_ns":1786799852679228500,"indexed_at_ns":1786863540305184500,"word_count":4688},"frontend/application/components/PrescriptionUploadModal.tsx":{"size":9749,"mtime_ns":1786799852686529900,"indexed_at_ns":1786863540314204800,"word_count":716},"frontend/application/components/ProductPage.tsx":{"size":53963,"mtime_ns":1786799852697674400,"indexed_at_ns":1786863540321314400,"word_count":3902},"frontend/application/components/SafeImage.tsx":{"size":2056,"mtime_ns":1786799852699981500,"indexed_at_ns":1786863540329602500,"word_count":187},"frontend/application/components/SearchResultsPage.tsx":{"size":8335,"mtime_ns":1786799852701578200,"indexed_at_ns":1786863540335701600,"word_count":594},"frontend/application/components/SearchableSelect.tsx":{"size":4375,"mtime_ns":1785575516155554800,"indexed_at_ns":1786863540342211100,"word_count":336},"frontend/application/components/Skeleton.tsx":{"size":3084,"mtime_ns":1783764561943996900,"indexed_at_ns":1786863540349888700,"word_count":291},"frontend/application/components/SmartAdvisor.tsx":{"size":33439,"mtime_ns":1786799852707518500,"indexed_at_ns":1786863540356396900,"word_count":2519},"frontend/application/components/TickerBanner.tsx":{"size":1607,"mtime_ns":1786799852746980400,"indexed_at_ns":1786863540364538600,"word_count":140},"frontend/application/components/Tooltip.tsx":{"size":2773,"mtime_ns":1784631539493723100,"indexed_at_ns":1786863540370784200,"word_count":227},"frontend/application/components/TopUpModal.tsx":{"size":7914,"mtime_ns":1786799852750447300,"indexed_at_ns":1786863540378052500,"word_count":607},"frontend/application/components/UserDashboard.tsx":{"size":45908,"mtime_ns":1786799852753612900,"indexed_at_ns":1786863540386568000,"word_count":2896},"frontend/application/components/VetGallery.tsx":{"size":9592,"mtime_ns":1786799852755130000,"indexed_at_ns":1786863540396392700,"word_count":759},"frontend/application/components/VideosPage.tsx":{"size":9406,"mtime_ns":1786799852760267600,"indexed_at_ns":1786863540404604300,"word_count":681},"frontend/application/components/__tests__/CartDrawer.test.tsx":{"size":3197,"mtime_ns":1786799852761825800,"indexed_at_ns":1786863540412200800,"word_count":285},"frontend/application/components/__tests__/FeaturedProducts.test.tsx":{"size":3115,"mtime_ns":1786799852765632100,"indexed_at_ns":1786863540419710400,"word_count":242},"frontend/application/components/__tests__/Footer.test.tsx":{"size":1653,"mtime_ns":1783856793038707900,"indexed_at_ns":1786863540426732500,"word_count":139},"frontend/application/components/__tests__/Header.test.tsx":{"size":3277,"mtime_ns":1786799852770019100,"indexed_at_ns":1786863540434730400,"word_count":261},"frontend/application/components/__tests__/Hero.test.tsx":{"size":1980,"mtime_ns":1786799852776010800,"indexed_at_ns":1786863540442340400,"word_count":192},"frontend/application/components/__tests__/Tooltip.test.tsx":{"size":1508,"mtime_ns":1786799852784348900,"indexed_at_ns":1786863540450854900,"word_count":137},"frontend/application/eslint.config.mjs":{"size":465,"mtime_ns":1785651092993484500,"indexed_at_ns":1786863540456944500,"word_count":42},"frontend/application/lib/data/products.ts":{"size":85204,"mtime_ns":1786799852787039000,"indexed_at_ns":1786863540463947300,"word_count":7892},"frontend/application/lib/data/provinces.ts":{"size":2993,"mtime_ns":1785571725610676000,"indexed_at_ns":1786863540475337300,"word_count":203},"frontend/application/lib/data/scientificTerms.ts":{"size":162,"mtime_ns":1786799852788114100,"indexed_at_ns":1786863540482394200,"word_count":18},"frontend/application/lib/hooks/useNetworkStatus.ts":{"size":610,"mtime_ns":1786799852793488000,"indexed_at_ns":1786863540490904900,"word_count":59},"frontend/application/lib/services/api.ts":{"size":2863,"mtime_ns":1786799852799048700,"indexed_at_ns":1786863540496904500,"word_count":303},"frontend/application/lib/services/authService.ts":{"size":4450,"mtime_ns":1786799852805497000,"indexed_at_ns":1786863540505258900,"word_count":503},"frontend/application/lib/services/orderService.ts":{"size":2428,"mtime_ns":1786799852810726500,"indexed_at_ns":1786863540512358400,"word_count":279},"frontend/application/lib/services/productService.ts":{"size":9474,"mtime_ns":1786806825611364200,"indexed_at_ns":1786863540519432200,"word_count":888},"frontend/application/lib/services/videoService.ts":{"size":1015,"mtime_ns":1786799852818516100,"indexed_at_ns":1786863540526453400,"word_count":128},"frontend/application/lib/store/__tests__/cartStore.test.ts":{"size":4430,"mtime_ns":1786799852822036900,"indexed_at_ns":1786863540533965000,"word_count":386},"frontend/application/lib/store/__tests__/settingsStore.test.ts":{"size":1949,"mtime_ns":1783856793043803200,"indexed_at_ns":1786863540540796300,"word_count":194},"frontend/application/lib/store/__tests__/userStore.test.ts":{"size":3639,"mtime_ns":1786799852825547700,"indexed_at_ns":1786863540547305500,"word_count":289},"frontend/application/lib/store/cartStore.ts":{"size":6975,"mtime_ns":1786799852830069700,"indexed_at_ns":1786863540554362600,"word_count":689},"frontend/application/lib/store/settingsStore.ts":{"size":1670,"mtime_ns":1783856793044812600,"indexed_at_ns":1786863540561415600,"word_count":178},"frontend/application/lib/store/uiStore.ts":{"size":872,"mtime_ns":1786799852833588000,"indexed_at_ns":1786863540568531000,"word_count":100},"frontend/application/lib/store/usePetStore.ts":{"size":8639,"mtime_ns":1786799852837682400,"indexed_at_ns":1786863540575155400,"word_count":846},"frontend/application/lib/store/userStore.ts":{"size":9868,"mtime_ns":1786799852838896200,"indexed_at_ns":1786863540585272100,"word_count":853},"frontend/application/lib/types.ts":{"size":2194,"mtime_ns":1786799852840111800,"indexed_at_ns":1786863540590778900,"word_count":237},"frontend/application/lib/utils.ts":{"size":478,"mtime_ns":1786799852847284000,"indexed_at_ns":1786863540596780000,"word_count":61},"frontend/application/next.config.ts":{"size":1764,"mtime_ns":1786806762878003200,"indexed_at_ns":1786863540604880700,"word_count":169},"frontend/application/package.json":{"size":844,"mtime_ns":1786799852863132300,"indexed_at_ns":1786863680477356100,"word_count":72,"hashes":{"frontend/application/package.json":"3ffd8078128454f22679add155e8304ffb9476e630e847cd895ffb1422db1b5f"}},"frontend/application/postcss.config.mjs":{"size":94,"mtime_ns":1783764561988252100,"indexed_at_ns":1786863540617596000,"word_count":13},"frontend/application/public/assets/images/hero-section-image.png":{"size":6990105,"mtime_ns":1783856793095044200,"indexed_at_ns":1786863694135258700,"word_count":267685,"hashes":{"frontend/application/public/assets/images/hero-section-image.png":"13c3a8c4b520c0f0500833b266f6e4755a2c0e86904dc89c1d0243136cd9e090"}},"frontend/application/public/assets/images/regenerated_image_1779109861747.png":{"size":2269101,"mtime_ns":1783764562014110300,"indexed_at_ns":1786863694155060900,"word_count":84979,"hashes":{"frontend/application/public/assets/images/regenerated_image_1779109861747.png":"1dad8a2330655c9068cefc35c7e69370d06305219d6a38d82630043805ac39a9"}},"frontend/application/public/file.svg":{"size":391,"mtime_ns":1783764562016213600,"indexed_at_ns":1786863694164180800,"word_count":50,"hashes":{"frontend/application/public/file.svg":"1119e2ef995a10263472a09138d843b9f5924e1f4b6f84d2168226327ace0be1"}},"frontend/application/public/fonts/A-Iranian-Sans/A-Iranian-Sans/read me!.txt":{"size":281,"mtime_ns":1783856793098052000,"indexed_at_ns":1786863694070120000,"word_count":15,"hashes":{"frontend/application/public/fonts/a-iranian-sans/a-iranian-sans/read me!.txt":"6c2a924fd200fa301020be822d33307191d295b2c6b7e731785c02929b6a0fb1"}},"frontend/application/public/fonts/IranNastaliq/IranNastaliq/read me!.txt":{"size":281,"mtime_ns":1783856793107660400,"indexed_at_ns":1786863694072123000,"word_count":15,"hashes":{"frontend/application/public/fonts/irannastaliq/irannastaliq/read me!.txt":"79166364479f09a129d20f508898f5a23d90937b337db1d2c2a64c2cda022e1f"}},"frontend/application/public/fonts/sahel-font-v3.4.0/CHANGELOG.md":{"size":8519,"mtime_ns":1783856793113660500,"indexed_at_ns":1786863694073120500,"word_count":1077,"hashes":{"frontend/application/public/fonts/sahel-font-v3.4.0/changelog.md":"be9b046e69dc5442c30d61cca51a69e4238f861da265d1ce8cd0192bafce40a9"}},"frontend/application/public/fonts/sahel-font-v3.4.0/README.md":{"size":4136,"mtime_ns":1783856793156251700,"indexed_at_ns":1786863694075624200,"word_count":366,"hashes":{"frontend/application/public/fonts/sahel-font-v3.4.0/readme.md":"9b0e689f6474b487d70db0ecb05321072f15df92266522497b60aaa47579aac5"}},"frontend/application/public/fonts/sahel-font-v3.4.0/sample-variable.gif":{"size":236102,"mtime_ns":1783856793229119700,"indexed_at_ns":1786863694169221500,"word_count":10881,"hashes":{"frontend/application/public/fonts/sahel-font-v3.4.0/sample-variable.gif":"0825bc4a5adf33cea89ddbb0754a9951481f92beed22cc4ae9be5c59c8847c7f"}},"frontend/application/public/fonts/shabnam-font-v5.0.1/CHANGELOG.md":{"size":7177,"mtime_ns":1783856793230118600,"indexed_at_ns":1786863694077307600,"word_count":951,"hashes":{"frontend/application/public/fonts/shabnam-font-v5.0.1/changelog.md":"575542fd432a1b489570fce6eead03ca964b61d038ee9f3bd9181d6c07fec8b2"}},"frontend/application/public/fonts/shabnam-font-v5.0.1/README.md":{"size":3696,"mtime_ns":1783856793279542700,"indexed_at_ns":1786863694079312500,"word_count":283,"hashes":{"frontend/application/public/fonts/shabnam-font-v5.0.1/readme.md":"f9e5953869832730d4169ced95c5b978ef4d156f0114de6b27f37025fd5e7054"}},"frontend/application/public/fonts/shabnam-font-v5.0.1/sample.png":{"size":85019,"mtime_ns":1783856793315146800,"indexed_at_ns":1786863694176105400,"word_count":2615,"hashes":{"frontend/application/public/fonts/shabnam-font-v5.0.1/sample.png":"01816e4165a20a19dbd7c57390bc7d06119e51479c968568396df53bd3116fec"}},"frontend/application/public/fonts/vazirmatn-v33.003/AUTHORS.txt":{"size":339,"mtime_ns":1783856793316155600,"indexed_at_ns":1786863694080379500,"word_count":55,"hashes":{"frontend/application/public/fonts/vazirmatn-v33.003/authors.txt":"0c05de46944017b09527017814eae25279495af7920f59181720a034e84ab759"}},"frontend/application/public/fonts/vazirmatn-v33.003/CHANGELOG.md":{"size":38550,"mtime_ns":1783856793317690100,"indexed_at_ns":1786863694082379200,"word_count":5086,"hashes":{"frontend/application/public/fonts/vazirmatn-v33.003/changelog.md":"323e095d50626f73023efa85133687134ad8808333e908c41b9a3e61f225edbf"}},"frontend/application/public/fonts/vazirmatn-v33.003/OFL.txt":{"size":4391,"mtime_ns":1783856793319422000,"indexed_at_ns":1786863694084379300,"word_count":671,"hashes":{"frontend/application/public/fonts/vazirmatn-v33.003/ofl.txt":"756a84fec3f8eaf480849631710c21e3d503b11e50081b84fb4d31a4d970208a"}},"frontend/application/public/fonts/vazirmatn-v33.003/README.md":{"size":2339,"mtime_ns":1783856793320489000,"indexed_at_ns":1786863694085379400,"word_count":270,"hashes":{"frontend/application/public/fonts/vazirmatn-v33.003/readme.md":"cee7881a2b9d08b4fe358b683fdde88fa7f8fafb7f53852216a080d291460ca0"}},"frontend/application/public/fonts/vazirmatn-v33.003/\u0631\u0627\u0647\u0646\u0645\u0627.txt":{"size":211,"mtime_ns":1783856793668096800,"indexed_at_ns":1786863694087379500,"word_count":14,"hashes":{"frontend/application/public/fonts/vazirmatn-v33.003/\u0631\u0627\u0647\u0646\u0645\u0627.txt":"aa327615c816569057ced5f2c9993f791a1521e2bd4eab0ab992baf173159217"}},"frontend/application/public/globe.svg":{"size":1035,"mtime_ns":1783764562016720700,"indexed_at_ns":1786863694180121600,"word_count":154,"hashes":{"frontend/application/public/globe.svg":"93cd319cc2847a02f77034690697e90991e4e520dddb486c49db6d157f61a410"}},"frontend/application/public/next.svg":{"size":1375,"mtime_ns":1783764562018238900,"indexed_at_ns":1786863694181884500,"word_count":183,"hashes":{"frontend/application/public/next.svg":"b30f61c9863dba2a8d332f310e20fbca37330c1c68612d0f0b453a0b202e836a"}},"frontend/application/public/vercel.svg":{"size":128,"mtime_ns":1783764562019253000,"indexed_at_ns":1786863694184891200,"word_count":12,"hashes":{"frontend/application/public/vercel.svg":"c88132dfd92b424991c922c4121ed83833f9a07d7046def18dd3ccd44ac25e84"}},"frontend/application/public/window.svg":{"size":385,"mtime_ns":1783764562019253000,"indexed_at_ns":1786863694190022700,"word_count":63,"hashes":{"frontend/application/public/window.svg":"20a1be5f2149ff9ae12c5facdd302bc535ba215694bf31eea01cd014322d20fa"}},"frontend/application/tsconfig.json":{"size":750,"mtime_ns":1786799852865640000,"indexed_at_ns":1786863680478356000,"word_count":61,"hashes":{"frontend/application/tsconfig.json":"adcade0f962ec5888be99b4b1402d98812cfd570b0c5669bda73142b2cb9210d"}},"frontend/application/vitest.config.ts":{"size":244,"mtime_ns":1786799852868652900,"indexed_at_ns":1786863544320193300,"word_count":25},"frontend/application/vitest.setup.ts":{"size":532,"mtime_ns":1786799852870650700,"indexed_at_ns":1786863544326240200,"word_count":58},"metadata.json":{"size":334,"mtime_ns":1783856793672137200,"indexed_at_ns":1786863680479357400,"word_count":35,"hashes":{"metadata.json":"c44b4c4ba60752554ceae65e2f22bddb756cbeb25a4a31ee79160b6eb182255a"}},"package.json":{"size":992,"mtime_ns":1783856793674105800,"indexed_at_ns":1786863680481374200,"word_count":118,"hashes":{"package.json":"0157b70b08d4db87730d29b1da6749d719cc3f815c2c01d0c5cd29042f4d0bcf"}},"prometheus.yml":{"size":164,"mtime_ns":1783764562027779300,"indexed_at_ns":1786863694089379300,"word_count":13,"hashes":{"prometheus.yml":"6efadd3eaf7bcdf8e425488e92b4262447caba278f55a179b9bd4a12d5dfc721"}},"scripts/backup_db.sh":{"size":1362,"mtime_ns":1786799852876784600,"indexed_at_ns":1786863680482378900,"word_count":134,"hashes":{"scripts/backup_db.sh":"f90cf2d0c954f3eaca83566ccb365bff62fd97a2af0225816c19902ee4dfdd6c"}},"scripts/compose.prod.yml":{"size":2034,"mtime_ns":1786799852879304700,"indexed_at_ns":1786863694090439600,"word_count":115,"hashes":{"scripts/compose.prod.yml":"b7096f2baba4108e8f2a2145abe28a76e410cfd23973c632dc63c7af99613227"}},"scripts/compose.stage.yml":{"size":2311,"mtime_ns":1786799852881805700,"indexed_at_ns":1786863694092440100,"word_count":122,"hashes":{"scripts/compose.stage.yml":"ce5415bd3ce00eecbe2a53db74fd01c7933ba5e4e73062a6ef58a1036ea5089e"}},"scripts/deploy.sh":{"size":3099,"mtime_ns":1786806692065165300,"indexed_at_ns":1786863680483971700,"word_count":309,"hashes":{"scripts/deploy.sh":"c6caeffd50f1035595e5733fb61f62e55d6f2f7a5b17e649b7a256182cb004d6"}},"scripts/open-browsers.js":{"size":1551,"mtime_ns":1783764562028780800,"indexed_at_ns":1786863544379330800,"word_count":202},"scripts/start-dev.js":{"size":1332,"mtime_ns":1783766217319524600,"indexed_at_ns":1786863544385074200,"word_count":148},"start.sh":{"size":26,"mtime_ns":1784033954813080300,"indexed_at_ns":1786863680484972600,"word_count":4,"hashes":{"start.sh":"694c258b963c309734a3316c770f5fef29703bc6f24754b04155fd8db94cf862"}},"swagger.yml":{"size":95785,"mtime_ns":1786799852892091600,"indexed_at_ns":1786863694094028500,"word_count":7031,"hashes":{"swagger.yml":"9ee34edd53820461e0a043109976532a305cb26a4ff9e265eb8a5883dd42dd53"}},".antigravity/instructions.md":{"size":229,"mtime_ns":1786864624907347800,"indexed_at_ns":1786865149916780000,"word_count":29,"hashes":{".antigravity/instructions.md":"3cd9f03beffc84b16f571f8c9bb69f6bf715aedb712e85af507d8d6dd4db9061"}},".antigravity/workflows/graphify.md":{"size":44042,"mtime_ns":1786864553766438100,"indexed_at_ns":1786865149923799900,"word_count":5442,"hashes":{".antigravity/workflows/graphify.md":"2aa3c37fc3f9cccdb1fa4efbdd9fa03e8274efb1df4430b1d792283ade7f8078"}},".agents/rules/graphify.md":{"size":947,"mtime_ns":1786866620806811100,"indexed_at_ns":1786867040305104900,"word_count":127,"hashes":{".agents/rules/graphify.md":"e55792958648fb69255e3ce3f71a8fcead36307c34b2d67feda9ac650ac61803"}},".agents/workflows/graphify.md":{"size":239,"mtime_ns":1786866620808812000,"indexed_at_ns":1786867040308174500,"word_count":37,"hashes":{".agents/workflows/graphify.md":"d92622463299d313da48e2cdbebf79d7ea24ffaf2ae2de2a1714be8ee42b22b3"}},"backend/src/payment/dto/initiate-payment.dto.ts":{"size":775,"mtime_ns":1786867357558559300,"indexed_at_ns":1786867582675240600,"word_count":69},"backend/src/payment/dto/verify-payment.dto.ts":{"size":1053,"mtime_ns":1786867362787171200,"indexed_at_ns":1786867582681836000,"word_count":96},"backend/src/payment/payment.controller.ts":{"size":5136,"mtime_ns":1786867425063287000,"indexed_at_ns":1786867582687966100,"word_count":446},"backend/src/payment/payment.module.ts":{"size":511,"mtime_ns":1786867389205580500,"indexed_at_ns":1786867582693956800,"word_count":53},"backend/src/payment/payment.service.ts":{"size":13767,"mtime_ns":1786867376815638900,"indexed_at_ns":1786867582699638200,"word_count":1207},"backend/src/payment/zibal.service.ts":{"size":8168,"mtime_ns":1786867352921392900,"indexed_at_ns":1786867582706339700,"word_count":805},"frontend/application/app/payment/verify/page.tsx":{"size":12176,"mtime_ns":1786867467695049200,"indexed_at_ns":1786867587283958600,"word_count":923},"AGENTS.md":{"size":226,"mtime_ns":1786867813068485500,"indexed_at_ns":1786868564962108300,"word_count":29,"hashes":{"agents.md":"b664c2bb6d85e009d7495bcd9c3d52c419176473cd4e19362fd4256616076151"}},"frontend/admin-panel/src/pages/SmsSettingsPage.tsx":{"size":48013,"mtime_ns":1786868502863421200,"indexed_at_ns":1786868560464126400,"word_count":3367}} \ No newline at end of file +{".ai_agency/AGENCY.md":{"size":8757,"mtime_ns":1785148021979607300,"indexed_at_ns":1786863693890454700,"word_count":1161,"hashes":{".ai_agency/agency.md":"88c7c13583a91fc7e41ce055fede9dce20f181e8d264557808989965e83a9030"}},".ai_agency/agents/00_intake.md":{"size":3819,"mtime_ns":1785148021984319000,"indexed_at_ns":1786863693892455200,"word_count":500,"hashes":{".ai_agency/agents/00_intake.md":"9dc8d7eeda0655717dc5b9d2f8572c47567b88ca88de7e4e5bf59869077ff407"}},".ai_agency/agents/01_auditor.md":{"size":3643,"mtime_ns":1785148021987782800,"indexed_at_ns":1786863693894964400,"word_count":467,"hashes":{".ai_agency/agents/01_auditor.md":"37ae09614034d9b5c855e0132b59a5e3cfd2fc38c54d1a5386fa43ba488c4d4d"}},".ai_agency/agents/02_ceo.md":{"size":2341,"mtime_ns":1785148021998374800,"indexed_at_ns":1786863693896964700,"word_count":294,"hashes":{".ai_agency/agents/02_ceo.md":"b4a76df6483fd52e1b9f1e70765b3f7b6d134dc003ef2ad0cb86b952c869c4a5"}},".ai_agency/agents/03_product_manager.md":{"size":8422,"mtime_ns":1785148022001968200,"indexed_at_ns":1786863693898470300,"word_count":1076,"hashes":{".ai_agency/agents/03_product_manager.md":"1927827474b1dd6fd4976af45b51f1ad3128fe3305c3af22639ab2584e8f0b55"}},".ai_agency/agents/04_architect.md":{"size":3603,"mtime_ns":1785148022004966000,"indexed_at_ns":1786863693899999300,"word_count":448,"hashes":{".ai_agency/agents/04_architect.md":"c96b04d5af093f455fa3c64ae177a69421e8150eb38c70bb8587b5a14e7d3ca8"}},".ai_agency/agents/05_dev_backend.md":{"size":7142,"mtime_ns":1785148022012481200,"indexed_at_ns":1786863693901997700,"word_count":953,"hashes":{".ai_agency/agents/05_dev_backend.md":"143a7c8a6fbedcd837d647efddb9f6b49074583502bd77f24c955bd86a6f3df8"}},".ai_agency/agents/06_dev_frontend.md":{"size":7518,"mtime_ns":1785148022017020100,"indexed_at_ns":1786863693902997800,"word_count":1011,"hashes":{".ai_agency/agents/06_dev_frontend.md":"e69679636d42dd626c7c76ddc96e1ddb656ab5b9ee912b89adcc7a9338f34a0b"}},".ai_agency/agents/07_qa_engineer.md":{"size":3764,"mtime_ns":1785148022020044600,"indexed_at_ns":1786863693905070800,"word_count":507,"hashes":{".ai_agency/agents/07_qa_engineer.md":"2616ef2b3ac39ded45fc669d5b5b140e72953fe61a819966fb040382e9b47d45"}},".ai_agency/agents/08_visual_qa.md":{"size":7910,"mtime_ns":1785148022030083200,"indexed_at_ns":1786863693907111900,"word_count":1121,"hashes":{".ai_agency/agents/08_visual_qa.md":"17a5a74039e8a9d7cb40c5bc3c616c7c92d53401efd92d0675d4bbe5e90572a8"}},".ai_agency/agents/09_devops_security.md":{"size":6825,"mtime_ns":1785148022034087400,"indexed_at_ns":1786863693908113400,"word_count":908,"hashes":{".ai_agency/agents/09_devops_security.md":"315bd3cee954ac3496da8db1b1718b75ab3822ec3a90f99bc77767ca99482edf"}},".ai_agency/agents/10_tech_writer.md":{"size":3119,"mtime_ns":1785148022037082600,"indexed_at_ns":1786863693910113400,"word_count":408,"hashes":{".ai_agency/agents/10_tech_writer.md":"3527b44265fec2472cc20ca4641667e1fa3d38cbc9b2fbf9a946ee1e531e9e37"}},".ai_agency/agents/11_deploy.md":{"size":3956,"mtime_ns":1785148022040602600,"indexed_at_ns":1786863693912113300,"word_count":537,"hashes":{".ai_agency/agents/11_deploy.md":"8169bc98b249cd83ba21551dea082f69dfa6deca5f5e4a7f2739a28746c143f9"}},".ai_agency/agents/12_seo_content.md":{"size":10963,"mtime_ns":1785148022048603900,"indexed_at_ns":1786863693913112900,"word_count":1539,"hashes":{".ai_agency/agents/12_seo_content.md":"2f50eb9db8bf1ad7bc23c7d8c3a4f167a2daafb73f095db9237c5bdb20e7a5f4"}},".ai_agency/memory/agent_outputs/README.txt":{"size":290,"mtime_ns":1785148022052150400,"indexed_at_ns":1786863693914617900,"word_count":34,"hashes":{".ai_agency/memory/agent_outputs/readme.txt":"49b19b781e865081a74a0a87282e6c266e373f443a79e0758ef60a6e644c6e04"}},".ai_agency/memory/backlog.json":{"size":10711,"mtime_ns":1785330750958890900,"indexed_at_ns":1786863680433252400,"word_count":981,"hashes":{".ai_agency/memory/backlog.json":"6bf3150a1877d03d03b368df21b84071381b1bb8cd03e3721fa9f8e6c38355be"}},".ai_agency/memory/scratchpad.md":{"size":1879,"mtime_ns":1785148022065114400,"indexed_at_ns":1786863693916623700,"word_count":249,"hashes":{".ai_agency/memory/scratchpad.md":"9d0f687cf8e95c6335f1efb070da8029878417c28117e3b89aa8536ad70a5b95"}},".ai_agency/memory/state.json":{"size":3654,"mtime_ns":1785330750963913800,"indexed_at_ns":1786863680437228800,"word_count":254,"hashes":{".ai_agency/memory/state.json":"1204676f8f295d89733888bb87936061b7a700df0cc936fbf08fd5269b534e8d"}},".ai_agency/orchestrate.py":{"size":6800,"mtime_ns":1785148022072662500,"indexed_at_ns":1786863680437736800,"word_count":644,"hashes":{".ai_agency/orchestrate.py":"90ec787fdd4c71f5203c56b6899aadcc26e6e0bad0cc576d2f982aa42eed42e1"}},".ai_agency/specs/api_contract.md":{"size":1515,"mtime_ns":1785148022077664900,"indexed_at_ns":1786863693918623100,"word_count":139,"hashes":{".ai_agency/specs/api_contract.md":"ea0911b6a5ad6a908ab707f7553f5f24712c1e198fd79255fa85e3249150e8b4"}},".ai_agency/specs/architecture_spec.md":{"size":790,"mtime_ns":1785148022082260900,"indexed_at_ns":1786863693919623000,"word_count":99,"hashes":{".ai_agency/specs/architecture_spec.md":"6269043f6a144e8ac86ff1db7e014075185e5675a4a0ee23e99e70d88253b8af"}},".ai_agency/specs/prd.md":{"size":724,"mtime_ns":1785148022087251600,"indexed_at_ns":1786863693921188600,"word_count":96,"hashes":{".ai_agency/specs/prd.md":"1c6d5a0ec8a709a2b3aed28225f5fe148ad2d75851d45699187678d055947b11"}},".ai_agency/specs/project_health.md":{"size":444,"mtime_ns":1785148022098314600,"indexed_at_ns":1786863693923194300,"word_count":65,"hashes":{".ai_agency/specs/project_health.md":"677c2f1d35c31d75d935766f154683e0483b08c696117ee612bee1528705c598"}},".ai_agency/specs/reviews/README.md":{"size":1029,"mtime_ns":1785148022105834900,"indexed_at_ns":1786863693924698200,"word_count":117,"hashes":{".ai_agency/specs/reviews/readme.md":"8ceb4cae1ad4c0f660557d827ced970cda8f7d020f8124b624b228174b1b65ab"}},".ai_agency/specs/reviews/backend_review.md":{"size":1430,"mtime_ns":1785148022110362400,"indexed_at_ns":1786863693926808400,"word_count":172,"hashes":{".ai_agency/specs/reviews/backend_review.md":"fca1f8d59c2eab255f7aba246b26731fe53f208e737ccf46035389591900a150"}},".ai_agency/specs/reviews/code_health_review.md":{"size":2193,"mtime_ns":1785148022114359700,"indexed_at_ns":1786863693927808600,"word_count":279,"hashes":{".ai_agency/specs/reviews/code_health_review.md":"532e04465e125183d6dd8f8af61bfc8735a514b3fbbc49069f5f0884155ed93f"}},".ai_agency/specs/reviews/frontend_review.md":{"size":1452,"mtime_ns":1785148022118486900,"indexed_at_ns":1786863693929808600,"word_count":183,"hashes":{".ai_agency/specs/reviews/frontend_review.md":"9f826c0267cad8bd5d342b1f908c927976d9be7da3f75b175331381ef8c8b680"}},".ai_agency/specs/reviews/security_review.md":{"size":874,"mtime_ns":1785148022121487200,"indexed_at_ns":1786863693931808300,"word_count":110,"hashes":{".ai_agency/specs/reviews/security_review.md":"51363e62e919d6772c2b3b9a1a3f3870a5892dae6d408217ed3fb475f72d3f0b"}},".ai_agency/specs/reviews/seo_content_review.md":{"size":1238,"mtime_ns":1785148022131533800,"indexed_at_ns":1786863693932808200,"word_count":156,"hashes":{".ai_agency/specs/reviews/seo_content_review.md":"bc8401649a86585b4061b3ec0f584910c54aad25bc9943392179bc070c07a434"}},".ai_agency/specs/reviews/ux_review.md":{"size":1131,"mtime_ns":1785148022136550700,"indexed_at_ns":1786863693934808700,"word_count":150,"hashes":{".ai_agency/specs/reviews/ux_review.md":"b8a52f324e36fcc2d046cc903a05903057098a67a397ae6442d6c825091f4513"}},".claude/CLAUDE.md":{"size":229,"mtime_ns":1786863506887378800,"indexed_at_ns":1786863693936609300,"word_count":29,"hashes":{".claude/claude.md":"bc13fe68ca2c17442410eba331059e731c5c83c4ea036819b6555449f2f9bd3e"}},".claude/settings.json":{"size":502,"mtime_ns":1786863506896982400,"indexed_at_ns":1786863680440309500,"word_count":38,"hashes":{".claude/settings.json":"7f1d3686b704c4ea28478db0f136f7ad02ad4c443d1d61547195eb41b386e194"}},".claude/skills/graphify/SKILL.md":{"size":43292,"mtime_ns":1786863506884372300,"indexed_at_ns":1786863693937614400,"word_count":5442,"hashes":{".claude/skills/graphify/skill.md":"5b24d39cbbb662ea1cd672839f64b50823e1b7de9b113f542248eac38c70cdf1"}},".claude/skills/graphify/references/add-watch.md":{"size":2486,"mtime_ns":1786863247327045900,"indexed_at_ns":1786863693939614400,"word_count":366,"hashes":{".claude/skills/graphify/references/add-watch.md":"cb5e2f3284265c08c88c08f445b96958b13a9115c0afc0a33206c293d1b1c187"}},".claude/skills/graphify/references/exports.md":{"size":3362,"mtime_ns":1786863247328043300,"indexed_at_ns":1786863693941614100,"word_count":470,"hashes":{".claude/skills/graphify/references/exports.md":"7aa8b606e5c19334b6c9fe62a12fc30eb46c0320d1dbb5726cfda0becdd04a5a"}},".claude/skills/graphify/references/extraction-spec.md":{"size":7960,"mtime_ns":1786863247328043300,"indexed_at_ns":1786863693943614700,"word_count":1038,"hashes":{".claude/skills/graphify/references/extraction-spec.md":"9cf5d515d0d8584aeef36708df34f560078772a568ed599cac5ba20b089e563d"}},".claude/skills/graphify/references/github-and-merge.md":{"size":2177,"mtime_ns":1786863247329043200,"indexed_at_ns":1786863693945118300,"word_count":271,"hashes":{".claude/skills/graphify/references/github-and-merge.md":"609de4b1331ddb2f8c80e97aac0a5de782a373d6f5af858e10a731c20b35c0e2"}},".claude/skills/graphify/references/hooks.md":{"size":1267,"mtime_ns":1786863247330040600,"indexed_at_ns":1786863693946123500,"word_count":193,"hashes":{".claude/skills/graphify/references/hooks.md":"7c7827f2f29d6e2cb6cc6902558dac08380f60c414b4968f83e1bc4e61b3e268"}},".claude/skills/graphify/references/query.md":{"size":13456,"mtime_ns":1786863247330040600,"indexed_at_ns":1786863693947124100,"word_count":1763,"hashes":{".claude/skills/graphify/references/query.md":"54526cc3e2392922d344f14767f09037ef85fb7ec5cc7911b749b35bcb004fbf"}},".claude/skills/graphify/references/transcribe.md":{"size":3173,"mtime_ns":1786863247331669700,"indexed_at_ns":1786863693949631700,"word_count":418,"hashes":{".claude/skills/graphify/references/transcribe.md":"1d5afbaccf36e952e71082591edfc9e4fbd9946eb85b01855a1d0bd810b7623d"}},".claude/skills/graphify/references/update.md":{"size":10425,"mtime_ns":1786863247332678700,"indexed_at_ns":1786863693951631700,"word_count":1196,"hashes":{".claude/skills/graphify/references/update.md":"0249cd6ceae6effdfc7371b51d00c462f51d95700101dcedd36255bab1b4ce7a"}},".gitea/scripts/with-vpn.sh":{"size":1794,"mtime_ns":1786799852126316200,"indexed_at_ns":1786863680441317700,"word_count":208,"hashes":{".gitea/scripts/with-vpn.sh":"9ec013d142e3cf5d7e5f09778fcb06b4b8ea7b394688f9f40b5e74298c76bcf0"}},".gitea/workflows/deploy.yml":{"size":705,"mtime_ns":1786799852129314900,"indexed_at_ns":1786863693953204100,"word_count":66,"hashes":{".gitea/workflows/deploy.yml":"16db5d3c44a232a7d06f48cd831f0029888fe09d01e077f8baa6179418de97c9"}},"BACKEND_INTEGRATION.md":{"size":15570,"mtime_ns":1783856792407456900,"indexed_at_ns":1786863693955111300,"word_count":1521,"hashes":{"backend_integration.md":"e8e295d94e7ede012716ffa00a3897949b7c672220e28934bb3f1b3421b0ada4"}},"CLAUDE.md":{"size":781,"mtime_ns":1786863506889539900,"indexed_at_ns":1786863693956628000,"word_count":106,"hashes":{"claude.md":"b5a5237f0dd262308961666186afbe48d20e935dfee4ce03b818c7badbca2cc4"}},"DATABASE_SCHEMA.md":{"size":15407,"mtime_ns":1783856792408463100,"indexed_at_ns":1786863693957628200,"word_count":1566,"hashes":{"database_schema.md":"f3a6af02ddd27083b48621a20730670aeb6c9e644f526619e1e3f1f84f148862"}},"README.md":{"size":13121,"mtime_ns":1785589838803752400,"indexed_at_ns":1786863693959627800,"word_count":1310,"hashes":{"readme.md":"a436483d430dc94fdecc2b3e51296180ee6c36265dda1d38d40a5ab22a908ff7"}},"backend/README.md":{"size":5028,"mtime_ns":1783764561601382400,"indexed_at_ns":1786863693961627700,"word_count":472,"hashes":{"backend/readme.md":"c3edfd26252566ef2ddee12c91a874b59e03a1656894d3db25209a0e4031010a"}},"backend/eslint.config.mjs":{"size":1301,"mtime_ns":1786799852134389200,"indexed_at_ns":1786863534431014600,"word_count":86},"backend/nest-cli.json":{"size":171,"mtime_ns":1783764561602717300,"indexed_at_ns":1786863680442315200,"word_count":13,"hashes":{"backend/nest-cli.json":"bc5d809c5959501544235473a6c264c5f3ab1100522e852d0a06034f5f00cd6f"}},"backend/package.json":{"size":2799,"mtime_ns":1786799852141904400,"indexed_at_ns":1786863680444315800,"word_count":208,"hashes":{"backend/package.json":"21912a365ea8843084de1956d6e2b9648f640d87071d5fc5eff61c80a61232c0"}},"backend/prisma/migrations/20260526145407_init/migration.sql":{"size":8963,"mtime_ns":1783764561612007600,"indexed_at_ns":1786863680445315600,"word_count":936,"hashes":{"backend/prisma/migrations/20260526145407_init/migration.sql":"d6cc5e861e43bf82dcffe1ad7121fcbe9f74db7901cf204b5058da3132d3c1d2"}},"backend/prisma/migrations/20260526160916_add_ui_texts_and_scientific_terms/migration.sql":{"size":404,"mtime_ns":1783764561613425800,"indexed_at_ns":1786863680446319100,"word_count":48,"hashes":{"backend/prisma/migrations/20260526160916_add_ui_texts_and_scientific_terms/migration.sql":"c564f4aba35d32a733a5837c33664c68c8912277ad9645310f7e8116fbcba741"}},"backend/prisma/scientificTerms.ts":{"size":24298,"mtime_ns":1785325924634812500,"indexed_at_ns":1786863534471369900,"word_count":2294},"backend/prisma/seed-blogs.ts":{"size":6956,"mtime_ns":1783856792411456200,"indexed_at_ns":1786863534478877500,"word_count":620},"backend/prisma/seed-custom.ts":{"size":3836,"mtime_ns":1786799852144902000,"indexed_at_ns":1786863534484541000,"word_count":371},"backend/prisma/seed-home.ts":{"size":3874,"mtime_ns":1785327951145202900,"indexed_at_ns":1786863534491538300,"word_count":374},"backend/prisma/seed-products-data.json":{"size":59316,"mtime_ns":1784621786937006900,"indexed_at_ns":1786863680448315400,"word_count":5730,"hashes":{"backend/prisma/seed-products-data.json":"1082bc2279b9077d9ab461782595bfbc634193ccb2765c7cfff067c29874d795"}},"backend/prisma/seed-products.ts":{"size":28292,"mtime_ns":1786799852148417900,"indexed_at_ns":1786863534503398000,"word_count":2063},"backend/prisma/seed-ui-texts.ts":{"size":9217,"mtime_ns":1786799852151190300,"indexed_at_ns":1786863534511402600,"word_count":755},"backend/prisma/seed-wiki.ts":{"size":2903,"mtime_ns":1783764561624836600,"indexed_at_ns":1786863534518133500,"word_count":273},"backend/prisma/seed.ts":{"size":30472,"mtime_ns":1786799852154882200,"indexed_at_ns":1786863534524646900,"word_count":2632},"backend/prisma/tsconfig.seed.json":{"size":143,"mtime_ns":1785327951150720400,"indexed_at_ns":1786863680449821000,"word_count":13,"hashes":{"backend/prisma/tsconfig.seed.json":"0dd0013121ee9c7935ba92fb0295f64511daf157a8776d3da6bb79a81e0fee78"}},"backend/scripts/generate-openapi.ts":{"size":1385,"mtime_ns":1786799852156390500,"indexed_at_ns":1786863534537298000,"word_count":128},"backend/src/admin/admin.controller.spec.ts":{"size":593,"mtime_ns":1786799852157399700,"indexed_at_ns":1786863534543362400,"word_count":59},"backend/src/admin/admin.controller.ts":{"size":7859,"mtime_ns":1786799852161903300,"indexed_at_ns":1786863534549368400,"word_count":783},"backend/src/admin/admin.module.ts":{"size":1291,"mtime_ns":1785327951155252000,"indexed_at_ns":1786863534557978400,"word_count":131},"backend/src/admin/admin.service.spec.ts":{"size":682,"mtime_ns":1786799852162911100,"indexed_at_ns":1786863534564065100,"word_count":72},"backend/src/admin/admin.service.ts":{"size":17562,"mtime_ns":1786799852166910300,"indexed_at_ns":1786863534569198600,"word_count":1831},"backend/src/admin/blogs.controller.ts":{"size":1840,"mtime_ns":1786799852170191700,"indexed_at_ns":1786863534578222000,"word_count":190},"backend/src/admin/blogs.service.ts":{"size":1810,"mtime_ns":1786799852171191000,"indexed_at_ns":1786863534584725500,"word_count":221},"backend/src/admin/categories.controller.ts":{"size":2187,"mtime_ns":1786799852174192500,"indexed_at_ns":1786863534590311100,"word_count":204},"backend/src/admin/categories.service.ts":{"size":2005,"mtime_ns":1786799852175194300,"indexed_at_ns":1786863534595817200,"word_count":223},"backend/src/admin/dto/admin-query.dto.ts":{"size":634,"mtime_ns":1786799852178706400,"indexed_at_ns":1786863534603325400,"word_count":60},"backend/src/admin/media.controller.ts":{"size":1896,"mtime_ns":1786799852182210000,"indexed_at_ns":1786863534609528900,"word_count":184},"backend/src/admin/media.service.ts":{"size":2095,"mtime_ns":1786799852185216000,"indexed_at_ns":1786863534616040300,"word_count":215},"backend/src/admin/pets.controller.ts":{"size":1195,"mtime_ns":1786799852186217200,"indexed_at_ns":1786863534621612800,"word_count":117},"backend/src/admin/pets.service.ts":{"size":1461,"mtime_ns":1786799852188731200,"indexed_at_ns":1786863534629254900,"word_count":169},"backend/src/admin/reports.controller.ts":{"size":664,"mtime_ns":1783764561642147000,"indexed_at_ns":1786863534634255100,"word_count":66},"backend/src/admin/reports.service.ts":{"size":3399,"mtime_ns":1786799852189730800,"indexed_at_ns":1786863534640768500,"word_count":388},"backend/src/admin/wiki.controller.ts":{"size":1814,"mtime_ns":1786799852191732300,"indexed_at_ns":1786863534647913700,"word_count":179},"backend/src/admin/wiki.service.ts":{"size":1767,"mtime_ns":1786799852193324200,"indexed_at_ns":1786863534654035100,"word_count":195},"backend/src/app.controller.spec.ts":{"size":617,"mtime_ns":1783764561644839700,"indexed_at_ns":1786863534660738600,"word_count":61},"backend/src/app.controller.ts":{"size":274,"mtime_ns":1783764561645849100,"indexed_at_ns":1786863534667244700,"word_count":31},"backend/src/app.module.ts":{"size":3489,"mtime_ns":1786867397654560800,"indexed_at_ns":1786867582319701700,"word_count":332},"backend/src/app.service.ts":{"size":142,"mtime_ns":1783764561648840500,"indexed_at_ns":1786863534680950600,"word_count":19},"backend/src/auth/auth.controller.spec.ts":{"size":1528,"mtime_ns":1785327951179468000,"indexed_at_ns":1786863534687029500,"word_count":149},"backend/src/auth/auth.controller.ts":{"size":4434,"mtime_ns":1786799852199844100,"indexed_at_ns":1786863534694034100,"word_count":382},"backend/src/auth/auth.module.ts":{"size":644,"mtime_ns":1786799852200843900,"indexed_at_ns":1786863534700113900,"word_count":69},"backend/src/auth/auth.service.spec.ts":{"size":4264,"mtime_ns":1786799852201843300,"indexed_at_ns":1786863534705627700,"word_count":379},"backend/src/auth/auth.service.ts":{"size":6752,"mtime_ns":1786806867172986600,"indexed_at_ns":1786863534713700300,"word_count":682},"backend/src/auth/dto/admin-login.dto.ts":{"size":772,"mtime_ns":1786799852205357700,"indexed_at_ns":1786863534720212600,"word_count":82},"backend/src/auth/dto/login.dto.ts":{"size":587,"mtime_ns":1783764561659109000,"indexed_at_ns":1786863534727735200,"word_count":63},"backend/src/auth/dto/register.dto.ts":{"size":1197,"mtime_ns":1785327951186476900,"indexed_at_ns":1786863534732751200,"word_count":115},"backend/src/auth/dto/send-otp.dto.ts":{"size":374,"mtime_ns":1783764561661106500,"indexed_at_ns":1786863534739271500,"word_count":39},"backend/src/auth/dto/verify-otp.dto.ts":{"size":594,"mtime_ns":1783764561662112100,"indexed_at_ns":1786863534745843500,"word_count":64},"backend/src/auth/jwt-auth.guard.ts":{"size":494,"mtime_ns":1786799852205862700,"indexed_at_ns":1786863534751350400,"word_count":58},"backend/src/auth/jwt.strategy.ts":{"size":1089,"mtime_ns":1786799852206870900,"indexed_at_ns":1786863534758565800,"word_count":110},"backend/src/auth/roles.decorator.ts":{"size":54,"mtime_ns":1786799852208379600,"indexed_at_ns":1786863534764578800,"word_count":4},"backend/src/auth/roles.guard.ts":{"size":46,"mtime_ns":1786799852209003400,"indexed_at_ns":1786863534770087500,"word_count":4},"backend/src/b2b/b2b.controller.ts":{"size":2684,"mtime_ns":1786799852212013200,"indexed_at_ns":1786863534777707900,"word_count":246},"backend/src/b2b/b2b.module.ts":{"size":342,"mtime_ns":1786799852212013200,"indexed_at_ns":1786863534783641300,"word_count":38},"backend/src/b2b/b2b.service.ts":{"size":2379,"mtime_ns":1786799852214009300,"indexed_at_ns":1786863534792157000,"word_count":243},"backend/src/banners/banners.controller.ts":{"size":1923,"mtime_ns":1786799852215010200,"indexed_at_ns":1786863534797707700,"word_count":169},"backend/src/banners/banners.module.ts":{"size":374,"mtime_ns":1786799852216010300,"indexed_at_ns":1786863534807022900,"word_count":38},"backend/src/banners/banners.service.ts":{"size":1394,"mtime_ns":1786799852216010300,"indexed_at_ns":1786863534813112700,"word_count":160},"backend/src/blogs/blogs.controller.ts":{"size":1197,"mtime_ns":1786799852218009900,"indexed_at_ns":1786863534819206600,"word_count":108},"backend/src/blogs/blogs.module.ts":{"size":248,"mtime_ns":1783764561665678100,"indexed_at_ns":1786863534825741600,"word_count":28},"backend/src/blogs/blogs.service.ts":{"size":1674,"mtime_ns":1786799852219010000,"indexed_at_ns":1786863534831743000,"word_count":191},"backend/src/blogs/dto/create-blog.dto.ts":{"size":30,"mtime_ns":1783764561671557000,"indexed_at_ns":1786863534838708700,"word_count":4},"backend/src/blogs/dto/update-blog.dto.ts":{"size":164,"mtime_ns":1783764561673712400,"indexed_at_ns":1786863534844735300,"word_count":18},"backend/src/blogs/entities/blog.entity.ts":{"size":21,"mtime_ns":1783764561675101100,"indexed_at_ns":1786863534850735400,"word_count":4},"backend/src/cms/cms.controller.ts":{"size":3521,"mtime_ns":1785327951196913100,"indexed_at_ns":1786863534858244500,"word_count":280},"backend/src/cms/cms.module.ts":{"size":342,"mtime_ns":1785148022206298000,"indexed_at_ns":1786863534864244300,"word_count":38},"backend/src/cms/cms.service.ts":{"size":2501,"mtime_ns":1785327951197940400,"indexed_at_ns":1786863534870502100,"word_count":256},"backend/src/cms/dto/cms.dto.ts":{"size":2357,"mtime_ns":1785327951199995500,"indexed_at_ns":1786863534877728700,"word_count":203},"backend/src/common/decorators/roles.decorator.ts":{"size":157,"mtime_ns":1786799852220522400,"indexed_at_ns":1786863534882729600,"word_count":20},"backend/src/common/dto/pagination.dto.ts":{"size":1188,"mtime_ns":1785327951201988900,"indexed_at_ns":1786863534889612500,"word_count":121},"backend/src/common/filters/http-exception.filter.ts":{"size":4824,"mtime_ns":1786799852224528200,"indexed_at_ns":1786863534896118700,"word_count":468},"backend/src/common/filters/prisma-exception.filter.ts":{"size":2412,"mtime_ns":1785330913143709100,"indexed_at_ns":1786863534903118900,"word_count":228},"backend/src/common/guards/roles.guard.spec.ts":{"size":2426,"mtime_ns":1786799852225556800,"indexed_at_ns":1786863534909695400,"word_count":223},"backend/src/common/guards/roles.guard.ts":{"size":1285,"mtime_ns":1786799852226565200,"indexed_at_ns":1786863534916198700,"word_count":120},"backend/src/common/interceptors/decimal.interceptor.spec.ts":{"size":1677,"mtime_ns":1786799852227565700,"indexed_at_ns":1786863534923711900,"word_count":164},"backend/src/common/interceptors/decimal.interceptor.ts":{"size":1094,"mtime_ns":1786799852227565700,"indexed_at_ns":1786863534929913300,"word_count":118},"backend/src/common/metrics.controller.ts":{"size":2093,"mtime_ns":1786799852229073100,"indexed_at_ns":1786863534936006600,"word_count":206},"backend/src/common/schemas/error-response.schema.ts":{"size":1680,"mtime_ns":1785330913144701500,"indexed_at_ns":1786863534942170300,"word_count":162},"backend/src/common/schemas/paginated-response.schema.ts":{"size":1108,"mtime_ns":1786799852230082200,"indexed_at_ns":1786863534949353300,"word_count":110},"backend/src/common/services/sms.service.ts":{"size":27076,"mtime_ns":1786868665645639300,"indexed_at_ns":1786868769145369400,"word_count":2632},"backend/src/common/sms.module.ts":{"size":204,"mtime_ns":1785330750996125100,"indexed_at_ns":1786863534962381000,"word_count":24},"backend/src/contact/contact.controller.ts":{"size":1990,"mtime_ns":1786799852234596200,"indexed_at_ns":1786863534967884500,"word_count":177},"backend/src/contact/contact.module.ts":{"size":365,"mtime_ns":1786799852236599000,"indexed_at_ns":1786863534974401800,"word_count":38},"backend/src/contact/contact.service.ts":{"size":4698,"mtime_ns":1786799852236599000,"indexed_at_ns":1786863534980086100,"word_count":451},"backend/src/home/dto/create-home.dto.ts":{"size":30,"mtime_ns":1783764561682365300,"indexed_at_ns":1786863534987087100,"word_count":4},"backend/src/home/dto/update-home.dto.ts":{"size":164,"mtime_ns":1783764561682365300,"indexed_at_ns":1786863534992600800,"word_count":18},"backend/src/home/entities/home.entity.ts":{"size":21,"mtime_ns":1783764561684884800,"indexed_at_ns":1786863534999171300,"word_count":4},"backend/src/home/home.controller.ts":{"size":757,"mtime_ns":1785327951212087300,"indexed_at_ns":1786863535004176100,"word_count":69},"backend/src/home/home.module.ts":{"size":241,"mtime_ns":1783764561687108000,"indexed_at_ns":1786863535011491500,"word_count":28},"backend/src/home/home.service.ts":{"size":1372,"mtime_ns":1785327951214087300,"indexed_at_ns":1786863535016491700,"word_count":144},"backend/src/ingredients/ingredients.controller.ts":{"size":1952,"mtime_ns":1786799852237596500,"indexed_at_ns":1786863535024117600,"word_count":165},"backend/src/ingredients/ingredients.module.ts":{"size":406,"mtime_ns":1786799852238596500,"indexed_at_ns":1786863535030195600,"word_count":38},"backend/src/ingredients/ingredients.service.ts":{"size":1526,"mtime_ns":1786799852240108300,"indexed_at_ns":1786863535035320500,"word_count":162},"backend/src/main.ts":{"size":3824,"mtime_ns":1786799852243122100,"indexed_at_ns":1786863535042494800,"word_count":334},"backend/src/orders/dto/create-order.dto.ts":{"size":1899,"mtime_ns":1785327951218626100,"indexed_at_ns":1786863535048494100,"word_count":162},"backend/src/orders/orders.controller.spec.ts":{"size":1910,"mtime_ns":1785327951219627700,"indexed_at_ns":1786863535055560000,"word_count":194},"backend/src/orders/orders.controller.ts":{"size":5398,"mtime_ns":1786799852245117300,"indexed_at_ns":1786863535060553900,"word_count":465},"backend/src/orders/orders.module.ts":{"size":255,"mtime_ns":1783764561697598200,"indexed_at_ns":1786863535066790700,"word_count":28},"backend/src/orders/orders.service.spec.ts":{"size":4974,"mtime_ns":1786799852246117900,"indexed_at_ns":1786863535074585400,"word_count":483},"backend/src/orders/orders.service.ts":{"size":11996,"mtime_ns":1786867405607138200,"indexed_at_ns":1786867582666914800,"word_count":1125},"backend/src/pets/dto/create-health-log.dto.ts":{"size":761,"mtime_ns":1785327951229443300,"indexed_at_ns":1786863535087660400,"word_count":69},"backend/src/pets/dto/create-pet.dto.ts":{"size":1143,"mtime_ns":1785327951230948800,"indexed_at_ns":1786863535094172300,"word_count":104},"backend/src/pets/dto/create-reminder.dto.ts":{"size":810,"mtime_ns":1785327951231958200,"indexed_at_ns":1786863535101315600,"word_count":71},"backend/src/pets/dto/update-pet.dto.ts":{"size":160,"mtime_ns":1783764561709557500,"indexed_at_ns":1786863535107396200,"word_count":18},"backend/src/pets/pets.controller.spec.ts":{"size":2544,"mtime_ns":1786799852248118800,"indexed_at_ns":1786863535113902500,"word_count":269},"backend/src/pets/pets.controller.ts":{"size":7178,"mtime_ns":1786799852249120300,"indexed_at_ns":1786863535119901600,"word_count":657},"backend/src/pets/pets.module.ts":{"size":241,"mtime_ns":1783764561714469800,"indexed_at_ns":1786863535125397200,"word_count":28},"backend/src/pets/pets.service.spec.ts":{"size":2961,"mtime_ns":1785327951238208000,"indexed_at_ns":1786863535132005000,"word_count":272},"backend/src/pets/pets.service.ts":{"size":6978,"mtime_ns":1786799852250117400,"indexed_at_ns":1786863535137713400,"word_count":710},"backend/src/prescriptions/prescriptions.controller.ts":{"size":2356,"mtime_ns":1786799852253748300,"indexed_at_ns":1786863535145222600,"word_count":232},"backend/src/prescriptions/prescriptions.module.ts":{"size":422,"mtime_ns":1786799852254465600,"indexed_at_ns":1786863535151222700,"word_count":38},"backend/src/prescriptions/prescriptions.service.ts":{"size":3529,"mtime_ns":1786799852256562700,"indexed_at_ns":1786863535157446300,"word_count":379},"backend/src/prisma/prisma.module.ts":{"size":210,"mtime_ns":1783764561718199800,"indexed_at_ns":1786863535164330600,"word_count":24},"backend/src/prisma/prisma.service.ts":{"size":354,"mtime_ns":1785327951241209600,"indexed_at_ns":1786863535170609600,"word_count":37},"backend/src/products/dto/get-products.dto.ts":{"size":1320,"mtime_ns":1786799852260271600,"indexed_at_ns":1786863535176492100,"word_count":115},"backend/src/products/products.controller.spec.ts":{"size":1863,"mtime_ns":1785327951243280800,"indexed_at_ns":1786863535183613400,"word_count":166},"backend/src/products/products.controller.ts":{"size":2445,"mtime_ns":1786799852261281700,"indexed_at_ns":1786863535190428600,"word_count":209},"backend/src/products/products.module.ts":{"size":269,"mtime_ns":1783764561723672400,"indexed_at_ns":1786863535197280400,"word_count":28},"backend/src/products/products.service.spec.ts":{"size":1597,"mtime_ns":1786799852263279400,"indexed_at_ns":1786863535202917700,"word_count":154},"backend/src/products/products.service.ts":{"size":6463,"mtime_ns":1786799852264283000,"indexed_at_ns":1786863535210559200,"word_count":668},"backend/src/redis/redis.module.ts":{"size":205,"mtime_ns":1783764561727662100,"indexed_at_ns":1786863535217462500,"word_count":24},"backend/src/redis/redis.service.spec.ts":{"size":1525,"mtime_ns":1783764561728672300,"indexed_at_ns":1786863535222986600,"word_count":145},"backend/src/redis/redis.service.ts":{"size":1120,"mtime_ns":1786799852265279600,"indexed_at_ns":1786863535230726100,"word_count":124},"backend/src/seo/seo.controller.ts":{"size":904,"mtime_ns":1785327951247283200,"indexed_at_ns":1786863535236090400,"word_count":85},"backend/src/seo/seo.module.ts":{"size":342,"mtime_ns":1785148022268580900,"indexed_at_ns":1786863535243640100,"word_count":38},"backend/src/seo/seo.service.ts":{"size":2029,"mtime_ns":1785327951248280300,"indexed_at_ns":1786863535249760000,"word_count":182},"backend/src/settings/settings.controller.spec.ts":{"size":2977,"mtime_ns":1786799852267280300,"indexed_at_ns":1786863535257859100,"word_count":246},"backend/src/settings/settings.controller.ts":{"size":7076,"mtime_ns":1786868688093992200,"indexed_at_ns":1786868769424710400,"word_count":538},"backend/src/settings/settings.module.ts":{"size":382,"mtime_ns":1783764561735515700,"indexed_at_ns":1786863535272121400,"word_count":38},"backend/src/settings/settings.service.spec.ts":{"size":2728,"mtime_ns":1783764561736856500,"indexed_at_ns":1786863535278254000,"word_count":251},"backend/src/settings/settings.service.ts":{"size":3202,"mtime_ns":1786868673232833200,"indexed_at_ns":1786868769440886900,"word_count":323},"backend/src/smart-advisor/smart-advisor.controller.ts":{"size":1821,"mtime_ns":1786799852275441500,"indexed_at_ns":1786863535292219400,"word_count":152},"backend/src/smart-advisor/smart-advisor.module.ts":{"size":416,"mtime_ns":1786799852276441700,"indexed_at_ns":1786863535298401600,"word_count":38},"backend/src/smart-advisor/smart-advisor.service.ts":{"size":1241,"mtime_ns":1786799852277440400,"indexed_at_ns":1786863535304944400,"word_count":131},"backend/src/testimonials/testimonials.controller.ts":{"size":1702,"mtime_ns":1786799852279441800,"indexed_at_ns":1786863535310995900,"word_count":143},"backend/src/testimonials/testimonials.module.ts":{"size":414,"mtime_ns":1786799852279441800,"indexed_at_ns":1786863535317805000,"word_count":38},"backend/src/testimonials/testimonials.service.ts":{"size":1100,"mtime_ns":1786799852281471300,"indexed_at_ns":1786863535324923000,"word_count":121},"backend/src/users/dto/address.dto.ts":{"size":1098,"mtime_ns":1783764561739871500,"indexed_at_ns":1786863535331380200,"word_count":99},"backend/src/users/dto/update-profile.dto.ts":{"size":690,"mtime_ns":1783764561742868400,"indexed_at_ns":1786863535339843600,"word_count":63},"backend/src/users/users.controller.spec.ts":{"size":3333,"mtime_ns":1785327951253796500,"indexed_at_ns":1786863535346781600,"word_count":322},"backend/src/users/users.controller.ts":{"size":6854,"mtime_ns":1786799852282481500,"indexed_at_ns":1786863535353416500,"word_count":590},"backend/src/users/users.module.ts":{"size":275,"mtime_ns":1783764561748154400,"indexed_at_ns":1786863535360908700,"word_count":30},"backend/src/users/users.service.spec.ts":{"size":3817,"mtime_ns":1786799852283480600,"indexed_at_ns":1786863535367156600,"word_count":316},"backend/src/users/users.service.ts":{"size":3967,"mtime_ns":1786799852285114500,"indexed_at_ns":1786863535374001800,"word_count":384},"backend/src/videos/dto/create-video.dto.ts":{"size":1424,"mtime_ns":1785327951263854600,"indexed_at_ns":1786863535381108500,"word_count":115},"backend/src/videos/dto/get-videos-query.dto.ts":{"size":643,"mtime_ns":1786799852287643500,"indexed_at_ns":1786863535387813200,"word_count":77},"backend/src/videos/videos.controller.ts":{"size":1924,"mtime_ns":1786799852291153100,"indexed_at_ns":1786863535393635000,"word_count":173},"backend/src/videos/videos.module.ts":{"size":283,"mtime_ns":1785148022306583700,"indexed_at_ns":1786863535400714100,"word_count":30},"backend/src/videos/videos.service.ts":{"size":2471,"mtime_ns":1786799852292167900,"indexed_at_ns":1786863535407503100,"word_count":266},"backend/src/wholesale/dto/wholesale-apply.dto.ts":{"size":739,"mtime_ns":1785148022317622300,"indexed_at_ns":1786863535413220000,"word_count":66},"backend/src/wholesale/wholesale.controller.ts":{"size":2037,"mtime_ns":1786799852294177000,"indexed_at_ns":1786863535418912100,"word_count":160},"backend/src/wholesale/wholesale.module.ts":{"size":390,"mtime_ns":1785148022328746300,"indexed_at_ns":1786863535425686500,"word_count":38},"backend/src/wholesale/wholesale.service.ts":{"size":2627,"mtime_ns":1785330913149233300,"indexed_at_ns":1786863535431718700,"word_count":266},"backend/src/wiki/dto/create-wiki.dto.ts":{"size":30,"mtime_ns":1783764561752933200,"indexed_at_ns":1786863535439031200,"word_count":4},"backend/src/wiki/dto/update-wiki.dto.ts":{"size":164,"mtime_ns":1783764561753945200,"indexed_at_ns":1786863535446428400,"word_count":18},"backend/src/wiki/entities/wiki.entity.ts":{"size":21,"mtime_ns":1783764561755039400,"indexed_at_ns":1786863535452455400,"word_count":4},"backend/src/wiki/wiki.controller.ts":{"size":1219,"mtime_ns":1785327951272850400,"indexed_at_ns":1786863535458333000,"word_count":110},"backend/src/wiki/wiki.module.ts":{"size":241,"mtime_ns":1783764561756925000,"indexed_at_ns":1786863535464948400,"word_count":28},"backend/src/wiki/wiki.service.ts":{"size":1562,"mtime_ns":1786799852295173000,"indexed_at_ns":1786863535471010700,"word_count":174},"backend/test/app-audit-verification.e2e-spec.ts":{"size":6464,"mtime_ns":1786799852296174700,"indexed_at_ns":1786863535478067000,"word_count":569},"backend/test/app.e2e-spec.ts":{"size":981,"mtime_ns":1786799852297175000,"indexed_at_ns":1786863535484496000,"word_count":83},"backend/test/jest-e2e.json":{"size":183,"mtime_ns":1783764561762911800,"indexed_at_ns":1786863680450825300,"word_count":17,"hashes":{"backend/test/jest-e2e.json":"94091f560937212ad7027afcb77e62e6ac79e3e4cb401c3a16a56e7be4cac721"}},"backend/tsconfig.build.json":{"size":107,"mtime_ns":1783764561763447000,"indexed_at_ns":1786863680451826600,"word_count":10,"hashes":{"backend/tsconfig.build.json":"1f47c7dc3c8b5a15558654f45f21e0f553acc1680046f09dc24428e8538c4f9d"}},"backend/tsconfig.json":{"size":674,"mtime_ns":1783764561764062100,"indexed_at_ns":1786863680453826800,"word_count":47,"hashes":{"backend/tsconfig.json":"68997c6c58b6632c29f2a67be484173ed0026600b80b0d708b68f0e3faf47124"}},"backend/uploads/1781288429353-508765350.jpg":{"size":110246,"mtime_ns":1783764561766257000,"indexed_at_ns":1786863694120021300,"word_count":3882,"hashes":{"backend/uploads/1781288429353-508765350.jpg":"c9e532f0482584a2edf76404b86ef82679e5387079d73c59f10234de24ad5074"}},"canina.md":{"size":21969,"mtime_ns":1785148022337913300,"indexed_at_ns":1786863693962627600,"word_count":1983,"hashes":{"canina.md":"a221eb925b06614751d96581d4e3e2ce90bab577c83fd670f1819464859ab82b"}},"canina.pdf":{"size":2858373,"mtime_ns":1785148022370811500,"indexed_at_ns":1786863694095027500,"word_count":0,"hashes":{"canina.pdf":"a52d90e6dffb96dae468ba96f76239762b341751a6455734d75fadd22f30c87c"}},"docker-compose.yml":{"size":2077,"mtime_ns":1785589838806405700,"indexed_at_ns":1786863693964627800,"word_count":117,"hashes":{"docker-compose.yml":"217a4faba9b605112d77db983cc078a3fce3156b3e13c3c2a863e222049487e0"}},"docs/01-introduction.md":{"size":5543,"mtime_ns":1783856792428209800,"indexed_at_ns":1786863693966131500,"word_count":523,"hashes":{"docs/01-introduction.md":"e778b593daaf5be5abeebda97775520786de1bc4fec8d8f6bd3c784c9bc8a748"}},"docs/02-user-guide.md":{"size":4305,"mtime_ns":1783856792429211400,"indexed_at_ns":1786863693967709400,"word_count":422,"hashes":{"docs/02-user-guide.md":"d2955221ab93e1aba35b100205b4ee7858ea37c85062d871ddef39563bd7aef9"}},"docs/03-developer-guide.md":{"size":6717,"mtime_ns":1783764561771660500,"indexed_at_ns":1786863693969714100,"word_count":678,"hashes":{"docs/03-developer-guide.md":"84a16e17d0433edd8631789bdec3bbd7e6f716059cd064843ed8087eea9e2eeb"}},"docs/04-setup-and-deployment.md":{"size":4023,"mtime_ns":1783764561773294900,"indexed_at_ns":1786863693970713900,"word_count":425,"hashes":{"docs/04-setup-and-deployment.md":"723c6016b1bb499fee2b9f63b2c06a9b12f8e4c664b36ea1431181c333bc814e"}},"docs/05-devops-and-monitoring.md":{"size":3590,"mtime_ns":1783764561774446100,"indexed_at_ns":1786863693972714000,"word_count":374,"hashes":{"docs/05-devops-and-monitoring.md":"53f1f45bbbdd3cf81cb4bc082ef4e49f506627f10f581d3c4b835028d02b5421"}},"docs/06-testing.md":{"size":4214,"mtime_ns":1783764561774967500,"indexed_at_ns":1786863693973713900,"word_count":457,"hashes":{"docs/06-testing.md":"69d50bd5e233f030d8076b55b69599cee201e1c393b7ee1beeb495c304fd4bd3"}},"docs/README.md":{"size":2742,"mtime_ns":1783856792430212600,"indexed_at_ns":1786863693975714200,"word_count":253,"hashes":{"docs/readme.md":"24253bea870e2ba8cc7ecbe0c989f9f61ec2700e2564d016db157824dbd1fa9b"}},"docs/audit/00-repository-map.md":{"size":3171,"mtime_ns":1786799852298174200,"indexed_at_ns":1786863693977222500,"word_count":351,"hashes":{"docs/audit/00-repository-map.md":"dde4a63c991d0f469086a147df03b97d8370cd75fa19cc83af1199f267d7bc55"}},"docs/audit/01-system-discovery.md":{"size":3790,"mtime_ns":1786799852299174400,"indexed_at_ns":1786863693979222500,"word_count":467,"hashes":{"docs/audit/01-system-discovery.md":"6c91253cac025506db71adea33a054f88f4c367ba81fc3cb1b85c2bdcfec5c70"}},"docs/audit/02-audit-plan.md":{"size":5058,"mtime_ns":1786799852300175400,"indexed_at_ns":1786863693980222600,"word_count":530,"hashes":{"docs/audit/02-audit-plan.md":"b623d8f8c2b8a14c1ddca1ad956cd8afc9203f7a94eda8e63fd608bc8e9164d1"}},"docs/audit/03-baseline-command-plan.md":{"size":4904,"mtime_ns":1786799852300175400,"indexed_at_ns":1786863693982222800,"word_count":735,"hashes":{"docs/audit/03-baseline-command-plan.md":"fcf49beae52c69d7e9cf85967f028052fa1a78eaae5a2bb9b18072b0273e80e1"}},"docs/audit/04-open-questions.md":{"size":1690,"mtime_ns":1786799852301682100,"indexed_at_ns":1786863693983784800,"word_count":224,"hashes":{"docs/audit/04-open-questions.md":"02fbd51a9131da0b12122a5280cc6f842c299b436a72b117e2263f011b9ebf9c"}},"docs/audit/05-architectural-audit.md":{"size":4884,"mtime_ns":1786799852302689800,"indexed_at_ns":1786863693984790400,"word_count":560,"hashes":{"docs/audit/05-architectural-audit.md":"8977a5c304b3fe86636579d498a459ac98359c34f1062bf731b02f4602c0e94f"}},"docs/audit/06-storefront-audit.md":{"size":4191,"mtime_ns":1786799852303691400,"indexed_at_ns":1786863693987299500,"word_count":520,"hashes":{"docs/audit/06-storefront-audit.md":"1e2f2d9d867dc553f503ef91b3bd60310202225da12bc7d324e192f4e15d8c38"}},"docs/audit/07-backend-audit.md":{"size":5037,"mtime_ns":1786799852304689900,"indexed_at_ns":1786863693989301000,"word_count":581,"hashes":{"docs/audit/07-backend-audit.md":"0436a967b82026334bf45c9ca677d1e79ce688681bea4dc06a7fd19e2d5a2129"}},"docs/audit/08-admin-features-audit.md":{"size":4222,"mtime_ns":1786799852305951400,"indexed_at_ns":1786863693990300000,"word_count":479,"hashes":{"docs/audit/08-admin-features-audit.md":"dda5b0bae4f843a51274269dcb91d8b65db2f2917d336d511790da4718b05b8d"}},"docs/audit/09-database-audit.md":{"size":4126,"mtime_ns":1786799852306969500,"indexed_at_ns":1786863693992299700,"word_count":521,"hashes":{"docs/audit/09-database-audit.md":"d4f82b84ae6c1899ab4da1310414d993d9c23dcd2759120fbe551f5b8da95a08"}},"docs/audit/10-security-audit.md":{"size":5560,"mtime_ns":1786799852307952600,"indexed_at_ns":1786863693994299500,"word_count":678,"hashes":{"docs/audit/10-security-audit.md":"574df31423bd28b3cd58134e7c7e8780f4e2e46c760a372e0e2592c1e83bba4e"}},"docs/audit/11-code-quality-audit.md":{"size":3379,"mtime_ns":1786799852308957000,"indexed_at_ns":1786863693995299500,"word_count":419,"hashes":{"docs/audit/11-code-quality-audit.md":"b6b9a4845e0bd5674d897c08f5451f8cab4df22722826f7c9d55ca19b94d88da"}},"docs/audit/12-testing-audit.md":{"size":4106,"mtime_ns":1786799852309952600,"indexed_at_ns":1786863693997807500,"word_count":486,"hashes":{"docs/audit/12-testing-audit.md":"8bdf2058520a88de4d08c0635999de8f79fdab83055ef560ca3a865026b6450a"}},"docs/audit/13-devops-audit.md":{"size":3435,"mtime_ns":1786799852310953800,"indexed_at_ns":1786863693999375100,"word_count":440,"hashes":{"docs/audit/13-devops-audit.md":"d21daac201fcfc3a0e27c27348806f3f5d2790071578dcb98e7869cd6e9ec8a9"}},"docs/audit/14-documentation-audit.md":{"size":3311,"mtime_ns":1786799852311952200,"indexed_at_ns":1786863694001567900,"word_count":379,"hashes":{"docs/audit/14-documentation-audit.md":"e64be175bd632a05e37be823621eb8a8f13bdb74887d10f5f20887d41cef5c62"}},"docs/audit/15-raw-findings-index.json":{"size":9909,"mtime_ns":1786799852313066900,"indexed_at_ns":1786863680454829500,"word_count":817,"hashes":{"docs/audit/15-raw-findings-index.json":"3c1e582431f5f25edd2c38285c9d59f83c83d5348eaf0ced91d6e7c94a9afb6d"}},"docs/audit/16-deep-audit-summary.md":{"size":3111,"mtime_ns":1786799852313066900,"indexed_at_ns":1786863694003567300,"word_count":393,"hashes":{"docs/audit/16-deep-audit-summary.md":"8ea08de6ac54dddd9da6de934bc850bb31ab7e3c5470059d02d7f84dd120a0e4"}},"docs/audit/17-source-coverage-manifest.json":{"size":128714,"mtime_ns":1786799852315065000,"indexed_at_ns":1786863680455826100,"word_count":7827,"hashes":{"docs/audit/17-source-coverage-manifest.json":"834e6c341db760439d2e7a9c17531b03c17151ab0f2f16b92aac8a350bcae51d"}},"docs/audit/18-compiler-diagnostic-dispositions.md":{"size":1961,"mtime_ns":1786799852315065000,"indexed_at_ns":1786863694005566900,"word_count":285,"hashes":{"docs/audit/18-compiler-diagnostic-dispositions.md":"246b9164725e89c67c76f2305cd128f0c0f9bfdba46e45e0e958fe92ccdcda53"}},"docs/audit/19-finding-verification-report.md":{"size":5464,"mtime_ns":1786799852316064800,"indexed_at_ns":1786863694007070200,"word_count":753,"hashes":{"docs/audit/19-finding-verification-report.md":"1cd1bc37f9e76ba7e4d4ef82b8565def786abfeb159bc4d822e364e3f2ea694f"}},"docs/audit/20-verified-findings-index.json":{"size":21797,"mtime_ns":1786799852317071400,"indexed_at_ns":1786863680457826600,"word_count":1903,"hashes":{"docs/audit/20-verified-findings-index.json":"b20d0b140bd727faefde9f29aa4d787199dd386464030eecdf58e5a8ab629442"}},"docs/audit/21-phase2-quality-gate-summary.md":{"size":1706,"mtime_ns":1786799852318066000,"indexed_at_ns":1786863694009077900,"word_count":211,"hashes":{"docs/audit/21-phase2-quality-gate-summary.md":"1b117f866e73cd17c43e3a4e856584f03997a3c897d1de9afbd128ff8a86d09e"}},"docs/audit/22-tracked-first-party-files.txt":{"size":4452,"mtime_ns":1786799852319066000,"indexed_at_ns":1786863694010075200,"word_count":139,"hashes":{"docs/audit/22-tracked-first-party-files.txt":"ef7fc17de970cd3f397eea961bcaf76abff15589c0fa13f92b47d42e637231c6"}},"docs/audit/23-untracked-first-party-files.txt":{"size":59,"mtime_ns":1786799852319066000,"indexed_at_ns":1786863694012075400,"word_count":7,"hashes":{"docs/audit/23-untracked-first-party-files.txt":"ffa5caec5c75b4013f7c136efed9e944c705e756f4f26e53da73e871a02d704c"}},"docs/audit/24-omitted-file-inspection-report.md":{"size":2462,"mtime_ns":1786799852320065700,"indexed_at_ns":1786863694014075600,"word_count":227,"hashes":{"docs/audit/24-omitted-file-inspection-report.md":"d4484eea65f1861b9b6a30813d2c233d947c2965a13ed5b399462b80ca9c1513"}},"docs/audit/25-reference-integrity-validation.json":{"size":1002,"mtime_ns":1786799852321571600,"indexed_at_ns":1786863680458826600,"word_count":82,"hashes":{"docs/audit/25-reference-integrity-validation.json":"31b900ed297325cabee3e0804809ecd4229f4427283e449f5d82951bb5ed7fde"}},"docs/audit/26-phase2-integrity-repair-report.md":{"size":3191,"mtime_ns":1786799852322091800,"indexed_at_ns":1786863694015640600,"word_count":385,"hashes":{"docs/audit/26-phase2-integrity-repair-report.md":"2b2f385705db6729fccedc63db0f5709afa23e08a80fc859fe0138b416356cd9"}},"docs/audit/27-all-tracked-repository-files.txt":{"size":4631,"mtime_ns":1786799852323099900,"indexed_at_ns":1786863694017145600,"word_count":148,"hashes":{"docs/audit/27-all-tracked-repository-files.txt":"3f312a5c642e6a27446dc35a6c50dacd10e43c1cc9eeb637a49ba61343ce2b69"}},"docs/audit/28-full-repository-classification.json":{"size":27913,"mtime_ns":1786799852324099500,"indexed_at_ns":1786863680460331400,"word_count":1782,"hashes":{"docs/audit/28-full-repository-classification.json":"bcb50229ceddb267c8839ee69c05f5e5c8c4460485c92849532bcf163c37faa8"}},"docs/audit/29-file-content-evidence.json":{"size":109095,"mtime_ns":1786799852325608100,"indexed_at_ns":1786863680462336500,"word_count":9098,"hashes":{"docs/audit/29-file-content-evidence.json":"c4696525e8ab3c252ff9b6b38d5882225e0a9016698111df28064edbe7bf5124"}},"docs/audit/30-compiler-diagnostics-index.json":{"size":3707,"mtime_ns":1786799852326617100,"indexed_at_ns":1786863680463336700,"word_count":324,"hashes":{"docs/audit/30-compiler-diagnostics-index.json":"85bd1a964e41cc5e615c7260be2beb54b49dd444da40d96ae31e2a33c1c6bc24"}},"docs/audit/31-module-audit-closure.md":{"size":7587,"mtime_ns":1786799852327616800,"indexed_at_ns":1786863694019150200,"word_count":709,"hashes":{"docs/audit/31-module-audit-closure.md":"a1c9d7902131d71cf87a072876cc309ac8dfc7cd6e1f33e9619ac12d99f685ba"}},"docs/audit/32-evidence-grade-validation.json":{"size":1613,"mtime_ns":1786799852328616800,"indexed_at_ns":1786863680464337900,"word_count":123,"hashes":{"docs/audit/32-evidence-grade-validation.json":"12ddcc21ff65a2aa76845935ebc0d8313c39991335356fbe3ae7cdd201251af5"}},"docs/audit/33-final-phase2-audit-closure.md":{"size":2535,"mtime_ns":1786799852328616800,"indexed_at_ns":1786863694020149300,"word_count":271,"hashes":{"docs/audit/33-final-phase2-audit-closure.md":"217cadb664c7f7d27f8f849ea1249dfd88d5398fd2af154fd385c80e4d559bb1"}},"docs/audit/34-repository-observations.json":{"size":594,"mtime_ns":1786799852329618700,"indexed_at_ns":1786863680466336600,"word_count":49,"hashes":{"docs/audit/34-repository-observations.json":"28ce67ed3f5bcc3e5c3c80d73a16a34d8053d570be0af62be8afaffbc9318a27"}},"docs/audit/35-semantic-review-ledger.json":{"size":99353,"mtime_ns":1786799852330616000,"indexed_at_ns":1786863680467338400,"word_count":6011,"hashes":{"docs/audit/35-semantic-review-ledger.json":"ac0529050e87efc9e2b5a6c5b3a2ce6379186b4b07f23d8ec9cebf214ff885ef"}},"docs/audit/36-mandatory-semantic-scope.json":{"size":7960,"mtime_ns":1786799852331617100,"indexed_at_ns":1786863680468337900,"word_count":638,"hashes":{"docs/audit/36-mandatory-semantic-scope.json":"af62db825dd527009b8d79a6edab6ab627fe55303d3f7fd1c2d8e5fab9a8760b"}},"docs/audit/ADR-AUTH-001.md":{"size":3274,"mtime_ns":1786799852332642700,"indexed_at_ns":1786863694022417300,"word_count":398,"hashes":{"docs/audit/adr-auth-001.md":"fd6a6e524d66c57e3f114899323509082af11aa30197a015e1255057c5c3ed98"}},"docs/audit/CROSS_BOUNDARY_DEPENDENCIES.md":{"size":2146,"mtime_ns":1786799852332642700,"indexed_at_ns":1786863694023417200,"word_count":239,"hashes":{"docs/audit/cross_boundary_dependencies.md":"56de72c42fdadf710e0837e0d330dfe36c772602d8f094d0a55dbc5bb16906f3"}},"docs/audit/FRONTEND_INTEGRATION_REQUIREMENTS.md":{"size":15330,"mtime_ns":1786799852334462600,"indexed_at_ns":1786863694025417400,"word_count":1579,"hashes":{"docs/audit/frontend_integration_requirements.md":"2ecb7d2758f566db23ea62035bdb85b27c64064d4a02e24f37db93d204f96102"}},"docs/audit/MASTER-TASK-BACKLOG.md":{"size":30107,"mtime_ns":1786799852335470200,"indexed_at_ns":1786863694026492300,"word_count":3510,"hashes":{"docs/audit/master-task-backlog.md":"6df14e8ae8eca2a7f1d9829a6e9891a89a8565eb5a7362186644208fe8454cdc"}},"docs/audit/audit-state.json":{"size":4135,"mtime_ns":1786799852337382200,"indexed_at_ns":1786863680470337000,"word_count":267,"hashes":{"docs/audit/audit-state.json":"4b804494570a2812170cb8dab35d15da659f57d6e637652328725e956f7d98aa"}},"docs/audit/build_manifest.js":{"size":4060,"mtime_ns":1786799852338393200,"indexed_at_ns":1786863535890477600,"word_count":348},"docs/audit/frontend-route-map.md":{"size":2558,"mtime_ns":1786799852339389800,"indexed_at_ns":1786863694027491500,"word_count":329,"hashes":{"docs/audit/frontend-route-map.md":"e9bf92a931f0727c8054230578943f0fd59cc3ef8f6ac5020155ca42edc93622"}},"docs/audit/generate_classification.js":{"size":2186,"mtime_ns":1786799852339389800,"indexed_at_ns":1786863535904305800,"word_count":204},"docs/audit/generate_evidence.js":{"size":3098,"mtime_ns":1786799852340390100,"indexed_at_ns":1786863535911173400,"word_count":253},"docs/audit/generate_ledger.js":{"size":7648,"mtime_ns":1786799852341897300,"indexed_at_ns":1786863535916686900,"word_count":620},"docs/audit/generate_manifest.js":{"size":6357,"mtime_ns":1786799852341897300,"indexed_at_ns":1786863535923771900,"word_count":489},"docs/audit/master-task-backlog.json":{"size":22336,"mtime_ns":1786799852342906700,"indexed_at_ns":1786863680470841000,"word_count":2071,"hashes":{"docs/audit/master-task-backlog.json":"f1c994d971b4e58165ab9f74f8b69b97c07fe74005f64dc11badf5e287b5fd28"}},"docs/audit/phase3-execution-plan.md":{"size":6007,"mtime_ns":1786799852343952400,"indexed_at_ns":1786863694030823300,"word_count":736,"hashes":{"docs/audit/phase3-execution-plan.md":"ab3bc489bde4c86046d35f87c3fb1320acb4fb15d6a3de2e100b05b510aa23b8"}},"docs/audit/phase3-traceability-matrix.md":{"size":5237,"mtime_ns":1786799852344952800,"indexed_at_ns":1786863694031820000,"word_count":692,"hashes":{"docs/audit/phase3-traceability-matrix.md":"c46b1b09c5f6be7f54ba888652e69698b26d955a8e7c8e4fa19cda8729ee2f7b"}},"docs/audit/phase3.1-backlog-review.md":{"size":9737,"mtime_ns":1786799852345952800,"indexed_at_ns":1786863694033821400,"word_count":1202,"hashes":{"docs/audit/phase3.1-backlog-review.md":"021895bb0b90dd75935ebe0317d3198a2c448ccdd6861b1302cc29735f48da82"}},"docs/audit/phase3.1-change-log.md":{"size":3756,"mtime_ns":1786799852346954800,"indexed_at_ns":1786863694035819500,"word_count":451,"hashes":{"docs/audit/phase3.1-change-log.md":"093d244c2788ead47c69e3068ccf66930ba52e04430bdba87020cb4a4edcb817"}},"docs/audit/phase3.2-change-log.md":{"size":8272,"mtime_ns":1786799852347952200,"indexed_at_ns":1786863694036820300,"word_count":930,"hashes":{"docs/audit/phase3.2-change-log.md":"00bff98e2ae2ef50c4daf265d5f34469f21c244b6dca88b70e1f9ffa17a71d83"}},"docs/audit/phase3.2-implementation-readiness.md":{"size":4694,"mtime_ns":1786799852347952200,"indexed_at_ns":1786863694039141500,"word_count":517,"hashes":{"docs/audit/phase3.2-implementation-readiness.md":"9f1e0335fdc0fa2db0fd5ceaa97e50be85d04bc1ad5d3db1ef74e85de97f71a6"}},"docs/audit/rebuild_honest_ledger.js":{"size":6113,"mtime_ns":1786799852348952900,"indexed_at_ns":1786863535983025100,"word_count":559},"docs/audit/sync_honest_manifest.js":{"size":1213,"mtime_ns":1786799852349953100,"indexed_at_ns":1786863535988627700,"word_count":75},"docs/audit/sync_manifest.js":{"size":997,"mtime_ns":1786799852350953300,"indexed_at_ns":1786863535995415600,"word_count":62},"docs/audit/validate_evidence_grade.js":{"size":6141,"mtime_ns":1786799852351954100,"indexed_at_ns":1786863536001204900,"word_count":526},"docs/audit/validate_integrity.js":{"size":3408,"mtime_ns":1786799852352952400,"indexed_at_ns":1786863536007942000,"word_count":284},"docs/backlog.md":{"size":26175,"mtime_ns":1786799852356021600,"indexed_at_ns":1786863694040141700,"word_count":2834,"hashes":{"docs/backlog.md":"ce0d907773d5af5539aa04f7035555e47424d396ea6e3a821771ad00f813ccd6"}},"frontend/admin-panel/README.md":{"size":2425,"mtime_ns":1783764561778952800,"indexed_at_ns":1786863694042141900,"word_count":212,"hashes":{"frontend/admin-panel/readme.md":"3945c052249ebd020b013303d5921815b52d847bd36c748a03bfdc8eb2a390b8"}},"frontend/admin-panel/eslint.config.js":{"size":591,"mtime_ns":1785651092991236900,"indexed_at_ns":1786863536031757200,"word_count":48},"frontend/admin-panel/index.html":{"size":363,"mtime_ns":1783764561780558500,"indexed_at_ns":1786863694044141700,"word_count":28,"hashes":{"frontend/admin-panel/index.html":"ecdac8ac0b565720712afa18490bdfad1a643a6c50c1d0b93d12b7acbcf5e3c0"}},"frontend/admin-panel/package.json":{"size":1072,"mtime_ns":1785570791953119000,"indexed_at_ns":1786863680472845200,"word_count":84,"hashes":{"frontend/admin-panel/package.json":"6d61fb108392e86320c75b42e69ba7138bdc47bba4883fafbeb6e661cc5f51e4"}},"frontend/admin-panel/postcss.config.js":{"size":91,"mtime_ns":1783764561796281900,"indexed_at_ns":1786863536049792000,"word_count":11},"frontend/admin-panel/public/favicon.svg":{"size":9522,"mtime_ns":1783764561797801500,"indexed_at_ns":1786863694122123200,"word_count":491,"hashes":{"frontend/admin-panel/public/favicon.svg":"57a824acf3d4ba0b152537d3c0e79795502d3589ca99556a2155c81b6dea663a"}},"frontend/admin-panel/public/fonts/A-Iranian-Sans/A-Iranian-Sans/read me!.txt":{"size":281,"mtime_ns":1783856792435855000,"indexed_at_ns":1786863694045693300,"word_count":15,"hashes":{"frontend/admin-panel/public/fonts/a-iranian-sans/a-iranian-sans/read me!.txt":"06bcb5a03a381d231568aa217f4bfc1a4446a7cf6574daf93ee6de8830063c67"}},"frontend/admin-panel/public/fonts/IranNastaliq/IranNastaliq/read me!.txt":{"size":281,"mtime_ns":1783856792445365000,"indexed_at_ns":1786863694046698100,"word_count":15,"hashes":{"frontend/admin-panel/public/fonts/irannastaliq/irannastaliq/read me!.txt":"1653ec43d0db64c9a2d88dd8e064a64e83eee53a97b423ea7a40a865792b38c9"}},"frontend/admin-panel/public/fonts/sahel-font-v3.4.0/CHANGELOG.md":{"size":8519,"mtime_ns":1783856792454604400,"indexed_at_ns":1786863694048714800,"word_count":1077,"hashes":{"frontend/admin-panel/public/fonts/sahel-font-v3.4.0/changelog.md":"4003fe6a71221e735897cfe03ac11bd59ef9951572007763151bf95663256a3d"}},"frontend/admin-panel/public/fonts/sahel-font-v3.4.0/README.md":{"size":4136,"mtime_ns":1783856792502503100,"indexed_at_ns":1786863694050719800,"word_count":366,"hashes":{"frontend/admin-panel/public/fonts/sahel-font-v3.4.0/readme.md":"880beb9c92fd527a098de27bc779b6891a36af98ae994f506a64be199ed50392"}},"frontend/admin-panel/public/fonts/sahel-font-v3.4.0/sample-variable.gif":{"size":236102,"mtime_ns":1783856792546496500,"indexed_at_ns":1786863694123122700,"word_count":10881,"hashes":{"frontend/admin-panel/public/fonts/sahel-font-v3.4.0/sample-variable.gif":"38008ccacda40353e4f29e912e844ee659cde19dd209dfc1d5c3356e291293f5"}},"frontend/admin-panel/public/fonts/shabnam-font-v5.0.1/CHANGELOG.md":{"size":7177,"mtime_ns":1783856792548005600,"indexed_at_ns":1786863694052719700,"word_count":951,"hashes":{"frontend/admin-panel/public/fonts/shabnam-font-v5.0.1/changelog.md":"a735e1b29ad9d3361a0d1ecfd5c1f2f78c200a272918606decc377c469944321"}},"frontend/admin-panel/public/fonts/shabnam-font-v5.0.1/README.md":{"size":3696,"mtime_ns":1783856792595155200,"indexed_at_ns":1786863694054719200,"word_count":283,"hashes":{"frontend/admin-panel/public/fonts/shabnam-font-v5.0.1/readme.md":"3b6e2d78372a72b67e339bfd7331d408f43245840749d2f46df5c356a208fbfd"}},"frontend/admin-panel/public/fonts/shabnam-font-v5.0.1/sample.png":{"size":85019,"mtime_ns":1783856792645667900,"indexed_at_ns":1786863694125692200,"word_count":2615,"hashes":{"frontend/admin-panel/public/fonts/shabnam-font-v5.0.1/sample.png":"9cefee026dc2387d3c887064f2419098a4c9aadd466a42184e90fa30be5e15a7"}},"frontend/admin-panel/public/fonts/vazirmatn-v33.003/AUTHORS.txt":{"size":339,"mtime_ns":1783856792646666000,"indexed_at_ns":1786863694055720100,"word_count":55,"hashes":{"frontend/admin-panel/public/fonts/vazirmatn-v33.003/authors.txt":"e22592748c440a3169adec38d57aecfd813b4b98531bbe14df59076e177a452c"}},"frontend/admin-panel/public/fonts/vazirmatn-v33.003/CHANGELOG.md":{"size":38550,"mtime_ns":1783856792647671700,"indexed_at_ns":1786863694057719800,"word_count":5086,"hashes":{"frontend/admin-panel/public/fonts/vazirmatn-v33.003/changelog.md":"5207a2a148ccfd0338342325a39d9b5b2d39514429c93e0aedf68b21f23fd71e"}},"frontend/admin-panel/public/fonts/vazirmatn-v33.003/OFL.txt":{"size":4391,"mtime_ns":1783856792648669800,"indexed_at_ns":1786863694060176900,"word_count":671,"hashes":{"frontend/admin-panel/public/fonts/vazirmatn-v33.003/ofl.txt":"8e7ede02bc5fcd7aa4d98a7692cd6f37ea85249c2a1a59574575f7ff57b2c984"}},"frontend/admin-panel/public/fonts/vazirmatn-v33.003/README.md":{"size":2339,"mtime_ns":1783856792648669800,"indexed_at_ns":1786863694061738100,"word_count":270,"hashes":{"frontend/admin-panel/public/fonts/vazirmatn-v33.003/readme.md":"0d736c7dd11e89622e7105e6a5958fc3d83ec827b8a00debc0943bc8e3a3d201"}},"frontend/admin-panel/public/fonts/vazirmatn-v33.003/\u0631\u0627\u0647\u0646\u0645\u0627.txt":{"size":211,"mtime_ns":1783856792971535000,"indexed_at_ns":1786863694063234100,"word_count":14,"hashes":{"frontend/admin-panel/public/fonts/vazirmatn-v33.003/\u0631\u0627\u0647\u0646\u0645\u0627.txt":"3c26934ce909cddcd30f32691eac2429205e97f4851b76e0b706da0eb7812c66"}},"frontend/admin-panel/public/icons.svg":{"size":5031,"mtime_ns":1783764561799320300,"indexed_at_ns":1786863694127749600,"word_count":382,"hashes":{"frontend/admin-panel/public/icons.svg":"561374a6f3ff39c2881fc8ab6159875671b9acbaab617f4668819f5a24aa0a85"}},"frontend/admin-panel/src/App.tsx":{"size":1088,"mtime_ns":1786799852365481100,"indexed_at_ns":1786863539542562100,"word_count":99},"frontend/admin-panel/src/assets/hero.png":{"size":13057,"mtime_ns":1783764561812863000,"indexed_at_ns":1786863694128748000,"word_count":437,"hashes":{"frontend/admin-panel/src/assets/hero.png":"9350dcf76831435179214888056799d21b9ec6461f03bcad2fca68fb27dcccd9"}},"frontend/admin-panel/src/assets/react.svg":{"size":4126,"mtime_ns":1783764561813924700,"indexed_at_ns":1786863694131258000,"word_count":366,"hashes":{"frontend/admin-panel/src/assets/react.svg":"3ce66cfff5bb1ef0bc54b14d87fc434fdaa60e3e67406ca0475c8e355daf42c9"}},"frontend/admin-panel/src/assets/vite.svg":{"size":8709,"mtime_ns":1783764561814995700,"indexed_at_ns":1786863694133259500,"word_count":439,"hashes":{"frontend/admin-panel/src/assets/vite.svg":"a3813bb88b8e782e5a04d9d628d2540c4ca7719878f24c62bb3b655861178b41"}},"frontend/admin-panel/src/components/Layout.tsx":{"size":726,"mtime_ns":1784621786958594800,"indexed_at_ns":1786863539569270500,"word_count":69},"frontend/admin-panel/src/components/ProtectedRoute.tsx":{"size":2336,"mtime_ns":1786799852369164100,"indexed_at_ns":1786863539575600400,"word_count":210},"frontend/admin-panel/src/components/Sidebar.tsx":{"size":6383,"mtime_ns":1786868200884361500,"indexed_at_ns":1786868560307643100,"word_count":621},"frontend/admin-panel/src/components/Topbar.tsx":{"size":10713,"mtime_ns":1786799852379888800,"indexed_at_ns":1786863539588322600,"word_count":842},"frontend/admin-panel/src/components/ui/ConfirmModal.tsx":{"size":2076,"mtime_ns":1783856792976535500,"indexed_at_ns":1786863539596831200,"word_count":174},"frontend/admin-panel/src/components/ui/MediaSelector.tsx":{"size":14174,"mtime_ns":1786799852383926100,"indexed_at_ns":1786863539602950400,"word_count":1102},"frontend/admin-panel/src/components/ui/Pagination.tsx":{"size":5510,"mtime_ns":1786799852387442100,"indexed_at_ns":1786863539611144600,"word_count":447},"frontend/admin-panel/src/components/ui/Skeleton.tsx":{"size":178,"mtime_ns":1783856792977535800,"indexed_at_ns":1786863539617717100,"word_count":22},"frontend/admin-panel/src/components/ui/Spinner.tsx":{"size":650,"mtime_ns":1783856792979049200,"indexed_at_ns":1786863539624368900,"word_count":67},"frontend/admin-panel/src/main.tsx":{"size":161,"mtime_ns":1783764561829333600,"indexed_at_ns":1786863539634800100,"word_count":16},"frontend/admin-panel/src/pages/B2BManager.tsx":{"size":25576,"mtime_ns":1786799852391440500,"indexed_at_ns":1786863539640800000,"word_count":1789},"frontend/admin-panel/src/pages/BannersManager.tsx":{"size":19445,"mtime_ns":1786799852392442100,"indexed_at_ns":1786863539649527900,"word_count":1443},"frontend/admin-panel/src/pages/Blogs.tsx":{"size":15530,"mtime_ns":1786799852395957300,"indexed_at_ns":1786863539656035900,"word_count":1186},"frontend/admin-panel/src/pages/CMS.tsx":{"size":10072,"mtime_ns":1786799852400957800,"indexed_at_ns":1786863539663141300,"word_count":805},"frontend/admin-panel/src/pages/Categories.tsx":{"size":15807,"mtime_ns":1786799852404978500,"indexed_at_ns":1786863539670140300,"word_count":1115},"frontend/admin-panel/src/pages/ContactSubmissions.tsx":{"size":12435,"mtime_ns":1786799852405538100,"indexed_at_ns":1786863539677731600,"word_count":859},"frontend/admin-panel/src/pages/Coupons.tsx":{"size":26513,"mtime_ns":1786799852408546000,"indexed_at_ns":1786863539685376000,"word_count":2055},"frontend/admin-panel/src/pages/Dashboard.tsx":{"size":6008,"mtime_ns":1786799852412547400,"indexed_at_ns":1786863539693599100,"word_count":534},"frontend/admin-panel/src/pages/FinancialSettingsPage.tsx":{"size":8142,"mtime_ns":1786799852413546800,"indexed_at_ns":1786863539700597900,"word_count":602},"frontend/admin-panel/src/pages/IngredientsManager.tsx":{"size":18513,"mtime_ns":1786799852415055900,"indexed_at_ns":1786863539708016600,"word_count":1338},"frontend/admin-panel/src/pages/Login.tsx":{"size":11553,"mtime_ns":1786799852419064100,"indexed_at_ns":1786863539715210600,"word_count":838},"frontend/admin-panel/src/pages/Media.tsx":{"size":17993,"mtime_ns":1786799852422264000,"indexed_at_ns":1786863539721767700,"word_count":1378},"frontend/admin-panel/src/pages/Orders.tsx":{"size":33650,"mtime_ns":1786799852426784300,"indexed_at_ns":1786863539729283200,"word_count":2471},"frontend/admin-panel/src/pages/Pets.tsx":{"size":7274,"mtime_ns":1786799852429784400,"indexed_at_ns":1786863539737364200,"word_count":578},"frontend/admin-panel/src/pages/PrescriptionsManager.tsx":{"size":14439,"mtime_ns":1786799852431290500,"indexed_at_ns":1786863539742962900,"word_count":1065},"frontend/admin-panel/src/pages/Products.tsx":{"size":75913,"mtime_ns":1786799852433300500,"indexed_at_ns":1786863539750358600,"word_count":5070},"frontend/admin-panel/src/pages/Reports.tsx":{"size":12375,"mtime_ns":1786799852436332600,"indexed_at_ns":1786863539761984500,"word_count":938},"frontend/admin-panel/src/pages/SeoSettingsPage.tsx":{"size":7367,"mtime_ns":1786799852437339800,"indexed_at_ns":1786863539769563000,"word_count":549},"frontend/admin-panel/src/pages/Settings.tsx":{"size":32670,"mtime_ns":1786868211253833600,"indexed_at_ns":1786868560453618600,"word_count":2107},"frontend/admin-panel/src/pages/SmartAdvisorManager.tsx":{"size":14321,"mtime_ns":1786799852443027400,"indexed_at_ns":1786863539783943500,"word_count":1073},"frontend/admin-panel/src/pages/SystemSettingsPage.tsx":{"size":7931,"mtime_ns":1786799852444030300,"indexed_at_ns":1786863539790462300,"word_count":575},"frontend/admin-panel/src/pages/TestimonialsManager.tsx":{"size":18160,"mtime_ns":1786799852445028000,"indexed_at_ns":1786863539796971000,"word_count":1311},"frontend/admin-panel/src/pages/UITexts.tsx":{"size":14223,"mtime_ns":1786799852448543500,"indexed_at_ns":1786863539804526200,"word_count":1138},"frontend/admin-panel/src/pages/Users.tsx":{"size":20275,"mtime_ns":1786799852449548700,"indexed_at_ns":1786863539812544800,"word_count":1440},"frontend/admin-panel/src/pages/Videos.tsx":{"size":19946,"mtime_ns":1786799852454518100,"indexed_at_ns":1786863539819562800,"word_count":1419},"frontend/admin-panel/src/pages/WholesaleApplications.tsx":{"size":6505,"mtime_ns":1786799852457805400,"indexed_at_ns":1786863539828590300,"word_count":503},"frontend/admin-panel/src/pages/Wiki.tsx":{"size":14794,"mtime_ns":1786799852461177300,"indexed_at_ns":1786863539836149600,"word_count":1144},"frontend/admin-panel/src/routes/adminRoutes.tsx":{"size":4152,"mtime_ns":1786868192739918400,"indexed_at_ns":1786868560507610800,"word_count":443},"frontend/admin-panel/src/services/api.ts":{"size":4519,"mtime_ns":1786799852467028100,"indexed_at_ns":1786863539851115700,"word_count":407},"frontend/admin-panel/src/store/adminAuthStore.ts":{"size":666,"mtime_ns":1786799852469037000,"indexed_at_ns":1786863539858627200,"word_count":65},"frontend/admin-panel/src/types/admin.ts":{"size":3699,"mtime_ns":1786799852471035400,"indexed_at_ns":1786863539866211200,"word_count":410},"frontend/admin-panel/tailwind.config.js":{"size":182,"mtime_ns":1783764561861721300,"indexed_at_ns":1786863539871727500,"word_count":20},"frontend/admin-panel/tsconfig.app.json":{"size":617,"mtime_ns":1783764561862859900,"indexed_at_ns":1786863680473847600,"word_count":47,"hashes":{"frontend/admin-panel/tsconfig.app.json":"b15d934d372b42fef3c150b90ab9dec888deeed53159fb9ebaf3ece2bc6896e9"}},"frontend/admin-panel/tsconfig.json":{"size":119,"mtime_ns":1783764561863393600,"indexed_at_ns":1786863680475351500,"word_count":15,"hashes":{"frontend/admin-panel/tsconfig.json":"7a6c2e21b6eaa2355b4e2ed29db2a767499a88498bde745cdccf3ba8c7f64f2b"}},"frontend/admin-panel/tsconfig.node.json":{"size":591,"mtime_ns":1783764561863923100,"indexed_at_ns":1786863680476356300,"word_count":44,"hashes":{"frontend/admin-panel/tsconfig.node.json":"035a8143cff9651dbb67885756a07cc3f8ed1c5dcbf04a6e2042600b7989d525"}},"frontend/admin-panel/vite.config.ts":{"size":161,"mtime_ns":1783764561864454900,"indexed_at_ns":1786863539894474200,"word_count":18},"frontend/application/AGENTS.md":{"size":764,"mtime_ns":1783856792991235100,"indexed_at_ns":1786863694065612900,"word_count":91,"hashes":{"frontend/application/agents.md":"8eba70f52debc8270c8646515ff27558ddba899a6faf9a1105adf155f8d7937c"}},"frontend/application/CLAUDE.md":{"size":11,"mtime_ns":1783764561866744500,"indexed_at_ns":1786863694066612200,"word_count":1,"hashes":{"frontend/application/claude.md":"0776fbbe8c29c6dc861efa70683090a370ab56dc77c22cb9de74895b4c783320"}},"frontend/application/README.md":{"size":1450,"mtime_ns":1783764561867354300,"indexed_at_ns":1786863694067611900,"word_count":155,"hashes":{"frontend/application/readme.md":"dd829cdf325092d859080ac1db3cbf2cca3198e72834f0f228495ef3c49a2240"}},"frontend/application/app/ClientLayout.tsx":{"size":5212,"mtime_ns":1786799852477037800,"indexed_at_ns":1786863539924327100,"word_count":472},"frontend/application/app/HomeClient.tsx":{"size":12735,"mtime_ns":1786799852478049600,"indexed_at_ns":1786863539930399500,"word_count":816},"frontend/application/app/about/page.tsx":{"size":6033,"mtime_ns":1784621786975133800,"indexed_at_ns":1786863539936404200,"word_count":507},"frontend/application/app/blog/[slug]/page.tsx":{"size":6673,"mtime_ns":1785148022468489700,"indexed_at_ns":1786863539944063600,"word_count":521},"frontend/application/app/blog/page.tsx":{"size":1992,"mtime_ns":1786799852480099000,"indexed_at_ns":1786863539951058400,"word_count":206},"frontend/application/app/catalog/CatalogClient.tsx":{"size":14110,"mtime_ns":1786799852482712700,"indexed_at_ns":1786863539957584200,"word_count":1051},"frontend/application/app/catalog/page.tsx":{"size":1006,"mtime_ns":1785148022476706300,"indexed_at_ns":1786863539966536900,"word_count":99},"frontend/application/app/checkout/page.tsx":{"size":125,"mtime_ns":1783764561876442900,"indexed_at_ns":1786863539973147200,"word_count":13},"frontend/application/app/checkout/success/[id]/page.tsx":{"size":231,"mtime_ns":1783764561878668300,"indexed_at_ns":1786863539980152400,"word_count":31},"frontend/application/app/contact/page.tsx":{"size":1933,"mtime_ns":1786799852487043000,"indexed_at_ns":1786863539986278600,"word_count":169},"frontend/application/app/dashboard/page.tsx":{"size":133,"mtime_ns":1783764561880281000,"indexed_at_ns":1786863539993347900,"word_count":13},"frontend/application/app/error.tsx":{"size":383,"mtime_ns":1785148022478709000,"indexed_at_ns":1786863539998855700,"word_count":50},"frontend/application/app/layout.tsx":{"size":4013,"mtime_ns":1786799852553228200,"indexed_at_ns":1786863540019465500,"word_count":353},"frontend/application/app/loading.tsx":{"size":1373,"mtime_ns":1785148022487650000,"indexed_at_ns":1786863540025491400,"word_count":122},"frontend/application/app/not-found.tsx":{"size":124,"mtime_ns":1783764561891411400,"indexed_at_ns":1786863540032490900,"word_count":15},"frontend/application/app/page.tsx":{"size":2369,"mtime_ns":1786799852560228700,"indexed_at_ns":1786863540038558300,"word_count":224},"frontend/application/app/privacy/page.tsx":{"size":4381,"mtime_ns":1784621786991684200,"indexed_at_ns":1786863540046071000,"word_count":361},"frontend/application/app/profile/page.tsx":{"size":122,"mtime_ns":1783764561895258400,"indexed_at_ns":1786863540054231400,"word_count":13},"frontend/application/app/robots.ts":{"size":404,"mtime_ns":1783764561896486600,"indexed_at_ns":1786863540060459100,"word_count":38},"frontend/application/app/search/page.tsx":{"size":571,"mtime_ns":1783856792997874300,"indexed_at_ns":1786863540066098500,"word_count":65},"frontend/application/app/shop/[slug]/page.tsx":{"size":4447,"mtime_ns":1786799852562227500,"indexed_at_ns":1786863540073028500,"word_count":388},"frontend/application/app/shop/page.tsx":{"size":2031,"mtime_ns":1784621786997674100,"indexed_at_ns":1786863540079596800,"word_count":211},"frontend/application/app/sitemap.ts":{"size":2040,"mtime_ns":1786799852565744400,"indexed_at_ns":1786863540085699800,"word_count":191},"frontend/application/app/track/page.tsx":{"size":129,"mtime_ns":1783764561901903300,"indexed_at_ns":1786863540091699600,"word_count":13},"frontend/application/app/trust-seals/page.tsx":{"size":6736,"mtime_ns":1786799852568411500,"indexed_at_ns":1786863540097779700,"word_count":528},"frontend/application/app/videos/page.tsx":{"size":117,"mtime_ns":1783764561902986700,"indexed_at_ns":1786863540105289000,"word_count":13},"frontend/application/app/wiki/[slug]/page.tsx":{"size":2325,"mtime_ns":1784033954808355000,"indexed_at_ns":1786863540118520300,"word_count":234},"frontend/application/app/wiki/page.tsx":{"size":1250,"mtime_ns":1784725668228642900,"indexed_at_ns":1786863540125027600,"word_count":122},"frontend/application/components/AddressModal.tsx":{"size":16148,"mtime_ns":1786799852571178400,"indexed_at_ns":1786863540130732600,"word_count":1109},"frontend/application/components/ArchivePage.tsx":{"size":34510,"mtime_ns":1786799852574204200,"indexed_at_ns":1786863540138240300,"word_count":2695},"frontend/application/components/AuthModal.tsx":{"size":39030,"mtime_ns":1786799852577216100,"indexed_at_ns":1786863540145360500,"word_count":2580},"frontend/application/components/B2BPortal.tsx":{"size":13970,"mtime_ns":1786799852578217200,"indexed_at_ns":1786863540152482700,"word_count":1088},"frontend/application/components/BackButton.tsx":{"size":1105,"mtime_ns":1786799852597341400,"indexed_at_ns":1786863540159500900,"word_count":116},"frontend/application/components/BlogPage.tsx":{"size":24618,"mtime_ns":1785148022532078100,"indexed_at_ns":1786863540166758800,"word_count":1509},"frontend/application/components/CartDrawer.tsx":{"size":20230,"mtime_ns":1786799852599390300,"indexed_at_ns":1786863540173272000,"word_count":1339},"frontend/application/components/CheckoutPage.tsx":{"size":44228,"mtime_ns":1786867533397980500,"indexed_at_ns":1786867587401038700,"word_count":2941},"frontend/application/components/ContactFormClient.tsx":{"size":10545,"mtime_ns":1786799852606567100,"indexed_at_ns":1786863540189260700,"word_count":775},"frontend/application/components/DeleteConfirmModal.tsx":{"size":2328,"mtime_ns":1786799852608752300,"indexed_at_ns":1786863540195843400,"word_count":195},"frontend/application/components/EnamadBadge.tsx":{"size":1516,"mtime_ns":1786799852612361900,"indexed_at_ns":1786863540202352600,"word_count":114},"frontend/application/components/ErrorBoundary.tsx":{"size":2617,"mtime_ns":1786799852614549600,"indexed_at_ns":1786863540208609600,"word_count":235},"frontend/application/components/ErrorPages.tsx":{"size":2811,"mtime_ns":1786799852619431800,"indexed_at_ns":1786863540215610700,"word_count":243},"frontend/application/components/FeaturedProducts.tsx":{"size":9923,"mtime_ns":1786799852624407000,"indexed_at_ns":1786863540221425100,"word_count":840},"frontend/application/components/Footer.tsx":{"size":12515,"mtime_ns":1786799852628907300,"indexed_at_ns":1786863540227960500,"word_count":847},"frontend/application/components/Header.tsx":{"size":29168,"mtime_ns":1786799852634036200,"indexed_at_ns":1786863540234966400,"word_count":2054},"frontend/application/components/HeaderButton.tsx":{"size":2242,"mtime_ns":1786799852637156100,"indexed_at_ns":1786863540242057800,"word_count":208},"frontend/application/components/Hero.tsx":{"size":13756,"mtime_ns":1786799852641709400,"indexed_at_ns":1786863540248561900,"word_count":1166},"frontend/application/components/IngredientWiki.tsx":{"size":18801,"mtime_ns":1786799852653474400,"indexed_at_ns":1786863540255130300,"word_count":1333},"frontend/application/components/LoginModal.tsx":{"size":13848,"mtime_ns":1786799852656893200,"indexed_at_ns":1786863540264642200,"word_count":1121},"frontend/application/components/MaintenancePage.tsx":{"size":2576,"mtime_ns":1786799852659344700,"indexed_at_ns":1786863540272118800,"word_count":217},"frontend/application/components/NetworkBanner.tsx":{"size":2350,"mtime_ns":1786799852662138900,"indexed_at_ns":1786863540279146900,"word_count":214},"frontend/application/components/OrderDetailsModal.tsx":{"size":19791,"mtime_ns":1786799852663829800,"indexed_at_ns":1786863540285189200,"word_count":1502},"frontend/application/components/OrderSuccess.tsx":{"size":6396,"mtime_ns":1786799852665542300,"indexed_at_ns":1786863540291787200,"word_count":521},"frontend/application/components/OrderTracking.tsx":{"size":9107,"mtime_ns":1786799852667178900,"indexed_at_ns":1786863540298785500,"word_count":663},"frontend/application/components/PetProfile.tsx":{"size":66436,"mtime_ns":1786799852679228500,"indexed_at_ns":1786863540305184500,"word_count":4688},"frontend/application/components/PrescriptionUploadModal.tsx":{"size":9749,"mtime_ns":1786799852686529900,"indexed_at_ns":1786863540314204800,"word_count":716},"frontend/application/components/ProductPage.tsx":{"size":53963,"mtime_ns":1786799852697674400,"indexed_at_ns":1786863540321314400,"word_count":3902},"frontend/application/components/SafeImage.tsx":{"size":2056,"mtime_ns":1786799852699981500,"indexed_at_ns":1786863540329602500,"word_count":187},"frontend/application/components/SearchResultsPage.tsx":{"size":8335,"mtime_ns":1786799852701578200,"indexed_at_ns":1786863540335701600,"word_count":594},"frontend/application/components/SearchableSelect.tsx":{"size":4375,"mtime_ns":1785575516155554800,"indexed_at_ns":1786863540342211100,"word_count":336},"frontend/application/components/Skeleton.tsx":{"size":3084,"mtime_ns":1783764561943996900,"indexed_at_ns":1786863540349888700,"word_count":291},"frontend/application/components/SmartAdvisor.tsx":{"size":33439,"mtime_ns":1786799852707518500,"indexed_at_ns":1786863540356396900,"word_count":2519},"frontend/application/components/TickerBanner.tsx":{"size":1607,"mtime_ns":1786799852746980400,"indexed_at_ns":1786863540364538600,"word_count":140},"frontend/application/components/Tooltip.tsx":{"size":2773,"mtime_ns":1784631539493723100,"indexed_at_ns":1786863540370784200,"word_count":227},"frontend/application/components/TopUpModal.tsx":{"size":7914,"mtime_ns":1786799852750447300,"indexed_at_ns":1786863540378052500,"word_count":607},"frontend/application/components/UserDashboard.tsx":{"size":45908,"mtime_ns":1786799852753612900,"indexed_at_ns":1786863540386568000,"word_count":2896},"frontend/application/components/VetGallery.tsx":{"size":9592,"mtime_ns":1786799852755130000,"indexed_at_ns":1786863540396392700,"word_count":759},"frontend/application/components/VideosPage.tsx":{"size":9406,"mtime_ns":1786799852760267600,"indexed_at_ns":1786863540404604300,"word_count":681},"frontend/application/components/__tests__/CartDrawer.test.tsx":{"size":3197,"mtime_ns":1786799852761825800,"indexed_at_ns":1786863540412200800,"word_count":285},"frontend/application/components/__tests__/FeaturedProducts.test.tsx":{"size":3115,"mtime_ns":1786799852765632100,"indexed_at_ns":1786863540419710400,"word_count":242},"frontend/application/components/__tests__/Footer.test.tsx":{"size":1653,"mtime_ns":1783856793038707900,"indexed_at_ns":1786863540426732500,"word_count":139},"frontend/application/components/__tests__/Header.test.tsx":{"size":3277,"mtime_ns":1786799852770019100,"indexed_at_ns":1786863540434730400,"word_count":261},"frontend/application/components/__tests__/Hero.test.tsx":{"size":1980,"mtime_ns":1786799852776010800,"indexed_at_ns":1786863540442340400,"word_count":192},"frontend/application/components/__tests__/Tooltip.test.tsx":{"size":1508,"mtime_ns":1786799852784348900,"indexed_at_ns":1786863540450854900,"word_count":137},"frontend/application/eslint.config.mjs":{"size":465,"mtime_ns":1785651092993484500,"indexed_at_ns":1786863540456944500,"word_count":42},"frontend/application/lib/data/products.ts":{"size":85204,"mtime_ns":1786799852787039000,"indexed_at_ns":1786863540463947300,"word_count":7892},"frontend/application/lib/data/provinces.ts":{"size":2993,"mtime_ns":1785571725610676000,"indexed_at_ns":1786863540475337300,"word_count":203},"frontend/application/lib/data/scientificTerms.ts":{"size":162,"mtime_ns":1786799852788114100,"indexed_at_ns":1786863540482394200,"word_count":18},"frontend/application/lib/hooks/useNetworkStatus.ts":{"size":610,"mtime_ns":1786799852793488000,"indexed_at_ns":1786863540490904900,"word_count":59},"frontend/application/lib/services/api.ts":{"size":2863,"mtime_ns":1786799852799048700,"indexed_at_ns":1786863540496904500,"word_count":303},"frontend/application/lib/services/authService.ts":{"size":4450,"mtime_ns":1786799852805497000,"indexed_at_ns":1786863540505258900,"word_count":503},"frontend/application/lib/services/orderService.ts":{"size":2428,"mtime_ns":1786799852810726500,"indexed_at_ns":1786863540512358400,"word_count":279},"frontend/application/lib/services/productService.ts":{"size":9474,"mtime_ns":1786806825611364200,"indexed_at_ns":1786863540519432200,"word_count":888},"frontend/application/lib/services/videoService.ts":{"size":1015,"mtime_ns":1786799852818516100,"indexed_at_ns":1786863540526453400,"word_count":128},"frontend/application/lib/store/__tests__/cartStore.test.ts":{"size":4430,"mtime_ns":1786799852822036900,"indexed_at_ns":1786863540533965000,"word_count":386},"frontend/application/lib/store/__tests__/settingsStore.test.ts":{"size":1949,"mtime_ns":1783856793043803200,"indexed_at_ns":1786863540540796300,"word_count":194},"frontend/application/lib/store/__tests__/userStore.test.ts":{"size":3639,"mtime_ns":1786799852825547700,"indexed_at_ns":1786863540547305500,"word_count":289},"frontend/application/lib/store/cartStore.ts":{"size":6975,"mtime_ns":1786799852830069700,"indexed_at_ns":1786863540554362600,"word_count":689},"frontend/application/lib/store/settingsStore.ts":{"size":1670,"mtime_ns":1783856793044812600,"indexed_at_ns":1786863540561415600,"word_count":178},"frontend/application/lib/store/uiStore.ts":{"size":872,"mtime_ns":1786799852833588000,"indexed_at_ns":1786863540568531000,"word_count":100},"frontend/application/lib/store/usePetStore.ts":{"size":8639,"mtime_ns":1786799852837682400,"indexed_at_ns":1786863540575155400,"word_count":846},"frontend/application/lib/store/userStore.ts":{"size":9868,"mtime_ns":1786799852838896200,"indexed_at_ns":1786863540585272100,"word_count":853},"frontend/application/lib/types.ts":{"size":2194,"mtime_ns":1786799852840111800,"indexed_at_ns":1786863540590778900,"word_count":237},"frontend/application/lib/utils.ts":{"size":478,"mtime_ns":1786799852847284000,"indexed_at_ns":1786863540596780000,"word_count":61},"frontend/application/next.config.ts":{"size":1764,"mtime_ns":1786806762878003200,"indexed_at_ns":1786863540604880700,"word_count":169},"frontend/application/package.json":{"size":844,"mtime_ns":1786799852863132300,"indexed_at_ns":1786863680477356100,"word_count":72,"hashes":{"frontend/application/package.json":"3ffd8078128454f22679add155e8304ffb9476e630e847cd895ffb1422db1b5f"}},"frontend/application/postcss.config.mjs":{"size":94,"mtime_ns":1783764561988252100,"indexed_at_ns":1786863540617596000,"word_count":13},"frontend/application/public/assets/images/hero-section-image.png":{"size":6990105,"mtime_ns":1783856793095044200,"indexed_at_ns":1786863694135258700,"word_count":267685,"hashes":{"frontend/application/public/assets/images/hero-section-image.png":"13c3a8c4b520c0f0500833b266f6e4755a2c0e86904dc89c1d0243136cd9e090"}},"frontend/application/public/assets/images/regenerated_image_1779109861747.png":{"size":2269101,"mtime_ns":1783764562014110300,"indexed_at_ns":1786863694155060900,"word_count":84979,"hashes":{"frontend/application/public/assets/images/regenerated_image_1779109861747.png":"1dad8a2330655c9068cefc35c7e69370d06305219d6a38d82630043805ac39a9"}},"frontend/application/public/file.svg":{"size":391,"mtime_ns":1783764562016213600,"indexed_at_ns":1786863694164180800,"word_count":50,"hashes":{"frontend/application/public/file.svg":"1119e2ef995a10263472a09138d843b9f5924e1f4b6f84d2168226327ace0be1"}},"frontend/application/public/fonts/A-Iranian-Sans/A-Iranian-Sans/read me!.txt":{"size":281,"mtime_ns":1783856793098052000,"indexed_at_ns":1786863694070120000,"word_count":15,"hashes":{"frontend/application/public/fonts/a-iranian-sans/a-iranian-sans/read me!.txt":"6c2a924fd200fa301020be822d33307191d295b2c6b7e731785c02929b6a0fb1"}},"frontend/application/public/fonts/IranNastaliq/IranNastaliq/read me!.txt":{"size":281,"mtime_ns":1783856793107660400,"indexed_at_ns":1786863694072123000,"word_count":15,"hashes":{"frontend/application/public/fonts/irannastaliq/irannastaliq/read me!.txt":"79166364479f09a129d20f508898f5a23d90937b337db1d2c2a64c2cda022e1f"}},"frontend/application/public/fonts/sahel-font-v3.4.0/CHANGELOG.md":{"size":8519,"mtime_ns":1783856793113660500,"indexed_at_ns":1786863694073120500,"word_count":1077,"hashes":{"frontend/application/public/fonts/sahel-font-v3.4.0/changelog.md":"be9b046e69dc5442c30d61cca51a69e4238f861da265d1ce8cd0192bafce40a9"}},"frontend/application/public/fonts/sahel-font-v3.4.0/README.md":{"size":4136,"mtime_ns":1783856793156251700,"indexed_at_ns":1786863694075624200,"word_count":366,"hashes":{"frontend/application/public/fonts/sahel-font-v3.4.0/readme.md":"9b0e689f6474b487d70db0ecb05321072f15df92266522497b60aaa47579aac5"}},"frontend/application/public/fonts/sahel-font-v3.4.0/sample-variable.gif":{"size":236102,"mtime_ns":1783856793229119700,"indexed_at_ns":1786863694169221500,"word_count":10881,"hashes":{"frontend/application/public/fonts/sahel-font-v3.4.0/sample-variable.gif":"0825bc4a5adf33cea89ddbb0754a9951481f92beed22cc4ae9be5c59c8847c7f"}},"frontend/application/public/fonts/shabnam-font-v5.0.1/CHANGELOG.md":{"size":7177,"mtime_ns":1783856793230118600,"indexed_at_ns":1786863694077307600,"word_count":951,"hashes":{"frontend/application/public/fonts/shabnam-font-v5.0.1/changelog.md":"575542fd432a1b489570fce6eead03ca964b61d038ee9f3bd9181d6c07fec8b2"}},"frontend/application/public/fonts/shabnam-font-v5.0.1/README.md":{"size":3696,"mtime_ns":1783856793279542700,"indexed_at_ns":1786863694079312500,"word_count":283,"hashes":{"frontend/application/public/fonts/shabnam-font-v5.0.1/readme.md":"f9e5953869832730d4169ced95c5b978ef4d156f0114de6b27f37025fd5e7054"}},"frontend/application/public/fonts/shabnam-font-v5.0.1/sample.png":{"size":85019,"mtime_ns":1783856793315146800,"indexed_at_ns":1786863694176105400,"word_count":2615,"hashes":{"frontend/application/public/fonts/shabnam-font-v5.0.1/sample.png":"01816e4165a20a19dbd7c57390bc7d06119e51479c968568396df53bd3116fec"}},"frontend/application/public/fonts/vazirmatn-v33.003/AUTHORS.txt":{"size":339,"mtime_ns":1783856793316155600,"indexed_at_ns":1786863694080379500,"word_count":55,"hashes":{"frontend/application/public/fonts/vazirmatn-v33.003/authors.txt":"0c05de46944017b09527017814eae25279495af7920f59181720a034e84ab759"}},"frontend/application/public/fonts/vazirmatn-v33.003/CHANGELOG.md":{"size":38550,"mtime_ns":1783856793317690100,"indexed_at_ns":1786863694082379200,"word_count":5086,"hashes":{"frontend/application/public/fonts/vazirmatn-v33.003/changelog.md":"323e095d50626f73023efa85133687134ad8808333e908c41b9a3e61f225edbf"}},"frontend/application/public/fonts/vazirmatn-v33.003/OFL.txt":{"size":4391,"mtime_ns":1783856793319422000,"indexed_at_ns":1786863694084379300,"word_count":671,"hashes":{"frontend/application/public/fonts/vazirmatn-v33.003/ofl.txt":"756a84fec3f8eaf480849631710c21e3d503b11e50081b84fb4d31a4d970208a"}},"frontend/application/public/fonts/vazirmatn-v33.003/README.md":{"size":2339,"mtime_ns":1783856793320489000,"indexed_at_ns":1786863694085379400,"word_count":270,"hashes":{"frontend/application/public/fonts/vazirmatn-v33.003/readme.md":"cee7881a2b9d08b4fe358b683fdde88fa7f8fafb7f53852216a080d291460ca0"}},"frontend/application/public/fonts/vazirmatn-v33.003/\u0631\u0627\u0647\u0646\u0645\u0627.txt":{"size":211,"mtime_ns":1783856793668096800,"indexed_at_ns":1786863694087379500,"word_count":14,"hashes":{"frontend/application/public/fonts/vazirmatn-v33.003/\u0631\u0627\u0647\u0646\u0645\u0627.txt":"aa327615c816569057ced5f2c9993f791a1521e2bd4eab0ab992baf173159217"}},"frontend/application/public/globe.svg":{"size":1035,"mtime_ns":1783764562016720700,"indexed_at_ns":1786863694180121600,"word_count":154,"hashes":{"frontend/application/public/globe.svg":"93cd319cc2847a02f77034690697e90991e4e520dddb486c49db6d157f61a410"}},"frontend/application/public/next.svg":{"size":1375,"mtime_ns":1783764562018238900,"indexed_at_ns":1786863694181884500,"word_count":183,"hashes":{"frontend/application/public/next.svg":"b30f61c9863dba2a8d332f310e20fbca37330c1c68612d0f0b453a0b202e836a"}},"frontend/application/public/vercel.svg":{"size":128,"mtime_ns":1783764562019253000,"indexed_at_ns":1786863694184891200,"word_count":12,"hashes":{"frontend/application/public/vercel.svg":"c88132dfd92b424991c922c4121ed83833f9a07d7046def18dd3ccd44ac25e84"}},"frontend/application/public/window.svg":{"size":385,"mtime_ns":1783764562019253000,"indexed_at_ns":1786863694190022700,"word_count":63,"hashes":{"frontend/application/public/window.svg":"20a1be5f2149ff9ae12c5facdd302bc535ba215694bf31eea01cd014322d20fa"}},"frontend/application/tsconfig.json":{"size":750,"mtime_ns":1786799852865640000,"indexed_at_ns":1786863680478356000,"word_count":61,"hashes":{"frontend/application/tsconfig.json":"adcade0f962ec5888be99b4b1402d98812cfd570b0c5669bda73142b2cb9210d"}},"frontend/application/vitest.config.ts":{"size":244,"mtime_ns":1786799852868652900,"indexed_at_ns":1786863544320193300,"word_count":25},"frontend/application/vitest.setup.ts":{"size":532,"mtime_ns":1786799852870650700,"indexed_at_ns":1786863544326240200,"word_count":58},"metadata.json":{"size":334,"mtime_ns":1783856793672137200,"indexed_at_ns":1786863680479357400,"word_count":35,"hashes":{"metadata.json":"c44b4c4ba60752554ceae65e2f22bddb756cbeb25a4a31ee79160b6eb182255a"}},"package.json":{"size":992,"mtime_ns":1783856793674105800,"indexed_at_ns":1786863680481374200,"word_count":118,"hashes":{"package.json":"0157b70b08d4db87730d29b1da6749d719cc3f815c2c01d0c5cd29042f4d0bcf"}},"prometheus.yml":{"size":164,"mtime_ns":1783764562027779300,"indexed_at_ns":1786863694089379300,"word_count":13,"hashes":{"prometheus.yml":"6efadd3eaf7bcdf8e425488e92b4262447caba278f55a179b9bd4a12d5dfc721"}},"scripts/backup_db.sh":{"size":1362,"mtime_ns":1786799852876784600,"indexed_at_ns":1786863680482378900,"word_count":134,"hashes":{"scripts/backup_db.sh":"f90cf2d0c954f3eaca83566ccb365bff62fd97a2af0225816c19902ee4dfdd6c"}},"scripts/compose.prod.yml":{"size":2034,"mtime_ns":1786799852879304700,"indexed_at_ns":1786863694090439600,"word_count":115,"hashes":{"scripts/compose.prod.yml":"b7096f2baba4108e8f2a2145abe28a76e410cfd23973c632dc63c7af99613227"}},"scripts/compose.stage.yml":{"size":2311,"mtime_ns":1786799852881805700,"indexed_at_ns":1786863694092440100,"word_count":122,"hashes":{"scripts/compose.stage.yml":"ce5415bd3ce00eecbe2a53db74fd01c7933ba5e4e73062a6ef58a1036ea5089e"}},"scripts/deploy.sh":{"size":3099,"mtime_ns":1786806692065165300,"indexed_at_ns":1786863680483971700,"word_count":309,"hashes":{"scripts/deploy.sh":"c6caeffd50f1035595e5733fb61f62e55d6f2f7a5b17e649b7a256182cb004d6"}},"scripts/open-browsers.js":{"size":1551,"mtime_ns":1783764562028780800,"indexed_at_ns":1786863544379330800,"word_count":202},"scripts/start-dev.js":{"size":1332,"mtime_ns":1783766217319524600,"indexed_at_ns":1786863544385074200,"word_count":148},"start.sh":{"size":26,"mtime_ns":1784033954813080300,"indexed_at_ns":1786863680484972600,"word_count":4,"hashes":{"start.sh":"694c258b963c309734a3316c770f5fef29703bc6f24754b04155fd8db94cf862"}},"swagger.yml":{"size":95785,"mtime_ns":1786799852892091600,"indexed_at_ns":1786863694094028500,"word_count":7031,"hashes":{"swagger.yml":"9ee34edd53820461e0a043109976532a305cb26a4ff9e265eb8a5883dd42dd53"}},".antigravity/instructions.md":{"size":229,"mtime_ns":1786864624907347800,"indexed_at_ns":1786865149916780000,"word_count":29,"hashes":{".antigravity/instructions.md":"3cd9f03beffc84b16f571f8c9bb69f6bf715aedb712e85af507d8d6dd4db9061"}},".antigravity/workflows/graphify.md":{"size":44042,"mtime_ns":1786864553766438100,"indexed_at_ns":1786865149923799900,"word_count":5442,"hashes":{".antigravity/workflows/graphify.md":"2aa3c37fc3f9cccdb1fa4efbdd9fa03e8274efb1df4430b1d792283ade7f8078"}},".agents/rules/graphify.md":{"size":947,"mtime_ns":1786866620806811100,"indexed_at_ns":1786867040305104900,"word_count":127,"hashes":{".agents/rules/graphify.md":"e55792958648fb69255e3ce3f71a8fcead36307c34b2d67feda9ac650ac61803"}},".agents/workflows/graphify.md":{"size":239,"mtime_ns":1786866620808812000,"indexed_at_ns":1786867040308174500,"word_count":37,"hashes":{".agents/workflows/graphify.md":"d92622463299d313da48e2cdbebf79d7ea24ffaf2ae2de2a1714be8ee42b22b3"}},"backend/src/payment/dto/initiate-payment.dto.ts":{"size":775,"mtime_ns":1786867357558559300,"indexed_at_ns":1786867582675240600,"word_count":69},"backend/src/payment/dto/verify-payment.dto.ts":{"size":1053,"mtime_ns":1786867362787171200,"indexed_at_ns":1786867582681836000,"word_count":96},"backend/src/payment/payment.controller.ts":{"size":5136,"mtime_ns":1786867425063287000,"indexed_at_ns":1786867582687966100,"word_count":446},"backend/src/payment/payment.module.ts":{"size":511,"mtime_ns":1786867389205580500,"indexed_at_ns":1786867582693956800,"word_count":53},"backend/src/payment/payment.service.ts":{"size":13767,"mtime_ns":1786867376815638900,"indexed_at_ns":1786867582699638200,"word_count":1207},"backend/src/payment/zibal.service.ts":{"size":8168,"mtime_ns":1786867352921392900,"indexed_at_ns":1786867582706339700,"word_count":805},"frontend/application/app/payment/verify/page.tsx":{"size":12176,"mtime_ns":1786867467695049200,"indexed_at_ns":1786867587283958600,"word_count":923},"AGENTS.md":{"size":226,"mtime_ns":1786867813068485500,"indexed_at_ns":1786868564962108300,"word_count":29,"hashes":{"agents.md":"b664c2bb6d85e009d7495bcd9c3d52c419176473cd4e19362fd4256616076151"}},"frontend/admin-panel/src/pages/SmsSettingsPage.tsx":{"size":74315,"mtime_ns":1786868718976968000,"indexed_at_ns":1786868773602981700,"word_count":5100}} \ No newline at end of file diff --git a/graphify-out/graph.html b/graphify-out/graph.html index ef9cede..038d41a 100644 --- a/graphify-out/graph.html +++ b/graphify-out/graph.html @@ -63,12 +63,12 @@
-
3199 nodes · 5155 edges · 276 communities
+
3213 nodes · 5194 edges · 268 communities