import { Order, OrderStatus, AutomationMode, LogLevel, ProvisioningLog, SubscriptionTier } from '@prisma/client' import { customerUser, customerUser2 } from './users' // Payment confirmed order (just created) export const paymentConfirmedOrder: Order = { id: 'order-001', userId: customerUser.id, domain: 'test.letsbe.cloud', tier: SubscriptionTier.HUB_DASHBOARD, status: OrderStatus.PAYMENT_CONFIRMED, automationMode: AutomationMode.MANUAL, serverIp: null, serverPasswordEncrypted: null, sshPort: 22, netcupServerId: null, tools: ['orchestrator', 'sysadmin-agent'], configJson: {}, failureReason: null, provisioningStartedAt: null, completedAt: null, customer: 'Test Customer', companyName: 'Test Company', licenseKey: null, automationPausedAt: null, automationPausedReason: null, source: null, portainerUrl: null, dashboardUrl: null, portainerUsername: null, portainerPasswordEnc: null, credentialsSyncedAt: null, serverReadyAt: null, dnsVerifiedAt: null, createdAt: new Date('2024-01-20T10:00:00Z'), updatedAt: new Date('2024-01-20T10:00:00Z'), } // Server ready order export const serverReadyOrder: Order = { id: 'order-002', userId: customerUser.id, domain: 'ready.letsbe.cloud', tier: SubscriptionTier.ADVANCED, status: OrderStatus.SERVER_READY, automationMode: AutomationMode.MANUAL, serverIp: '192.168.1.100', serverPasswordEncrypted: 'encrypted-password-here', sshPort: 22, netcupServerId: 'netcup-12345', tools: ['orchestrator', 'sysadmin-agent', 'nextcloud'], configJson: {}, failureReason: null, provisioningStartedAt: null, completedAt: null, customer: 'Test Customer', companyName: 'Test Company', licenseKey: null, automationPausedAt: null, automationPausedReason: null, source: null, portainerUrl: null, dashboardUrl: null, portainerUsername: null, portainerPasswordEnc: null, credentialsSyncedAt: null, serverReadyAt: new Date('2024-01-21T12:00:00Z'), dnsVerifiedAt: null, createdAt: new Date('2024-01-21T10:00:00Z'), updatedAt: new Date('2024-01-21T14:00:00Z'), } // Order currently provisioning export const provisioningOrder: Order = { id: 'order-003', userId: customerUser.id, domain: 'provisioning.letsbe.cloud', tier: SubscriptionTier.ADVANCED, status: OrderStatus.PROVISIONING, automationMode: AutomationMode.MANUAL, serverIp: '192.168.1.101', serverPasswordEncrypted: 'encrypted-password-here', sshPort: 22, netcupServerId: 'netcup-12346', tools: ['orchestrator', 'sysadmin-agent', 'nextcloud', 'keycloak'], configJson: {}, failureReason: null, provisioningStartedAt: new Date('2024-01-22T10:00:00Z'), completedAt: null, customer: 'Test Customer', companyName: 'Test Company', licenseKey: 'lb_inst_abc123', automationPausedAt: null, automationPausedReason: null, source: null, portainerUrl: null, dashboardUrl: null, portainerUsername: null, portainerPasswordEnc: null, credentialsSyncedAt: null, serverReadyAt: new Date('2024-01-22T09:30:00Z'), dnsVerifiedAt: null, createdAt: new Date('2024-01-22T09:00:00Z'), updatedAt: new Date('2024-01-22T10:00:00Z'), } // Successfully fulfilled order export const fulfilledOrder: Order = { id: 'order-004', userId: customerUser2.id, domain: 'complete.letsbe.cloud', tier: SubscriptionTier.HUB_DASHBOARD, status: OrderStatus.FULFILLED, automationMode: AutomationMode.MANUAL, serverIp: '192.168.1.102', serverPasswordEncrypted: null, // Cleared after provisioning sshPort: 22022, // Updated after provisioning netcupServerId: 'netcup-12347', tools: ['orchestrator', 'sysadmin-agent'], configJson: {}, failureReason: null, provisioningStartedAt: new Date('2024-01-19T10:00:00Z'), completedAt: new Date('2024-01-19T10:30:00Z'), customer: 'Another Customer', companyName: 'Another Company', licenseKey: 'lb_inst_def456', automationPausedAt: null, automationPausedReason: null, source: null, portainerUrl: 'https://portainer.complete.letsbe.cloud', dashboardUrl: 'https://dashboard.complete.letsbe.cloud', portainerUsername: 'admin-complete', portainerPasswordEnc: 'encrypted-portainer-password', credentialsSyncedAt: new Date('2024-01-19T10:30:00Z'), serverReadyAt: new Date('2024-01-19T09:30:00Z'), dnsVerifiedAt: new Date('2024-01-19T09:45:00Z'), createdAt: new Date('2024-01-19T09:00:00Z'), updatedAt: new Date('2024-01-19T10:30:00Z'), } // Failed order export const failedOrder: Order = { id: 'order-005', userId: customerUser.id, domain: 'failed.letsbe.cloud', tier: SubscriptionTier.ADVANCED, status: OrderStatus.FAILED, automationMode: AutomationMode.MANUAL, serverIp: '192.168.1.103', serverPasswordEncrypted: 'encrypted-password-here', sshPort: 22, netcupServerId: 'netcup-12348', tools: ['orchestrator', 'sysadmin-agent'], configJson: {}, failureReason: 'SSH connection timeout after 3 retries', provisioningStartedAt: new Date('2024-01-18T10:00:00Z'), completedAt: null, customer: 'Test Customer', companyName: 'Test Company', licenseKey: null, automationPausedAt: null, automationPausedReason: null, source: null, portainerUrl: null, dashboardUrl: null, portainerUsername: null, portainerPasswordEnc: null, credentialsSyncedAt: null, serverReadyAt: new Date('2024-01-18T09:30:00Z'), dnsVerifiedAt: null, createdAt: new Date('2024-01-18T09:00:00Z'), updatedAt: new Date('2024-01-18T10:15:00Z'), } // All orders export const allOrders: Order[] = [ paymentConfirmedOrder, serverReadyOrder, provisioningOrder, fulfilledOrder, failedOrder, ] // Sample provisioning logs export const provisioningLogs: ProvisioningLog[] = [ { id: 'log-001', orderId: provisioningOrder.id, level: LogLevel.INFO, message: 'Starting provisioning for provisioning.letsbe.cloud', step: 'init', timestamp: new Date('2024-01-22T10:00:00Z'), }, { id: 'log-002', orderId: provisioningOrder.id, level: LogLevel.INFO, message: 'SSH connection established', step: 'ssh-connect', timestamp: new Date('2024-01-22T10:00:05Z'), }, { id: 'log-003', orderId: provisioningOrder.id, level: LogLevel.INFO, message: 'Running server hardening playbook', step: 'hardening', timestamp: new Date('2024-01-22T10:00:10Z'), }, ] // Factory function for creating custom orders export function createOrder(overrides: Partial = {}): Order { return { id: `order-${Date.now()}`, userId: customerUser.id, domain: `test-${Date.now()}.letsbe.cloud`, tier: SubscriptionTier.HUB_DASHBOARD, status: OrderStatus.PAYMENT_CONFIRMED, automationMode: AutomationMode.MANUAL, serverIp: null, serverPasswordEncrypted: null, sshPort: 22, netcupServerId: null, tools: ['orchestrator', 'sysadmin-agent'], configJson: {}, failureReason: null, provisioningStartedAt: null, completedAt: null, customer: 'Test Customer', companyName: 'Test Company', licenseKey: null, automationPausedAt: null, automationPausedReason: null, source: null, portainerUrl: null, dashboardUrl: null, portainerUsername: null, portainerPasswordEnc: null, credentialsSyncedAt: null, serverReadyAt: null, dnsVerifiedAt: null, createdAt: new Date(), updatedAt: new Date(), ...overrides, } }