// // KBPersonaModel.h // keyBoard // // Created by Kiro on 2026/1/26. // #import NS_ASSUME_NONNULL_BEGIN /// 人设状态 typedef NS_ENUM(NSInteger, KBPersonaStatus) { KBPersonaStatusDisabled = 0, // 禁用 KBPersonaStatusEnabled = 1 // 启用 }; /// 人设可见性 typedef NS_ENUM(NSInteger, KBPersonaVisibility) { KBPersonaVisibilityPrivate = 0, // 私有 KBPersonaVisibilityPublic = 1 // 公开 }; /// 人设模型 @interface KBPersonaModel : NSObject /// 人设 ID @property (nonatomic, assign) NSInteger personaId; /// 人设名称 @property (nonatomic, copy) NSString *name; /// 头像 URL @property (nonatomic, copy) NSString *avatarUrl; /// 封面图 URL @property (nonatomic, copy) NSString *coverImageUrl; /// 性别 @property (nonatomic, copy) NSString *gender; /// 年龄范围 @property (nonatomic, copy) NSString *ageRange; /// 简短描述 @property (nonatomic, copy) NSString *shortDesc; /// 介绍文本 @property (nonatomic, copy) NSString *introText; /// 性格标签(逗号分隔的字符串) @property (nonatomic, copy) NSString *personalityTags; /// 说话风格 @property (nonatomic, copy) NSString *speakingStyle; /// 系统提示词 @property (nonatomic, copy) NSString *systemPrompt; /// 状态(0-禁用,1-启用) @property (nonatomic, assign) KBPersonaStatus status; /// 可见性(0-私有,1-公开) @property (nonatomic, assign) KBPersonaVisibility visibility; /// 排序顺序 @property (nonatomic, assign) NSInteger sortOrder; /// 热度分数 @property (nonatomic, assign) NSInteger popularityScore; /// 创建时间 @property (nonatomic, copy) NSString *createdAt; /// 更新时间 @property (nonatomic, copy) NSString *updatedAt; /// 评论数 @property (nonatomic, copy) NSString *commentCount; /// 喜欢数 @property (nonatomic, copy) NSString *likeCount; /// 是否喜欢 @property (nonatomic, assign) BOOL liked; #pragma mark - 扩展属性 /// 性格标签数组(从 personalityTags 解析) @property (nonatomic, strong, readonly) NSArray *tagsArray; /// 是否启用 @property (nonatomic, assign, readonly) BOOL isEnabled; /// 是否公开 @property (nonatomic, assign, readonly) BOOL isPublic; /// 开场白 @property (nonatomic, copy) NSString *prologue; /// 开场白URL @property (nonatomic, copy) NSString *prologueAudio; @end NS_ASSUME_NONNULL_END