181 lines
3.4 KiB
TypeScript
181 lines
3.4 KiB
TypeScript
// Type definitions for the application
|
|
|
|
export enum ECivility {
|
|
MALE = 'MALE',
|
|
FEMALE = 'FEMALE',
|
|
OTHERS = 'OTHERS'
|
|
}
|
|
|
|
export enum EOfficeStatus {
|
|
ACTIVATED = 'ACTIVATED',
|
|
DESACTIVATED = 'DESACTIVATED'
|
|
}
|
|
|
|
export enum EIdnotRole {
|
|
DIRECTEUR = "Directeur général du CSN",
|
|
NOTAIRE_TITULAIRE = "Notaire titulaire",
|
|
NOTAIRE_ASSOCIE = "Notaire associé",
|
|
NOTAIRE_SALARIE = "Notaire salarié",
|
|
COLLABORATEUR = "Collaborateur",
|
|
SECRETAIRE_GENERAL = "Secrétaire général",
|
|
SUPPLEANT = "Suppléant",
|
|
ADMINISTRATEUR = "Administrateur",
|
|
RESPONSABLE = "Responsable",
|
|
CURATEUR = "Curateur",
|
|
}
|
|
|
|
export enum ETemplates {
|
|
DOCUMENT_ASKED = "DOCUMENT_ASKED",
|
|
DOCUMENT_REFUSED = "DOCUMENT_REFUSED",
|
|
DOCUMENT_RECAP = "DOCUMENT_RECAP",
|
|
SUBSCRIPTION_INVITATION = "SUBSCRIPTION_INVITATION",
|
|
DOCUMENT_REMINDER = "DOCUMENT_REMINDER",
|
|
DOCUMENT_SEND = "DOCUMENT_SEND",
|
|
}
|
|
|
|
export interface Address {
|
|
address: string;
|
|
city: string;
|
|
zip_code: number;
|
|
}
|
|
|
|
export interface Office {
|
|
idNot: string;
|
|
name: string;
|
|
crpcen: string;
|
|
office_status: EOfficeStatus;
|
|
address: Address;
|
|
status: string;
|
|
}
|
|
|
|
export interface Contact {
|
|
first_name: string;
|
|
last_name: string;
|
|
email: string;
|
|
phone_number: string;
|
|
cell_phone_number: string;
|
|
civility: ECivility;
|
|
}
|
|
|
|
export interface Role {
|
|
name: string;
|
|
}
|
|
|
|
export interface OfficeRole {
|
|
name: string;
|
|
}
|
|
|
|
export interface IdNotUser {
|
|
idNot: string;
|
|
office: Office;
|
|
role: Role;
|
|
contact: Contact;
|
|
office_role: OfficeRole | null;
|
|
}
|
|
|
|
export interface AuthToken {
|
|
idNot: string;
|
|
authToken: string;
|
|
idNotUser: IdNotUser;
|
|
pairingId: string | null;
|
|
defaultStorage: string | null;
|
|
createdAt: number;
|
|
expiresAt: number;
|
|
}
|
|
|
|
export interface Session {
|
|
id: string;
|
|
phoneNumber: string;
|
|
userData: any;
|
|
createdAt: number;
|
|
expiresAt: number;
|
|
}
|
|
|
|
export interface VerificationCode {
|
|
code: number;
|
|
timestamp: number;
|
|
attempts: number;
|
|
}
|
|
|
|
export interface SmsConfig {
|
|
OVH_APP_KEY?: string;
|
|
OVH_APP_SECRET?: string;
|
|
OVH_CONSUMER_KEY?: string;
|
|
OVH_SMS_SERVICE_NAME?: string;
|
|
SMS_FACTOR_TOKEN?: string;
|
|
PORT: number;
|
|
}
|
|
|
|
export interface EmailConfig {
|
|
MAILCHIMP_API_KEY?: string;
|
|
MAILCHIMP_KEY?: string;
|
|
MAILCHIMP_LIST_ID?: string;
|
|
PORT: number;
|
|
FROM_EMAIL: string;
|
|
FROM_NAME: string;
|
|
}
|
|
|
|
export interface StripeConfig {
|
|
STRIPE_SECRET_KEY?: string;
|
|
STRIPE_WEBHOOK_SECRET?: string;
|
|
APP_HOST: string;
|
|
}
|
|
|
|
// SignerConfig is now imported from sdk-signer-client as ClientConfig
|
|
|
|
export interface Subscription {
|
|
type: 'STANDARD' | 'UNLIMITED';
|
|
seats?: number;
|
|
}
|
|
|
|
export interface PendingEmail {
|
|
to: string;
|
|
templateName: string;
|
|
subject: string;
|
|
templateVariables: Record<string, string>;
|
|
attempts: number;
|
|
lastAttempt: number;
|
|
}
|
|
|
|
export interface ProcessInfo {
|
|
processId: string;
|
|
processData: any;
|
|
}
|
|
|
|
export interface ValidationRule {
|
|
quorum: number;
|
|
fields: string[];
|
|
min_sig_member: number;
|
|
}
|
|
|
|
export interface ProcessRole {
|
|
members: string[];
|
|
validation_rules: ValidationRule[];
|
|
storages: string[];
|
|
}
|
|
|
|
export interface ProcessRoles {
|
|
owner: ProcessRole;
|
|
apophis: ProcessRole;
|
|
[key: string]: ProcessRole;
|
|
}
|
|
|
|
export interface ProcessData {
|
|
uid: string;
|
|
utype: string;
|
|
[key: string]: any;
|
|
}
|
|
|
|
// Express Request extensions
|
|
declare global {
|
|
namespace Express {
|
|
interface Request {
|
|
session?: Session;
|
|
idNotUser?: {
|
|
idNot: string;
|
|
authToken: string;
|
|
};
|
|
}
|
|
}
|
|
}
|