donation.ts 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. export interface DonationAlertData {
  2. alertID: number;
  3. donationID: number;
  4. correlationID: string;
  5. sponsorMemberID: number;
  6. sendName: string;
  7. amount: number;
  8. netAmount: number;
  9. message: string|null;
  10. channelID: number;
  11. channelName: string;
  12. crewMemberID: number|null;
  13. crewMemberNickname: string|null;
  14. isTest: boolean;
  15. createdAt: string;
  16. }
  17. export interface DonationAlertConfig {
  18. id: number;
  19. title: string;
  20. amount: number;
  21. matchType: number;
  22. message: string;
  23. playDelaySec: number;
  24. displayDurationSec: number;
  25. popupEffect: string|null;
  26. textEffect: string|null;
  27. nicknameFontFamily: string|null;
  28. nicknameFontSize: number;
  29. nicknameFontColor: string;
  30. amountFontFamily: string|null;
  31. amountFontSize: number;
  32. amountFontColor: string;
  33. messageFontFamily: string|null;
  34. messageFontSize: number;
  35. messageFontColor: string;
  36. templateFontFamily: string|null;
  37. templateFontSize: number;
  38. templateFontColor: string;
  39. enableImage: boolean;
  40. imageUrl: string|null;
  41. enableSound: boolean;
  42. soundUrl: string|null;
  43. isActive: boolean;
  44. }
  45. export interface DonationRemoteState {
  46. isPaused: boolean;
  47. isAccepting: boolean;
  48. isAudioOnly: boolean;
  49. isVideoOnly: boolean;
  50. }
  51. export interface CrewRankItem {
  52. rank: number;
  53. crewMemberID: number;
  54. nickname: string;
  55. icon: string|null;
  56. channelName: string|null;
  57. totalAmount: number;
  58. donationCount: number;
  59. contributionRate: number;
  60. }
  61. export interface GoalProgress {
  62. goalConfigID: number;
  63. title: string;
  64. startAmount: number;
  65. targetAmount: number;
  66. currentAmount: number;
  67. percent: number;
  68. }
  69. export type AlertStatusKey = 'queued'|'playing'|'delivered'|'skipped'|'ignored'|'failed';
  70. export interface AlertQueueItem {
  71. alertID: number;
  72. donationID: number;
  73. status: AlertStatusKey;
  74. sponsorMemberID: number;
  75. sendName: string;
  76. amount: number;
  77. message: string|null;
  78. isTest: boolean;
  79. createdAt: string;
  80. }
  81. export interface RemoteCrewItem {
  82. id: number;
  83. name: string;
  84. description: string|null;
  85. minAmount: number|null;
  86. memberCount: number;
  87. }
  88. export interface RemoteCrewMembersResponse {
  89. crewID: number;
  90. crewName: string;
  91. activeCrewSessionID: number|null;
  92. members: RemoteCrewMemberItem[];
  93. }
  94. export interface RemoteCrewMemberItem {
  95. id: number;
  96. memberID: number;
  97. nickname: string;
  98. role: string|null;
  99. sortOrder: number;
  100. }