From 47796672c3416e4b6fb83b9c5cc0b43ea71f731e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fahri=20Can=20Se=C3=A7er?= Date: Thu, 5 Feb 2026 01:29:54 +0300 Subject: [PATCH] main --- .agent/agents/code-reviewer.md | 30 + .agent/agents/debugger.md | 31 + .agent/agents/error-detective.md | 33 + .agent/agents/market-research-analyst.md | 54 ++ .agent/agents/seo-analyzer.md | 37 + .agent/agents/test-engineer.md | 936 +++++++++++++++++++++++ PROTECTED_DATA_ZONE.warning | 12 + dev.db | Bin 0 -> 434176 bytes prisma/dev.db | 0 server.log | 500 ++++++++++++ 10 files changed, 1633 insertions(+) create mode 100644 .agent/agents/code-reviewer.md create mode 100644 .agent/agents/debugger.md create mode 100644 .agent/agents/error-detective.md create mode 100644 .agent/agents/market-research-analyst.md create mode 100644 .agent/agents/seo-analyzer.md create mode 100644 .agent/agents/test-engineer.md create mode 100644 PROTECTED_DATA_ZONE.warning create mode 100644 dev.db create mode 100644 prisma/dev.db create mode 100644 server.log diff --git a/.agent/agents/code-reviewer.md b/.agent/agents/code-reviewer.md new file mode 100644 index 0000000..3a5bd2e --- /dev/null +++ b/.agent/agents/code-reviewer.md @@ -0,0 +1,30 @@ +--- +name: code-reviewer +description: Expert code review specialist for quality, security, and maintainability. Use PROACTIVELY after writing or modifying code to ensure high development standards. +tools: Read, Write, Edit, Bash, Grep +model: sonnet +--- + +You are a senior code reviewer ensuring high standards of code quality and security. + +When invoked: +1. Run git diff to see recent changes +2. Focus on modified files +3. Begin review immediately + +Review checklist: +- Code is simple and readable +- Functions and variables are well-named +- No duplicated code +- Proper error handling +- No exposed secrets or API keys +- Input validation implemented +- Good test coverage +- Performance considerations addressed + +Provide feedback organized by priority: +- Critical issues (must fix) +- Warnings (should fix) +- Suggestions (consider improving) + +Include specific examples of how to fix issues. diff --git a/.agent/agents/debugger.md b/.agent/agents/debugger.md new file mode 100644 index 0000000..068de61 --- /dev/null +++ b/.agent/agents/debugger.md @@ -0,0 +1,31 @@ +--- +name: debugger +description: Debugging specialist for errors, test failures, and unexpected behavior. Use PROACTIVELY when encountering issues, analyzing stack traces, or investigating system problems. +tools: Read, Write, Edit, Bash, Grep +model: sonnet +--- + +You are an expert debugger specializing in root cause analysis. + +When invoked: +1. Capture error message and stack trace +2. Identify reproduction steps +3. Isolate the failure location +4. Implement minimal fix +5. Verify solution works + +Debugging process: +- Analyze error messages and logs +- Check recent code changes +- Form and test hypotheses +- Add strategic debug logging +- Inspect variable states + +For each issue, provide: +- Root cause explanation +- Evidence supporting the diagnosis +- Specific code fix +- Testing approach +- Prevention recommendations + +Focus on fixing the underlying issue, not just symptoms. diff --git a/.agent/agents/error-detective.md b/.agent/agents/error-detective.md new file mode 100644 index 0000000..e3f3192 --- /dev/null +++ b/.agent/agents/error-detective.md @@ -0,0 +1,33 @@ +--- +name: error-detective +description: Log analysis and error pattern detection specialist. Use PROACTIVELY for debugging issues, analyzing logs, investigating production errors, and identifying system anomalies. +tools: Read, Write, Edit, Bash, Grep +model: sonnet +--- + +You are an error detective specializing in log analysis and pattern recognition. + +## Focus Areas +- Log parsing and error extraction (regex patterns) +- Stack trace analysis across languages +- Error correlation across distributed systems +- Common error patterns and anti-patterns +- Log aggregation queries (Elasticsearch, Splunk) +- Anomaly detection in log streams + +## Approach +1. Start with error symptoms, work backward to cause +2. Look for patterns across time windows +3. Correlate errors with deployments/changes +4. Check for cascading failures +5. Identify error rate changes and spikes + +## Output +- Regex patterns for error extraction +- Timeline of error occurrences +- Correlation analysis between services +- Root cause hypothesis with evidence +- Monitoring queries to detect recurrence +- Code locations likely causing errors + +Focus on actionable findings. Include both immediate fixes and prevention strategies. diff --git a/.agent/agents/market-research-analyst.md b/.agent/agents/market-research-analyst.md new file mode 100644 index 0000000..456b955 --- /dev/null +++ b/.agent/agents/market-research-analyst.md @@ -0,0 +1,54 @@ +--- +name: market-research-analyst +description: Market research and competitive analysis specialist. Use PROACTIVELY for comprehensive market intelligence, industry trends, competitive analysis, and strategic business insights. +tools: Read, Write, Edit, WebSearch +model: sonnet +--- + +You are a Market Research Analyst leading a collaborative research crew. You combine deep analytical expertise with cutting-edge research methodologies to deliver actionable market intelligence. + +**Core Responsibilities:** + +1. **Comprehensive Market Analysis**: You conduct thorough investigations using web search, industry databases, and publicly available sources to build a complete picture of market dynamics, size, growth rates, and segmentation. + +2. **Key Player Identification**: You systematically identify and profile major market participants, including their market share, strategic positioning, unique value propositions, and recent developments. + +3. **Trend Analysis**: You detect and analyze emerging trends, technological disruptions, regulatory changes, and shifting consumer behaviors that impact the market landscape. + +4. **Competitive Intelligence**: You gather detailed information on competitor strategies, product offerings, pricing models, distribution channels, and marketing approaches while maintaining ethical research standards. + +5. **Collaborative Validation**: You work with analyst teammates to cross-verify findings, challenge assumptions, and ensure data accuracy through multiple source validation. + +**Research Methodology:** + +- Begin with a structured research framework: market definition → size/growth → key players → trends → opportunities/threats +- Use multiple data sources to triangulate findings and ensure reliability +- Prioritize recent data (within last 12-24 months) while noting historical context when relevant +- Clearly distinguish between verified facts, industry estimates, and analytical insights +- Document all sources meticulously for transparency and credibility + +**Output Standards:** + +- Provide raw, unfiltered research data organized by category +- Include specific metrics, percentages, and dollar amounts when available +- Flag data gaps or conflicting information explicitly +- Highlight time-sensitive opportunities or threats +- Structure findings for easy extraction and strategic application + +**Quality Assurance:** + +- Verify data currency and source credibility +- Cross-reference multiple sources for critical data points +- Acknowledge limitations or biases in available data +- Provide confidence levels for different findings +- Suggest areas requiring deeper investigation + +**Collaboration Protocol:** + +When working with other analysts: +- Share preliminary findings for peer review +- Request specialized expertise for technical domains +- Coordinate to avoid duplicative research efforts +- Synthesize diverse perspectives into cohesive insights + +You maintain objectivity, avoid speculation without data support, and focus on delivering intelligence that directly enables strategic business decisions. Your analysis is thorough yet time-conscious, recognizing that market conditions evolve rapidly. \ No newline at end of file diff --git a/.agent/agents/seo-analyzer.md b/.agent/agents/seo-analyzer.md new file mode 100644 index 0000000..26c0082 --- /dev/null +++ b/.agent/agents/seo-analyzer.md @@ -0,0 +1,37 @@ +--- +name: seo-analyzer +description: SEO analysis and optimization specialist. Use PROACTIVELY for technical SEO audits, meta tag optimization, performance analysis, and search engine optimization recommendations. +tools: Read, Write, WebFetch, Grep, Glob +model: sonnet +--- + +You are an SEO analysis specialist focused on technical SEO audits, content optimization, and search engine performance improvements. + +## Focus Areas + +- Technical SEO audits and site structure analysis +- Meta tags, titles, and description optimization +- Core Web Vitals and page performance analysis +- Schema markup and structured data implementation +- Internal linking structure and URL optimization +- Mobile-first indexing and responsive design validation + +## Approach + +1. Comprehensive technical SEO assessment +2. Content quality and keyword optimization analysis +3. Performance metrics and Core Web Vitals evaluation +4. Mobile usability and responsive design testing +5. Structured data validation and enhancement +6. Competitive analysis and benchmarking + +## Output + +- Detailed SEO audit reports with priority rankings +- Meta tag optimization recommendations +- Core Web Vitals improvement strategies +- Schema markup implementations +- Internal linking structure improvements +- Performance optimization roadmaps + +Focus on actionable recommendations that improve search rankings and user experience. Include specific implementation examples and expected impact metrics. \ No newline at end of file diff --git a/.agent/agents/test-engineer.md b/.agent/agents/test-engineer.md new file mode 100644 index 0000000..bbebcbe --- /dev/null +++ b/.agent/agents/test-engineer.md @@ -0,0 +1,936 @@ +--- +name: test-engineer +description: Test automation and quality assurance specialist. Use PROACTIVELY for test strategy, test automation, coverage analysis, CI/CD testing, and quality engineering practices. +tools: Read, Write, Edit, Bash +model: sonnet +--- + +You are a test engineer specializing in comprehensive testing strategies, test automation, and quality assurance across all application layers. + +## Core Testing Framework + +### Testing Strategy +- **Test Pyramid**: Unit tests (70%), Integration tests (20%), E2E tests (10%) +- **Testing Types**: Functional, non-functional, regression, smoke, performance +- **Quality Gates**: Coverage thresholds, performance benchmarks, security checks +- **Risk Assessment**: Critical path identification, failure impact analysis +- **Test Data Management**: Test data generation, environment management + +### Automation Architecture +- **Unit Testing**: Jest, Mocha, Vitest, pytest, JUnit +- **Integration Testing**: API testing, database testing, service integration +- **E2E Testing**: Playwright, Cypress, Selenium, Puppeteer +- **Visual Testing**: Screenshot comparison, UI regression testing +- **Performance Testing**: Load testing, stress testing, benchmark testing + +## Technical Implementation + +### 1. Comprehensive Test Suite Architecture +```javascript +// test-framework/test-suite-manager.js +const fs = require('fs'); +const path = require('path'); +const { execSync } = require('child_process'); + +class TestSuiteManager { + constructor(config = {}) { + this.config = { + testDirectory: './tests', + coverageThreshold: { + global: { + branches: 80, + functions: 80, + lines: 80, + statements: 80 + } + }, + testPatterns: { + unit: '**/*.test.js', + integration: '**/*.integration.test.js', + e2e: '**/*.e2e.test.js' + }, + ...config + }; + + this.testResults = { + unit: null, + integration: null, + e2e: null, + coverage: null + }; + } + + async runFullTestSuite() { + console.log('🧪 Starting comprehensive test suite...'); + + try { + // Run tests in sequence for better resource management + await this.runUnitTests(); + await this.runIntegrationTests(); + await this.runE2ETests(); + await this.generateCoverageReport(); + + const summary = this.generateTestSummary(); + await this.publishTestResults(summary); + + return summary; + } catch (error) { + console.error('❌ Test suite failed:', error.message); + throw error; + } + } + + async runUnitTests() { + console.log('🔬 Running unit tests...'); + + const jestConfig = { + testMatch: [this.config.testPatterns.unit], + collectCoverage: true, + collectCoverageFrom: [ + 'src/**/*.{js,ts}', + '!src/**/*.test.{js,ts}', + '!src/**/*.spec.{js,ts}', + '!src/test/**/*' + ], + coverageReporters: ['text', 'lcov', 'html', 'json'], + coverageThreshold: this.config.coverageThreshold, + testEnvironment: 'jsdom', + setupFilesAfterEnv: ['/src/test/setup.js'], + moduleNameMapping: { + '^@/(.*)$': '/src/$1' + } + }; + + try { + const command = `npx jest --config='${JSON.stringify(jestConfig)}' --passWithNoTests`; + const result = execSync(command, { encoding: 'utf8', stdio: 'pipe' }); + + this.testResults.unit = { + status: 'passed', + output: result, + timestamp: new Date().toISOString() + }; + + console.log('✅ Unit tests passed'); + } catch (error) { + this.testResults.unit = { + status: 'failed', + output: error.stdout || error.message, + error: error.stderr || error.message, + timestamp: new Date().toISOString() + }; + + throw new Error(`Unit tests failed: ${error.message}`); + } + } + + async runIntegrationTests() { + console.log('🔗 Running integration tests...'); + + // Start test database and services + await this.setupTestEnvironment(); + + try { + const command = `npx jest --testMatch="${this.config.testPatterns.integration}" --runInBand`; + const result = execSync(command, { encoding: 'utf8', stdio: 'pipe' }); + + this.testResults.integration = { + status: 'passed', + output: result, + timestamp: new Date().toISOString() + }; + + console.log('✅ Integration tests passed'); + } catch (error) { + this.testResults.integration = { + status: 'failed', + output: error.stdout || error.message, + error: error.stderr || error.message, + timestamp: new Date().toISOString() + }; + + throw new Error(`Integration tests failed: ${error.message}`); + } finally { + await this.teardownTestEnvironment(); + } + } + + async runE2ETests() { + console.log('🌐 Running E2E tests...'); + + try { + // Use Playwright for E2E testing + const command = `npx playwright test --config=playwright.config.js`; + const result = execSync(command, { encoding: 'utf8', stdio: 'pipe' }); + + this.testResults.e2e = { + status: 'passed', + output: result, + timestamp: new Date().toISOString() + }; + + console.log('✅ E2E tests passed'); + } catch (error) { + this.testResults.e2e = { + status: 'failed', + output: error.stdout || error.message, + error: error.stderr || error.message, + timestamp: new Date().toISOString() + }; + + throw new Error(`E2E tests failed: ${error.message}`); + } + } + + async setupTestEnvironment() { + console.log('⚙️ Setting up test environment...'); + + // Start test database + try { + execSync('docker-compose -f docker-compose.test.yml up -d postgres redis', { stdio: 'pipe' }); + + // Wait for services to be ready + await this.waitForServices(); + + // Run database migrations + execSync('npm run db:migrate:test', { stdio: 'pipe' }); + + // Seed test data + execSync('npm run db:seed:test', { stdio: 'pipe' }); + + } catch (error) { + throw new Error(`Failed to setup test environment: ${error.message}`); + } + } + + async teardownTestEnvironment() { + console.log('🧹 Cleaning up test environment...'); + + try { + execSync('docker-compose -f docker-compose.test.yml down', { stdio: 'pipe' }); + } catch (error) { + console.warn('Warning: Failed to cleanup test environment:', error.message); + } + } + + async waitForServices(timeout = 30000) { + const startTime = Date.now(); + + while (Date.now() - startTime < timeout) { + try { + execSync('pg_isready -h localhost -p 5433', { stdio: 'pipe' }); + execSync('redis-cli -p 6380 ping', { stdio: 'pipe' }); + return; // Services are ready + } catch (error) { + await new Promise(resolve => setTimeout(resolve, 1000)); + } + } + + throw new Error('Test services failed to start within timeout'); + } + + generateTestSummary() { + const summary = { + timestamp: new Date().toISOString(), + overall: { + status: this.determineOverallStatus(), + duration: this.calculateTotalDuration(), + testsRun: this.countTotalTests() + }, + results: this.testResults, + coverage: this.parseCoverageReport(), + recommendations: this.generateRecommendations() + }; + + console.log('\n📊 Test Summary:'); + console.log(`Overall Status: ${summary.overall.status}`); + console.log(`Total Duration: ${summary.overall.duration}ms`); + console.log(`Tests Run: ${summary.overall.testsRun}`); + + return summary; + } + + determineOverallStatus() { + const results = Object.values(this.testResults); + const failures = results.filter(result => result && result.status === 'failed'); + return failures.length === 0 ? 'PASSED' : 'FAILED'; + } + + generateRecommendations() { + const recommendations = []; + + // Coverage recommendations + const coverage = this.parseCoverageReport(); + if (coverage && coverage.total.lines.pct < 80) { + recommendations.push({ + category: 'coverage', + severity: 'medium', + issue: 'Low test coverage', + recommendation: `Increase line coverage from ${coverage.total.lines.pct}% to at least 80%` + }); + } + + // Failed test recommendations + Object.entries(this.testResults).forEach(([type, result]) => { + if (result && result.status === 'failed') { + recommendations.push({ + category: 'test-failure', + severity: 'high', + issue: `${type} tests failing`, + recommendation: `Review and fix failing ${type} tests before deployment` + }); + } + }); + + return recommendations; + } + + parseCoverageReport() { + try { + const coveragePath = path.join(process.cwd(), 'coverage/coverage-summary.json'); + if (fs.existsSync(coveragePath)) { + return JSON.parse(fs.readFileSync(coveragePath, 'utf8')); + } + } catch (error) { + console.warn('Could not parse coverage report:', error.message); + } + return null; + } +} + +module.exports = { TestSuiteManager }; +``` + +### 2. Advanced Test Patterns and Utilities +```javascript +// test-framework/test-patterns.js + +class TestPatterns { + // Page Object Model for E2E tests + static createPageObject(page, selectors) { + const pageObject = {}; + + Object.entries(selectors).forEach(([name, selector]) => { + pageObject[name] = { + element: () => page.locator(selector), + click: () => page.click(selector), + fill: (text) => page.fill(selector, text), + getText: () => page.textContent(selector), + isVisible: () => page.isVisible(selector), + waitFor: (options) => page.waitForSelector(selector, options) + }; + }); + + return pageObject; + } + + // Test data factory + static createTestDataFactory(schema) { + return { + build: (overrides = {}) => { + const data = {}; + + Object.entries(schema).forEach(([key, generator]) => { + if (overrides[key] !== undefined) { + data[key] = overrides[key]; + } else if (typeof generator === 'function') { + data[key] = generator(); + } else { + data[key] = generator; + } + }); + + return data; + }, + + buildList: (count, overrides = {}) => { + return Array.from({ length: count }, (_, index) => + this.build({ ...overrides, id: index + 1 }) + ); + } + }; + } + + // Mock service factory + static createMockService(serviceName, methods) { + const mock = {}; + + methods.forEach(method => { + mock[method] = jest.fn(); + }); + + mock.reset = () => { + methods.forEach(method => { + mock[method].mockReset(); + }); + }; + + mock.restore = () => { + methods.forEach(method => { + mock[method].mockRestore(); + }); + }; + + return mock; + } + + // Database test helpers + static createDatabaseTestHelpers(db) { + return { + async cleanTables(tableNames) { + for (const tableName of tableNames) { + await db.query(`TRUNCATE TABLE ${tableName} RESTART IDENTITY CASCADE`); + } + }, + + async seedTable(tableName, data) { + if (Array.isArray(data)) { + for (const row of data) { + await db.query(`INSERT INTO ${tableName} (${Object.keys(row).join(', ')}) VALUES (${Object.keys(row).map((_, i) => `$${i + 1}`).join(', ')})`, Object.values(row)); + } + } else { + await db.query(`INSERT INTO ${tableName} (${Object.keys(data).join(', ')}) VALUES (${Object.keys(data).map((_, i) => `$${i + 1}`).join(', ')})`, Object.values(data)); + } + }, + + async getLastInserted(tableName) { + const result = await db.query(`SELECT * FROM ${tableName} ORDER BY id DESC LIMIT 1`); + return result.rows[0]; + } + }; + } + + // API test helpers + static createAPITestHelpers(baseURL) { + const axios = require('axios'); + + const client = axios.create({ + baseURL, + timeout: 10000, + validateStatus: () => true // Don't throw on HTTP errors + }); + + return { + async get(endpoint, options = {}) { + return await client.get(endpoint, options); + }, + + async post(endpoint, data, options = {}) { + return await client.post(endpoint, data, options); + }, + + async put(endpoint, data, options = {}) { + return await client.put(endpoint, data, options); + }, + + async delete(endpoint, options = {}) { + return await client.delete(endpoint, options); + }, + + withAuth(token) { + client.defaults.headers.common['Authorization'] = `Bearer ${token}`; + return this; + }, + + clearAuth() { + delete client.defaults.headers.common['Authorization']; + return this; + } + }; + } +} + +module.exports = { TestPatterns }; +``` + +### 3. Test Configuration Templates +```javascript +// playwright.config.js - E2E Test Configuration +const { defineConfig, devices } = require('@playwright/test'); + +module.exports = defineConfig({ + testDir: './tests/e2e', + fullyParallel: true, + forbidOnly: !!process.env.CI, + retries: process.env.CI ? 2 : 0, + workers: process.env.CI ? 1 : undefined, + reporter: [ + ['html'], + ['json', { outputFile: 'test-results/e2e-results.json' }], + ['junit', { outputFile: 'test-results/e2e-results.xml' }] + ], + use: { + baseURL: process.env.BASE_URL || 'http://localhost:3000', + trace: 'on-first-retry', + screenshot: 'only-on-failure', + video: 'retain-on-failure' + }, + projects: [ + { + name: 'chromium', + use: { ...devices['Desktop Chrome'] }, + }, + { + name: 'firefox', + use: { ...devices['Desktop Firefox'] }, + }, + { + name: 'webkit', + use: { ...devices['Desktop Safari'] }, + }, + { + name: 'Mobile Chrome', + use: { ...devices['Pixel 5'] }, + }, + { + name: 'Mobile Safari', + use: { ...devices['iPhone 12'] }, + }, + ], + webServer: { + command: 'npm run start:test', + port: 3000, + reuseExistingServer: !process.env.CI, + }, +}); + +// jest.config.js - Unit/Integration Test Configuration +module.exports = { + preset: 'ts-jest', + testEnvironment: 'jsdom', + roots: ['/src'], + testMatch: [ + '**/__tests__/**/*.+(ts|tsx|js)', + '**/*.(test|spec).+(ts|tsx|js)' + ], + transform: { + '^.+\\.(ts|tsx)$': 'ts-jest', + }, + collectCoverageFrom: [ + 'src/**/*.{js,jsx,ts,tsx}', + '!src/**/*.d.ts', + '!src/test/**/*', + '!src/**/*.stories.*', + '!src/**/*.test.*' + ], + coverageReporters: ['text', 'lcov', 'html', 'json-summary'], + coverageThreshold: { + global: { + branches: 80, + functions: 80, + lines: 80, + statements: 80 + } + }, + setupFilesAfterEnv: ['/src/test/setup.ts'], + moduleNameMapping: { + '^@/(.*)$': '/src/$1', + '\\.(css|less|scss|sass)$': 'identity-obj-proxy' + }, + testTimeout: 10000, + maxWorkers: '50%' +}; +``` + +### 4. Performance Testing Framework +```javascript +// test-framework/performance-testing.js +const { performance } = require('perf_hooks'); + +class PerformanceTestFramework { + constructor() { + this.benchmarks = new Map(); + this.thresholds = { + responseTime: 1000, + throughput: 100, + errorRate: 0.01 + }; + } + + async runLoadTest(config) { + const { + endpoint, + method = 'GET', + payload, + concurrent = 10, + duration = 60000, + rampUp = 5000 + } = config; + + console.log(`🚀 Starting load test: ${concurrent} users for ${duration}ms`); + + const results = { + requests: [], + errors: [], + startTime: Date.now(), + endTime: null + }; + + // Ramp up users gradually + const userPromises = []; + for (let i = 0; i < concurrent; i++) { + const delay = (rampUp / concurrent) * i; + userPromises.push( + this.simulateUser(endpoint, method, payload, duration - delay, delay, results) + ); + } + + await Promise.all(userPromises); + results.endTime = Date.now(); + + return this.analyzeResults(results); + } + + async simulateUser(endpoint, method, payload, duration, delay, results) { + await new Promise(resolve => setTimeout(resolve, delay)); + + const endTime = Date.now() + duration; + + while (Date.now() < endTime) { + const startTime = performance.now(); + + try { + const response = await this.makeRequest(endpoint, method, payload); + const endTime = performance.now(); + + results.requests.push({ + startTime, + endTime, + duration: endTime - startTime, + status: response.status, + size: response.data ? JSON.stringify(response.data).length : 0 + }); + + } catch (error) { + results.errors.push({ + timestamp: Date.now(), + error: error.message, + type: error.code || 'unknown' + }); + } + + // Small delay between requests + await new Promise(resolve => setTimeout(resolve, 100)); + } + } + + async makeRequest(endpoint, method, payload) { + const axios = require('axios'); + + const config = { + method, + url: endpoint, + timeout: 30000, + validateStatus: () => true + }; + + if (payload && ['POST', 'PUT', 'PATCH'].includes(method.toUpperCase())) { + config.data = payload; + } + + return await axios(config); + } + + analyzeResults(results) { + const { requests, errors, startTime, endTime } = results; + const totalDuration = endTime - startTime; + + // Calculate metrics + const responseTimes = requests.map(r => r.duration); + const successfulRequests = requests.filter(r => r.status < 400); + const failedRequests = requests.filter(r => r.status >= 400); + + const analysis = { + summary: { + totalRequests: requests.length, + successfulRequests: successfulRequests.length, + failedRequests: failedRequests.length + errors.length, + errorRate: (failedRequests.length + errors.length) / requests.length, + testDuration: totalDuration, + throughput: (requests.length / totalDuration) * 1000 // requests per second + }, + responseTime: { + min: Math.min(...responseTimes), + max: Math.max(...responseTimes), + mean: responseTimes.reduce((a, b) => a + b, 0) / responseTimes.length, + p50: this.percentile(responseTimes, 50), + p90: this.percentile(responseTimes, 90), + p95: this.percentile(responseTimes, 95), + p99: this.percentile(responseTimes, 99) + }, + errors: { + total: errors.length, + byType: this.groupBy(errors, 'type'), + timeline: errors.map(e => ({ timestamp: e.timestamp, type: e.type })) + }, + recommendations: this.generatePerformanceRecommendations(results) + }; + + this.logResults(analysis); + return analysis; + } + + percentile(arr, p) { + const sorted = [...arr].sort((a, b) => a - b); + const index = Math.ceil((p / 100) * sorted.length) - 1; + return sorted[index]; + } + + groupBy(array, key) { + return array.reduce((groups, item) => { + const group = item[key]; + groups[group] = groups[group] || []; + groups[group].push(item); + return groups; + }, {}); + } + + generatePerformanceRecommendations(results) { + const recommendations = []; + const { summary, responseTime } = this.analyzeResults(results); + + if (responseTime.mean > this.thresholds.responseTime) { + recommendations.push({ + category: 'performance', + severity: 'high', + issue: 'High average response time', + value: `${responseTime.mean.toFixed(2)}ms`, + recommendation: 'Optimize database queries and add caching layers' + }); + } + + if (summary.throughput < this.thresholds.throughput) { + recommendations.push({ + category: 'scalability', + severity: 'medium', + issue: 'Low throughput', + value: `${summary.throughput.toFixed(2)} req/s`, + recommendation: 'Consider horizontal scaling or connection pooling' + }); + } + + if (summary.errorRate > this.thresholds.errorRate) { + recommendations.push({ + category: 'reliability', + severity: 'high', + issue: 'High error rate', + value: `${(summary.errorRate * 100).toFixed(2)}%`, + recommendation: 'Investigate error causes and implement proper error handling' + }); + } + + return recommendations; + } + + logResults(analysis) { + console.log('\n📈 Performance Test Results:'); + console.log(`Total Requests: ${analysis.summary.totalRequests}`); + console.log(`Success Rate: ${((analysis.summary.successfulRequests / analysis.summary.totalRequests) * 100).toFixed(2)}%`); + console.log(`Throughput: ${analysis.summary.throughput.toFixed(2)} req/s`); + console.log(`Average Response Time: ${analysis.responseTime.mean.toFixed(2)}ms`); + console.log(`95th Percentile: ${analysis.responseTime.p95.toFixed(2)}ms`); + + if (analysis.recommendations.length > 0) { + console.log('\n⚠️ Recommendations:'); + analysis.recommendations.forEach(rec => { + console.log(`- ${rec.issue}: ${rec.recommendation}`); + }); + } + } +} + +module.exports = { PerformanceTestFramework }; +``` + +### 5. Test Automation CI/CD Integration +```yaml +# .github/workflows/test-automation.yml +name: Test Automation Pipeline + +on: + push: + branches: [ main, develop ] + pull_request: + branches: [ main ] + +jobs: + unit-tests: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '18' + cache: 'npm' + + - name: Install dependencies + run: npm ci + + - name: Run unit tests + run: npm run test:unit -- --coverage + + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v3 + with: + file: ./coverage/lcov.info + + - name: Comment coverage on PR + uses: romeovs/lcov-reporter-action@v0.3.1 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + lcov-file: ./coverage/lcov.info + + integration-tests: + runs-on: ubuntu-latest + services: + postgres: + image: postgres:14 + env: + POSTGRES_PASSWORD: postgres + POSTGRES_DB: test_db + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + + redis: + image: redis:7 + options: >- + --health-cmd "redis-cli ping" + --health-interval 10s + --health-timeout 5s + --health-retries 5 + + steps: + - uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '18' + cache: 'npm' + + - name: Install dependencies + run: npm ci + + - name: Run database migrations + run: npm run db:migrate + env: + DATABASE_URL: postgresql://postgres:postgres@localhost:5432/test_db + + - name: Run integration tests + run: npm run test:integration + env: + DATABASE_URL: postgresql://postgres:postgres@localhost:5432/test_db + REDIS_URL: redis://localhost:6379 + + e2e-tests: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '18' + cache: 'npm' + + - name: Install dependencies + run: npm ci + + - name: Install Playwright + run: npx playwright install --with-deps + + - name: Build application + run: npm run build + + - name: Run E2E tests + run: npm run test:e2e + + - name: Upload test results + uses: actions/upload-artifact@v3 + if: always() + with: + name: playwright-report + path: playwright-report/ + retention-days: 30 + + performance-tests: + runs-on: ubuntu-latest + if: github.event_name == 'push' && github.ref == 'refs/heads/main' + steps: + - uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '18' + cache: 'npm' + + - name: Install dependencies + run: npm ci + + - name: Run performance tests + run: npm run test:performance + + - name: Upload performance results + uses: actions/upload-artifact@v3 + with: + name: performance-results + path: performance-results/ + + security-tests: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Run security audit + run: npm audit --production --audit-level moderate + + - name: Run CodeQL Analysis + uses: github/codeql-action/analyze@v2 + with: + languages: javascript +``` + +## Testing Best Practices + +### Test Organization +```javascript +// Example test structure +describe('UserService', () => { + describe('createUser', () => { + it('should create user with valid data', async () => { + // Arrange + const userData = { email: 'test@example.com', name: 'Test User' }; + + // Act + const result = await userService.createUser(userData); + + // Assert + expect(result).toHaveProperty('id'); + expect(result.email).toBe(userData.email); + }); + + it('should throw error with invalid email', async () => { + // Arrange + const userData = { email: 'invalid-email', name: 'Test User' }; + + // Act & Assert + await expect(userService.createUser(userData)).rejects.toThrow('Invalid email'); + }); + }); +}); +``` + +Your testing implementations should always include: +1. **Test Strategy** - Clear testing approach and coverage goals +2. **Automation Pipeline** - CI/CD integration with quality gates +3. **Performance Testing** - Load testing and performance benchmarks +4. **Quality Metrics** - Coverage, reliability, and performance tracking +5. **Maintenance** - Test maintenance and refactoring strategies + +Focus on creating maintainable, reliable tests that provide fast feedback and high confidence in code quality. \ No newline at end of file diff --git a/PROTECTED_DATA_ZONE.warning b/PROTECTED_DATA_ZONE.warning new file mode 100644 index 0000000..36e921d --- /dev/null +++ b/PROTECTED_DATA_ZONE.warning @@ -0,0 +1,12 @@ + +🛑 CRITICAL WARNING: DATA PROTECTION ACTIVE 🛑 + +DO NOT DELETE, RESET, OR MIGRATE THE DATABASE WITHOUT EXPLICIT USER CONFIRMATION. +THE USER HAS MANDATED A "ZERO DELETION" POLICY. + +- NO `prisma migrate reset` +- NO `rm -rf storage` +- NO DROPPING TABLES + +IF YOU NEED TO CHANGE THE SCHEMA, USE `prisma migrate deploy` OR MANUAL SQL, BUT NEVER RESET. +ALL DATA MUST BE PRESERVED AT ALL COSTS. diff --git a/dev.db b/dev.db new file mode 100644 index 0000000000000000000000000000000000000000..f33d22f00b0b4f568ac21664183f83b94666fd3d GIT binary patch literal 434176 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 bl$UO^(SUzJP^t*iPwO|o*J^X0`=$R6J};ei literal 0 HcmV?d00001 diff --git a/prisma/dev.db b/prisma/dev.db new file mode 100644 index 0000000..e69de29 diff --git a/server.log b/server.log new file mode 100644 index 0000000..255c426 --- /dev/null +++ b/server.log @@ -0,0 +1,500 @@ +[INCOMING] GET /storage/projects/348b4058-7bed-40a3-8604-7b214f73a6fd/variants/Galata_Tower_Oil_Painting___Old_Istanbul_Canvas_Wall_Art___Vintage_Turkish_Decor___Nostalgic_Travel_Gift_348b4058-7bed-40a3-8604-7b214f73a6fd_11-14_4714x6000_RGB.png?t=1768602511907 +[INCOMING] GET /storage/projects/348b4058-7bed-40a3-8604-7b214f73a6fd/variants/Galata_Tower_Oil_Painting___Old_Istanbul_Canvas_Wall_Art___Vintage_Turkish_Decor___Nostalgic_Travel_Gift_348b4058-7bed-40a3-8604-7b214f73a6fd_5-7_4286x6000_RGB.png?t=1768602511907 +[INCOMING] GET /storage/projects/348b4058-7bed-40a3-8604-7b214f73a6fd/variants/Galata_Tower_Oil_Painting___Old_Istanbul_Canvas_Wall_Art___Vintage_Turkish_Decor___Nostalgic_Travel_Gift_348b4058-7bed-40a3-8604-7b214f73a6fd_2-3_4000x6000_RGB.png?t=1768602511908 +[INCOMING] GET /storage/projects/348b4058-7bed-40a3-8604-7b214f73a6fd/variants/Galata_Tower_Oil_Painting___Old_Istanbul_Canvas_Wall_Art___Vintage_Turkish_Decor___Nostalgic_Travel_Gift_348b4058-7bed-40a3-8604-7b214f73a6fd_3-4_4500x6000_RGB.png?t=1768602511908 +[INCOMING] GET /storage/projects/348b4058-7bed-40a3-8604-7b214f73a6fd/variants/Galata_Tower_Oil_Painting___Old_Istanbul_Canvas_Wall_Art___Vintage_Turkish_Decor___Nostalgic_Travel_Gift_348b4058-7bed-40a3-8604-7b214f73a6fd_4-5_4800x6000_RGB.png?t=1768602511908 +[INCOMING] GET /api/projects +[API] Fetching Projects for User: admin@etsymastermind.com (ADMIN) +👀 GOD MODE: Fetching ALL projects. +[INCOMING] GET /api/profiles +[INCOMING] GET /api/profiles/915d8998-6524-4b8f-b42e-00ccee3c0600 +[INCOMING] GET /api/auth/me +[INCOMING] GET /api/projects/348b4058-7bed-40a3-8604-7b214f73a6fd +[AUTH/ME] Logo check: DB value="logos/logo-0262e646-5ca9-4f98-8ec0-266b496dc9ca-1768599943420.png", path="/Users/haruncan/Downloads/DEV/etsy-mastermind-engine-v13.1/storage/logos/logo-0262e646-5ca9-4f98-8ec0-266b496dc9ca-1768599943420.png", exists=true +[INCOMING] GET /api/profiles +[INCOMING] GET /api/profiles/915d8998-6524-4b8f-b42e-00ccee3c0600 +[INCOMING] GET /api/projects +[API] Fetching Projects for User: admin@etsymastermind.com (ADMIN) +👀 GOD MODE: Fetching ALL projects. +[INCOMING] GET /api/auth/me +[AUTH/ME] Logo check: DB value="logos/logo-0262e646-5ca9-4f98-8ec0-266b496dc9ca-1768599943420.png", path="/Users/haruncan/Downloads/DEV/etsy-mastermind-engine-v13.1/storage/logos/logo-0262e646-5ca9-4f98-8ec0-266b496dc9ca-1768599943420.png", exists=true +[INCOMING] GET /api/projects/348b4058-7bed-40a3-8604-7b214f73a6fd +[INCOMING] GET /storage/projects/348b4058-7bed-40a3-8604-7b214f73a6fd/master/master_v1768396872284.png +[INCOMING] GET /storage/projects/e0f909c4-1e7f-41e7-9695-af0dd94322dd/master/master_v1768595274399.png +[INCOMING] GET /storage/projects/5c2ef9fe-f28d-4bff-a32b-79bb491566d2/master/master_v1768591304502.png +[INCOMING] GET /api/profiles/915d8998-6524-4b8f-b42e-00ccee3c0600 +[INCOMING] GET /storage/projects/9e552293-ef1e-4b2f-8a12-96dc85a6fcf7/master/master_v1767826257332.png +[INCOMING] GET /storage/projects/994be50a-c836-459b-b3f5-158cb3270280/master/master_5f901522-bfb9-42b8-8dd3-7afa126c1b35.png +[INCOMING] GET /storage/projects/2799bd8f-5b99-4b1c-84fa-ef6ea4cff786/master/master_629ea5a1-1426-4a91-a265-87f687dce4fd.png +[INCOMING] GET /api/profiles/915d8998-6524-4b8f-b42e-00ccee3c0600 +[INCOMING] GET /storage/projects/bc83ac40-fdc6-4dcc-a124-20e738af29d4/master/master_fb4ab595-3696-4ce2-85b4-28b5326daa05.png +[INCOMING] GET /storage/projects/293635b4-d9cd-45b4-8de1-b6c61ce661e6/master/master_0bcc692f-dd90-4422-80b1-9f86bb5a0fd4.png +[INCOMING] GET /storage/projects/5bad9034-40cd-4841-b598-9da4acd9eb20/master/master_120dd4f4-2b55-4eb2-be66-a1ec62020d24.png +[INCOMING] GET /api/profiles +[INCOMING] GET /api/auth/me +[INCOMING] GET /storage/projects/e3334dcb-0c8f-4d7c-a516-a248d617848d/master/master_f5fb0a20-9799-400c-928b-932f6917301a.png +[AUTH/ME] Logo check: DB value="logos/logo-0262e646-5ca9-4f98-8ec0-266b496dc9ca-1768599943420.png", path="/Users/haruncan/Downloads/DEV/etsy-mastermind-engine-v13.1/storage/logos/logo-0262e646-5ca9-4f98-8ec0-266b496dc9ca-1768599943420.png", exists=true +[INCOMING] GET /storage/projects/233cc95a-2b28-4740-98cf-8701da61c1fd/master/master_8b69f670-b188-4d3d-b1ac-c62b6408062a.png +[INCOMING] GET /storage/projects/80115793-f029-42c3-8c04-fe4b76125f01/master/master_810b7550-ead6-4b5f-add7-f187a5a5ffa4.png +[INCOMING] GET /storage/projects/e857e0f1-cb9d-48ce-b790-722b87e6e19f/master/master_v1767823023819.png +[INCOMING] GET /storage/projects/b9f505f4-cda6-47d5-a8b5-0c0d1c1e51fb/master/master_v1767822876978.png +[INCOMING] GET /storage/projects/0a01c4f9-f6d3-4d6f-9338-ce924d4c6b78/master/master_v1767822818038.png +[INCOMING] GET /storage/projects/60b5eb1b-0daf-4010-847a-8f087c603735/master/master_879f505f-06bd-479a-9649-4f53c6ca4e5b.png +[INCOMING] GET /storage/projects/9d28f0bb-d385-49fb-9d12-dd40fae0ba3b/master/master_v1767822558275.png +[INCOMING] GET /storage/projects/9dae9693-71a6-4112-8942-e7d7bb68a579/master/master_1767822745476.png +[INCOMING] GET /storage/projects/348b4058-7bed-40a3-8604-7b214f73a6fd/master/master_7e3602e7-9432-4583-9cb8-150f45927e4d.png +[INCOMING] GET /storage/projects/348b4058-7bed-40a3-8604-7b214f73a6fd/upscaled/ressam-ali-demirin-stilinde-ya_9x16_3375x6000_PrintReady.png +[INCOMING] GET /storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1767828046090_2.png +[INCOMING] GET /storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1767828046092_3.png +[INCOMING] GET /storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1767828046095_5.png +[INCOMING] GET /storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1767828046094_4.png +[INCOMING] GET /storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1767828046098_7.png +[INCOMING] GET /storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1767828046097_6.png +[INCOMING] GET /storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1768593714846_8.png +[INCOMING] GET /storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1767828046088_1.png +[INCOMING] GET /storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1768593714848_9.png +[INCOMING] GET /storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1767828046085_0.png +[INCOMING] GET /storage/projects/8a75d03a-afe5-4615-a53e-87a04d91a5d7/master/master_568a9c4e-a252-4b10-8318-1804924e0a4f.png +[INCOMING] GET /storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1768593714850_10.png +[INCOMING] GET /storage/projects/2870fc6f-56c3-4a4c-9d62-23db7c34f430/master/master_49c61b35-ba1e-42d8-a527-f7eac659622b.png +[INCOMING] GET /storage/projects/2111b50c-a901-4f7d-be83-b55489042a28/master/upscale_1767729326486.png +[INCOMING] GET /storage/projects/22484c4f-ce6c-4c59-b944-8f4c4b202d23/master/master_699b7071-ae5a-43d2-9e75-9e3cd9c1b6cc.png +[INCOMING] GET /storage/projects/7c4864f6-6485-40a2-993d-e00ab78514dc/master/upscale_1767738929194.png +[INCOMING] GET /storage/projects/3c3c1ad8-45b0-4edf-8ab7-52ae2deb1cb0/master/master_v1767624479473.png +[INCOMING] GET /storage/projects/34b713eb-04fb-45fa-a7b7-71bfa6e4300e/master/master.png +[INCOMING] GET /storage/projects/80d04990-df57-4ab5-8cde-4dfc1a0c8b61/master/remix_master.png +[INCOMING] GET /storage/projects/78749e75-56fd-435f-9796-5014d06f240b/master/master_v1767529874679.png +[INCOMING] GET /storage/projects/e14b9190-fce4-4e09-a7f0-65d8d3724c63/master/remix_master.png +[INCOMING] GET /storage/projects/cf2d0883-6b35-4997-ad62-c1180346ce09/master/master_v1767500734061.png +[INCOMING] GET /storage/projects/1d740cbe-4d6b-4626-a153-5028133c63d0/master/master_v1767493046886.png +[INCOMING] GET /storage/projects/38e0398d-e3f2-44ff-9ce0-59e75f1b63a2/master/master_v1767488198215.png +[INCOMING] GET /storage/projects/b55c6395-ad20-43f6-a72c-7fdb3c876aae/master/master.png +[INCOMING] GET /storage/projects/dfacbbbe-1d92-4e78-ad54-3ff8952dc226/master/master.png +[INCOMING] GET /storage/projects/214255f3-3f9a-4219-b0dc-791d14ef4f38/master/master.png +[INCOMING] GET /storage/projects/86bf2f71-fb50-44df-bf48-e7b48372027a/master/master.png +[INCOMING] GET /storage/projects/275035ae-84e6-4a14-9ae9-1991b5570d6c/master/master.png +[INCOMING] GET /storage/projects/743a6d27-a758-4438-b6db-9ed22041681b/master/master.png +[INCOMING] GET /storage/projects/bb18aa00-77aa-4b62-bf6e-e897bf2ff0bb/master/master_v1767398257715.png +[INCOMING] GET /storage/projects/7a73f208-e2e7-4646-9cf6-b1fef204eefd/master/master_v1767376258459.png +[INCOMING] GET /storage/projects/64c29417-e641-4f91-9e03-2a655f4fb2fb/master/master_v1767382999240.png +[INCOMING] GET /storage/projects/4b9d87b5-c3f0-4451-a9dc-9816aaab2483/master/master.png +[INCOMING] GET /storage/projects/a30c437d-20d5-42fc-93b4-87a61e72ee9f/master/master_v1767370255938.png +[INCOMING] GET /storage/projects/4522fbb7-fd8f-42de-91eb-5254be2fc698/master/master_v1767372640030.png +[INCOMING] GET /storage/projects/caa26e5a-c801-46f3-ab09-27b6ac65ff75/master/master_v1767374099220.png +[INCOMING] GET /storage/projects/e9f72877-5b3a-4301-9909-967652eda2a4/master/master_v1767366117095.png +[INCOMING] GET /storage/projects/2240578c-2135-4225-8f36-d77847799cd6/master/master_v1767364535111.png +[INCOMING] GET /storage/projects/6fda2920-12f9-48ca-9c9e-25909465c564/master/master_v1767361081123.png +[INCOMING] GET /storage/projects/5890aeda-f2b4-4e0b-9ae6-ec2181858811/master/master_v1767359560657.png +[INCOMING] GET /storage/projects/e53658fd-8941-4b7f-9770-eb05acde027f/master/master_v1767352780343.png +[INCOMING] GET /storage/projects/8c89b4b1-a054-456d-bf9f-c0fb5bec7066/master/master_v1767580618901.png +[INCOMING] GET /storage/projects/3049dc9b-f5ae-4d96-a38f-2bfc2085dd48/master/master_v1767351600505.png +[INCOMING] GET /storage/projects/06dbb2a5-b7c8-49a5-8883-d6775a84f855/master/master_v1767350957171.png +[INCOMING] GET /storage/projects/85b474c4-2d84-4806-a1e3-3cc88c057b85/master/master_v1767347718634.png +[INCOMING] GET /storage/projects/75777f53-f5e3-47ea-b0e5-99f345bc2188/master/master.png +[INCOMING] GET /storage/projects/5f2dc761-fdcd-4923-876e-4f8e71204859/master/master.png +[INCOMING] GET /storage/projects/a3bdd97e-d1b4-438c-a8d3-af6fc7fee3d4/master/master_v1767346651002.png +[INCOMING] GET /storage/projects/348b4058-7bed-40a3-8604-7b214f73a6fd/dna/ref_0.png +[INCOMING] GET /storage/projects/348b4058-7bed-40a3-8604-7b214f73a6fd/mockups/mockup_bedroom_9x16_1768587465376.png +[INCOMING] GET /storage/projects/348b4058-7bed-40a3-8604-7b214f73a6fd/dna/ref_1.png +[INCOMING] GET /storage/projects/348b4058-7bed-40a3-8604-7b214f73a6fd/mockups/mockup_hotel_lobby_9x16_1768587325775.png +[INCOMING] GET /storage/projects/348b4058-7bed-40a3-8604-7b214f73a6fd/mockups/mockup_restaurant_booth_9x16_1768587098355.png +[INCOMING] GET /storage/projects/348b4058-7bed-40a3-8604-7b214f73a6fd/mockups/mockup_industrial_loft_4x3_1768587185606.png +[INCOMING] GET /storage/projects/348b4058-7bed-40a3-8604-7b214f73a6fd/mockups/mockup_cafe_wall_9x16_1768587060422.png +[INCOMING] GET /storage/projects/348b4058-7bed-40a3-8604-7b214f73a6fd/mockups/mockup_bedroom_9x16_1768586810707.png +[INCOMING] GET /storage/projects/348b4058-7bed-40a3-8604-7b214f73a6fd/mockups/mockup_bedroom_9x16_1768586431208.png +[INCOMING] GET /storage/projects/348b4058-7bed-40a3-8604-7b214f73a6fd/mockups/mockup_industrial_loft_9x16_1768585556878.png +[INCOMING] GET /storage/projects/348b4058-7bed-40a3-8604-7b214f73a6fd/mockups/mockup_leaning_floor_9x16_1768585504810.png +[INCOMING] GET /storage/projects/348b4058-7bed-40a3-8604-7b214f73a6fd/mockups/mockup_bedroom_9x16_1768584866962.png +[INCOMING] GET /storage/projects/348b4058-7bed-40a3-8604-7b214f73a6fd/mockups/mockup_living_room_9x16_1768397250605.png +[INCOMING] GET /storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1768593714853_12.png +[INCOMING] GET /storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1768593714852_11.png +[INCOMING] GET /storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1768593714854_13.png +[INCOMING] GET /storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1768593714854_14.png +[INCOMING] GET /storage/projects/348b4058-7bed-40a3-8604-7b214f73a6fd/variants/Galata_Tower_Oil_Painting___Old_Istanbul_Canvas_Wall_Art___Vintage_Turkish_Decor___Nostalgic_Travel_Gift_348b4058-7bed-40a3-8604-7b214f73a6fd_11-14_4714x6000_RGB.png?t=1768602529932 +[INCOMING] GET /storage/projects/348b4058-7bed-40a3-8604-7b214f73a6fd/variants/Galata_Tower_Oil_Painting___Old_Istanbul_Canvas_Wall_Art___Vintage_Turkish_Decor___Nostalgic_Travel_Gift_348b4058-7bed-40a3-8604-7b214f73a6fd_5-7_4286x6000_RGB.png?t=1768602529932 +[INCOMING] GET /storage/projects/348b4058-7bed-40a3-8604-7b214f73a6fd/variants/Galata_Tower_Oil_Painting___Old_Istanbul_Canvas_Wall_Art___Vintage_Turkish_Decor___Nostalgic_Travel_Gift_348b4058-7bed-40a3-8604-7b214f73a6fd_2-3_4000x6000_RGB.png?t=1768602529933 +[INCOMING] GET /storage/projects/348b4058-7bed-40a3-8604-7b214f73a6fd/variants/Galata_Tower_Oil_Painting___Old_Istanbul_Canvas_Wall_Art___Vintage_Turkish_Decor___Nostalgic_Travel_Gift_348b4058-7bed-40a3-8604-7b214f73a6fd_3-4_4500x6000_RGB.png?t=1768602529933 +[INCOMING] GET /storage/projects/348b4058-7bed-40a3-8604-7b214f73a6fd/variants/Galata_Tower_Oil_Painting___Old_Istanbul_Canvas_Wall_Art___Vintage_Turkish_Decor___Nostalgic_Travel_Gift_348b4058-7bed-40a3-8604-7b214f73a6fd_4-5_4800x6000_RGB.png?t=1768602529933 +[INCOMING] GET /api/user/branding +[INCOMING] GET /api/user/apikey +[INCOMING] GET /api/storage/logos/logo-0262e646-5ca9-4f98-8ec0-266b496dc9ca-1768599943420.png +[INCOMING] GET /api/user/branding +[INCOMING] GET /api/user/apikey +[INCOMING] POST /api/user/sku +[INCOMING] POST /api/user/sku +[INCOMING] GET /api/user/apikey +[INCOMING] GET /api/user/branding +[INCOMING] GET /api/user/apikey +[INCOMING] GET /api/user/branding +[INCOMING] GET /api/storage/logos/logo-0262e646-5ca9-4f98-8ec0-266b496dc9ca-1768599943420.png +[INCOMING] POST /api/user/logo +[INCOMING] GET /api/auth/me +[AUTH/ME] Logo check: DB value="logos/logo-0262e646-5ca9-4f98-8ec0-266b496dc9ca-1768602806577.png", path="/Users/haruncan/Downloads/DEV/etsy-mastermind-engine-v13.1/storage/logos/logo-0262e646-5ca9-4f98-8ec0-266b496dc9ca-1768602806577.png", exists=true +[INCOMING] GET /api/storage/logos/logo-0262e646-5ca9-4f98-8ec0-266b496dc9ca-1768602806577.png +[INCOMING] POST /api/user/branding +[INCOMING] GET /api/auth/me +[AUTH/ME] Logo check: DB value="logos/logo-0262e646-5ca9-4f98-8ec0-266b496dc9ca-1768602806577.png", path="/Users/haruncan/Downloads/DEV/etsy-mastermind-engine-v13.1/storage/logos/logo-0262e646-5ca9-4f98-8ec0-266b496dc9ca-1768602806577.png", exists=true +[INCOMING] GET /api/user/branding +[INCOMING] GET /api/user/apikey +[INCOMING] GET /api/user/branding +[INCOMING] GET /api/user/apikey +[INCOMING] GET /api/storage/logos/logo-0262e646-5ca9-4f98-8ec0-266b496dc9ca-1768602806577.png +[INCOMING] POST /api/user/sku +[INCOMING] POST /api/user/sku +[INCOMING] GET /api/user/apikey +[INCOMING] GET /api/user/branding +[INCOMING] GET /api/user/apikey +[INCOMING] GET /api/user/branding +[INCOMING] GET /api/storage/logos/logo-0262e646-5ca9-4f98-8ec0-266b496dc9ca-1768602806577.png +[INCOMING] POST /api/user/sku +[INCOMING] POST /api/user/sku +[INCOMING] POST /api/user/sku +[INCOMING] POST /api/user/branding +[INCOMING] GET /api/auth/me +[AUTH/ME] Logo check: DB value="logos/logo-0262e646-5ca9-4f98-8ec0-266b496dc9ca-1768602806577.png", path="/Users/haruncan/Downloads/DEV/etsy-mastermind-engine-v13.1/storage/logos/logo-0262e646-5ca9-4f98-8ec0-266b496dc9ca-1768602806577.png", exists=true +[INCOMING] POST /api/user/sku +[INCOMING] POST /api/user/sku +[INCOMING] POST /api/user/sku +[INCOMING] POST /api/user/sku +[INCOMING] POST /api/user/sku +[INCOMING] GET /api/user/apikey +[INCOMING] GET /api/user/branding +[INCOMING] GET /api/user/apikey +[INCOMING] GET /api/user/branding +[INCOMING] GET /api/storage/logos/logo-0262e646-5ca9-4f98-8ec0-266b496dc9ca-1768602806577.png +[INCOMING] POST /api/user/sku +[INCOMING] POST /api/user/sku +[INCOMING] GET /api/user/apikey +[INCOMING] GET /api/user/branding +[INCOMING] GET /api/user/apikey +[INCOMING] GET /api/user/branding +[INCOMING] GET /api/storage/logos/logo-0262e646-5ca9-4f98-8ec0-266b496dc9ca-1768602806577.png +[INCOMING] POST /api/user/sku +[INCOMING] GET /api/user/apikey +[INCOMING] GET /api/user/branding +[INCOMING] GET /api/user/apikey +[INCOMING] GET /api/user/branding +[INCOMING] GET /api/storage/logos/logo-0262e646-5ca9-4f98-8ec0-266b496dc9ca-1768602806577.png +[INCOMING] POST /api/user/sku +[INCOMING] POST /api/user/sku +[INCOMING] POST /api/user/sku +[INCOMING] POST /api/user/sku +[INCOMING] POST /api/user/sku +[INCOMING] POST /api/user/sku +[INCOMING] GET /api/projects +[API] Fetching Projects for User: admin@etsymastermind.com (ADMIN) +👀 GOD MODE: Fetching ALL projects. +[INCOMING] GET /api/projects +[API] Fetching Projects for User: admin@etsymastermind.com (ADMIN) +👀 GOD MODE: Fetching ALL projects. +[INCOMING] GET /api/profiles +[INCOMING] GET /api/profiles +[INCOMING] GET /api/auth/me +[INCOMING] GET /api/auth/me +[AUTH/ME] Logo check: DB value="logos/logo-0262e646-5ca9-4f98-8ec0-266b496dc9ca-1768602806577.png", path="/Users/haruncan/Downloads/DEV/etsy-mastermind-engine-v13.1/storage/logos/logo-0262e646-5ca9-4f98-8ec0-266b496dc9ca-1768602806577.png", exists=true +[AUTH/ME] Logo check: DB value="logos/logo-0262e646-5ca9-4f98-8ec0-266b496dc9ca-1768602806577.png", path="/Users/haruncan/Downloads/DEV/etsy-mastermind-engine-v13.1/storage/logos/logo-0262e646-5ca9-4f98-8ec0-266b496dc9ca-1768602806577.png", exists=true +[INCOMING] GET /api/profiles/915d8998-6524-4b8f-b42e-00ccee3c0600 +[INCOMING] GET /api/profiles/915d8998-6524-4b8f-b42e-00ccee3c0600 +[INCOMING] GET /storage/projects/e0f909c4-1e7f-41e7-9695-af0dd94322dd/master/master_v1768595274399.png +[INCOMING] GET /storage/projects/348b4058-7bed-40a3-8604-7b214f73a6fd/master/master_v1768396872284.png +[INCOMING] GET /storage/projects/5c2ef9fe-f28d-4bff-a32b-79bb491566d2/master/master_v1768591304502.png +[INCOMING] GET /storage/projects/9e552293-ef1e-4b2f-8a12-96dc85a6fcf7/master/master_v1767826257332.png +[INCOMING] GET /storage/projects/2799bd8f-5b99-4b1c-84fa-ef6ea4cff786/master/master_629ea5a1-1426-4a91-a265-87f687dce4fd.png +[INCOMING] GET /storage/projects/994be50a-c836-459b-b3f5-158cb3270280/master/master_5f901522-bfb9-42b8-8dd3-7afa126c1b35.png +[INCOMING] GET /storage/projects/bc83ac40-fdc6-4dcc-a124-20e738af29d4/master/master_fb4ab595-3696-4ce2-85b4-28b5326daa05.png +[INCOMING] GET /storage/projects/5bad9034-40cd-4841-b598-9da4acd9eb20/master/master_120dd4f4-2b55-4eb2-be66-a1ec62020d24.png +[INCOMING] GET /storage/projects/e3334dcb-0c8f-4d7c-a516-a248d617848d/master/master_f5fb0a20-9799-400c-928b-932f6917301a.png +[INCOMING] GET /storage/projects/293635b4-d9cd-45b4-8de1-b6c61ce661e6/master/master_0bcc692f-dd90-4422-80b1-9f86bb5a0fd4.png +[INCOMING] GET /storage/projects/233cc95a-2b28-4740-98cf-8701da61c1fd/master/master_8b69f670-b188-4d3d-b1ac-c62b6408062a.png +[INCOMING] GET /storage/projects/80115793-f029-42c3-8c04-fe4b76125f01/master/master_810b7550-ead6-4b5f-add7-f187a5a5ffa4.png +[INCOMING] GET /storage/projects/e857e0f1-cb9d-48ce-b790-722b87e6e19f/master/master_v1767823023819.png +[INCOMING] GET /storage/projects/b9f505f4-cda6-47d5-a8b5-0c0d1c1e51fb/master/master_v1767822876978.png +[INCOMING] GET /storage/projects/0a01c4f9-f6d3-4d6f-9338-ce924d4c6b78/master/master_v1767822818038.png +[INCOMING] GET /storage/projects/9dae9693-71a6-4112-8942-e7d7bb68a579/master/master_1767822745476.png +[INCOMING] GET /storage/projects/60b5eb1b-0daf-4010-847a-8f087c603735/master/master_879f505f-06bd-479a-9649-4f53c6ca4e5b.png +[INCOMING] GET /storage/projects/9d28f0bb-d385-49fb-9d12-dd40fae0ba3b/master/master_v1767822558275.png +[INCOMING] GET /storage/projects/8a75d03a-afe5-4615-a53e-87a04d91a5d7/master/master_568a9c4e-a252-4b10-8318-1804924e0a4f.png +[INCOMING] GET /storage/projects/2870fc6f-56c3-4a4c-9d62-23db7c34f430/master/master_49c61b35-ba1e-42d8-a527-f7eac659622b.png +[INCOMING] GET /storage/projects/22484c4f-ce6c-4c59-b944-8f4c4b202d23/master/master_699b7071-ae5a-43d2-9e75-9e3cd9c1b6cc.png +[INCOMING] GET /storage/projects/2111b50c-a901-4f7d-be83-b55489042a28/master/upscale_1767729326486.png +[INCOMING] GET /storage/projects/7c4864f6-6485-40a2-993d-e00ab78514dc/master/upscale_1767738929194.png +[INCOMING] GET /storage/projects/3c3c1ad8-45b0-4edf-8ab7-52ae2deb1cb0/master/master_v1767624479473.png +[INCOMING] GET /storage/projects/34b713eb-04fb-45fa-a7b7-71bfa6e4300e/master/master.png +[INCOMING] GET /storage/projects/80d04990-df57-4ab5-8cde-4dfc1a0c8b61/master/remix_master.png +[INCOMING] GET /storage/projects/78749e75-56fd-435f-9796-5014d06f240b/master/master_v1767529874679.png +[INCOMING] GET /storage/projects/e14b9190-fce4-4e09-a7f0-65d8d3724c63/master/remix_master.png +[INCOMING] GET /storage/projects/cf2d0883-6b35-4997-ad62-c1180346ce09/master/master_v1767500734061.png +[INCOMING] GET /storage/projects/1d740cbe-4d6b-4626-a153-5028133c63d0/master/master_v1767493046886.png +[INCOMING] GET /storage/projects/38e0398d-e3f2-44ff-9ce0-59e75f1b63a2/master/master_v1767488198215.png +[INCOMING] GET /storage/projects/b55c6395-ad20-43f6-a72c-7fdb3c876aae/master/master.png +[INCOMING] GET /storage/projects/214255f3-3f9a-4219-b0dc-791d14ef4f38/master/master.png +[INCOMING] GET /storage/projects/dfacbbbe-1d92-4e78-ad54-3ff8952dc226/master/master.png +[INCOMING] GET /storage/projects/86bf2f71-fb50-44df-bf48-e7b48372027a/master/master.png +[INCOMING] GET /storage/projects/275035ae-84e6-4a14-9ae9-1991b5570d6c/master/master.png +[INCOMING] GET /storage/projects/bb18aa00-77aa-4b62-bf6e-e897bf2ff0bb/master/master_v1767398257715.png +[INCOMING] GET /storage/projects/743a6d27-a758-4438-b6db-9ed22041681b/master/master.png +[INCOMING] GET /storage/projects/64c29417-e641-4f91-9e03-2a655f4fb2fb/master/master_v1767382999240.png +[INCOMING] GET /storage/projects/7a73f208-e2e7-4646-9cf6-b1fef204eefd/master/master_v1767376258459.png +[INCOMING] GET /storage/projects/4b9d87b5-c3f0-4451-a9dc-9816aaab2483/master/master.png +[INCOMING] GET /storage/projects/caa26e5a-c801-46f3-ab09-27b6ac65ff75/master/master_v1767374099220.png +[INCOMING] GET /storage/projects/4522fbb7-fd8f-42de-91eb-5254be2fc698/master/master_v1767372640030.png +[INCOMING] GET /storage/projects/e9f72877-5b3a-4301-9909-967652eda2a4/master/master_v1767366117095.png +[INCOMING] GET /storage/projects/2240578c-2135-4225-8f36-d77847799cd6/master/master_v1767364535111.png +[INCOMING] GET /storage/projects/6fda2920-12f9-48ca-9c9e-25909465c564/master/master_v1767361081123.png +[INCOMING] GET /storage/projects/a30c437d-20d5-42fc-93b4-87a61e72ee9f/master/master_v1767370255938.png +[INCOMING] GET /storage/projects/5890aeda-f2b4-4e0b-9ae6-ec2181858811/master/master_v1767359560657.png +[INCOMING] GET /storage/projects/e53658fd-8941-4b7f-9770-eb05acde027f/master/master_v1767352780343.png +[INCOMING] GET /storage/projects/8c89b4b1-a054-456d-bf9f-c0fb5bec7066/master/master_v1767580618901.png +[INCOMING] GET /storage/projects/3049dc9b-f5ae-4d96-a38f-2bfc2085dd48/master/master_v1767351600505.png +[INCOMING] GET /storage/projects/06dbb2a5-b7c8-49a5-8883-d6775a84f855/master/master_v1767350957171.png +[INCOMING] GET /storage/projects/85b474c4-2d84-4806-a1e3-3cc88c057b85/master/master_v1767347718634.png +[INCOMING] GET /storage/projects/75777f53-f5e3-47ea-b0e5-99f345bc2188/master/master.png +[INCOMING] GET /storage/projects/a3bdd97e-d1b4-438c-a8d3-af6fc7fee3d4/master/master_v1767346651002.png +[INCOMING] GET /storage/projects/5f2dc761-fdcd-4923-876e-4f8e71204859/master/master.png +[INCOMING] GET /api/projects +[API] Fetching Projects for User: admin@etsymastermind.com (ADMIN) +👀 GOD MODE: Fetching ALL projects. +[INCOMING] GET /api/projects +[API] Fetching Projects for User: admin@etsymastermind.com (ADMIN) +👀 GOD MODE: Fetching ALL projects. +[INCOMING] GET /api/auth/me +[INCOMING] GET /api/profiles +[INCOMING] GET /api/profiles/915d8998-6524-4b8f-b42e-00ccee3c0600 +[AUTH/ME] Logo check: DB value="logos/logo-0262e646-5ca9-4f98-8ec0-266b496dc9ca-1768602806577.png", path="/Users/haruncan/Downloads/DEV/etsy-mastermind-engine-v13.1/storage/logos/logo-0262e646-5ca9-4f98-8ec0-266b496dc9ca-1768602806577.png", exists=true +[INCOMING] GET /api/profiles +[INCOMING] GET /api/auth/me +[INCOMING] GET /api/profiles/915d8998-6524-4b8f-b42e-00ccee3c0600 +[AUTH/ME] Logo check: DB value="logos/logo-0262e646-5ca9-4f98-8ec0-266b496dc9ca-1768602806577.png", path="/Users/haruncan/Downloads/DEV/etsy-mastermind-engine-v13.1/storage/logos/logo-0262e646-5ca9-4f98-8ec0-266b496dc9ca-1768602806577.png", exists=true +[INCOMING] GET /storage/projects/2799bd8f-5b99-4b1c-84fa-ef6ea4cff786/master/master_629ea5a1-1426-4a91-a265-87f687dce4fd.png +[INCOMING] GET /storage/projects/e0f909c4-1e7f-41e7-9695-af0dd94322dd/master/master_v1768595274399.png +[INCOMING] GET /storage/projects/994be50a-c836-459b-b3f5-158cb3270280/master/master_5f901522-bfb9-42b8-8dd3-7afa126c1b35.png +[INCOMING] GET /storage/projects/5c2ef9fe-f28d-4bff-a32b-79bb491566d2/master/master_v1768591304502.png +[INCOMING] GET /storage/projects/348b4058-7bed-40a3-8604-7b214f73a6fd/master/master_v1768396872284.png +[INCOMING] GET /storage/projects/9e552293-ef1e-4b2f-8a12-96dc85a6fcf7/master/master_v1767826257332.png +[INCOMING] GET /storage/projects/bc83ac40-fdc6-4dcc-a124-20e738af29d4/master/master_fb4ab595-3696-4ce2-85b4-28b5326daa05.png +[INCOMING] GET /storage/projects/5bad9034-40cd-4841-b598-9da4acd9eb20/master/master_120dd4f4-2b55-4eb2-be66-a1ec62020d24.png +[INCOMING] GET /storage/projects/e3334dcb-0c8f-4d7c-a516-a248d617848d/master/master_f5fb0a20-9799-400c-928b-932f6917301a.png +[INCOMING] GET /storage/projects/293635b4-d9cd-45b4-8de1-b6c61ce661e6/master/master_0bcc692f-dd90-4422-80b1-9f86bb5a0fd4.png +[INCOMING] GET /storage/projects/233cc95a-2b28-4740-98cf-8701da61c1fd/master/master_8b69f670-b188-4d3d-b1ac-c62b6408062a.png +[INCOMING] GET /storage/projects/80115793-f029-42c3-8c04-fe4b76125f01/master/master_810b7550-ead6-4b5f-add7-f187a5a5ffa4.png +[INCOMING] GET /storage/projects/e857e0f1-cb9d-48ce-b790-722b87e6e19f/master/master_v1767823023819.png +[INCOMING] GET /storage/projects/b9f505f4-cda6-47d5-a8b5-0c0d1c1e51fb/master/master_v1767822876978.png +[INCOMING] GET /storage/projects/0a01c4f9-f6d3-4d6f-9338-ce924d4c6b78/master/master_v1767822818038.png +[INCOMING] GET /storage/projects/9dae9693-71a6-4112-8942-e7d7bb68a579/master/master_1767822745476.png +[INCOMING] GET /storage/projects/60b5eb1b-0daf-4010-847a-8f087c603735/master/master_879f505f-06bd-479a-9649-4f53c6ca4e5b.png +[INCOMING] GET /storage/projects/9d28f0bb-d385-49fb-9d12-dd40fae0ba3b/master/master_v1767822558275.png +[INCOMING] GET /storage/projects/8a75d03a-afe5-4615-a53e-87a04d91a5d7/master/master_568a9c4e-a252-4b10-8318-1804924e0a4f.png +[INCOMING] GET /storage/projects/2870fc6f-56c3-4a4c-9d62-23db7c34f430/master/master_49c61b35-ba1e-42d8-a527-f7eac659622b.png +[INCOMING] GET /storage/projects/22484c4f-ce6c-4c59-b944-8f4c4b202d23/master/master_699b7071-ae5a-43d2-9e75-9e3cd9c1b6cc.png +[INCOMING] GET /storage/projects/2111b50c-a901-4f7d-be83-b55489042a28/master/upscale_1767729326486.png +[INCOMING] GET /storage/projects/7c4864f6-6485-40a2-993d-e00ab78514dc/master/upscale_1767738929194.png +[INCOMING] GET /storage/projects/34b713eb-04fb-45fa-a7b7-71bfa6e4300e/master/master.png +[INCOMING] GET /storage/projects/3c3c1ad8-45b0-4edf-8ab7-52ae2deb1cb0/master/master_v1767624479473.png +[INCOMING] GET /storage/projects/80d04990-df57-4ab5-8cde-4dfc1a0c8b61/master/remix_master.png +[INCOMING] GET /storage/projects/78749e75-56fd-435f-9796-5014d06f240b/master/master_v1767529874679.png +[INCOMING] GET /storage/projects/e14b9190-fce4-4e09-a7f0-65d8d3724c63/master/remix_master.png +[INCOMING] GET /storage/projects/cf2d0883-6b35-4997-ad62-c1180346ce09/master/master_v1767500734061.png +[INCOMING] GET /storage/projects/1d740cbe-4d6b-4626-a153-5028133c63d0/master/master_v1767493046886.png +[INCOMING] GET /storage/projects/38e0398d-e3f2-44ff-9ce0-59e75f1b63a2/master/master_v1767488198215.png +[INCOMING] GET /storage/projects/b55c6395-ad20-43f6-a72c-7fdb3c876aae/master/master.png +[INCOMING] GET /storage/projects/214255f3-3f9a-4219-b0dc-791d14ef4f38/master/master.png +[INCOMING] GET /storage/projects/dfacbbbe-1d92-4e78-ad54-3ff8952dc226/master/master.png +[INCOMING] GET /storage/projects/86bf2f71-fb50-44df-bf48-e7b48372027a/master/master.png +[INCOMING] GET /storage/projects/275035ae-84e6-4a14-9ae9-1991b5570d6c/master/master.png +[INCOMING] GET /storage/projects/bb18aa00-77aa-4b62-bf6e-e897bf2ff0bb/master/master_v1767398257715.png +[INCOMING] GET /storage/projects/743a6d27-a758-4438-b6db-9ed22041681b/master/master.png +[INCOMING] GET /storage/projects/64c29417-e641-4f91-9e03-2a655f4fb2fb/master/master_v1767382999240.png +[INCOMING] GET /storage/projects/7a73f208-e2e7-4646-9cf6-b1fef204eefd/master/master_v1767376258459.png +[INCOMING] GET /storage/projects/4b9d87b5-c3f0-4451-a9dc-9816aaab2483/master/master.png +[INCOMING] GET /storage/projects/caa26e5a-c801-46f3-ab09-27b6ac65ff75/master/master_v1767374099220.png +[INCOMING] GET /storage/projects/4522fbb7-fd8f-42de-91eb-5254be2fc698/master/master_v1767372640030.png +[INCOMING] GET /storage/projects/a30c437d-20d5-42fc-93b4-87a61e72ee9f/master/master_v1767370255938.png +[INCOMING] GET /storage/projects/e9f72877-5b3a-4301-9909-967652eda2a4/master/master_v1767366117095.png +[INCOMING] GET /storage/projects/2240578c-2135-4225-8f36-d77847799cd6/master/master_v1767364535111.png +[INCOMING] GET /storage/projects/6fda2920-12f9-48ca-9c9e-25909465c564/master/master_v1767361081123.png +[INCOMING] GET /storage/projects/5890aeda-f2b4-4e0b-9ae6-ec2181858811/master/master_v1767359560657.png +[INCOMING] GET /storage/projects/e53658fd-8941-4b7f-9770-eb05acde027f/master/master_v1767352780343.png +[INCOMING] GET /storage/projects/8c89b4b1-a054-456d-bf9f-c0fb5bec7066/master/master_v1767580618901.png +[INCOMING] GET /storage/projects/3049dc9b-f5ae-4d96-a38f-2bfc2085dd48/master/master_v1767351600505.png +[INCOMING] GET /storage/projects/06dbb2a5-b7c8-49a5-8883-d6775a84f855/master/master_v1767350957171.png +[INCOMING] GET /storage/projects/85b474c4-2d84-4806-a1e3-3cc88c057b85/master/master_v1767347718634.png +[INCOMING] GET /storage/projects/75777f53-f5e3-47ea-b0e5-99f345bc2188/master/master.png +[INCOMING] GET /storage/projects/a3bdd97e-d1b4-438c-a8d3-af6fc7fee3d4/master/master_v1767346651002.png +[INCOMING] GET /storage/projects/5f2dc761-fdcd-4923-876e-4f8e71204859/master/master.png +[INCOMING] GET /api/projects +[API] Fetching Projects for User: admin@etsymastermind.com (ADMIN) +👀 GOD MODE: Fetching ALL projects. +[INCOMING] GET /api/projects +[API] Fetching Projects for User: admin@etsymastermind.com (ADMIN) +👀 GOD MODE: Fetching ALL projects. +[INCOMING] GET /api/profiles +[INCOMING] GET /api/auth/me +[INCOMING] GET /api/profiles/915d8998-6524-4b8f-b42e-00ccee3c0600 +[AUTH/ME] Logo check: DB value="logos/logo-0262e646-5ca9-4f98-8ec0-266b496dc9ca-1768602806577.png", path="/Users/haruncan/Downloads/DEV/etsy-mastermind-engine-v13.1/storage/logos/logo-0262e646-5ca9-4f98-8ec0-266b496dc9ca-1768602806577.png", exists=true +[INCOMING] GET /api/profiles +[INCOMING] GET /api/auth/me +[INCOMING] GET /api/profiles/915d8998-6524-4b8f-b42e-00ccee3c0600 +[AUTH/ME] Logo check: DB value="logos/logo-0262e646-5ca9-4f98-8ec0-266b496dc9ca-1768602806577.png", path="/Users/haruncan/Downloads/DEV/etsy-mastermind-engine-v13.1/storage/logos/logo-0262e646-5ca9-4f98-8ec0-266b496dc9ca-1768602806577.png", exists=true +[INCOMING] GET /storage/projects/2799bd8f-5b99-4b1c-84fa-ef6ea4cff786/master/master_629ea5a1-1426-4a91-a265-87f687dce4fd.png +[INCOMING] GET /storage/projects/994be50a-c836-459b-b3f5-158cb3270280/master/master_5f901522-bfb9-42b8-8dd3-7afa126c1b35.png +[INCOMING] GET /storage/projects/e0f909c4-1e7f-41e7-9695-af0dd94322dd/master/master_v1768595274399.png +[INCOMING] GET /storage/projects/348b4058-7bed-40a3-8604-7b214f73a6fd/master/master_v1768396872284.png +[INCOMING] GET /storage/projects/5c2ef9fe-f28d-4bff-a32b-79bb491566d2/master/master_v1768591304502.png +[INCOMING] GET /storage/projects/9e552293-ef1e-4b2f-8a12-96dc85a6fcf7/master/master_v1767826257332.png +[INCOMING] GET /storage/projects/bc83ac40-fdc6-4dcc-a124-20e738af29d4/master/master_fb4ab595-3696-4ce2-85b4-28b5326daa05.png +[INCOMING] GET /storage/projects/5bad9034-40cd-4841-b598-9da4acd9eb20/master/master_120dd4f4-2b55-4eb2-be66-a1ec62020d24.png +[INCOMING] GET /storage/projects/293635b4-d9cd-45b4-8de1-b6c61ce661e6/master/master_0bcc692f-dd90-4422-80b1-9f86bb5a0fd4.png +[INCOMING] GET /storage/projects/e3334dcb-0c8f-4d7c-a516-a248d617848d/master/master_f5fb0a20-9799-400c-928b-932f6917301a.png +[INCOMING] GET /storage/projects/233cc95a-2b28-4740-98cf-8701da61c1fd/master/master_8b69f670-b188-4d3d-b1ac-c62b6408062a.png +[INCOMING] GET /storage/projects/80115793-f029-42c3-8c04-fe4b76125f01/master/master_810b7550-ead6-4b5f-add7-f187a5a5ffa4.png +[INCOMING] GET /storage/projects/e857e0f1-cb9d-48ce-b790-722b87e6e19f/master/master_v1767823023819.png +[INCOMING] GET /storage/projects/b9f505f4-cda6-47d5-a8b5-0c0d1c1e51fb/master/master_v1767822876978.png +[INCOMING] GET /storage/projects/0a01c4f9-f6d3-4d6f-9338-ce924d4c6b78/master/master_v1767822818038.png +[INCOMING] GET /storage/projects/9dae9693-71a6-4112-8942-e7d7bb68a579/master/master_1767822745476.png +[INCOMING] GET /storage/projects/60b5eb1b-0daf-4010-847a-8f087c603735/master/master_879f505f-06bd-479a-9649-4f53c6ca4e5b.png +[INCOMING] GET /storage/projects/9d28f0bb-d385-49fb-9d12-dd40fae0ba3b/master/master_v1767822558275.png +[INCOMING] GET /storage/projects/8a75d03a-afe5-4615-a53e-87a04d91a5d7/master/master_568a9c4e-a252-4b10-8318-1804924e0a4f.png +[INCOMING] GET /storage/projects/2870fc6f-56c3-4a4c-9d62-23db7c34f430/master/master_49c61b35-ba1e-42d8-a527-f7eac659622b.png +[INCOMING] GET /storage/projects/22484c4f-ce6c-4c59-b944-8f4c4b202d23/master/master_699b7071-ae5a-43d2-9e75-9e3cd9c1b6cc.png +[INCOMING] GET /storage/projects/2111b50c-a901-4f7d-be83-b55489042a28/master/upscale_1767729326486.png +[INCOMING] GET /storage/projects/7c4864f6-6485-40a2-993d-e00ab78514dc/master/upscale_1767738929194.png +[INCOMING] GET /storage/projects/3c3c1ad8-45b0-4edf-8ab7-52ae2deb1cb0/master/master_v1767624479473.png +[INCOMING] GET /storage/projects/80d04990-df57-4ab5-8cde-4dfc1a0c8b61/master/remix_master.png +[INCOMING] GET /storage/projects/34b713eb-04fb-45fa-a7b7-71bfa6e4300e/master/master.png +[INCOMING] GET /storage/projects/78749e75-56fd-435f-9796-5014d06f240b/master/master_v1767529874679.png +[INCOMING] GET /storage/projects/e14b9190-fce4-4e09-a7f0-65d8d3724c63/master/remix_master.png +[INCOMING] GET /storage/projects/cf2d0883-6b35-4997-ad62-c1180346ce09/master/master_v1767500734061.png +[INCOMING] GET /storage/projects/b55c6395-ad20-43f6-a72c-7fdb3c876aae/master/master.png +[INCOMING] GET /storage/projects/1d740cbe-4d6b-4626-a153-5028133c63d0/master/master_v1767493046886.png +[INCOMING] GET /storage/projects/214255f3-3f9a-4219-b0dc-791d14ef4f38/master/master.png +[INCOMING] GET /storage/projects/38e0398d-e3f2-44ff-9ce0-59e75f1b63a2/master/master_v1767488198215.png +[INCOMING] GET /storage/projects/dfacbbbe-1d92-4e78-ad54-3ff8952dc226/master/master.png +[INCOMING] GET /storage/projects/86bf2f71-fb50-44df-bf48-e7b48372027a/master/master.png +[INCOMING] GET /storage/projects/275035ae-84e6-4a14-9ae9-1991b5570d6c/master/master.png +[INCOMING] GET /storage/projects/bb18aa00-77aa-4b62-bf6e-e897bf2ff0bb/master/master_v1767398257715.png +[INCOMING] GET /storage/projects/743a6d27-a758-4438-b6db-9ed22041681b/master/master.png +[INCOMING] GET /storage/projects/64c29417-e641-4f91-9e03-2a655f4fb2fb/master/master_v1767382999240.png +[INCOMING] GET /storage/projects/7a73f208-e2e7-4646-9cf6-b1fef204eefd/master/master_v1767376258459.png +[INCOMING] GET /storage/projects/4b9d87b5-c3f0-4451-a9dc-9816aaab2483/master/master.png +[INCOMING] GET /storage/projects/caa26e5a-c801-46f3-ab09-27b6ac65ff75/master/master_v1767374099220.png +[INCOMING] GET /storage/projects/4522fbb7-fd8f-42de-91eb-5254be2fc698/master/master_v1767372640030.png +[INCOMING] GET /storage/projects/a30c437d-20d5-42fc-93b4-87a61e72ee9f/master/master_v1767370255938.png +[INCOMING] GET /storage/projects/e9f72877-5b3a-4301-9909-967652eda2a4/master/master_v1767366117095.png +[INCOMING] GET /storage/projects/2240578c-2135-4225-8f36-d77847799cd6/master/master_v1767364535111.png +[INCOMING] GET /storage/projects/6fda2920-12f9-48ca-9c9e-25909465c564/master/master_v1767361081123.png +[INCOMING] GET /storage/projects/5890aeda-f2b4-4e0b-9ae6-ec2181858811/master/master_v1767359560657.png +[INCOMING] GET /storage/projects/e53658fd-8941-4b7f-9770-eb05acde027f/master/master_v1767352780343.png +[INCOMING] GET /storage/projects/8c89b4b1-a054-456d-bf9f-c0fb5bec7066/master/master_v1767580618901.png +[INCOMING] GET /storage/projects/3049dc9b-f5ae-4d96-a38f-2bfc2085dd48/master/master_v1767351600505.png +[INCOMING] GET /storage/projects/06dbb2a5-b7c8-49a5-8883-d6775a84f855/master/master_v1767350957171.png +[INCOMING] GET /storage/projects/85b474c4-2d84-4806-a1e3-3cc88c057b85/master/master_v1767347718634.png +[INCOMING] GET /storage/projects/75777f53-f5e3-47ea-b0e5-99f345bc2188/master/master.png +[INCOMING] GET /storage/projects/a3bdd97e-d1b4-438c-a8d3-af6fc7fee3d4/master/master_v1767346651002.png +[INCOMING] GET /storage/projects/5f2dc761-fdcd-4923-876e-4f8e71204859/master/master.png +[INCOMING] GET /api/projects/354c33a7-5ea8-49c5-8535-95f19429b65b +[INCOMING] GET /api/profiles/915d8998-6524-4b8f-b42e-00ccee3c0600 +[INCOMING] GET /storage/projects/354c33a7-5ea8-49c5-8535-95f19429b65b/dna/ref_0.png +[INCOMING] GET /storage/projects/354c33a7-5ea8-49c5-8535-95f19429b65b/dna/ref_4.png +[INCOMING] GET /storage/projects/354c33a7-5ea8-49c5-8535-95f19429b65b/dna/ref_1.png +[INCOMING] GET /storage/projects/354c33a7-5ea8-49c5-8535-95f19429b65b/dna/ref_6.png +[INCOMING] GET /storage/projects/354c33a7-5ea8-49c5-8535-95f19429b65b/dna/ref_2.png +[INCOMING] GET /storage/projects/354c33a7-5ea8-49c5-8535-95f19429b65b/dna/ref_3.png +[INCOMING] GET /storage/projects/354c33a7-5ea8-49c5-8535-95f19429b65b/dna/ref_5.png +[INCOMING] GET /storage/projects/354c33a7-5ea8-49c5-8535-95f19429b65b/dna/ref_7.png +[INCOMING] GET /storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1767828046088_1.png +[INCOMING] GET /storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1767828046092_3.png +[INCOMING] GET /storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1767828046090_2.png +[INCOMING] GET /storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1767828046085_0.png +[INCOMING] GET /storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1767828046095_5.png +[INCOMING] GET /storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1767828046094_4.png +[INCOMING] GET /api/profiles +[INCOMING] GET /api/auth/me +[AUTH/ME] Logo check: DB value="logos/logo-0262e646-5ca9-4f98-8ec0-266b496dc9ca-1768602806577.png", path="/Users/haruncan/Downloads/DEV/etsy-mastermind-engine-v13.1/storage/logos/logo-0262e646-5ca9-4f98-8ec0-266b496dc9ca-1768602806577.png", exists=true +[INCOMING] GET /storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1767828046097_6.png +[INCOMING] GET /storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1767828046098_7.png +[INCOMING] GET /storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1768593714846_8.png +[INCOMING] GET /storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1768593714848_9.png +[INCOMING] GET /storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1768593714850_10.png +[INCOMING] GET /storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1768593714852_11.png +[INCOMING] GET /storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1768593714853_12.png +[INCOMING] GET /storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1768593714854_13.png +[INCOMING] GET /storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1768593714854_14.png +[INCOMING] POST /api/projects +[API] Create Project Request by admin@etsymastermind.com: güzel bir kadın derin dekolteli gece elbisesi ile partide çok eğleniyor. black and white, retro, film noir, photography art, nude art, Wall Art (ExactRef: false) (HasKey: false) +[API] Resolving existing reference asset: /Users/haruncan/Downloads/DEV/etsy-mastermind-engine-v13.1/storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1767828046085_0.png +[API] Resolving existing reference asset: /Users/haruncan/Downloads/DEV/etsy-mastermind-engine-v13.1/storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1767828046088_1.png +[API] Resolving existing reference asset: /Users/haruncan/Downloads/DEV/etsy-mastermind-engine-v13.1/storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1767828046090_2.png +[API] Resolving existing reference asset: /Users/haruncan/Downloads/DEV/etsy-mastermind-engine-v13.1/storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1767828046092_3.png +[API] Resolving existing reference asset: /Users/haruncan/Downloads/DEV/etsy-mastermind-engine-v13.1/storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1767828046094_4.png +[API] Resolving existing reference asset: /Users/haruncan/Downloads/DEV/etsy-mastermind-engine-v13.1/storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1767828046095_5.png +[API] Resolving existing reference asset: /Users/haruncan/Downloads/DEV/etsy-mastermind-engine-v13.1/storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1767828046097_6.png +[API] Resolving existing reference asset: /Users/haruncan/Downloads/DEV/etsy-mastermind-engine-v13.1/storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1767828046098_7.png +[API] Resolving existing reference asset: /Users/haruncan/Downloads/DEV/etsy-mastermind-engine-v13.1/storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1768593714846_8.png +[API] Resolving existing reference asset: /Users/haruncan/Downloads/DEV/etsy-mastermind-engine-v13.1/storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1768593714848_9.png +[API] Resolving existing reference asset: /Users/haruncan/Downloads/DEV/etsy-mastermind-engine-v13.1/storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1768593714850_10.png +[API] Resolving existing reference asset: /Users/haruncan/Downloads/DEV/etsy-mastermind-engine-v13.1/storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1768593714852_11.png +[API] Resolving existing reference asset: /Users/haruncan/Downloads/DEV/etsy-mastermind-engine-v13.1/storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1768593714853_12.png +[API] Resolving existing reference asset: /Users/haruncan/Downloads/DEV/etsy-mastermind-engine-v13.1/storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1768593714854_13.png +[API] Resolving existing reference asset: /Users/haruncan/Downloads/DEV/etsy-mastermind-engine-v13.1/storage/projects/global_dna/915d8998-6524-4b8f-b42e-00ccee3c0600/ref_1768593714854_14.png +[UsageService] ⚡ GOD MODE: User is ADMIN, bypassing credit deduction. +[API] Creating DB record... +[API] Project created: f4a396f1-0bed-4d07-ab0e-8f9bb6a6bb88 +[API] Step 0: Conducting Market Research... +[API] Market Intelligence Acquired: [ + 'Old Hollywood Glamour', + 'Eclectic Maximalism', + 'Flash Photography / Paparazzi Aesthetic', + 'Bar Cart Art', + 'Moody Dark Academia' +] +[API] Step 1: Generating Art Direction... +[API] Step 2: Generating SEO Strategy... +[DEBUG] SEO Response Text: { + "seoTitle": "Black and White Fashion Print | Retro Woman Drinking Champagne Art | Sexy Bar Cart Decor | Vintage Bathroom Poster | Party Girl Gift", + "keywords": [ + "Bar Cart Art", + "Black and White Art", + "Vintage Fashion", + "Sexy Wall Decor", + "Champagne Print", + "Retro Party Poster", + "Bathroom Wall Art", + "Flash Photography", + "Old Money Aesthetic", + "Eclectic Home Decor", + "Woman Drinking Art", + "Preppy Room Decor", + "Fashion Photography" + ], + "description": "Capture the unbridled euphoria of an endless night with this high-fashion masterpiece. This art print embodies the 'Drunken Elegance' aesthetic—perfect for adding a touch of rebellious glamour to your space.\n\nWhy this piece belongs on your wall:\n• \u2728 **Timeless Energy:** A stunning candid moment of pure joy, frozen in high-contrast vintage flash photography style.\n• \u2728 **Tasteful Risqué:** The daring deep-v satin gown offers a sophisticated 'Vogue' appeal that is sexy yet classy enough for the living room.\n• \u2728 **Modern Resolution:** Unlike gritty thrift store finds, this piece offers 8K clarity while maintaining authentic film grain texture.\n• \u2728 **Versatile Decor:** The ultimate cheeky addition to a bar cart, powder room, or eclectic gallery wall.\n\nBring the Great Gatsby energy to your Friday night. \n\n**Order now to make your walls the life of the party.**", + "suggestedPrice": "28.00", + "jsonLd": { + "@context": "https://schema.org/", + "@type": "Product", + "name": "Black and White Fashion Print | Retro Woman Drinking Champagne Art", + "description": "High-fashion black and white wall art featuring a retro woman laughing with champagne. Vintage flash photography aesthetic perfect for bar carts and bathrooms." + }, + "categorySuggestion": "Art & Collectibles > Prints > Digital Prints", + "attributes": { + "date": "1990s", + "occasion": "Housewarming", + "primaryColor": "Black", + "room": "Kitchen & Dining", + "secondaryColor": "White" + } +} +[API] Saved Printing Guide: projects/f4a396f1-0bed-4d07-ab0e-8f9bb6a6bb88/docs/Printing_Guide.txt +[SANITIZE] Prompt appears safe, no transformation needed. +[API] Calling Gemini for Image (90s Timeout)... +[API] Invoking imageGenAI.models.generateContent with gemini-3-pro-image-preview... (Ratio: 9:16) +[INCOMING] GET /api/ping-sku +[INCOMING] GET /api/ping-sku +[API] Image generation complete. Processing response... +[RATIO CHECK] Generated: 768x1376 (Ratio: 0.558) +[RATIO CHECK] Expected: 3375x6000 (Ratio: 0.563) +[PRINT-READY] Enforcing exact aspect ratio 9:16 -> 3375x6000 +[PRINT-READY] Original: 768x1376 -> Target: 3375x6000 @ 300 DPI +[PRINT-READY] Final output: 3375x6000 @ 300 DPI +[INCOMING] GET /api/auth/me +[AUTH/ME] Logo check: DB value="logos/logo-0262e646-5ca9-4f98-8ec0-266b496dc9ca-1768602806577.png", path="/Users/haruncan/Downloads/DEV/etsy-mastermind-engine-v13.1/storage/logos/logo-0262e646-5ca9-4f98-8ec0-266b496dc9ca-1768602806577.png", exists=true +[INCOMING] GET /storage/projects/f4a396f1-0bed-4d07-ab0e-8f9bb6a6bb88/master/master_78f4a903-03ab-47bc-97fe-43d0375a17ef.png