|
|
@@ -78,3 +78,37 @@ export interface ImageMetadata {
|
|
|
expiresAt: string | null;
|
|
|
canDelete: boolean;
|
|
|
}
|
|
|
+
|
|
|
+// Share link for an image
|
|
|
+export interface ShareLink {
|
|
|
+ id: string;
|
|
|
+ linkCode: string;
|
|
|
+ shareUrl: string;
|
|
|
+ expiresAt: Date;
|
|
|
+ viewCount: number;
|
|
|
+ lastViewedAt?: Date;
|
|
|
+ isRevoked: boolean;
|
|
|
+ isValid: boolean;
|
|
|
+ createdAt: Date;
|
|
|
+}
|
|
|
+
|
|
|
+// Expiry options for share links (authenticated users)
|
|
|
+export const SHARE_LINK_EXPIRY_OPTIONS = [
|
|
|
+ { label: '5 minutes', value: 300 },
|
|
|
+ { label: '15 minutes', value: 900 },
|
|
|
+ { label: '30 minutes', value: 1800 },
|
|
|
+ { label: '1 hour', value: 3600 },
|
|
|
+ { label: '6 hours', value: 21600 },
|
|
|
+ { label: '24 hours', value: 86400 },
|
|
|
+ { label: '7 days', value: 604800 },
|
|
|
+ { label: '30 days', value: 2592000 },
|
|
|
+];
|
|
|
+
|
|
|
+// Expiry options for non-authenticated users
|
|
|
+export const ANON_EXPIRY_OPTIONS = [
|
|
|
+ { label: '1 hour', value: 3600 },
|
|
|
+ { label: '6 hours', value: 21600 },
|
|
|
+ { label: '24 hours', value: 86400 },
|
|
|
+ { label: '7 days', value: 604800 },
|
|
|
+ { label: '30 days', value: 2592000 },
|
|
|
+];
|