import { Document, Types } from 'mongoose';
import { IPaginateModel } from '@/shared/interfaces/model.interface';
import { AuditFields } from '@/shared/types/common';

export interface IInvoiceSettingsBase {
  company: Types.ObjectId | string;
  invoicePrefix?: string;
  startNumber?: string;
  termsAndConditions?: string;
}

export interface IInvoiceSettings extends IInvoiceSettingsBase, AuditFields {}

export interface IInvoiceSettingsDoc extends IInvoiceSettings, Document {}

export interface IInvoiceSettingsModel extends IPaginateModel<IInvoiceSettingsDoc> {}

export type NewCreatedInvoiceSettings = IInvoiceSettingsBase &
  Partial<Pick<AuditFields, 'createdBy' | 'updatedBy'>>;

export type UpdateInvoiceSettingsBody = Partial<IInvoiceSettings>;
