@the-inkwell/shared 0.2.152 → 0.2.154

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.
@@ -1,4 +1,7 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.ResumeParserSchema = exports.AdminPersonConnectionsResultSchema = exports.AdminPersonConnectionsPersonSchema = exports.AdminPersonConnectionsParamsSchema = exports.AdminPersonListQuerySchema = exports.AdminPersonDeleteParamsSchema = exports.AdminPersonUpdateParamsSchema = exports.AdminPersonByIdNanoSchema = exports.AdminPersonByPhoneParamsSchema = exports.AdminPersonByEmailParamsSchema = exports.AdminPersonParamsSchema = exports.AdminPersonUpdateSchema = exports.AdminPersonSelectSchema = exports.AdminPersonCreateSchema = exports.AdminPersonExperienceSelectSchema = exports.AdminPersonEducationSelectSchema = void 0;
4
7
  const drizzle_zod_1 = require("drizzle-zod");
@@ -6,8 +9,14 @@ const core_1 = require("../../core");
6
9
  const utils_1 = require("../../../utils");
7
10
  const v4_1 = require("zod/v4");
8
11
  const constants_1 = require("../../../constants");
12
+ const phone_1 = __importDefault(require("phone"));
9
13
  //// validators
10
14
  const emailSchema = v4_1.z.email().trim().toLowerCase();
