Codemaru 1.0.0.0
QR 코드, 모바일 랜딩 페이지, vCard 연락처 저장과 명함 디자인을 한 화면에서 제공하는 디지털 명함 서비스입니다.
로딩중...
검색중...
일치하는것 없음
CardProfile.cs
이 파일의 문서화 페이지로 가기
1namespace Codemaru.Models;
2
11public sealed record CardProfile(
12 string Brand,
13 string Tagline,
14 string BackBrand,
15 string BackTagline,
16 string Category,
17 string Name,
18 string Role,
19 string Email,
20 string Phone,
21 string Address,
22 string Website,
23 string LandingSlug,
24 string AccentColor,
25 string ShortBio,
26 string LandingDescription,
27 string VCardNote,
28 string InternalMemo,
29 string? LogoImageDataUrl,
30 bool RemoveLogoBackground,
31 double CardWidthMm,
32 double CardHeightMm,
33 string FrontFontFamily,
34 string BackFontFamily,
35 double FrontBrandFontSize,
36 double FrontTaglineFontSize,
37 double FrontCategoryFontSize,
38 double FrontEmailFontSize,
39 double BackBrandFontSize,
40 double BackTaglineFontSize,
41 double BackNameFontSize,
42 double BackRoleFontSize,
43 string LandingTheme,
44 bool IncludePhoneInVCard,
45 bool IncludeAddressInVCard,
46 string? ImportedFrontImageDataUrl,
47 string? ImportedBackImageDataUrl)
48{
57 public static CardProfile Default { get; } = new(
58 Brand: "Dreamine",
59 Tagline: "Modular Automation Framework",
60 BackBrand: "Codemaru",
61 BackTagline: "Agri-Tech & Automation Platform",
62 Category: $"Industrial Automation{Environment.NewLine}AI · Smart Farm · Agri-Tech",
63 Name: "장민수",
64 Role: "Founder & CTO",
65 Email: "togood1983@gmail.com",
66 Phone: "+8210-XXXX-XXXX",
67 Address: "충청남도 청양군 남양면 XXXX XX-XX 코드마루 빌딩",
68 Website: "https://codemaru.co.kr",
69 LandingSlug: "card/minsu",
70 AccentColor: "#5d7f57",
71
72 ShortBio: "Founder & CTO of CodeMaru",
73 LandingDescription: "Building Dreamine, a modular automation framework for industrial automation, AI, smart farm, and agri-tech solutions.",
74 VCardNote: "CodeMaru / Dreamine business profile",
75 InternalMemo: "Primary public profile for personal business card landing page.",
76
77 LogoImageDataUrl: null,
78 RemoveLogoBackground: false,
79 CardWidthMm: 90,
80 CardHeightMm: 50,
81 FrontFontFamily: "Segoe UI",
82 BackFontFamily: "Segoe UI",
83 FrontBrandFontSize: 28,
84 FrontTaglineFontSize: 17,
85 FrontCategoryFontSize: 18,
86 FrontEmailFontSize: 14,
87 BackBrandFontSize: 22,
88 BackTaglineFontSize: 14,
89 BackNameFontSize: 16,
90 BackRoleFontSize: 14,
91 LandingTheme: "light",
92 IncludePhoneInVCard: false,
93 IncludeAddressInVCard: false,
94 ImportedFrontImageDataUrl: null,
95 ImportedBackImageDataUrl: null);
96
105 public string LandingUrl
106 {
107 get
108 {
109 var website = string.IsNullOrWhiteSpace(Website)
110 ? "https://dreamine.local/card"
111 : Website.Trim().TrimEnd('/');
112
113 if (string.IsNullOrWhiteSpace(LandingSlug))
114 {
115 return website;
116 }
117
118 var slug = LandingSlug.Trim().Trim('/').Replace(" ", "-", StringComparison.Ordinal);
119
120 return website.EndsWith($"/{slug}", StringComparison.OrdinalIgnoreCase)
121 ? website
122 : $"{website}/{slug}";
123 }
124 }
125}
record CardProfile(string Brand, string Tagline, string BackBrand, string BackTagline, string Category, string Name, string Role, string Email, string Phone, string Address, string Website, string LandingSlug, string AccentColor, string ShortBio, string LandingDescription, string VCardNote, string InternalMemo, string? LogoImageDataUrl, bool RemoveLogoBackground, double CardWidthMm, double CardHeightMm, string FrontFontFamily, string BackFontFamily, double FrontBrandFontSize, double FrontTaglineFontSize, double FrontCategoryFontSize, double FrontEmailFontSize, double BackBrandFontSize, double BackTaglineFontSize, double BackNameFontSize, double BackRoleFontSize, string LandingTheme, bool IncludePhoneInVCard, bool IncludeAddressInVCard, string? ImportedFrontImageDataUrl, string? ImportedBackImageDataUrl)