"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.acceptDeclineJoinRequestSchema = exports.companySchema = void 0;
const zod_1 = require("zod");
const company_1 = require("../../data/company");
// //----------------------------------------------------------------------------------------
// export const joinCompanySchema = z.object({
//   companyId: z.string({ required_error: "L'entreprise est obligatoire" }),
// });
// export type JoinCompanySchema = z.infer<typeof joinCompanySchema>;
//----------------------------------------------------------------------------------------
exports.companySchema = zod_1.z.object({
    name: zod_1.z
        .string({ required_error: "La raison sociale est obligatoire" })
        .min(1, "La raison sociale est obligatoire")
        .max(250, "250 caractères au maximum"),
    legalForm: zod_1.z.enum(company_1.legalForms, {
        required_error: "La forme juridique est obligatoire",
        invalid_type_error: "La forme juridique est invalide",
    }),
    cityId: zod_1.z
        .string({ required_error: "La ville est obligatoire" })
        .min(1, "La ville est obligatoire"),
    address: zod_1.z
        .string({ required_error: "L'adresse est obligatoire" })
        .min(1, "L'adresse est obligatoire"),
    phoneNumber: zod_1.z.string().max(250, "250 caractères au maximum"),
    fax: zod_1.z.string().max(250, "250 caractères au maximum"),
    email: zod_1.z
        .string({ required_error: "L'adresse mail est obligatoire" })
        .email({ message: "L'adresse mail est invalide" })
        .max(250, "250 caractères au maximum"),
    website: zod_1.z.string().max(250, "250 caractères au maximum"),
    linkedin: zod_1.z.string().max(250, "250 caractères au maximum"),
    facebook: zod_1.z.string().max(250, "250 caractères au maximum"),
    contactFirstName: zod_1.z
        .string({
        required_error: "Le prénom du contact est obligatoire",
    })
        .max(250, "250 caractères au maximum"),
    contactLastName: zod_1.z
        .string({
        required_error: "Le nom du contact est obligatoire",
    })
        .max(250, "250 caractères au maximum"),
    contactEmail: zod_1.z
        .string({ required_error: "L'adresse mail du contact est obligatoire" })
        .email({ message: "L'adresse mail du contact est invalide" })
        .max(250, "250 caractères au maximum")
        .or(zod_1.z.literal("")),
    contactPositionId: zod_1.z
        .string({ required_error: "La fonction est obligatoire" })
        .min(1, "La fonction est obligatoire")
        .optional(),
    contactLinkedin: zod_1.z.string().max(250, "250 caractères au maximum"),
    contactFacebook: zod_1.z.string().max(250, "250 caractères au maximum"),
    businessLicense: zod_1.z.string().max(250, "250 caractères au maximum"),
    numRC: zod_1.z.string().max(250, "250 caractères au maximum"),
    numICE: zod_1.z.string().max(250, "250 caractères au maximum"),
    capital: zod_1.z.number().nullable(),
    turnoverId: zod_1.z
        .string({ required_error: "Le chiffre d'affaires est obligatoire" })
        .min(1, "Le chiffre d'affaires est obligatoire"),
    nEmployeesId: zod_1.z
        .string({ required_error: "L'effectif est obligatoire" })
        .min(1, "L'effectif est obligatoire"),
    activitiesFamilies: zod_1.z.array(zod_1.z.string()),
    activities: zod_1.z.array(zod_1.z.string()),
    importCountries: zod_1.z.array(zod_1.z.enum(company_1.countries)),
    exportCountries: zod_1.z.array(zod_1.z.enum(company_1.countries)),
});
//----------------------------------------------------------------------------------------
exports.acceptDeclineJoinRequestSchema = zod_1.z.object({
    accepted: zod_1.z.boolean(),
});
