namespace TrackQrApi.Features.QRCodes.Common; /// /// QR code style configuration stored as JSON /// public class QRCodeStyle { /// Foreground color in hex format (e.g., "#000000") public string ForegroundColor { get; set; } = "#000000"; /// Background color in hex format (e.g., "#FFFFFF") public string BackgroundColor { get; set; } = "#FFFFFF"; /// Error correction level: L (7%), M (15%), Q (25%), H (30%) public string ErrorCorrectionLevel { get; set; } = "M"; /// Quiet zone (margin) in modules public int QuietZone { get; set; } = 4; /// Module shape: Square, Circle, Rounded public string ModuleShape { get; set; } = "Square"; /// Eye shape: Square, Circle, Rounded public string EyeShape { get; set; } = "Square"; /// Pixels per module for rendering public int PixelsPerModule { get; set; } = 20; } public record QRCodeResponse( Guid Id, Guid WorkspaceId, Guid? ProjectId, Guid? ShortLinkId, string? ShortLinkSlug, string Name, QRCodeStyle Style, Guid? LogoAssetId, string? LogoUrl, DateTime CreatedAt, DateTime UpdatedAt ); public record QRCodeListResponse( IEnumerable QRCodes ); public record QRCodePreviewResponse( string DataUrl, string Format, int Width, int Height );