// 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
