@jobsearch-works/firestore-models 4.2.8 → 4.2.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -880,6 +880,43 @@ interface ApplicationRun {
880
880
  updatedAt?: Date | string;
881
881
  }
882
882
 
883
+ /**
884
+ * Daily statistics for application submissions and archivals
885
+ * Stored in a single document per client for efficient querying
886
+ */
887
+ interface DailyApplicationStats {
888
+ /** Number of applications applied (submitted) on this day */
889
+ applied: number;
890
+ /** Number of applications archived (rejected or withdrawn) on this day */
891
+ archived: number;
892
+ }
893
+ /**
894
+ * Application statistics aggregated by day
895
+ * Path: stats/{clientId}
896
+ *
897
+ * One document per client containing all application statistics.
898
+ * The dailyStats object uses date strings (YYYY-MM-DD format) as keys
899
+ * for efficient daily aggregation and querying.
900
+ */
901
+ interface ApplicationStats {
902
+ /** Document ID is the clientId */
903
+ id?: string;
904
+ clientId: string;
905
+ /**
906
+ * Daily statistics keyed by date string (YYYY-MM-DD format)
907
+ * Example: { "2025-01-15": { applied: 3, archived: 1 } }
908
+ */
909
+ dailyStats: Record<string, DailyApplicationStats>;
910
+ /** Total count of all applications applied (ever) */
911
+ totalApplied: number;
912
+ /** Total count of all applications archived (ever) */
913
+ totalArchived: number;
914
+ /** Last time stats were updated */
915
+ updatedAt?: Date | string;
916
+ /** When this stats document was created */
917
+ createdAt?: Date | string;
918
+ }
919
+
883
920
  /**
884
921
  * Embedded sub-object within Client document
885
922
  * @see Client - Parent document interface
@@ -1197,6 +1234,10 @@ declare const firestorePaths: {
1197
1234
  readonly collection: () => string;
1198
1235
  readonly doc: (authEmail: string) => string;
1199
1236
  };
1237
+ readonly stats: {
1238
+ readonly collection: () => string;
1239
+ readonly doc: (clientId: string) => string;
1240
+ };
1200
1241
  };
1201
1242
 
1202
- export { Address, AdminReport, Agent, AgentStatus, Application, ApplicationQuestion, ApplicationQuestionType, ApplicationQuestionTypeOptions, ApplicationRun, ApplicationRunMetadata, ApplicationRunOutcome, ApplicationRunStatus, ApplicationRunTrigger, ApplicationStatus, AuthEmail, AuthUser, Certification, Client, ClientAccessToken, ClientCompanyPreferences, ClientEmail, ClientGmailToken, ClientInitialQuestion, ClientJobPreferences, ClientLogin, ClientPersonalData, ClientQuestion, ClientResume, ClientStatus, ClientStatusEnum, ClientVirtualInterview, Companies, EMAIL_CATEGORIES, Education, EmailCategory, EmailLog, Experience, FirestoreTimestamp, GmailOAuthSession, JobCategory, JobTitle, LocationId, Project, UserPublic, Vacancy, VacancyCategory, VacancySuggestion, countries, firestorePaths, initialQuestions, jobClassifications, locations };
1243
+ export { Address, AdminReport, Agent, AgentStatus, Application, ApplicationQuestion, ApplicationQuestionType, ApplicationQuestionTypeOptions, ApplicationRun, ApplicationRunMetadata, ApplicationRunOutcome, ApplicationRunStatus, ApplicationRunTrigger, ApplicationStats, ApplicationStatus, AuthEmail, AuthUser, Certification, Client, ClientAccessToken, ClientCompanyPreferences, ClientEmail, ClientGmailToken, ClientInitialQuestion, ClientJobPreferences, ClientLogin, ClientPersonalData, ClientQuestion, ClientResume, ClientStatus, ClientStatusEnum, ClientVirtualInterview, Companies, DailyApplicationStats, EMAIL_CATEGORIES, Education, EmailCategory, EmailLog, Experience, FirestoreTimestamp, GmailOAuthSession, JobCategory, JobTitle, LocationId, Project, UserPublic, Vacancy, VacancyCategory, VacancySuggestion, countries, firestorePaths, initialQuestions, jobClassifications, locations };
package/dist/index.d.ts CHANGED
@@ -880,6 +880,43 @@ interface ApplicationRun {
880
880
  updatedAt?: Date | string;
881
881
  }
882
882
 
883
+ /**
884
+ * Daily statistics for application submissions and archivals
885
+ * Stored in a single document per client for efficient querying
886
+ */
887
+ interface DailyApplicationStats {
888
+ /** Number of applications applied (submitted) on this day */
889
+ applied: number;
890
+ /** Number of applications archived (rejected or withdrawn) on this day */
891
+ archived: number;
892
+ }
893
+ /**
894
+ * Application statistics aggregated by day
895
+ * Path: stats/{clientId}
896
+ *
897
+ * One document per client containing all application statistics.
898
+ * The dailyStats object uses date strings (YYYY-MM-DD format) as keys
899
+ * for efficient daily aggregation and querying.
900
+ */
901
+ interface ApplicationStats {
902
+ /** Document ID is the clientId */
903
+ id?: string;
904
+ clientId: string;
905
+ /**
906
+ * Daily statistics keyed by date string (YYYY-MM-DD format)
907
+ * Example: { "2025-01-15": { applied: 3, archived: 1 } }
908
+ */
909
+ dailyStats: Record<string, DailyApplicationStats>;
910
+ /** Total count of all applications applied (ever) */
911
+ totalApplied: number;
912
+ /** Total count of all applications archived (ever) */
913
+ totalArchived: number;
914
+ /** Last time stats were updated */
915
+ updatedAt?: Date | string;
916
+ /** When this stats document was created */
917
+ createdAt?: Date | string;
918
+ }
919
+
883
920
  /**
884
921
  * Embedded sub-object within Client document
885
922
  * @see Client - Parent document interface
@@ -1197,6 +1234,10 @@ declare const firestorePaths: {
1197
1234
  readonly collection: () => string;
1198
1235
  readonly doc: (authEmail: string) => string;
1199
1236
  };
1237
+ readonly stats: {
1238
+ readonly collection: () => string;
1239
+ readonly doc: (clientId: string) => string;
1240
+ };
1200
1241
  };
1201
1242
 
1202
- export { Address, AdminReport, Agent, AgentStatus, Application, ApplicationQuestion, ApplicationQuestionType, ApplicationQuestionTypeOptions, ApplicationRun, ApplicationRunMetadata, ApplicationRunOutcome, ApplicationRunStatus, ApplicationRunTrigger, ApplicationStatus, AuthEmail, AuthUser, Certification, Client, ClientAccessToken, ClientCompanyPreferences, ClientEmail, ClientGmailToken, ClientInitialQuestion, ClientJobPreferences, ClientLogin, ClientPersonalData, ClientQuestion, ClientResume, ClientStatus, ClientStatusEnum, ClientVirtualInterview, Companies, EMAIL_CATEGORIES, Education, EmailCategory, EmailLog, Experience, FirestoreTimestamp, GmailOAuthSession, JobCategory, JobTitle, LocationId, Project, UserPublic, Vacancy, VacancyCategory, VacancySuggestion, countries, firestorePaths, initialQuestions, jobClassifications, locations };
1243
+ export { Address, AdminReport, Agent, AgentStatus, Application, ApplicationQuestion, ApplicationQuestionType, ApplicationQuestionTypeOptions, ApplicationRun, ApplicationRunMetadata, ApplicationRunOutcome, ApplicationRunStatus, ApplicationRunTrigger, ApplicationStats, ApplicationStatus, AuthEmail, AuthUser, Certification, Client, ClientAccessToken, ClientCompanyPreferences, ClientEmail, ClientGmailToken, ClientInitialQuestion, ClientJobPreferences, ClientLogin, ClientPersonalData, ClientQuestion, ClientResume, ClientStatus, ClientStatusEnum, ClientVirtualInterview, Companies, DailyApplicationStats, EMAIL_CATEGORIES, Education, EmailCategory, EmailLog, Experience, FirestoreTimestamp, GmailOAuthSession, JobCategory, JobTitle, LocationId, Project, UserPublic, Vacancy, VacancyCategory, VacancySuggestion, countries, firestorePaths, initialQuestions, jobClassifications, locations };
package/dist/index.js CHANGED
@@ -1522,6 +1522,10 @@ var firestorePaths = {
1522
1522
  authEmails: {
1523
1523
  collection: () => "authEmails",
1524
1524
  doc: (authEmail) => `authEmails/${authEmail}`
1525
+ },
1526
+ stats: {
1527
+ collection: () => "stats",
1528
+ doc: (clientId) => `stats/${clientId}`
1525
1529
  }
1526
1530
  };
1527
1531
  // Annotate the CommonJS export names for ESM import in node:
package/dist/index.mjs CHANGED
@@ -1484,6 +1484,10 @@ var firestorePaths = {
1484
1484
  authEmails: {
1485
1485
  collection: () => "authEmails",
1486
1486
  doc: (authEmail) => `authEmails/${authEmail}`
1487
+ },
1488
+ stats: {
1489
+ collection: () => "stats",
1490
+ doc: (clientId) => `stats/${clientId}`
1487
1491
  }
1488
1492
  };
1489
1493
  export {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jobsearch-works/firestore-models",
3
- "version": "4.2.8",
3
+ "version": "4.2.9",
4
4
  "description": "A shared library for standardizing Firestore document schemas and paths across multiple projects",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",