extend schema @authentication( operations: [ CREATE UPDATE DELETE CREATE_RELATIONSHIP DELETE_RELATIONSHIP ] ) type Query { """ เวลาที่ข้อมูลถูกเพิ่มหรือแก้ไขล่าสุด (UTC) """ lastUpdatedAt: DateTime } """ สถานะการเผยแพร่ """ enum PublishStatus { """ เผยแพร่สู่สาธารณะ """ PUBLISHED """ ไม่เผยแพร่สู่สาธารณะ """ UNPUBLISHED """ มีข้อผิดพลาด ต้องการการตรวจสอบ """ ERROR } """ ประเภทองค์กร """ enum OrganizationType { """ รัฐสภา """ PARLIAMENT """ สภาผู้แทนราษฎร (สส.) """ HOUSE_OF_REPRESENTATIVE """ วุฒิสภา (สว.) """ HOUSE_OF_SENATE """ คณะรัฐมนตรี (ครม.) """ CABINET """ พรรคการเมือง """ POLITICAL_PARTY """ หน่วยงานเอกชน """ PRIVATE_ORGANIZATION } """ สถานะของร่างกฏหมาย """ enum BillStatus { """ กำลังดำเนินการ """ IN_PROGRESS """ ถูกรวมร่าง """ MERGED """ ออกเป็นกฎหมาย """ ENACTED """ ตกไป """ REJECTED } """ ประเภทของผู้เสนอกฏหมาย """ enum BillCreatorType { """ สมาชิกรัฐสภา """ POLITICIAN """ คณะรัฐมนตรี """ ASSEMBLY """ ประชาชน """ PEOPLE """ อื่นๆ / ไม่พบข้อมูล """ UNKNOWN } """ เพศโดยกำเนิด """ enum Gender { """ ชาย """ MALE """ หญิง """ FEMALE } """ ประเภทของกฏหมาย """ enum BillType { # placeholder # TODO add & change enum """ ทั่วไป """ NORMAL_BILL """ เกี่ยวข้องกับงบประมาณ """ BUDGET_BILL """ ประกาศฉุกเฉิน """ EMERGENCY_DECREE } """ ประเภทของการลงมติ """ enum VoteEventType { """ สส. วาระที่ 1 """ MP_1 """ สส. วาระที่ 2 """ MP_2 """ สส. วาระที่ 3 """ MP_3 """ สว. วาระที่ 1 """ SENATE_1 """ สว. วาระที่ 2 """ SENATE_2 """ สว. วาระที่ 3 """ SENATE_3 """ การโหวตเลือกนายกรัฐมนตรี """ PM_VOTE } """ เหตุการที่เกี่ยวข้อง อ้างอิงจาก https://www.popoloproject.com/specs/event.html """ interface Event { """ ID แบบสุ่ม """ id: ID! """ องค์กรที่เกี่ยวข้อง """ organizations: [Organization!]! @declareRelationship """ คำอธิบาย """ description: String """ วันที่เริ่ม """ start_date: Date """ วันที่สิ้นสุด """ end_date: Date """ สถานะการเผยแพร่ """ publish_status: PublishStatus! """ เว็บไซต์ภายนอกที่เกี่ยวข้อง """ links: [Link!]! @declareRelationship } """ ญัตติ อ้างอิงจาก https://www.popoloproject.com/specs/motion.html """ interface Motion { """ ID แบบสุ่ม """ id: ID! """ องค์กรที่พิจารณาญัตติ """ organizations: [Organization!]! @declareRelationship """ ผู้เสนอ """ creators: [MotionCreator!]! @declareRelationship """ ชื่อ """ title: String """ วันที่รับเรื่องในระบบ LIS """ proposal_date: Date """ เนื้อหาของญัตติ """ text: String """ เงื่อนไขของการผ่านญัตติ """ requirement: String } """ กฏหมายหรือร่างกฏหมาย """ type Bill implements Motion @node { """ ID แบบสุ่ม """ id: ID! @id """ องค์กรที่มีส่วนเกี่ยวข้องในการพิจารณา เช่น สส. สว. ชุดใด """ organizations: [Organization!]! @relationship(type: "CREATED_IN", properties: "Relation", direction: OUT) """ ผู้เสนอ """ creators: [MotionCreator!]! @relationship(type: "CREATED_BY", properties: "Relation", direction: OUT) """ ประเภทผู้เสนอ """ creator_type: BillCreatorType! """ เลข ID ของหน้าข้อมูลกฎหมายในเว็บไซต์ lis.parliament """ lis_id: Int! """ จำนวนรายชื่อของประชาชนที่สนับสนุน (ในกรณีที่ประชาชนเป็นคนเสนอ) """ people_signature_count: Int """ ชื่อทางการ """ title: String! """ วันที่รับร่างเข้ากระบวนการ """ proposal_date: Date """ เนื้อหา """ text: String """ เงื่อนไขของการผ่านร่าง """ requirement: String """ ขั้นตอนในประบวนการพิจารณากฏหมาย """ events: [BillEvent!]! @relationship(type: "IN", properties: "Relation", direction: IN) """ ประเภท """ classification: BillType! """ ชื่อเล่นที่เป็นที่รู้จักโดยทั่วไป (ตั้งโดยทีมทำข้อมูล) """ nickname: String """ หมายเลขทะเบียนรับจากระบบ LIS """ acceptance_number: String """ เลขฉบับ (มีเมื่อร่างผ่าน) """ issue_number: String """ เลขปี (มีเมื่อร่างผ่าน) """ issue_year: String """ ติดแท็กเรื่องที่เกี่ยวข้อง """ categories: [String!] """ ผู้ร่วมเสนอ """ co_creators: [Person!]! @relationship(type: "CO_CREATED_BY", properties: "Relation", direction: OUT) """ สถานะของร่างกฎหมาย """ status: BillStatus! """ เว็บไซต์ภายนอกที่เกี่ยวข้อง """ links: [Link!]! @relationship(type: "HAVE", properties: "Relation", direction: OUT) """ วันที่เพิ่มลงในฐานข้อมูล """ created_at: DateTime! @timestamp(operations: [CREATE]) """ วันที่แก้ไขข้อมูลล่าสุด """ updated_at: DateTime @timestamp(operations: [UPDATE]) } """ การเป็นสมาชิก อ้างอิงจาก https://www.popoloproject.com/specs/membership.html """ type Membership @node @authorization( filter: [ { where: {} } { requireAuthentication: false where: { node: { NOT: { members: { all: { Person: { publish_status: { eq: "UNPUBLISHED" } } } } } } } } ] ) { """ ID แบบสุ่ม """ id: ID! @id """ สมาชิก """ members: [Member!]! @relationship(type: "HELD", properties: "Relation", direction: IN) """ ตำแหน่ง """ posts: [Post!]! @relationship(type: "AS", properties: "Relation", direction: OUT) """ ประเภทที่ถูกแบ่ง เช่น วิธีการจัดตั้งหรือกลุ่มอาชีพของ สว. """ label: String """ จังหวัด (ในกรณีของ สส.เขต) """ province: String """ เลขที่เขตเลือกตั้ง (ในกรณีของ สส.เขต) """ district_number: Int """ ลำดับในบัญชีรายชื่อ (ในกรณีของ สส.บัญชีรายชื่อ) """ list_number: Int """ วันที่เริ่ม """ start_date: Date! """ วันที่สิ้นสุด """ end_date: Date """ เว็บไซต์ภายนอกที่เกี่ยวข้อง """ links: [Link!]! @relationship(type: "HAVE", properties: "Relation", direction: OUT) """ วันที่เพิ่มลงในฐานข้อมูล """ created_at: DateTime! @timestamp(operations: [CREATE]) """ วันที่แก้ไขข้อมูลล่าสุด """ updated_at: DateTime @timestamp(operations: [UPDATE]) } """ การประกาศร่างตกไป """ type BillRejectEvent implements Event @node { """ ID แบบสุ่ม """ id: ID! @id """ องค์กรที่เกี่ยวข้อง """ organizations: [Organization!]! @relationship(type: "HELD_EVENT", properties: "Relation", direction: IN) """ กฏหมายที่เกี่ยวข้อง """ bills: [Bill!]! @relationship(type: "IN", properties: "Relation", direction: OUT) """ คำอธิบาย """ description: String """ วันที่เริ่ม """ start_date: Date """ วันที่สิ้นสุด """ end_date: Date """ เหตุผลที่ร่างตกไป """ reject_reason: String! """ สถานะการเผยแพร่ """ publish_status: PublishStatus! """ เว็บไซต์ภายนอกที่เกี่ยวข้อง """ links: [Link!]! @relationship(type: "HAVE", properties: "Relation", direction: OUT) """ วันที่เพิ่มลงในฐานข้อมูล """ created_at: DateTime! @timestamp(operations: [CREATE]) """ วันที่แก้ไขข้อมูลล่าสุด """ updated_at: DateTime @timestamp(operations: [UPDATE]) } """ การลงคะแนนเสียงในมติ อ้างอิงจาก https://www.popoloproject.com/specs/vote.html """ type Vote @node @authorization( filter: [ { where: {} } { requireAuthentication: false where: { node: { vote_events: { some: { publish_status: { eq: "PUBLISHED" } } } } } } ] ) @limit(max: 1000) { """ ID แบบสุ่ม """ id: ID! @id """ มติที่ลงคะแนนเสียง """ vote_events: [VoteEvent!]! @relationship(type: "VOTED_IN", properties: "Relation", direction: OUT) """ บุคคลที๋โหวต """ voters: [Person!]! @relationship(type: "VOTED_BY", properties: "Relation", direction: OUT) """ ลำดับที่ (จากตารางในรายงานการประชุมของ MSBIS) """ vote_order: String """ เลขที่บัตร (จากตารางในรายงานการประชุมของ MSBIS) """ badge_number: String """ ชื่อ-สกุล (จากตารางในรายงานการประชุมของ MSBIS) """ voter_name_raw: String """ ชื่อสังกัด (จากตารางในรายงานการประชุมของ MSBIS) """ voter_party: String """ การออกเสียงลงคะแนน """ option: String! """ การออกเสียงลงคะแนน ภาษาอังกฤษ """ option_en: String @customResolver(requires: "option") """ วันที่เพิ่มลงในฐานข้อมูล """ created_at: DateTime! @timestamp(operations: [CREATE]) """ วันที่แก้ไขข้อมูลล่าสุด """ updated_at: DateTime @timestamp(operations: [UPDATE]) } """ รายละเอียดการลงมติที่มาจากเว็บ lis """ type BillVoteEvent implements Event @node { """ ID แบบสุ่ม """ id: ID! @id """ องค์กรที่เกี่ยวข้อง """ organizations: [Organization!]! @relationship(type: "HELD_EVENT", properties: "Relation", direction: IN) """ กฏหมายที่เกี่ยวข้อง """ bills: [Bill!]! @relationship(type: "IN", properties: "Relation", direction: OUT) """ อีเวนต์การโหวต """ vote_events: [VoteEvent!]! @relationship( type: "HAS_VOTE_EVENT" properties: "Relation" direction: OUT ) """ การลงมติอยู่ในขั้นตอนใดของกระบวนการพิจารณากฏหมายใด """ classification: VoteEventType """ คำอธิบายคร่าวๆ """ description: String """ วันที่เริ่มต้น """ start_date: Date """ วันที่สิ้นสุด """ end_date: Date """ สถานะการเผยแพร่ """ publish_status: PublishStatus! """ ชื่อวาระจาก MSBIS """ title: String """ ชื่อเล่นสำหรับคนทั่วไป """ nickname: String """ ผลการลงมติ """ result: String """ เงื่อนไขในการผ่านมติ """ pass_condition: String """ จำนวนผู้ที่เห็นด้วย (จากหัวเอกสารรายงานการประชุมของ MSBIS) """ agree_count: Int """ จำนวนผู้ที่ไม่เห็นด้วย (จากหัวเอกสารรายงานการประชุมของ MSBIS) """ disagree_count: Int """ จำนวนผู้ที่งดออกเสียง (จากหัวเอกสารรายงานการประชุมของ MSBIS) """ abstain_count: Int """ จำนวนผู้ที่ไม่ลงคะแนนเสียง (จากหัวเอกสารรายงานการประชุมของ MSBIS) """ novote_count: Int """ ID ใน URL ของ MSBIS """ msbis_id: Int """ ครั้งที่ประชุม(ปีที่ ... สมัย ... ครั้งที่ ...) """ session_identifier: String """ เว็บไซต์ภายนอกที่เกี่ยวข้อง """ links: [Link!]! @relationship(type: "HAVE", properties: "Relation", direction: OUT) """ วันที่เพิ่มลงในฐานข้อมูล """ created_at: DateTime! @timestamp(operations: [CREATE]) """ วันที่แก้ไขข้อมูลล่าสุด """ updated_at: DateTime @timestamp(operations: [UPDATE]) } """ การประกาศเป็นกฎหมาย """ type BillEnactEvent implements Event @node { """ ID แบบสุ่ม """ id: ID! @id """ องค์กรที่เกี่ยวข้อง """ organizations: [Organization!]! @relationship(type: "HELD_EVENT", properties: "Relation", direction: IN) """ กฏหมายที่เกี่ยวข้อง """ bills: [Bill!]! @relationship(type: "IN", properties: "Relation", direction: OUT) """ ชื่อร่างหลังจากประกาศเป็นกฎหมาย """ title: String """ คำอธิบาย """ description: String """ วันที่เริ่ม """ start_date: Date """ วันที่สิ้นสุด """ end_date: Date """ สถานะการเผยแพร่ """ publish_status: PublishStatus! """ เว็บไซต์ภายนอกที่เกี่ยวข้อง """ links: [Link!]! @relationship(type: "HAVE", properties: "Relation", direction: OUT) """ วันที่เพิ่มลงในฐานข้อมูล """ created_at: DateTime! @timestamp(operations: [CREATE]) """ วันที่แก้ไขข้อมูลล่าสุด """ updated_at: DateTime @timestamp(operations: [UPDATE]) } """ ชื่ออื่นๆของ Person """ type AlternatePersonName @node { """ ID ที่มาจากชื่อองค์กร """ id: ID! @id """ ชื่อจริง """ firstname: String! """ ชื่อกลาง """ middlename: String """ นามสกุล """ lastname: String! """ ชื่อเต็มที่ประกอบด้วยชื่อ ชื่อกลาง และนามสกุล """ name: String! @customResolver(requires: "firstname middlename lastname") """ คำอธิบาย """ description: String """ entity เจ้าของชื่อ """ named_entity: [Person!]! @relationship(type: "KNOWN_AS", properties: "Relation", direction: IN) # TODO change relation type """ วันที่เริ่มต้นใช้ชื่อนี้ """ start_date: Date """ วันที่สิ้นสุดใช้ชื่อนี้ """ end_date: Date """ วันที่เพิ่มลงในฐานข้อมูล """ created_at: DateTime! @timestamp(operations: [CREATE]) """ วันที่แก้ไขข้อมูลล่าสุด """ updated_at: DateTime @timestamp(operations: [UPDATE]) } """ การลงมติ """ type VoteEvent implements Event @node @authorization( filter: [ { where: {} } { requireAuthentication: false where: { node: { publish_status: { eq: "PUBLISHED" } } } } ] ) { """ ID แบบสุ่ม """ id: ID! @id """ การลงคะแนนเสียงของผู้เข้าร่วมประชุม """ votes: [Vote!]! @relationship(type: "VOTED_IN", properties: "Relation", direction: IN) """ องค์กรที่เกี่ยวข้อง """ organizations: [Organization!]! @relationship(type: "HELD_EVENT", properties: "Relation", direction: IN) """ กฏหมายที่เกี่ยวข้อง """ bills: [Bill!]! @relationship(type: "IN", properties: "Relation", direction: OUT) """ อีเวนต์การโหวตในร่างกฎหมาย """ bill_vote_events: [BillVoteEvent!]! @relationship(type: "HAS_VOTE_EVENT", properties: "Relation", direction: IN) """ การลงมติอยู่ในขั้นตอนใดของกระบวนการพิจารณากฏหมายใด """ classification: VoteEventType """ คำอธิบายคร่าวๆ """ description: String """ วันที่เริ่มต้น """ start_date: Date! """ วันที่สิ้นสุด """ end_date: Date! """ สถานะการเผยแพร่ """ publish_status: PublishStatus! """ ชื่อวาระจาก MSBIS """ title: String! """ ชื่อเล่นสำหรับคนทั่วไป """ nickname: String """ ผลการลงมติ """ result: String """ เงื่อนไขในการผ่านมติ """ pass_condition: String """ จำนวนผู้ที่เห็นด้วย (จากหัวเอกสารรายงานการประชุมของ MSBIS) """ agree_count: Int """ จำนวนผู้ที่ไม่เห็นด้วย (จากหัวเอกสารรายงานการประชุมของ MSBIS) """ disagree_count: Int """ จำนวนผู้ที่งดออกเสียง (จากหัวเอกสารรายงานการประชุมของ MSBIS) """ abstain_count: Int """ จำนวนผู้ที่ไม่ลงคะแนนเสียง (จากหัวเอกสารรายงานการประชุมของ MSBIS) """ novote_count: Int """ ID ใน URL ของ MSBIS """ msbis_id: Int """ เว็บไซต์ภายนอกที่เกี่ยวข้อง """ links: [Link!]! @relationship(type: "HAVE", properties: "Relation", direction: OUT) """ วันที่เพิ่มลงในฐานข้อมูล """ created_at: DateTime! @timestamp(operations: [CREATE]) """ วันที่แก้ไขข้อมูลล่าสุด """ updated_at: DateTime @timestamp(operations: [UPDATE]) } """ การพิจารณาร่างพระราชบัญญัติ เป็นร่างหลัก """ type BillMergeEvent implements Event @node { """ ID แบบสุ่ม """ id: ID! @id """ องค์กรที่เกี่ยวข้อง """ organizations: [Organization!]! @relationship(type: "HELD_EVENT", properties: "Relation", direction: IN) """ กฏหมายที่เกี่ยวข้อง """ bills: [Bill!]! @relationship(type: "IN", properties: "Relation", direction: OUT) """ คำอธิบาย """ description: String """ วันที่เริ่ม """ start_date: Date """ วันที่สิ้นสุด """ end_date: Date """ กฏหมายร่างหลัก """ main_bill_id: String """ จำนวนร่างกฎหมายที่ถูกรวม """ total_merged_bills: Int! """ สถานะการเผยแพร่ """ publish_status: PublishStatus! """ เว็บไซต์ภายนอกที่เกี่ยวข้อง """ links: [Link!]! @relationship(type: "HAVE", properties: "Relation", direction: OUT) """ วันที่เพิ่มลงในฐานข้อมูล """ created_at: DateTime! @timestamp(operations: [CREATE]) """ วันที่แก้ไขข้อมูลล่าสุด """ updated_at: DateTime @timestamp(operations: [UPDATE]) } """ การนำขึ้นทูลเกล้าทูลกระหม่อมถวาย """ type BillRoyalAssentEvent implements Event @node { """ ID แบบสุ่ม """ id: ID! @id """ องค์กรที่เกี่ยวข้อง """ organizations: [Organization!]! @relationship(type: "HELD_EVENT", properties: "Relation", direction: IN) """ กฏหมายที่เกี่ยวข้อง """ bills: [Bill!]! @relationship(type: "IN", properties: "Relation", direction: OUT) """ คำอธิบาย """ description: String """ วันที่เริ่ม """ start_date: Date """ วันที่สิ้นสุด """ end_date: Date """ ผลการนำขึ้นทูลเกล้าทูลกระหม่อมถวาย """ result: String """ สถานะการเผยแพร่ """ publish_status: PublishStatus! """ เว็บไซต์ภายนอกที่เกี่ยวข้อง """ links: [Link!]! @relationship(type: "HAVE", properties: "Relation", direction: OUT) """ วันที่เพิ่มลงในฐานข้อมูล """ created_at: DateTime! @timestamp(operations: [CREATE]) """ วันที่แก้ไขข้อมูลล่าสุด """ updated_at: DateTime @timestamp(operations: [UPDATE]) } """ ชื่ออื่นๆของ entity ต่างๆ """ type AlternateName @node { """ ID ที่มาจากชื่อองค์กร """ id: ID! @id """ ชื่อ """ name: String! """ ชื่อ ภาษาอังกฤษ """ name_en: String """ คำอธิบาย """ description: String """ entity เจ้าของชื่อ """ named_entity: [NamedEntity!]! @relationship(type: "KNOWN_AS", properties: "Relation", direction: IN) """ วันที่เริ่มต้นใช้ชื่อนี้ """ start_date: Date """ วันที่สิ้นสุดใช้ชื่อนี้ """ end_date: Date """ วันที่เพิ่มลงในฐานข้อมูล """ created_at: DateTime! @timestamp(operations: [CREATE]) """ วันที่แก้ไขข้อมูลล่าสุด """ updated_at: DateTime @timestamp(operations: [UPDATE]) } """ ลิงก์ไปยังเว็บไซต์ภายนอกที่เกี่ยวข้อง """ type Link @node @authorization( filter: [ { where: {} } { requireAuthentication: false where: { node: { NOT: { owners: { all: { Person: { publish_status: { eq: "UNPUBLISHED" } } } } } } } } ] ) { """ ID แบบสุ่ม """ id: ID! @id """ URL """ url: String! """ คำอธิบาย """ note: String """ เว็บไซต์ภายเชื่อมโยงกับอะไรในฐานข้อมูล """ owners: [LinkOwner!]! @relationship(type: "HAVE", properties: "Relation", direction: IN) """ วันที่เพิ่มลงในฐานข้อมูล """ created_at: DateTime! @timestamp(operations: [CREATE]) """ วันที่แก้ไขข้อมูลล่าสุด """ updated_at: DateTime @timestamp(operations: [UPDATE]) } """ บุคคลที่เกี่ยวข้องทางการเมือง เช่น สมาชิกสภา สมาชิกพรรคการเมือง ฯลฯ อ้างอิงจาก https://www.popoloproject.com/specs/person.html """ type Person @node @authorization( filter: [ { where: {} } { requireAuthentication: false where: { node: { publish_status: { eq: "PUBLISHED" } } } } ] ) @limit(max: 1000) { """ ID ในรูปแบบชื่อเต็มที่เปลี่ยนช่องว่างเป็น "-" """ id: ID! @id """ คำนำหน้า """ prefix: String! """ ชื่อจริง """ firstname: String! """ ชื่อกลาง """ middlename: String """ นามสกุล """ lastname: String! """ ชื่อเต็มที่ประกอบด้วยชื่อ ชื่อกลาง และนามสกุล """ name: String! @customResolver(requires: "firstname middlename lastname") """ ชื่อจริง ภาษาอังกฤษ """ firstname_en: String """ ชื่อกลาง ภาษาอังกฤษ """ middlename_en: String """ นามสกุล ภาษาอังกฤษ """ lastname_en: String """ ชื่อเต็มภาษาอังกฤษที่ประกอบด้วยชื่อ ชื่อกลาง และนามสกุล """ name_en: String @customResolver(requires: "firstname_en middlename_en lastname_en") """ ชื่ออื่นๆ """ other_names: [OtherNames!]! @relationship(type: "KNOWN_AS", properties: "Relation", direction: OUT) # TODO change relation type """ อีเมล """ email: String """ เพศโดยกำเนิด """ gender: Gender """ วันเกิด """ birth_date: Date """ วันเสียชีวิต """ death_date: Date """ ประวัติการศึกษา """ educations: String """ ประวัติการทำงาน """ previous_occupations: String """ รูปภาพ """ image: String """ สัญชาติ """ national_identity: String """ สถานะการเผยแพร่ """ publish_status: PublishStatus! """ การเป็นสมาชิกในองค์กร """ memberships: [Membership!]! @relationship(type: "HELD", properties: "Relation", direction: OUT) """ เว็บไซต์ภายนอกที่เกี่ยวข้อง """ links: [Link!]! @relationship(type: "HAVE", properties: "Relation", direction: OUT) """ การโหวตในมติ """ votes: [Vote!]! @relationship(type: "VOTED_BY", properties: "Relation", direction: IN) """ กฏหมายหรือร่างกฏหมายที่เสนอในนามบุคคล """ created_motions: [Motion!]! @relationship(type: "CREATED_BY", properties: "Relation", direction: IN) """ กฏหมายหรือร่างกฏหมายที่เสนอในนามบุคคล """ co_created_motions: [Motion!]! @relationship(type: "CO_CREATED_BY", properties: "Relation", direction: IN) """ วันที่เพิ่มลงในฐานข้อมูล """ created_at: DateTime! @timestamp(operations: [CREATE]) """ วันที่แก้ไขข้อมูลล่าสุด """ updated_at: DateTime @timestamp(operations: [UPDATE]) } """ ตำแหน่งในองค์กร เช่น ประธานสภา หัวหน้าพรรค ฯลฯ อ้างอิงจาก https://www.popoloproject.com/specs/post.html """ type Post @node { """ ID แบบสุ่ม """ id: ID! @id """ ชื่อตำแหน่งแบบเต็ม (มีชื่อองกรณ์) """ label: String! @customResolver(requires: "role organizations { name classification }") """ ชื่อตำแหน่งแบบสั้น """ role: String! """ วันที่เริ่ม """ start_date: Date """ วันที่สิ้นสุด """ end_date: Date """ องค์กรที่มีตำแหน่งนี้ """ organizations: [Organization!]! @relationship(type: "IN", properties: "Relation", direction: OUT) """ การเป็นสมาชิกในตำแหน่งนี้ """ memberships: [Membership!]! @relationship(type: "AS", properties: "Relation", direction: IN) """ วันที่เพิ่มลงในฐานข้อมูล """ created_at: DateTime! @timestamp(operations: [CREATE]) """ วันที่แก้ไขข้อมูลล่าสุด """ updated_at: DateTime @timestamp(operations: [UPDATE]) } """ องค์กรที่เกี่ยวข้องทางการเมือง เช่น สส. สว. ครม. พรรคการเมือง ฯลฯ อ้างอิงจาก https://www.popoloproject.com/specs/organization.html """ type Organization @node { """ ID ที่มาจากชื่อองค์กร """ id: ID! """ ชื่อ """ name: String! """ ชื่อ ภาษาอังกฤษ """ name_en: String """ ชื่ออื่นๆ """ other_names: [AlternateName!]! @relationship(type: "KNOWN_AS", properties: "Relation", direction: OUT) # TODO change relation type """ คำอธิบาย """ description: String """ ประเภท """ classification: OrganizationType! """ ตัวย่อ """ abbreviation: String @customResolver(requires: "classification") """ ชุดที่ / คณะที่ (สำหรับ สส. สว. ครม.) """ term: Int @customResolver(requires: "classification name") """ วันที่ก่อตั้ง """ founding_date: Date """ วันที่ปิดตัวหรือหมดวาระ """ dissolution_date: Date """ โลโก้ """ image: String """ สีในการแสดงผล """ color: String """ องค์กรที่อยู่เหนือกว่า """ parents: [Organization!]! @relationship(type: "UNDER", properties: "Relation", direction: OUT) """ องค์กรย่อยที่อยู่ภายใต้ """ children: [Organization!]! @relationship(type: "UNDER", properties: "Relation", direction: IN) """ ตำแหน่งที่มีในองค์กร """ posts: [Post!]! @relationship(type: "IN", properties: "Relation", direction: IN) """ การเป็นสมาชิกในองค์กรอื่น เช่น การเป็นพรรคฝ่ายรัฐบาล/ค้านในครม. """ memberships: [Membership!]! @relationship(type: "HELD", properties: "Relation", direction: OUT) """ กฏหมายหรือร่างกฏหมายที่เสนอในนามองค์กร """ motions: [Motion!]! @relationship(type: "CREATED_IN", properties: "Relation", direction: IN) """ กิจกรรมที่องค์กรนี้เกี่ยวข้อง """ events: [Event!]! @relationship(type: "HELD_EVENT", properties: "Relation", direction: OUT) """ เว็บไซต์ภายนอกที่เกี่ยวข้อง """ links: [Link!]! @relationship(type: "HAVE", properties: "Relation", direction: OUT) """ วันที่เพิ่มลงในฐานข้อมูล """ created_at: DateTime! @timestamp(operations: [CREATE]) """ วันที่แก้ไขข้อมูลล่าสุด """ updated_at: DateTime @timestamp(operations: [UPDATE]) } """ ความสัมพันธ์ทั่วไป """ type Relation @relationshipProperties { """ ID แบบสุ่ม """ id: ID! @id """ วันที่เพิ่มลงในฐานข้อมูล """ created_at: DateTime! @timestamp(operations: [CREATE]) """ วันที่แก้ไขข้อมูลล่าสุด """ updated_at: DateTime @timestamp(operations: [UPDATE]) } """ ผู้เสนอร่างกฏหมาย เป็นบุคคลหรือองค์กร """ union MotionCreator = Person | Organization """ เจ้าของลิงก์ไปยังเว็บไซต์ภายนอกที่เกี่ยวข้อง สามารถเป็นบุคคล องค์กร หรือกฏหมาย """ union LinkOwner = | Person | Organization | Membership | Bill | VoteEvent | BillVoteEvent | BillMergeEvent | BillEnactEvent | BillRejectEvent | BillRoyalAssentEvent """ entity ที่มีชื่อ """ union NamedEntity = Person | Organization """ เหตุการที่เกี่ยวข้องกับกฏหมายหรือร่างกฏหมาย """ union BillEvent = | BillEnactEvent | BillMergeEvent | BillRejectEvent | BillRoyalAssentEvent | BillVoteEvent """ สมาชิกขององค์กร อาจจะเป็น บุคคล หรือ องค์กร (เช่นพรรคร่วมรัฐบาล พรรคฝ่ายค้าย) """ union Member = Person | Organization """ ชื่ออื่นๆ """ union OtherNames = AlternateName | AlternatePersonName