15
+ const phoneSchema = v4_1.z
16
+ .string()
17
+ .transform((val) => (0, phone_1.default)(val.trim()).phoneNumber)
18
+ .pipe(v4_1.z.string().startsWith('+'))
19
+ .nullable();
11
20
  exports.AdminPersonEducationSelectSchema = (0, drizzle_zod_1.createSelectSchema)(core_1.education, {
12
21
  field: (schema) => schema.describe('Field of study'),
13
22
  graduatedAt: v4_1.z
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/schema/admin/persons/index.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n createInsertSchema,\n createSelectSchema,\n createUpdateSchema\n} from 'drizzle-zod'\nimport {\n campaign,\n client,\n education,\n experience,\n industry,\n jobFunction,\n person,\n skill,\n tag\n} from '../../core'\nimport {\n EmailSchema,\n ListQuerySchema,\n OptionalPhoneSchema,\n type ListResponse\n} from '../../../utils'\nimport { z } from 'zod/v4'\nimport {\n LIST_REQUEST_SORT_DIRECTIONS,\n PERSON_LIST_OPERATORS\n} from '../../../constants'\nimport phone from 'phone'\nimport { create } from 'domain'\n\n//// validators\n\nconst emailSchema = z.email().trim().toLowerCase()\n\nexport const AdminPersonEducationSelectSchema = createSelectSchema(education, {\n field: (schema) => schema.describe('Field of study'),\n graduatedAt: z\n .date()\n .nullable()\n .describe('Graduation date, use June 1 if exact date unknown')\n}).pick({\n id: true,\n degree: true,\n field: true,\n school: true,\n graduatedAt: true\n})\n\nexport const AdminPersonExperienceSelectSchema = createSelectSchema(\n experience,\n {\n startDate: z.date().nullable(),\n endDate: z.date().nullable()\n }\n)\n .pick({\n id: true,\n title: true,\n company: true,\n level: true,\n salary: true,\n startDate: true,\n endDate: true,\n isCurrent: true\n })\n .extend({\n jobFunction: z.string().nullable(),\n industry: z.string().nullable()\n })\n\nexport const AdminPersonCreateSchema = createInsertSchema(person)\n .extend({\n email: emailSchema\n })\n .omit({\n idNano: true\n })\nexport const AdminPersonSelectSchema = createSelectSchema(person).extend({\n skills: z.array(\n createSelectSchema(skill).pick({\n id: true,\n name: true\n })\n ),\n tags: z.array(\n createSelectSchema(tag).pick({\n id: true,\n name: true\n })\n ),\n sourceCampaign: createSelectSchema(campaign)\n .pick({\n id: true,\n name: true\n })\n .nullable()\n .optional(),\n client: createSelectSchema(client).pick({\n id: true,\n name: true\n }),\n educations: z.array(AdminPersonEducationSelectSchema),\n experiences: z.array(AdminPersonExperienceSelectSchema),\n _referralsCount: z.number().nullable().optional(),\n _referredIndustries: z.array(z.string()).nullable().optional(),\n _referredLocations: z.array(z.string()).nullable().optional(),\n _referredSkills: z.array(z.string()).nullable().optional(),\n _currentTitle: z.string().nullable().optional(),\n _currentEmployer: z.string().nullable().optional(),\n _currentSalary: z.number().nullable().optional(),\n _careerLevel: z.number().nullable().optional(),\n _currentJobFunction: z.string().nullable().optional(),\n _currentIndustry: z.string().nullable().optional(),\n _calculatedIsMember: z.boolean().optional(),\n industries: z.array(\n createSelectSchema(industry).pick({\n id: true,\n name: true,\n slug: true\n })\n ),\n jobFunctions: z.array(\n createSelectSchema(jobFunction).pick({\n id: true,\n name: true,\n slug: true\n })\n )\n})\n\nexport const AdminPersonUpdateSchema = createUpdateSchema(person, {\n email: EmailSchema.optional(),\n addedAt: z.coerce.date().optional(),\n phone: OptionalPhoneSchema\n})\n\nexport const AdminPersonParamsSchema = AdminPersonSelectSchema.pick({\n id: true\n})\nexport const AdminPersonByEmailParamsSchema = AdminPersonSelectSchema.pick({\n email: true\n})\nexport const AdminPersonByPhoneParamsSchema = z.object({\n phone: z.string()\n})\nexport const AdminPersonByIdNanoSchema = z.object({\n idNano: z.string()\n})\n\nexport const AdminPersonUpdateParamsSchema = AdminPersonSelectSchema.pick({\n id: true\n})\n\nexport const AdminPersonDeleteParamsSchema = AdminPersonSelectSchema.pick({\n id: true\n})\n\nconst FilterSchema = z.object({\n field: z.string(),\n isDynamicColumn: z.boolean(),\n operator: z.enum(PERSON_LIST_OPERATORS),\n value: z.union([z.string(), z.number(), z.boolean(), z.array(z.string())])\n})\nconst GeoSchema = z.object({\n operator: z.string(),\n referenceLat: z.number(),\n referenceLon: z.number(),\n radius: z.number()\n})\nconst CustomQuerySchema = z.object({\n custom: z.string(),\n value: z.union([z.string(), z.number(), z.boolean(), z.array(z.string())])\n})\n// TODO - add type\nconst NestedFilterSchema: z.ZodType<any> = z.lazy(() =>\n z.object({\n and: z\n .array(\n z.union([\n FilterSchema,\n GeoSchema,\n CustomQuerySchema,\n NestedFilterSchema\n ])\n )\n .optional(),\n or: z\n .array(\n z.union([\n FilterSchema,\n GeoSchema,\n CustomQuerySchema,\n NestedFilterSchema\n ])\n )\n .optional()\n })\n)\n\nexport const AdminPersonListQuerySchema = ListQuerySchema.extend({\n sort: z\n .array(\n z.object({\n field: z.string(),\n direction: z.enum(LIST_REQUEST_SORT_DIRECTIONS)\n })\n )\n .optional(),\n filter: z\n .union([FilterSchema, GeoSchema, CustomQuerySchema, NestedFilterSchema])\n .optional()\n})\n\nexport const AdminPersonConnectionsParamsSchema = AdminPersonSelectSchema.pick({\n id: true\n})\nexport const AdminPersonConnectionsPersonSchema = AdminPersonSelectSchema.pick({\n id: true,\n email: true,\n fullName: true\n})\nexport const AdminPersonConnectionsResultSchema = z.object({\n sourcedPersons: z.array(AdminPersonConnectionsPersonSchema),\n sourcedBy: AdminPersonConnectionsPersonSchema.nullable(),\n bestPersons: z.array(\n z.object({ bestPerson: AdminPersonConnectionsPersonSchema })\n ),\n bestiedBy: z.array(\n z.object({ bestiedBy: AdminPersonConnectionsPersonSchema })\n ),\n referrals: z.array(\n z.object({\n candidacy: z\n .object({ person: AdminPersonConnectionsPersonSchema })\n .nullable(),\n client: createSelectSchema(client)\n .pick({\n id: true,\n name: true\n })\n .nullable()\n })\n ),\n candidacies: z.array(\n z.object({\n referral: z\n .object({ referrer: AdminPersonConnectionsPersonSchema })\n .nullable()\n })\n )\n})\n\n//// types\n\ntype AdminPerson = z.infer<typeof AdminPersonSelectSchema>\n\nexport type AdminPersonExperienceResult = z.infer<\n typeof AdminPersonExperienceSelectSchema\n>\nexport type AdminPersonEducationResult = z.infer<\n typeof AdminPersonEducationSelectSchema\n>\n\n// detail\nexport type AdminPersonParams = z.infer<typeof AdminPersonParamsSchema>\nexport type AdminPersonByEmailParams = z.infer<\n typeof AdminPersonByEmailParamsSchema\n>\nexport type AdminPersonByPhoneParams = z.infer<\n typeof AdminPersonByPhoneParamsSchema\n>\nexport type AdminPersonByIdNanoParams = z.infer<\n typeof AdminPersonByIdNanoSchema\n>\nexport type AdminPersonResult = AdminPerson\n\n// list\nexport type AdminPersonListQuery = z.infer<typeof AdminPersonListQuerySchema>\nexport type AdminPersonListResult = ListResponse<\n z.infer<typeof AdminPersonSelectSchema>\n>\n\n// create\nexport type AdminPersonCreateInput = z.infer<typeof AdminPersonCreateSchema>\nexport type AdminPersonCreateResult = Pick<AdminPerson, 'id'>\n\n// update\nexport type AdminPersonUpdateParams = z.infer<\n typeof AdminPersonUpdateParamsSchema\n>\nexport type AdminPersonUpdateInput = Partial<AdminPerson>\n\n// delete\nexport type AdminPersonDeleteParams = z.infer<\n typeof AdminPersonDeleteParamsSchema\n>\n\nexport const ResumeParserSchema = AdminPersonSelectSchema.pick({\n firstName: true,\n lastName: true,\n email: true,\n phone: true,\n city: true,\n state: true,\n country: true,\n gender: true,\n linkedInUrl: true,\n websiteUrl: true,\n skills: true,\n experiences: true,\n educations: true\n}).extend({\n skills: z.array(z.string()),\n experiences: z.array(\n AdminPersonExperienceSelectSchema.extend({\n jobFunction: z.string().nullable()\n })\n )\n})\n\nexport type AdminPersonResumeParseResult = z.infer<typeof ResumeParserSchema>\n\nexport type AdminPersonConnectionsParams = z.infer<\n typeof AdminPersonConnectionsParamsSchema\n>\nexport type AdminPersonConnectionsPerson = z.infer<\n typeof AdminPersonConnectionsPersonSchema\n>\nexport type AdminPersonConnectionsResult = z.infer<\n typeof AdminPersonConnectionsResultSchema\n>\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/schema/admin/persons/index.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n createInsertSchema,\n createSelectSchema,\n createUpdateSchema\n} from 'drizzle-zod'\nimport {\n campaign,\n client,\n education,\n experience,\n industry,\n jobFunction,\n person,\n skill,\n tag\n} from '../../core'\nimport {\n EmailSchema,\n ListQuerySchema,\n OptionalPhoneSchema,\n type ListResponse\n} from '../../../utils'\nimport { z } from 'zod/v4'\nimport {\n LIST_REQUEST_SORT_DIRECTIONS,\n PERSON_LIST_OPERATORS\n} from '../../../constants'\nimport phone from 'phone'\nimport { create } from 'domain'\n\n//// validators\n\nconst emailSchema = z.email().trim().toLowerCase()\nconst phoneSchema = z\n .string()\n .transform((val) => phone(val.trim()).phoneNumber)\n .pipe(z.string().startsWith('+'))\n .nullable()\n\nexport const AdminPersonEducationSelectSchema = createSelectSchema(education, {\n field: (schema) => schema.describe('Field of study'),\n graduatedAt: z\n .date()\n .nullable()\n .describe('Graduation date, use June 1 if exact date unknown')\n}).pick({\n id: true,\n degree: true,\n field: true,\n school: true,\n graduatedAt: true\n})\n\nexport const AdminPersonExperienceSelectSchema = createSelectSchema(\n experience,\n {\n startDate: z.date().nullable(),\n endDate: z.date().nullable()\n }\n)\n .pick({\n id: true,\n title: true,\n company: true,\n level: true,\n salary: true,\n startDate: true,\n endDate: true,\n isCurrent: true\n })\n .extend({\n jobFunction: z.string().nullable(),\n industry: z.string().nullable()\n })\n\nexport const AdminPersonCreateSchema = createInsertSchema(person)\n .extend({\n email: emailSchema\n })\n .omit({\n idNano: true\n })\nexport const AdminPersonSelectSchema = createSelectSchema(person).extend({\n skills: z.array(\n createSelectSchema(skill).pick({\n id: true,\n name: true\n })\n ),\n tags: z.array(\n createSelectSchema(tag).pick({\n id: true,\n name: true\n })\n ),\n sourceCampaign: createSelectSchema(campaign)\n .pick({\n id: true,\n name: true\n })\n .nullable()\n .optional(),\n client: createSelectSchema(client).pick({\n id: true,\n name: true\n }),\n educations: z.array(AdminPersonEducationSelectSchema),\n experiences: z.array(AdminPersonExperienceSelectSchema),\n _referralsCount: z.number().nullable().optional(),\n _referredIndustries: z.array(z.string()).nullable().optional(),\n _referredLocations: z.array(z.string()).nullable().optional(),\n _referredSkills: z.array(z.string()).nullable().optional(),\n _currentTitle: z.string().nullable().optional(),\n _currentEmployer: z.string().nullable().optional(),\n _currentSalary: z.number().nullable().optional(),\n _careerLevel: z.number().nullable().optional(),\n _currentJobFunction: z.string().nullable().optional(),\n _currentIndustry: z.string().nullable().optional(),\n _calculatedIsMember: z.boolean().optional(),\n industries: z.array(\n createSelectSchema(industry).pick({\n id: true,\n name: true,\n slug: true\n })\n ),\n jobFunctions: z.array(\n createSelectSchema(jobFunction).pick({\n id: true,\n name: true,\n slug: true\n })\n )\n})\n\nexport const AdminPersonUpdateSchema = createUpdateSchema(person, {\n email: EmailSchema.optional(),\n addedAt: z.coerce.date().optional(),\n phone: OptionalPhoneSchema\n})\n\nexport const AdminPersonParamsSchema = AdminPersonSelectSchema.pick({\n id: true\n})\nexport const AdminPersonByEmailParamsSchema = AdminPersonSelectSchema.pick({\n email: true\n})\nexport const AdminPersonByPhoneParamsSchema = z.object({\n phone: z.string()\n})\nexport const AdminPersonByIdNanoSchema = z.object({\n idNano: z.string()\n})\n\nexport const AdminPersonUpdateParamsSchema = AdminPersonSelectSchema.pick({\n id: true\n})\n\nexport const AdminPersonDeleteParamsSchema = AdminPersonSelectSchema.pick({\n id: true\n})\n\nconst FilterSchema = z.object({\n field: z.string(),\n isDynamicColumn: z.boolean(),\n operator: z.enum(PERSON_LIST_OPERATORS),\n value: z.union([z.string(), z.number(), z.boolean(), z.array(z.string())])\n})\nconst GeoSchema = z.object({\n operator: z.string(),\n referenceLat: z.number(),\n referenceLon: z.number(),\n radius: z.number()\n})\nconst CustomQuerySchema = z.object({\n custom: z.string(),\n value: z.union([z.string(), z.number(), z.boolean(), z.array(z.string())])\n})\n// TODO - add type\nconst NestedFilterSchema: z.ZodType<any> = z.lazy(() =>\n z.object({\n and: z\n .array(\n z.union([\n FilterSchema,\n GeoSchema,\n CustomQuerySchema,\n NestedFilterSchema\n ])\n )\n .optional(),\n or: z\n .array(\n z.union([\n FilterSchema,\n GeoSchema,\n CustomQuerySchema,\n NestedFilterSchema\n ])\n )\n .optional()\n })\n)\n\nexport const AdminPersonListQuerySchema = ListQuerySchema.extend({\n sort: z\n .array(\n z.object({\n field: z.string(),\n direction: z.enum(LIST_REQUEST_SORT_DIRECTIONS)\n })\n )\n .optional(),\n filter: z\n .union([FilterSchema, GeoSchema, CustomQuerySchema, NestedFilterSchema])\n .optional()\n})\n\nexport const AdminPersonConnectionsParamsSchema = AdminPersonSelectSchema.pick({\n id: true\n})\nexport const AdminPersonConnectionsPersonSchema = AdminPersonSelectSchema.pick({\n id: true,\n email: true,\n fullName: true\n})\nexport const AdminPersonConnectionsResultSchema = z.object({\n sourcedPersons: z.array(AdminPersonConnectionsPersonSchema),\n sourcedBy: AdminPersonConnectionsPersonSchema.nullable(),\n bestPersons: z.array(\n z.object({ bestPerson: AdminPersonConnectionsPersonSchema })\n ),\n bestiedBy: z.array(\n z.object({ bestiedBy: AdminPersonConnectionsPersonSchema })\n ),\n referrals: z.array(\n z.object({\n candidacy: z\n .object({ person: AdminPersonConnectionsPersonSchema })\n .nullable(),\n client: createSelectSchema(client)\n .pick({\n id: true,\n name: true\n })\n .nullable()\n })\n ),\n candidacies: z.array(\n z.object({\n referral: z\n .object({ referrer: AdminPersonConnectionsPersonSchema })\n .nullable()\n })\n )\n})\n\n//// types\n\ntype AdminPerson = z.infer<typeof AdminPersonSelectSchema>\n\nexport type AdminPersonExperienceResult = z.infer<\n typeof AdminPersonExperienceSelectSchema\n>\nexport type AdminPersonEducationResult = z.infer<\n typeof AdminPersonEducationSelectSchema\n>\n\n// detail\nexport type AdminPersonParams = z.infer<typeof AdminPersonParamsSchema>\nexport type AdminPersonByEmailParams = z.infer<\n typeof AdminPersonByEmailParamsSchema\n>\nexport type AdminPersonByPhoneParams = z.infer<\n typeof AdminPersonByPhoneParamsSchema\n>\nexport type AdminPersonByIdNanoParams = z.infer<\n typeof AdminPersonByIdNanoSchema\n>\nexport type AdminPersonResult = AdminPerson\n\n// list\nexport type AdminPersonListQuery = z.infer<typeof AdminPersonListQuerySchema>\nexport type AdminPersonListResult = ListResponse<\n z.infer<typeof AdminPersonSelectSchema>\n>\n\n// create\nexport type AdminPersonCreateInput = z.infer<typeof AdminPersonCreateSchema>\nexport type AdminPersonCreateResult = Pick<AdminPerson, 'id'>\n\n// update\nexport type AdminPersonUpdateParams = z.infer<\n typeof AdminPersonUpdateParamsSchema\n>\nexport type AdminPersonUpdateInput = Partial<AdminPerson>\n\n// delete\nexport type AdminPersonDeleteParams = z.infer<\n typeof AdminPersonDeleteParamsSchema\n>\n\nexport const ResumeParserSchema = AdminPersonSelectSchema.pick({\n firstName: true,\n lastName: true,\n email: true,\n phone: true,\n city: true,\n state: true,\n country: true,\n gender: true,\n linkedInUrl: true,\n websiteUrl: true,\n skills: true,\n experiences: true,\n educations: true\n}).extend({\n skills: z.array(z.string()),\n experiences: z.array(\n AdminPersonExperienceSelectSchema.extend({\n jobFunction: z.string().nullable()\n })\n )\n})\n\nexport type AdminPersonResumeParseResult = z.infer<typeof ResumeParserSchema>\n\nexport type AdminPersonConnectionsParams = z.infer<\n typeof AdminPersonConnectionsParamsSchema\n>\nexport type AdminPersonConnectionsPerson = z.infer<\n typeof AdminPersonConnectionsPersonSchema\n>\nexport type AdminPersonConnectionsResult = z.infer<\n typeof AdminPersonConnectionsResultSchema\n>\n"]}
@@ -576,6 +576,23 @@ export declare const client: import("drizzle-orm/pg-core").PgTableWithColumns<{
576
576
  identity: undefined;
577
577
  generated: undefined;
578
578
  }, {}, {}>;
579
+ linkedInUrl: import("drizzle-orm/pg-core").PgColumn<{
580
+ name: "linkedInUrl";
581
+ tableName: "clients";
582
+ dataType: "string";
583
+ columnType: "PgText";
584
+ data: string;
585
+ driverParam: string;
586
+ notNull: false;
587
+ hasDefault: false;
588
+ isPrimaryKey: false;
589
+ isAutoincrement: false;
590
+ hasRuntimeDefault: false;
591
+ enumValues: [string, ...string[]];
592
+ baseColumn: never;
593
+ identity: undefined;
594
+ generated: undefined;
595
+ }, {}, {}>;
579
596
  referralFee: import("drizzle-orm/pg-core").PgColumn<{
580
597
  name: "referralFee";
581
598
  tableName: "clients";
@@ -593,6 +610,40 @@ export declare const client: import("drizzle-orm/pg-core").PgTableWithColumns<{
593
610
  identity: undefined;
594
611
  generated: undefined;
595
612
  }, {}, {}>;
613
+ employeesMin: import("drizzle-orm/pg-core").PgColumn<{
614
+ name: "employeesMin";
615
+ tableName: "clients";
616
+ dataType: "number";
617
+ columnType: "PgInteger";
618
+ data: number;
619
+ driverParam: string | number;
620
+ notNull: false;
621
+ hasDefault: false;
622
+ isPrimaryKey: false;
623
+ isAutoincrement: false;
624
+ hasRuntimeDefault: false;
625
+ enumValues: undefined;
626
+ baseColumn: never;
627
+ identity: undefined;
628
+ generated: undefined;
629
+ }, {}, {}>;
630
+ employeesMax: import("drizzle-orm/pg-core").PgColumn<{
631
+ name: "employeesMax";
632
+ tableName: "clients";
633
+ dataType: "number";
634
+ columnType: "PgInteger";
635
+ data: number;
636
+ driverParam: string | number;
637
+ notNull: false;
638
+ hasDefault: false;
639
+ isPrimaryKey: false;
640
+ isAutoincrement: false;
641
+ hasRuntimeDefault: false;
642
+ enumValues: undefined;
643
+ baseColumn: never;
644
+ identity: undefined;
645
+ generated: undefined;
646
+ }, {}, {}>;
596
647
  sourcePersonId: import("drizzle-orm/pg-core").PgColumn<{
597
648
  name: "sourcePersonId";
598
649
  tableName: "clients";
@@ -610,6 +661,23 @@ export declare const client: import("drizzle-orm/pg-core").PgTableWithColumns<{
610
661
  identity: undefined;
611
662
  generated: undefined;
612
663
  }, {}, {}>;
664
+ industryId: import("drizzle-orm/pg-core").PgColumn<{
665
+ name: "industryId";
666
+ tableName: "clients";
667
+ dataType: "string";
668
+ columnType: "PgUUID";
669
+ data: string;
670
+ driverParam: string;
671
+ notNull: false;
672
+ hasDefault: false;
673
+ isPrimaryKey: false;
674
+ isAutoincrement: false;
675
+ hasRuntimeDefault: false;
676
+ enumValues: undefined;
677
+ baseColumn: never;
678
+ identity: undefined;
679
+ generated: undefined;
680
+ }, {}, {}>;
613
681
  sourceCampaignId: import("drizzle-orm/pg-core").PgColumn<{
614
682
  name: "sourceCampaignId";
615
683
  tableName: "clients";
@@ -729,6 +797,23 @@ export declare const client: import("drizzle-orm/pg-core").PgTableWithColumns<{
729
797
  identity: undefined;
730
798
  generated: undefined;
731
799
  }, {}, {}>;
800
+ sourceDescription: import("drizzle-orm/pg-core").PgColumn<{
801
+ name: "sourceDescription";
802
+ tableName: "clients";
803
+ dataType: "string";
804
+ columnType: "PgText";
805
+ data: string;
806
+ driverParam: string;
807
+ notNull: false;
808
+ hasDefault: false;
809
+ isPrimaryKey: false;
810
+ isAutoincrement: false;
811
+ hasRuntimeDefault: false;
812
+ enumValues: [string, ...string[]];
813
+ baseColumn: never;
814
+ identity: undefined;
815
+ generated: undefined;
816
+ }, {}, {}>;
732
817
  status: import("drizzle-orm/pg-core").PgColumn<{
733
818
  name: "status";
734
819
  tableName: "clients";
@@ -737,7 +822,7 @@ export declare const client: import("drizzle-orm/pg-core").PgTableWithColumns<{
737
822
  data: "ACTIVE" | "INACTIVE" | "POTENTIAL";
738
823
  driverParam: string;
739
824
  notNull: false;
740
- hasDefault: false;
825
+ hasDefault: true;
741
826
  isPrimaryKey: false;
742
827
  isAutoincrement: false;
743
828
  hasRuntimeDefault: false;
@@ -746,6 +831,74 @@ export declare const client: import("drizzle-orm/pg-core").PgTableWithColumns<{
746
831
  identity: undefined;
747
832
  generated: undefined;
748
833
  }, {}, {}>;
834
+ nextSteps: import("drizzle-orm/pg-core").PgColumn<{
835
+ name: "nextSteps";
836
+ tableName: "clients";
837
+ dataType: "string";
838
+ columnType: "PgText";
839
+ data: string;
840
+ driverParam: string;
841
+ notNull: false;
842
+ hasDefault: false;
843
+ isPrimaryKey: false;
844
+ isAutoincrement: false;
845
+ hasRuntimeDefault: false;
846
+ enumValues: [string, ...string[]];
847
+ baseColumn: never;
848
+ identity: undefined;
849
+ generated: undefined;
850
+ }, {}, {}>;
851
+ isContractSent: import("drizzle-orm/pg-core").PgColumn<{
852
+ name: "isContractSent";
853
+ tableName: "clients";
854
+ dataType: "boolean";
855
+ columnType: "PgBoolean";
856
+ data: boolean;
857
+ driverParam: boolean;
858
+ notNull: false;
859
+ hasDefault: true;
860
+ isPrimaryKey: false;
861
+ isAutoincrement: false;
862
+ hasRuntimeDefault: false;
863
+ enumValues: undefined;
864
+ baseColumn: never;
865
+ identity: undefined;
866
+ generated: undefined;
867
+ }, {}, {}>;
868
+ followUpAt: import("drizzle-orm/pg-core").PgColumn<{
869
+ name: "followUpAt";
870
+ tableName: "clients";
871
+ dataType: "date";
872
+ columnType: "PgTimestamp";
873
+ data: Date;
874
+ driverParam: string;
875
+ notNull: false;
876
+ hasDefault: false;
877
+ isPrimaryKey: false;
878
+ isAutoincrement: false;
879
+ hasRuntimeDefault: false;
880
+ enumValues: undefined;
881
+ baseColumn: never;
882
+ identity: undefined;
883
+ generated: undefined;
884
+ }, {}, {}>;
885
+ initialOutreachAt: import("drizzle-orm/pg-core").PgColumn<{
886
+ name: "initialOutreachAt";
887
+ tableName: "clients";
888
+ dataType: "date";
889
+ columnType: "PgTimestamp";
890
+ data: Date;
891
+ driverParam: string;
892
+ notNull: false;
893
+ hasDefault: false;
894
+ isPrimaryKey: false;
895
+ isAutoincrement: false;
896
+ hasRuntimeDefault: false;
897
+ enumValues: undefined;
898
+ baseColumn: never;
899
+ identity: undefined;
900
+ generated: undefined;
901
+ }, {}, {}>;
749
902
  deletedAt: import("drizzle-orm/pg-core").PgColumn<{
750
903
  name: "deletedAt";
751
904
  tableName: "clients";
@@ -6887,6 +7040,7 @@ export declare const clientRelations: import("drizzle-orm").Relations<"clients",
6887
7040
  referral: import("drizzle-orm").One<"referrals", false>;
6888
7041
  contracts: import("drizzle-orm").Many<"contracts">;
6889
7042
  persons: import("drizzle-orm").Many<"persons">;
7043
+ industry: import("drizzle-orm").One<"industries", false>;
6890
7044
  sourcePerson: import("drizzle-orm").One<"persons", false>;
6891
7045
  sourceCampaign: import("drizzle-orm").One<"campaigns", false>;
6892
7046
  }>;
@@ -6906,6 +7060,7 @@ export declare const experienceRelations: import("drizzle-orm").Relations<"exper
6906
7060
  industry: import("drizzle-orm").One<"industries", false>;
6907
7061
  }>;
6908
7062
  export declare const industryRelations: import("drizzle-orm").Relations<"industries", {
7063
+ clients: import("drizzle-orm").Many<"clients">;
6909
7064
  experiences: import("drizzle-orm").Many<"experiences">;
6910
7065
  positions: import("drizzle-orm").Many<"positions">;
6911
7066
  }>;
@@ -150,11 +150,18 @@ exports.client = (0, pg_core_1.pgTable)('clients', {
150
150
  description: (0, pg_core_1.text)(),
151
151
  isLead: (0, pg_core_1.boolean)().default(false).notNull(),
152
152
  websiteUrl: (0, pg_core_1.text)(),
153
+ linkedInUrl: (0, pg_core_1.text)(),
153
154
  referralFee: (0, pg_core_1.integer)(),
155
+ employeesMin: (0, pg_core_1.integer)(),
156
+ employeesMax: (0, pg_core_1.integer)(),
154
157
  sourcePersonId: (0, pg_core_1.uuid)().references(() => exports.person.id, {
155
158
  onUpdate: 'cascade',
156
159
  onDelete: 'set null'
157
160
  }),
161
+ industryId: (0, pg_core_1.uuid)().references(() => exports.industry.id, {
162
+ onUpdate: 'cascade',
163
+ onDelete: 'set null'
164
+ }),
158
165
  sourceCampaignId: (0, pg_core_1.uuid)().references(() => exports.campaign.id, {
159
166
  onUpdate: 'cascade',
160
167
  onDelete: 'set null'
@@ -165,7 +172,20 @@ exports.client = (0, pg_core_1.pgTable)('clients', {
165
172
  recruitingSearchFee: (0, pg_core_1.integer)(),
166
173
  staffingSearchFee: (0, pg_core_1.integer)(),
167
174
  source: (0, exports.ClientSources)(),
168
- status: (0, exports.ClientStatuses)(),
175
+ sourceDescription: (0, pg_core_1.text)(),
176
+ status: (0, exports.ClientStatuses)().default('ACTIVE'),
177
+ nextSteps: (0, pg_core_1.text)(),
178
+ isContractSent: (0, pg_core_1.boolean)().default(false),
179
+ followUpAt: (0, pg_core_1.timestamp)({
180
+ precision: 3,
181
+ mode: 'date',
182
+ withTimezone: true
183
+ }),
184
+ initialOutreachAt: (0, pg_core_1.timestamp)({
185
+ precision: 3,
186
+ mode: 'date',
187
+ withTimezone: true
188
+ }),
169
189
  deletedAt: (0, pg_core_1.timestamp)({ precision: 3, mode: 'date', withTimezone: true }),
170
190
  createdAt: (0, pg_core_1.timestamp)({ precision: 3, mode: 'date', withTimezone: true })
171
191
  .defaultNow()
@@ -1333,6 +1353,10 @@ exports.clientRelations = (0, drizzle_orm_1.relations)(exports.client, ({ many,
1333
1353
  referral: one(exports.referral),
1334
1354
  contracts: many(exports.contract),
1335
1355
  persons: many(exports.person),
1356
+ industry: one(exports.industry, {
1357
+ fields: [exports.client.industryId],
1358
+ references: [exports.industry.id]
1359
+ }),
1336
1360
  sourcePerson: one(exports.person, {
1337
1361
  fields: [exports.client.sourcePersonId],
1338
1362
  references: [exports.person.id],
@@ -1380,6 +1404,7 @@ exports.experienceRelations = (0, drizzle_orm_1.relations)(exports.experience, (
1380
1404
  })
1381
1405
  }));
1382
1406
  exports.industryRelations = (0, drizzle_orm_1.relations)(exports.industry, ({ many }) => ({
1407
+ clients: many(exports.client),
1383
1408
  experiences: many(exports.experience),
1384
1409
  positions: many(exports.position)
1385
1410
  }));