wedance-shared 1.0.185 → 1.0.187

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -24,6 +24,8 @@ export type TicketCoupon = {
24
24
  organizerId: string | null;
25
25
  maxRedemptions: number | null;
26
26
  redemptionCount: number;
27
+ /** Soft-delete timestamp; null while the coupon is active. */
28
+ deletedAt: string | null;
27
29
  /**
28
30
  * ticketTypes will be populated in the server with join. It is not in the ticket_coupons table.
29
31
  */
@@ -62,6 +62,12 @@ export type OrganizerData = {
62
62
  addressCity?: string | null;
63
63
  /** ISO-3166 alpha-2, e.g. "FI". */
64
64
  addressCountryCode?: string | null;
65
+ phone?: string | null;
66
+ /**
67
+ * Default length (minutes) used when creating class sessions for this
68
+ * organizer. Per-class overrides live on SchoolClass.
69
+ */
70
+ defaultClassDurationMinutes?: number | null;
65
71
  };
66
72
  /**
67
73
  * Lightweight organizer projection with the public info needed
@@ -1,12 +1,15 @@
1
1
  export type SchoolStudentStatus = "active" | "inactive";
2
2
  export type SchoolStaffRole = "owner" | "admin" | "instructor";
3
+ export type SchoolStaffAccessLevel = "full" | "limited" | "invited" | "none";
3
4
  export type SchoolStaffStatus = "active" | "disabled";
4
5
  export type SchoolClassStatus = "draft" | "active" | "archived";
5
6
  export type ClassSessionStatus = "scheduled" | "completed" | "cancelled";
6
7
  export type ClassEnrollmentStatus = "active" | "cancelled" | "completed";
7
8
  export type ClassEnrollmentSourceType = "manual" | "purchase";
8
- export type ClassSessionRegistrationStatus = "booked" | "attended" | "absent" | "no_show" | "cancelled";
9
+ export type ClassSessionRegistrationStatus = "booked" | "waitlisted" | "attended" | "absent" | "no_show" | "cancelled";
9
10
  export type ClassSessionAccessType = "course" | "pass" | "drop_in" | "membership" | "free" | "manual";
11
+ export type DancerRole = "lead" | "follow";
12
+ /** Row shape for `public.school_students`. */
10
13
  export interface SchoolStudent {
11
14
  id: string;
12
15
  organizerId: string;
@@ -20,15 +23,26 @@ export interface SchoolStudent {
20
23
  createdAt: string;
21
24
  updatedAt: string;
22
25
  }
26
+ /** Row shape for `public.school_staff`. */
23
27
  export interface SchoolStaff {
24
28
  id: string;
25
29
  organizerId: string;
26
- userId: string;
27
- role: SchoolStaffRole;
30
+ /** Null until the invited staff member claims a WeDance account. */
31
+ userId: string | null;
32
+ firstName: string;
33
+ lastName: string;
34
+ email: string | null;
35
+ phone: string | null;
36
+ roles: SchoolStaffRole[];
37
+ accessLevel: SchoolStaffAccessLevel;
38
+ invitedAt: string | null;
39
+ accessRevokedAt: string | null;
40
+ joinedAt: string | null;
28
41
  status: SchoolStaffStatus;
29
42
  createdAt: string;
30
43
  updatedAt: string;
31
44
  }
45
+ /** Row shape for `public.school_classes`. */
32
46
  export interface SchoolClass {
33
47
  id: string;
34
48
  organizerId: string;
@@ -38,10 +52,13 @@ export interface SchoolClass {
38
52
  level: string | null;
39
53
  capacity: number | null;
40
54
  instructorStaffId: string | null;
55
+ /** Fallback session length when a session has no explicit endsAt override. */
56
+ defaultClassDurationMinutes: number | null;
41
57
  status: SchoolClassStatus;
42
58
  createdAt: string;
43
59
  updatedAt: string;
44
60
  }
61
+ /** Row shape for `public.class_sessions`. */
45
62
  export interface ClassSession {
46
63
  id: string;
47
64
  classId: string;
@@ -50,10 +67,12 @@ export interface ClassSession {
50
67
  instructorStaffId: string | null;
51
68
  locationName: string | null;
52
69
  locationAddress: string | null;
70
+ roomId: string | null;
53
71
  status: ClassSessionStatus;
54
72
  createdAt: string;
55
73
  updatedAt: string;
56
74
  }
75
+ /** Row shape for `public.class_enrollments`. */
57
76
  export interface ClassEnrollment {
58
77
  id: string;
59
78
  classId: string;
@@ -66,6 +85,7 @@ export interface ClassEnrollment {
66
85
  createdAt: string;
67
86
  updatedAt: string;
68
87
  }
88
+ /** Row shape for `public.class_session_registrations`. */
69
89
  export interface ClassSessionRegistration {
70
90
  id: string;
71
91
  sessionId: string;
@@ -79,4 +99,19 @@ export interface ClassSessionRegistration {
79
99
  cancelledAt: string | null;
80
100
  createdAt: string;
81
101
  updatedAt: string;
102
+ role: DancerRole | null;
103
+ }
104
+ export type SchoolRoomStatus = "active" | "inactive";
105
+ /** Row shape for `public.school_rooms`. */
106
+ export interface SchoolRoom {
107
+ id: string;
108
+ organizerId: string;
109
+ name: string;
110
+ location: string | null;
111
+ capacity: number | null;
112
+ color: string | null;
113
+ position: number;
114
+ status: SchoolRoomStatus;
115
+ createdAt: string;
116
+ updatedAt: string;
82
117
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wedance-shared",
3
- "version": "1.0.185",
3
+ "version": "1.0.187",
4
4
  "description": "This repository contains shared TypeScript types and interfaces used across multiple WeDance applications:",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",