podzahr/lib/types.ts
nfel 895afc44af
main: add many things to app :)
Signed-off-by: nfel <nfilsaraee@gmail.com>
2025-12-30 01:30:31 +03:30

41 lines
1.1 KiB
TypeScript

export type AlbumTag = 'Album' | 'EP' | 'Demo' | 'Deluxe' | 'Single';
export type AudioFormat = 'mp3' | 'm4a' | 'flac' | 'wav';
export interface Song {
id: string;
title: string;
duration: string;
previewUrl: string; // URL to 30-second preview
fullUrl: string; // URL to full song (locked until purchase)
}
export interface Album {
id: string;
title: string;
coverImage: string;
year: number;
genre: string;
price: number;
description: string;
songs: Song[];
tag: AlbumTag; // EP, Demo, Deluxe, etc.
format: AudioFormat; // mp3, m4a, flac, wav
bitrate: string; // e.g., "320kbps", "lossless"
}
export type PurchaseStatus = 'pending' | 'approved' | 'rejected';
export type PaymentMethod = 'ipg' | 'card-to-card';
export interface Purchase {
id?: number;
albumId: string;
transactionId: string;
customerName?: string;
email?: string;
phoneNumber?: string;
txReceipt?: string;
purchaseDate: Date | number;
approvalStatus?: PurchaseStatus; // pending, approved, rejected
paymentMethod?: PaymentMethod; // ipg or card-to-card
}