Upload source code
This commit is contained in:
226
src/client/types.ts
Normal file
226
src/client/types.ts
Normal file
@@ -0,0 +1,226 @@
|
||||
export interface Project {
|
||||
id: string;
|
||||
name: string;
|
||||
client: string;
|
||||
startDate: string | null;
|
||||
endDate: string | null;
|
||||
environment: string | null;
|
||||
technician: string | null;
|
||||
weightKg?: number | null;
|
||||
paintedWeight?: number;
|
||||
createdAt?: string;
|
||||
updatedAt?: string;
|
||||
parts?: Part[];
|
||||
paintingSchemes?: PaintingScheme[];
|
||||
applicationRecords?: ApplicationRecord[];
|
||||
inspections?: Inspection[];
|
||||
createdBy?: string;
|
||||
}
|
||||
|
||||
export interface Part {
|
||||
id: string;
|
||||
projectId: string;
|
||||
description: string;
|
||||
dimensions?: string;
|
||||
weight?: number;
|
||||
type?: string;
|
||||
area?: number;
|
||||
complexity?: number;
|
||||
quantity: number;
|
||||
notes?: string;
|
||||
}
|
||||
|
||||
export interface PaintingScheme {
|
||||
id: string;
|
||||
projectId: string;
|
||||
name: string;
|
||||
type?: string;
|
||||
coat?: string; // Primer, Intermediate, Finish, Stripe Coat
|
||||
solidsVolume?: number;
|
||||
yieldTheoretical?: number;
|
||||
epsMin?: number;
|
||||
epsMax?: number;
|
||||
dilution?: number;
|
||||
manufacturer?: string;
|
||||
color?: string;
|
||||
notes?: string;
|
||||
// Consumption Planning
|
||||
paintConsumption?: number;
|
||||
thinnerConsumption?: number;
|
||||
paintId?: string | TechnicalDataSheet; // ID or Populated
|
||||
thinnerId?: string | TechnicalDataSheet; // ID or Populated
|
||||
colorHex?: string;
|
||||
thinnerSymbol?: string;
|
||||
createdBy?: string;
|
||||
}
|
||||
|
||||
export interface ApplicationRecord {
|
||||
id: string;
|
||||
projectId: string;
|
||||
coatStage: string;
|
||||
pieceDescription?: string;
|
||||
date?: string;
|
||||
operator?: string;
|
||||
realWeight?: number;
|
||||
volumeUsed?: number;
|
||||
areaPainted?: number;
|
||||
wetThicknessAvg?: number;
|
||||
dryThicknessCalc?: number;
|
||||
realYield?: number;
|
||||
method?: string;
|
||||
diluentUsed?: number;
|
||||
notes?: string;
|
||||
items?: {
|
||||
partId: string;
|
||||
quantity: number;
|
||||
}[];
|
||||
createdBy?: string;
|
||||
}
|
||||
|
||||
export interface Inspection {
|
||||
id: string;
|
||||
projectId: string;
|
||||
applicationRecordId?: string; // Link to Lote
|
||||
stockItemId?: string | {
|
||||
_id: string;
|
||||
batchNumber: string;
|
||||
dataSheetId: {
|
||||
name: string;
|
||||
type?: string;
|
||||
manufacturer?: string;
|
||||
};
|
||||
}; // Link to Stock Item (Paint)
|
||||
instrumentId?: string | {
|
||||
_id: string;
|
||||
name: string;
|
||||
serialNumber: string;
|
||||
type: string;
|
||||
}; // Link to Instrument
|
||||
type?: 'painting' | 'surface_treatment';
|
||||
|
||||
// Common
|
||||
date?: string;
|
||||
inspector?: string;
|
||||
partTemperature?: number;
|
||||
weightKg?: number;
|
||||
appearance?: string; // 'approved' | 'rejected' | 'notes'
|
||||
defects?: string;
|
||||
photos?: string[];
|
||||
|
||||
// Painting
|
||||
pieceDescription?: string;
|
||||
epsPoints?: (number | null)[];
|
||||
adhesionTest?: string;
|
||||
|
||||
// Surface Treatment
|
||||
batch?: string;
|
||||
treatmentExecutor?: string;
|
||||
treatmentType?: string;
|
||||
cleaningDegree?: string;
|
||||
roughnessReadings?: (number | null)[];
|
||||
flashRust?: string;
|
||||
temperature?: number;
|
||||
relativeHumidity?: number;
|
||||
period?: 'morning' | 'afternoon' | 'night';
|
||||
createdBy?: string;
|
||||
}
|
||||
|
||||
export interface TechnicalDataSheet {
|
||||
id: string;
|
||||
_id?: string;
|
||||
name: string;
|
||||
manufacturer?: string;
|
||||
type?: string;
|
||||
fileUrl: string;
|
||||
uploadDate: string;
|
||||
|
||||
solidsVolume?: number;
|
||||
density?: number;
|
||||
mixingRatio?: string;
|
||||
yieldTheoretical?: number;
|
||||
wftMin?: number;
|
||||
wftMax?: number;
|
||||
dftMin?: number;
|
||||
dftMax?: number;
|
||||
reducer?: string;
|
||||
mixingRatioWeight?: string;
|
||||
mixingRatioVolume?: string;
|
||||
dftReference?: number;
|
||||
yieldFactor?: number;
|
||||
dilution?: number;
|
||||
notes?: string;
|
||||
manufacturerCode?: string;
|
||||
minStock?: number;
|
||||
typicalApplication?: string;
|
||||
}
|
||||
|
||||
export interface PieceCategory {
|
||||
id: string;
|
||||
name: string;
|
||||
weight: number;
|
||||
area?: number;
|
||||
historicalYield: number;
|
||||
historicalDft: number;
|
||||
efficiency: number;
|
||||
litrosPeso?: number; // Consumo calculado por peso
|
||||
litrosArea?: number; // Consumo calculado por área
|
||||
}
|
||||
|
||||
export interface YieldStudy {
|
||||
id: string;
|
||||
name: string;
|
||||
dataSheetId: string;
|
||||
targetDft: number;
|
||||
dilutionPercent: number;
|
||||
categories: PieceCategory[];
|
||||
createdAt: string;
|
||||
updatedAt: string;
|
||||
|
||||
totalWeight: number;
|
||||
estimatedPaintVolume: number; // Por peso (kg)
|
||||
estimatedReducerVolume: number; // Por peso (kg)
|
||||
estimatedPaintVolumeByArea?: number; // Por área (m²)
|
||||
estimatedReducerVolumeByArea?: number; // Por área (m²)
|
||||
averageComplexity: number;
|
||||
}
|
||||
|
||||
// User Roles System
|
||||
export type UserRole = 'guest' | 'user' | 'admin';
|
||||
|
||||
export interface AppUser {
|
||||
id: string;
|
||||
_id?: string;
|
||||
clerkId: string;
|
||||
email: string;
|
||||
name: string;
|
||||
role: UserRole;
|
||||
isBanned: boolean;
|
||||
createdAt: string;
|
||||
updatedAt: string;
|
||||
organizationId?: string | null;
|
||||
organizationRole?: UserRole | null;
|
||||
}
|
||||
|
||||
|
||||
export interface GeometryType {
|
||||
id: string;
|
||||
_id?: string;
|
||||
name: string;
|
||||
efficiencyLoss?: number;
|
||||
updatedAt?: string;
|
||||
}
|
||||
|
||||
export type NotificationType = 'info' | 'warning' | 'error' | 'success';
|
||||
|
||||
export interface INotification {
|
||||
_id: string;
|
||||
title: string;
|
||||
message: string;
|
||||
type: NotificationType;
|
||||
isRead: boolean;
|
||||
isArchived: boolean;
|
||||
archivedBy: string[];
|
||||
deletedBy: string[];
|
||||
createdAt: string;
|
||||
metadata?: Record<string, unknown>;
|
||||
}
|
||||
Reference in New Issue
Block a user