File size: 2,107 Bytes
11f4e50
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
import mongoose, { Schema, Document } from 'mongoose';

export interface IPreset extends Document {
    userId: mongoose.Types.ObjectId;
    name: string;
    voice: {
        type: string;
        language: string;
        tone: string;
        speed: number;
    };
    music: string;
    fonts: {
        primary: string;
        secondary: string;
    };
    colors: {
        primary: string;
        secondary: string;
        accent: string;
    };
    transitions: string;
    videoStyle: string;
}

const PresetSchema = new Schema<IPreset>({
    userId: {
        type: Schema.Types.ObjectId,
        ref: 'User',
        required: true,
    },
    name: {
        type: String,
        required: true,
        trim: true,
    },
    voice: {
        type: {
            type: String,
            default: 'neutral',
        },
        language: {
            type: String,
            default: 'en',
        },
        tone: {
            type: String,
            default: 'professional',
        },
        speed: {
            type: Number,
            default: 1.0,
        },
    },
    music: {
        type: String,
        default: '',
    },
    fonts: {
        primary: {
            type: String,
            default: 'Playfair Display',
        },
        secondary: {
            type: String,
            default: 'Montserrat',
        },
    },
    colors: {
        primary: {
            type: String,
            default: '#1A1A1A',
        },
        secondary: {
            type: String,
            default: '#F5F5F5',
        },
        accent: {
            type: String,
            default: '#D4AF37',
        },
    },
    transitions: {
        type: String,
        enum: ['fade', 'slide', 'zoom', 'dissolve', 'none'],
        default: 'fade',
    },
    videoStyle: {
        type: String,
        enum: ['minimal', 'dynamic', 'cinematic', 'bold', 'elegant'],
        default: 'minimal',
    },
});

export const Preset = mongoose.model<IPreset>('Preset', PresetSchema);