import { AptlyInquiryParticipantRole, AptlyInquiryStatus, AptlyInquiryType } from '../enums/index.js'; import { AptlySchemaFile } from '../core/index.js'; import { AptlyCustomerSchema } from './customer.js'; import { AptlyBaseSchema } from './extends.js'; import { AptlyOfferSchema } from './offer.js'; import { AptlyOrderSchema } from './order.js'; import { AptlyProductSchema } from './product.js'; import { AptlyUnitSchema } from './unit.js'; import { AptlyOrganizationSchema } from './organization.js'; import { AptlyProjectSchema } from './project.js'; import { AptlyUserSchema } from './user.js'; export type AptlyInquiry = AptlyInquirySchema; export interface AptlyInquirySchema extends Pick, '_id' | 'archived'> { _type: AptlyInquiryType; title: string; organization: ID | AptlyOrganizationSchema; project: ID | AptlyProjectSchema | null; unit: ID | AptlyUnitSchema | null; customer: ID | AptlyCustomerSchema | null; offer?: ID | AptlyOfferSchema | null; order?: ID | AptlyOrderSchema | null; product?: ID | AptlyProductSchema; variant?: ID; producer?: ID; category?: ID; section?: ID; lastMessageSent: DATE; lastMessage: string; lastParticipant?: ID | AptlyUserSchema; lastMessageID?: string; lastMessageEmail?: string; status: AptlyInquiryStatus; caseNumber?: string; participants: AptlyInquiryParticipantSchema[]; messages: AptlyInquiryMessageSchema[]; references?: string; readAdmin?: boolean; readUnit?: boolean; } export type AptlyInquiryParticipant = AptlyInquiryParticipantSchema; export interface AptlyInquiryParticipantSchema { _id: ID; user?: ID | AptlyUserSchema; email?: string; role: AptlyInquiryParticipantRole; readAll: boolean; } export type AptlyInquiryMessage = AptlyInquiryMessageSchema; export interface AptlyInquiryMessageSchema { _id: ID; message: string; bodyHtml?: string; images?: string[]; files: AptlySchemaFile[]; author?: ID | AptlyUserSchema; customer?: ID | AptlyCustomerSchema | null; email?: string; sentTime: DATE; read: { user: ID; readTime: DATE; }[]; messageId?: string; }