315 lines
8.1 KiB
JavaScript
315 lines
8.1 KiB
JavaScript
// Shape mirrors backend Postman doc for /admin/tickets:
|
|
// ticket: { id, student_id, assigned_to_user_id, type, category, status,
|
|
// subject, created_at, media: [],
|
|
// student, assignee,
|
|
// messages: [{ id, ticket_id, sender_id, message, created_at, sender }] }
|
|
// Fixture uses camelCase — the mock adapter returns it as-is, mimicking what
|
|
// the FE sees post-camelize when wired to the real backend.
|
|
|
|
const makeUser = (overrides) => ({
|
|
id: overrides.id,
|
|
name: overrides.name ?? '',
|
|
email: overrides.email ?? '',
|
|
phone: overrides.phone ?? null,
|
|
roles: overrides.roles ?? ['student'],
|
|
avatarUrl: overrides.avatarUrl ?? null,
|
|
avatarDownloadUrl: overrides.avatarDownloadUrl ?? null,
|
|
createdAt: overrides.createdAt ?? '',
|
|
})
|
|
|
|
const studentJane = makeUser({
|
|
id: 100,
|
|
name: 'فاطمه رضایی',
|
|
email: 'fateme@example.com',
|
|
phone: '+989121111111',
|
|
roles: ['student'],
|
|
avatarUrl: '',
|
|
createdAt: '2026-02-01T10:00:00.000Z',
|
|
})
|
|
|
|
const studentMaryam = makeUser({
|
|
id: 102,
|
|
name: 'مریم احمدی',
|
|
email: 'maryam@example.com',
|
|
phone: '+989122222222',
|
|
roles: ['student'],
|
|
avatarUrl: '',
|
|
createdAt: '2026-02-05T10:00:00.000Z',
|
|
})
|
|
|
|
const studentAli = makeUser({
|
|
id: 103,
|
|
name: 'علی علوی',
|
|
email: 'ali@example.com',
|
|
phone: '+989123333333',
|
|
roles: ['student'],
|
|
avatarUrl: '',
|
|
createdAt: '2026-02-10T10:00:00.000Z',
|
|
})
|
|
|
|
const studentReza = makeUser({
|
|
id: 104,
|
|
name: 'رضا حسینی',
|
|
email: 'reza@example.com',
|
|
phone: '+989124444444',
|
|
roles: ['student'],
|
|
avatarUrl: '',
|
|
createdAt: '2026-02-12T10:00:00.000Z',
|
|
})
|
|
|
|
const studentZahra = makeUser({
|
|
id: 105,
|
|
name: 'زهرا کریمی',
|
|
email: 'zahra@example.com',
|
|
phone: '+989125555555',
|
|
roles: ['student'],
|
|
avatarUrl: '',
|
|
createdAt: '2026-02-15T10:00:00.000Z',
|
|
})
|
|
|
|
const adminUser = makeUser({
|
|
id: 1,
|
|
name: 'مدیر سامانه',
|
|
email: 'admin@example.com',
|
|
roles: ['admin'],
|
|
createdAt: '2026-01-01T00:00:00.000Z',
|
|
})
|
|
|
|
const counselorUser = makeUser({
|
|
id: 7,
|
|
name: 'مشاور سامانه',
|
|
email: 'counselor@example.com',
|
|
roles: ['counselor'],
|
|
createdAt: '2026-01-15T00:00:00.000Z',
|
|
})
|
|
|
|
export const adminTickets = [
|
|
{
|
|
id: 401,
|
|
studentId: studentJane.id,
|
|
assignedToUserId: adminUser.id,
|
|
type: 'ticket',
|
|
category: 'enrollment',
|
|
status: 'answered',
|
|
subject: 'پیگیری وضعیت ثبتنام',
|
|
createdAt: '2026-05-09T10:30:00.000Z',
|
|
media: [],
|
|
student: studentJane,
|
|
assignee: adminUser,
|
|
messages: [
|
|
{
|
|
id: 1,
|
|
ticketId: 401,
|
|
senderId: studentJane.id,
|
|
message: 'سلام وقت بخیر، در فرایند ثبتنام به مشکل برخوردم.',
|
|
createdAt: '2026-05-09T10:35:00.000Z',
|
|
sender: studentJane,
|
|
},
|
|
{
|
|
id: 2,
|
|
ticketId: 401,
|
|
senderId: adminUser.id,
|
|
message: 'سلام و عرض ادب. لطفا کد پیگیری ثبتنام را ارسال کنید.',
|
|
createdAt: '2026-05-09T10:40:00.000Z',
|
|
sender: adminUser,
|
|
},
|
|
{
|
|
id: 3,
|
|
ticketId: 401,
|
|
senderId: studentJane.id,
|
|
message: 'کد ثبتنام: ۱۲۳۴۵۶۷۸',
|
|
createdAt: '2026-05-09T10:42:00.000Z',
|
|
sender: studentJane,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
id: 402,
|
|
studentId: studentMaryam.id,
|
|
assignedToUserId: null,
|
|
type: 'ticket',
|
|
category: 'schedule',
|
|
status: 'open',
|
|
subject: 'سوال درباره جلسه آموزشی',
|
|
createdAt: '2026-05-08T09:15:00.000Z',
|
|
media: [],
|
|
student: studentMaryam,
|
|
assignee: null,
|
|
messages: [
|
|
{
|
|
id: 1,
|
|
ticketId: 402,
|
|
senderId: studentMaryam.id,
|
|
message: 'سلام، درباره ساعت برگزاری جلسه چهارم سوال داشتم.',
|
|
createdAt: '2026-05-08T09:15:00.000Z',
|
|
sender: studentMaryam,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
id: 403,
|
|
studentId: studentAli.id,
|
|
assignedToUserId: adminUser.id,
|
|
type: 'ticket',
|
|
category: 'billing',
|
|
status: 'closed',
|
|
subject: 'درخواست بستن تیکت',
|
|
createdAt: '2026-05-07T14:10:00.000Z',
|
|
media: [],
|
|
student: studentAli,
|
|
assignee: adminUser,
|
|
messages: [
|
|
{
|
|
id: 1,
|
|
ticketId: 403,
|
|
senderId: studentAli.id,
|
|
message: 'مشکل برطرف شد. لطفا تیکت بسته شود.',
|
|
createdAt: '2026-05-07T17:40:00.000Z',
|
|
sender: studentAli,
|
|
},
|
|
{
|
|
id: 2,
|
|
ticketId: 403,
|
|
senderId: adminUser.id,
|
|
message: 'با تشکر از شما. تیکت بسته شد.',
|
|
createdAt: '2026-05-07T17:42:00.000Z',
|
|
sender: adminUser,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
id: 501,
|
|
studentId: studentReza.id,
|
|
assignedToUserId: adminUser.id,
|
|
type: 'service',
|
|
category: 'loan',
|
|
status: 'open',
|
|
subject: 'درخواست وام تحصیلی',
|
|
createdAt: '2026-05-12T13:54:00.000Z',
|
|
media: [],
|
|
student: studentReza,
|
|
assignee: adminUser,
|
|
messages: [
|
|
{
|
|
id: 1,
|
|
ticketId: 501,
|
|
senderId: studentReza.id,
|
|
message: 'برای ادامه تحصیل به وام نیاز دارم.',
|
|
createdAt: '2026-05-12T13:54:00.000Z',
|
|
sender: studentReza,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
id: 502,
|
|
studentId: studentJane.id,
|
|
assignedToUserId: null,
|
|
type: 'service',
|
|
category: 'insurance',
|
|
status: 'answered',
|
|
subject: 'درخواست بیمه طلبگی',
|
|
createdAt: '2026-05-10T08:20:00.000Z',
|
|
media: [],
|
|
student: studentJane,
|
|
assignee: null,
|
|
messages: [
|
|
{
|
|
id: 1,
|
|
ticketId: 502,
|
|
senderId: studentJane.id,
|
|
message: 'لطفا اطلاعات بیمه را ارسال کنید.',
|
|
createdAt: '2026-05-10T08:20:00.000Z',
|
|
sender: studentJane,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
id: 601,
|
|
studentId: studentZahra.id,
|
|
assignedToUserId: counselorUser.id,
|
|
type: 'advise',
|
|
category: 'education',
|
|
status: 'answered',
|
|
subject: 'مشاوره انتخاب رشته',
|
|
createdAt: '2026-05-12T13:54:00.000Z',
|
|
media: [],
|
|
student: studentZahra,
|
|
assignee: counselorUser,
|
|
messages: [
|
|
{
|
|
id: 1,
|
|
ticketId: 601,
|
|
senderId: studentZahra.id,
|
|
message: 'سلام، در خصوص انتخاب رشته مشاوره میخواستم.',
|
|
createdAt: '2026-05-12T13:54:00.000Z',
|
|
sender: studentZahra,
|
|
},
|
|
{
|
|
id: 2,
|
|
ticketId: 601,
|
|
senderId: counselorUser.id,
|
|
message: 'سلام و وقت بخیر، لطفا رشته فعلی و علاقهمندیهای خود را بفرمایید.',
|
|
createdAt: '2026-05-12T14:02:00.000Z',
|
|
sender: counselorUser,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
id: 602,
|
|
studentId: studentMaryam.id,
|
|
assignedToUserId: null,
|
|
type: 'advise',
|
|
category: 'career',
|
|
status: 'open',
|
|
subject: 'مشاوره مسیر شغلی',
|
|
createdAt: '2026-05-11T09:30:00.000Z',
|
|
media: [],
|
|
student: studentMaryam,
|
|
assignee: null,
|
|
messages: [
|
|
{
|
|
id: 1,
|
|
ticketId: 602,
|
|
senderId: studentMaryam.id,
|
|
message: 'برای ادامه تحصیل در سطح ۳ راهنمایی نیاز دارم.',
|
|
createdAt: '2026-05-11T09:30:00.000Z',
|
|
sender: studentMaryam,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
id: 603,
|
|
studentId: studentAli.id,
|
|
assignedToUserId: counselorUser.id,
|
|
type: 'advise',
|
|
category: 'personal',
|
|
status: 'closed',
|
|
subject: 'مشاوره فردی',
|
|
createdAt: '2026-05-09T16:10:00.000Z',
|
|
media: [],
|
|
student: studentAli,
|
|
assignee: counselorUser,
|
|
messages: [
|
|
{
|
|
id: 1,
|
|
ticketId: 603,
|
|
senderId: studentAli.id,
|
|
message: 'مشاوره دریافت شد، با تشکر.',
|
|
createdAt: '2026-05-09T16:10:00.000Z',
|
|
sender: studentAli,
|
|
},
|
|
{
|
|
id: 2,
|
|
ticketId: 603,
|
|
senderId: counselorUser.id,
|
|
message: 'موفق باشید.',
|
|
createdAt: '2026-05-09T16:12:00.000Z',
|
|
sender: counselorUser,
|
|
},
|
|
],
|
|
},
|
|
]
|
|
|
|
export const currentAdminUser = adminUser
|
|
export const currentCounselorUser = counselorUser
|